Application Drafter
Draft a funding application question by question in a YAML file on your disk, with live two-way editing alongside Claude.
Overview
Application Drafter is a single HTML page for working on an application, such as a fellowship resubmission. All the content lives in one YAML file on your own disk. The page opens that file, lets you read and edit it, and writes your edits straight back to it. Because the file is the source of truth, Claude (or any editor) can change it at the same time: the page notices changes on disk within a couple of seconds and reloads them.
For each question the file holds:
| Field | What it's for |
|---|---|
question |
The question as the funder asks it |
guidance |
The funder's guidance for the question |
previous_answer |
The answer you submitted last time |
assessor_feedback |
What the assessors said about it |
feedback_response |
Your response to that feedback |
suggestions |
Proposed changes, each with a source, a decision (accept, reject or decide), whether it's implemented, and notes |
new_draft |
The new answer |
The first five are reference material, shown collapsed as rendered Markdown (each has an Edit button). Suggestions sit between the reference material and the new draft: Accept or Reject each one, then tick Implemented once the new draft reflects it. A suggestion counts as resolved when it's implemented or rejected. Expand a suggestion to edit its text, source or notes. New draft is always open for editing, with a Preview toggle, Copy Markdown, and Copy formatted for pasting into the funder's form (see Pasting into the form).
Features
- Live file editing — open a
.yamlfile and every edit is saved back to it (autosave can be turned off; ⌘S / Ctrl+S saves). - Picks up outside changes — when the file changes on disk the page reloads it, highlights what changed, and puts a dot beside each question that changed until you look at it. If you had unsaved edits, it asks whether to keep yours or load the disk version.
- Keeps the file tidy — comments, ordering and layout survive a save, and multi-line text is written as readable
|blocks, so diffs only show what you actually changed. - Suggestions page — triage every suggestion across the application in one list, grouped by question, filtered by state (to decide, to implement, implemented, rejected) or searched.
- Progress in the sidebar — each question shows suggestions resolved (implemented or rejected) out of the total, green once all are resolved.
- Word counts against each question's limit, in the editor and the overview.
- Status per question (not started, drafting, in review, done) and an overview table of progress, including how many suggestions are still to decide and how many are resolved for each question.
- Glossary of terms to use consistently, listed under the overview. Each term has a decision: Keep (use it as it is), Update (use the replacement instead) or Decide (not settled yet), plus a definition, the variant spellings seen so far and notes. Filter by decision, search, and add, edit or delete terms.
- Compare the previous answer with the new draft, side by side or as a word-level diff of the changes.
- YAML view to edit a question's raw YAML (for fields the editor doesn't show).
- Export a copy of the file elsewhere.
- Reopen the last file in one click.
Pasting into the form
Funders' online forms often accept only a little formatting. This tool assumes the form takes bold, italic, bulleted lists and numbered lists, and nothing else: no headings, links or tables.
- Copy formatted puts the draft on the clipboard as rich text in that subset, ready to paste into the form. Headings become bold lines; links, code and tables become plain text. A plain-text version is included for fields that don't accept rich text.
- Preview shows the draft as Copy formatted will paste it.
- A warning appears under the draft if it uses formatting the form can't show.
- Word counts are of the text as pasted, so Markdown symbols such as list dashes don't count.
Use a bold line, with a blank line above and below, in place of a heading, and number them for structure:
**1. Main heading**
Content goes here
**1.1 Secondary heading**
More content
To treat another field the same way, set form: true on it in meta.fields.
Usage
- Run
npm startfrom the repo root (or open the page on the site) in Chrome or Edge. - Click Open YAML file… and choose your file, or New file… to start from a template. Allow the browser to edit the file when asked.
- Pick a question from the sidebar and draft away.
Live, two-way editing uses the File System Access API, which only Chromium browsers support. In Safari and Firefox the page still works, but it opens a copy of the file and Save downloads the result, so outside changes won't appear.
File format
meta:
title: My application
deadline: "4 November 2026"
notes: |
Notes for the whole application (shown on the overview).
glossary:
- term: workstream
decision: update # keep | update | decide
use_instead: workstream
definition: One of the three strands of the project.
variants: [work stream, work-stream]
notes: Round 10 mixed three spellings.
questions:
- id: q12 # stable id
number: "12"
title: Vision
section: Application questions # sidebar grouping
scored: true
word_limit: 1500
previous_score: "8"
status: drafting # not-started | drafting | review | done
question: |
What are your plans for the fellowship?
guidance: |
…
previous_answer: |
…
assessor_feedback: |
…
feedback_response: |
…
suggestions:
- text: Add measurable targets for each workstream
source: A3 # who or what proposed it
decision: accept # accept | reject | decide
implemented: false # true once new_draft reflects it
notes: ""
new_draft: |
…
Any other text field on a question is shown as an extra editable field. To change the field list, labels or which are reference material, add meta.fields:
meta:
fields:
- { key: question, label: Question, kind: reference }
- { key: new_draft, label: New draft, kind: working, count: true, limit: true, form: true }
count shows a word count; limit compares it with the question's word_limit; form marks text that's pasted into the funder's form (Copy formatted, form preview and warnings).
Working with Claude
Point Claude at the same YAML file and ask it to edit fields directly — for example, "draft new_draft for q12 using the accepted suggestions". Keep the page open while it works: each change appears as soon as the file is written. Leave autosave on so your own edits reach the file before Claude reads it.