artifact chain
intake -> spec -> task -> review -> finding
Intent becomes a requirement.
The task bounds what may change.
The run pastes evidence.
The review routes exceptions.
The finding preserves what the next task should know.
A lightweight spec-and-review workflow for teams using coding agents. corpus turns intent into files an agent can run and a human can verify.
$ cat what-is-corpus.md
corpus is a spec-and-review workflow for teams using coding agents. Turn tickets into clear specs, specs into agent-ready tasks, and agent output into evidence a human can review.
✓ agent does the typing
✓ human makes the call
✓ every claim needs evidence
✓ plain markdown, any agent, no runtime
$ _
intake -> spec -> task -> review -> finding
Intent becomes a requirement.
The task bounds what may change.
The run pastes evidence.
The review routes exceptions.
The finding preserves what the next task should know.
Coding agents
Claude Code, Cursor, Copilot, …
Does: write the code
corpus ships no agent. It shapes the inputs any agent works from and the output you review. Bring whichever agent you have.
Spec-driven workflows
Does: turn a written spec into an implementation
Same family, different job. They help author the spec and generate code; corpus focuses on the review side — every requirement carries a verification method, and the packet shows the evidence per requirement.
Issue trackers
Jira, Linear, GitHub Issues
Does: hold the backlog and the conversation
The ticket stays where it is. corpus snapshots it into an intake file and interprets it into a spec an agent can act on.
Docs portals
wikis, Notion, docs sites
Does: describe the system after the fact
A corpus spec is a working document — acceptance criteria, verification methods, open questions. It drives the change rather than documenting it later.
Review tooling
PRs, CI, review bots
Does: check the merge
corpus does not replace the PR. The review packet rides alongside it and tells the reviewer where to look; CI output is the evidence the packet cites.
Refactoring tooling
codemods, OpenRewrite, …
Does: execute mechanical change
corpus's change plan states what must survive the change and how to check it; a codemod is one way a task executes a step of that plan.
the agent solves a problem, not the problem
> the task packet: an explicit scope and a 'Do not change' list
ambiguity degrades generated code, and models do not reliably flag it
> requirements written one per ID, each with its own verification method
the plan-to-implementation handoff is a leading failure surface (on preliminary evidence)
> the handoff is a written, bounded task packet — not a chat message
'done,' but nothing was checked
> a Pass needs pasted output, a CI link, or a named human's recorded observation
the session ends mid-stride; the next one starts from zero
> work externalized to files — intake, spec, task, review
the same class of bug returns every few sessions
> findings saved at Close, kept where the next task will look
Six steps, each producing a file the next one reads. That is the whole framework: no runtime, no automatic decision.
Source: docs/01-what-is-corpus.md