delta-spec
AGENTS.md4 starsChanged 9 months agoMITView on GitHub
This project uses delta-spec for specification-driven development. When the conversation shifts from discussion to implementation—phrases like: - "let's add that" - "make that change" - "can you implement..." - "go ahead and..." - "update the code to..." STOP. Before using Edit or Write on any project file, run /ds:new <name> first. Use this to orient before exploring. Reduces redundant file discovery.
We split this AGENTS.md into the rules it gives an agent
24 rules. About 0 are common, 11 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
When the conversation shifts from discussion to implementation—phrases like:
- Very specific: line 14
STOP: Before using Edit or Write on any project file, run /ds:new <name> first.
- Very specific: line 29
Run /ds:status to check for active changes
- Distinctive: line 50
Use this to orient before exploring.
- Distinctive: line 102
Delta changes: - Don't edit main specs directly, use delta format
- Very specific: line 104
Persistent tasks: - Use tasks.md files, not Claude Code's native TaskCreate
- Distinctive: line 106
Keep README in sync: - After any changes to skills, workflow, or features, update README.md to match
- Very specific: line 107
Keep codebase map current: - After /ds:archive, update the Codebase Map above if files were added, removed, or moved.
- Very specific: line 111
Create specs by domain (e.g., auth.md, payments.md, api.md).
- Distinctive: line 127
All commits MUST follow Conventional Commits:
- Very specific: line 153
Add ! after type/scope:
- Very specific: line 160
Always update this section: when discovering workflow insights, gotchas, or best practices while using delta-spec.
- Very specific: line 171
When planning multiple related changes, use /ds:batch:
- Very specific: line 172
Run /ds:batch and describe all features in free-form prose
- Very specific: line 175
Run /ds:tasks to generate tasks (processes in dependency order)
- Very specific: line 181
When /ds:tasks is run without a name and multiple planned changes exist:
- Very specific: line 188
When improving delta-spec itself, always use delta-spec to track the changes.
- Distinctive: line 194
If a workflow feels awkward while dogfooding, that's a signal to improve it.
- Distinctive: line 197
After making changes, check if README.md needs updates.
- Very specific: line 198
Skills table: - Must match available /ds:* skills
- Distinctive: line 199
Workflow diagram: - Must reflect current skill flow
- Distinctive: line 200
Project Structure: - Must match actual directory layout
- Distinctive: line 201
Installation: - Must reflect current setup process
- Distinctive: line 204
When in doubt, read README.md and compare against the change you just made.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Delta-Spec
This project uses delta-spec for specification-driven development.
REQUIRED: Use delta-spec for all changes
When the conversation shifts from discussion to implementation—phrases like:
- "let's add that"
- "make that change"
- "can you implement..."
- "go ahead and..."
- "update the code to..."
STOP. Before using Edit or Write on any project file, run /ds:new <name> first.
Exceptions (direct edits OK)
- Fixing typos or formatting
- Changes already tracked by an active delta-spec change
- CLAUDE.md or README.md updates
Workflow
/ds:new <name>- Create proposal/ds:plan- Explore codebase, create design + delta specs/ds:tasks- Generate implementation tasks- Implement the changes
/ds:archive- Merge specs when complete
Before Starting Any Work
- Run
/ds:statusto check for active changes - Review existing proposals in
specs/.delta/to avoid conflicts
Skills
| Skill | Description |
/ds:init | Initialize delta-spec (optionally generate specs from existing code) |
/ds:new <name> | Start a new change (creates + works on proposal) |
/ds:plan [name] | Create design + delta specs (explores codebase) |
/ds:tasks [name] | Create implementation tasks |
/ds:archive [name] | Merge delta specs and archive |
/ds:drop [name] | Abandon a change (deletes, cleans up dependencies) |
/ds:spec [domain] | View and discuss specifications |
/ds:status | See active changes |
/ds:quick [name] | Quick start: proposal → plan → tasks with one confirmation |
/ds:batch | Create multiple proposals from free-form feature descriptions |
/ds:adopt [name] | Adopt an existing plan from conversation into delta-spec |
Codebase Map
Use this to orient before exploring. Reduces redundant file discovery.
delta-spec/
├── .claude-plugin/
│ ├── plugin.json # Plugin name, version (0.2.0)
│ └── marketplace.json # Marketplace listing config
├── skills/
│ ├── _shared/
│ │ ├── version-check.md # Shared version check procedure
│ │ ├── cycle-detection.md # Shared cycle detection algorithm
│ │ ├── spec-format.md # Shared base spec format + guidelines
│ │ ├── delta-format.md # Shared delta spec format
│ │ ├── determine-change.md # Shared change resolution procedure
│ │ ├── proposal-template.md # Shared proposal template
│ │ ├── design-template.md # Shared design document template
│ │ ├── task-format.md # Shared task file format
│ │ └── dependency-signals.md # Shared dependency keyword patterns
│ ├── init/SKILL.md # /ds:init
│ ├── new/SKILL.md # /ds:new <name>
│ ├── plan/SKILL.md # /ds:plan [name]
│ ├── tasks/SKILL.md # /ds:tasks [name]
│ ├── archive/SKILL.md # /ds:archive [name]
│ ├── drop/SKILL.md # /ds:drop [name]
│ ├── spec/SKILL.md # /ds:spec [domain|search]
│ ├── status/SKILL.md # /ds:status
│ ├── quick/SKILL.md # /ds:quick [name]
│ ├── adopt/SKILL.md # /ds:adopt [name]
│ └── batch/
│ ├── SKILL.md # /ds:batch
│ ├── references/
│ │ └── consolidation.md # Consolidation algorithm detail
│ └── examples/
│ └── batch-session.md # Example batch sessions
├── specs/
│ ├── .delta-spec.json # Version tracking (0.1.0)
│ ├── skills.md # Skill requirements (main spec)
│ ├── workflow.md # Change lifecycle spec
│ ├── spec-format.md # Spec format definition
│ ├── validation.md # Validation rules spec
│ └── .delta/
│ └── archive/ # Completed changes (proposal + design + tasks)
├── scripts/
│ └── validate-specs.sh # Spec format validation
├── CLAUDE.md → AGENTS.md # Symlink
├── README.md # User-facing documentation
└── CHANGELOG.md # Release historyConventions
- Specs are the source of truth - Code should match specs
- Delta changes - Don't edit main specs directly, use delta format
- Codebase-aware planning -
/ds:planexplores actual code to fit approach - Persistent tasks - Use
tasks.mdfiles, not Claude Code's native TaskCreate - Archive preserves context - Completed changes kept in
specs/.delta/archive/ - Keep README in sync - After any changes to skills, workflow, or features, update README.md to match
- Keep codebase map current - After
/ds:archive, update the Codebase Map above if files were added, removed, or moved. Skip for content-only changes.
Spec Domains
Create specs by domain (e.g., auth.md, payments.md, api.md). Each spec file covers one bounded context.
Version Handling
The .delta-spec.json file tracks the version used to initialize specs:
{
"version": "0.0.1",
"initialized": "2026-02-02"
}Skills check this version against the current plugin version (in .claude-plugin/plugin.json). On mismatch, warn the user and offer migration options.
Conventional Commits
All commits MUST follow Conventional Commits:
<type>(<scope>): <description>Types
| Type | Description |
feat | New feature |
fix | Bug fix |
docs | Documentation only |
refactor | Code change that neither fixes a bug nor adds a feature |
chore | Maintenance tasks, dependencies |
Scopes
| Scope | Description |
skill | Changes to skills/ |
spec | Changes to spec format or examples |
plugin | Changes to plugin manifest |
Breaking Changes
Add ! after type/scope:
feat(spec)!: change requirement header formatLearnings
Always update this section when discovering workflow insights, gotchas, or best practices while using delta-spec.
Planning vs Implementation Dependencies
Dependencies declared in proposals are informational during planning but enforced during implementation:
/ds:plan- Notes dependencies, proceeds without blocking (planning is safe)/ds:tasks- Warns about unsatisfied dependencies (implementation order matters)/ds:archive- Warns about unsatisfied dependencies (merge order matters)
This allows batch planning of multiple dependent changes in sequence.
Batch Workflow Pattern
When planning multiple related changes, use /ds:batch:
- Run
/ds:batchand describe all features in free-form prose - Review the inferred dependency graph and confirm
- Optionally run
/ds:planfor all when prompted - Run
/ds:tasksto generate tasks (processes in dependency order) - Implement and archive in dependency order
Alternative (manual): /ds:new for each → /ds:plan for each → /ds:tasks
Task Ordering for Multiple Changes
When /ds:tasks is run without a name and multiple planned changes exist:
- Independent changes (no dependencies) are processed first
- Dependent changes follow in topological order
- Tasks are numbered sequentially across all changes
- Changes with only proposals (not yet planned) are skipped
Dogfooding
When improving delta-spec itself, always use delta-spec to track the changes. This:
- Validates the workflow works as intended
- Catches friction points and UX issues
- Ensures specs stay up to date with the codebase
- Demonstrates the value of spec-driven development
If a workflow feels awkward while dogfooding, that's a signal to improve it.
README Synchronization
After making changes, check if README.md needs updates. Key sections to verify:
- Skills table - Must match available
/ds:*skills - Workflow diagram - Must reflect current skill flow
- Project Structure - Must match actual directory layout
- Installation - Must reflect current setup process
- How It Works - Examples should use current syntax
When in doubt, read README.md and compare against the change you just made.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

