I.Where grants live today
Trapped in web forms that AI cannot reach.
A typical grant platform is a web application. The proposal lives in
a database row; the sections render as textareas; the history is
whatever the platform chose to record. The user's tools — their
editor, their agent, their version control — watch from outside the
glass.
That was fine when the main thing you did with a draft was edit it
yourself. It is no longer fine. The best drafting partners in the
world now live one cd away, and they
do their best work on a directory of files, not a 6,000-token
prompt.
2023 was the year of the chatbot. 2024, RAG and finetuning. 2025,
MCP and tool use. 2026 will be the year
of the computer environment and filesystem.
— Alex Albert, Anthropic
The rest of this essay is the reasoning behind GrantKit: what
changes if a proposal is a set of files; why the filesystem is a
better substrate than a web UI for this kind of writing; and why
checking and building belong in that same filesystem, not in a
separate app.
III.What a linter is for
Files you can check, not just edit.
Being a file unlocks more than an agent's attention. It unlocks
every tool built to operate on files: a linter, a compiler, a CI
runner, a diff viewer. A proposal locked in a database can only be
checked by whatever bespoke validator a platform's engineers had
time to build into their UI. A proposal stored as markdown can be
checked by anything — the CLI on your laptop, an MCP server your
agent calls mid-draft, a GitHub Action that runs on every commit.
Same rule pack, same result, wherever the check happens.
So GrantKit ships the rules as data, not as logic buried in a web
app. Each funder — NSF, Nuffield, PBIF — gets a versioned YAML rule
pack: page and word limits, required sections, placeholder
detection, budget bounds checked against BLS wage data and GSA
per-diem tables. Every failure names the rule that caught it. When
a funder changes a threshold, the fix is a pull request to a YAML
file, not a deploy.
That is the linter half of the thesis. The other half is the
compiler: once a draft passes, something still has to become the
review page a colleague reads, the copy-paste blocks a portal
wants, and the PDF a program officer opens.
grantkit build does that from the
same files grantkit check just
cleared. Two commands, one source of truth, no separate export
step to keep in sync by hand.
IV.The writing loop
Edit. Check. Build.
The loop is the point. A grant is a long document written in small
motions: tighten the abstract by forty words, add a concrete metric
to broader impacts, reconcile the budget with the narrative, run
grantkit check, fix what it flags.
Each motion benefits from an agent that has the whole corpus at its
disposal. Each motion wants a diff, not a Save button — and a check
it can run before anyone else sees the draft.
When the loop is fast, a proposal stops being a dread-object you
open twice a week and becomes something you edit the way you edit
code — incrementally, with confidence, with history. Deadlines
become less frightening because the last seventy-two hours are no
longer where the work compresses; grantkit build
can compile a submission-ready draft the moment
grantkit check goes clean, any night
you want to see where you stand.