Changeset creation
A changeset records which spec documents were modified in a batch of work and links those changes to Git commits. It is the primary hand-off mechanism between the specification and the implementation: agents use changesets to understand what changed, why, and where to look.
Create a changeset whenever a meaningful set of spec documents is updated together β at minimum once per feature or domain edit cycle.
Phase 1 β Identify the Commits
Ask:
- Which Git commit hashes contain the spec changes? (space-separated, short hashes are fine)
- If the changes are not yet committed, note the expected commit message β the hash can be filled in after commit.
Phase 2 β Document Touched Documents
For each spec document that was modified, create a touched entry:
Ask for each touched document:
- What is its qualified id? (e.g.
feature/add-bookmark,domain/bookmarks) - What specifically changed? (one sentence: added, removed, renamed, extended β be concrete)
Group related changes together. A changeset covering one feature plus its domain is normal. A changeset spanning five unrelated domains is a sign the changes should be split.
Phase 3 β Draft & Confirm
Present the draft for confirmation before writing.
Output: content/changesets/{id}.changeset.mdoc
After writing, run pnpm compile to verify the changeset appears in the aggregate changelog.
Doβs and Donβts
Do:
- Create a changeset whenever a meaningful set of spec documents is updated together
- Group related changes together (one feature plus its domain is normal)
- Use concrete, one-sentence descriptions for each touched document
- Include Git commit hashes when available; note expected messages if not yet committed
- Run
pnpm compileafter writing to verify the changeset appears in the changelog
Donβt:
- Donβt span five unrelated domains in a single changeset β split them instead
- Donβt use vague descriptions like βupdatedβ β be concrete about what changed
- Donβt create a changeset for trivial formatting-only changes
- Donβt skip the compile verification after writing
Definition of Done
- Draft presented to user for confirmation
- Document written as
content/changesets/{id}.changeset.mdocwith correct frontmatter and root tag - All touched document ids are valid qualified ids
- Changes are described concretely in one sentence each
- Related changes are grouped logically
- All cross-references resolve to existing documents
pnpm compilesucceeds and changeset appears in aggregate changelog