plan-authoring
Skill98 starsChanged 24 days agoMITView on GitHub
Reference material for writing implementation plans (technical context, architecture decisions, data models, API contracts, project-instructions alignment). Loaded on demand by `plan-feature`; not directly invokable.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- design-and-deliver/claude-code-autoconfigtheir own version, first seen Sep 14, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- design-and-deliver/claude-code-autoconfig★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository73 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- sddp-amendSkill
- sddp-analyzeSkill
- sddp-autopilotSkill
- sddp-checklistSkill
- sddp-clarifySkill
- sddp-devopsSkill
- sddp-devsetupSkill
- sddp-implement-qc-loopSkill
- sddp-implementSkill
- sddp-initSkill
- sddp-planSkill
- sddp-prdSkill
- sddp-projectplanSkill
- sddp-qcSkill
- sddp-regenSkill
- sddp-reverseengineerSkill
- sddp-specifySkill
- sddp-systemdesignSkill
- sddp-tasksSkill
- sddp-amendSkill
- sddp-analyzeSkill
- sddp-autopilotSkill
- sddp-checklistSkill
- sddp-clarifySkill
- sddp-devopsSkill
- sddp-devsetupSkill
- sddp-implement-qc-loopSkill
- sddp-implementSkill
- sddp-initSkill
- sddp-planSkill
- sddp-prdSkill
- sddp-projectplanSkill
- sddp-qcSkill
- sddp-regenSkill
- sddp-reverseengineerSkill
- sddp-specifySkill
- sddp-systemdesignSkill
- sddp-tasksSkill
- adr-authoringSkill
- artifact-conventionsSkill
- clarification-strategiesSkill
- compact-communicationSkill
- evidence-led-authoringSkill
- implementation-standardsSkill
- instructions-managementSkill
- markdown-compressionSkill
- quality-assuranceSkill
- sdd-methodologySkill
- sddp-amendSkill
- sddp-analyzeSkill
- sddp-autopilotSkill
- sddp-checklistSkill
- sddp-clarifySkill
- sddp-devopsSkill
- sddp-devsetupSkill
- sddp-implement-qc-loopSkill
- sddp-implementSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 9 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Every plan.md section MUST use tables, key-value pairs, or tagged lists as primary format.
- Very specific: line 70
If violations exist that must be justified, add a "## Complexity Tracking" section to plan.md with a table: | Violation | Why Needed | …
- Distinctive: line 81
Default to Container view.
- Distinctive: line 85
Do NOT remove Instructions Check, Technical Context, or Requirement Coverage Map sections
- Distinctive: line 86
Do NOT change Architecture Decision IDs (AD-###) — they may be referenced by tasks
- Distinctive: line 125
Consider: language/version, framework, dependency manager, existing tool configs.
- Distinctive: line 126
Prefer: widely adopted, actively maintained, single-command install.
- Distinctive: line 142
Do NOT include test bodies that pin specific implementation details — stubs are acceptance targets (behavior-level), not unit-test mandates.
- Very specific: line 144
Do NOT remove the ## Acceptance Test Stubs section once present — it is consumed by /sddp-tasks (emits a stub-creation task per row) and …
- Distinctive: line 166
Every row: question asked, options evaluated, choice made, rationale.
- Very specific: line 168
Do NOT duplicate decisions already captured in the Technical Context Document or standalone ADRs under specs/adrs/ — reference them instead …
- Very specific: line 170
When referencing a global ADR from a feature plan, cite the canonical ADR ID (e.g., ADR-0001) in the rationale column — do not copy the …
- Very specific: line 215
When Project Mode = brownfield or mixed:
- Distinctive: line 224
Delete unused options from the template.
- Distinctive: line 228
Use the template at assets/plan-template.md.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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
Plan Authoring Guide
Agent-First Format Rule
Every plan.md section MUST use tables, key-value pairs, or tagged lists as primary format. Prose is limited to the Summary section (max 3 key-value lines). The primary consumer is an AI agent — optimize for parseability over readability.
Plan Writing Process
Phase 0: Research
HAS_TECH_CONTEXT_DOC = true→ read as baseline; pre-fill Technical Context values, require only confirmation.- Extract unknowns (anything marked NEEDS CLARIFICATION) → research task per unknown.
- Consolidate in
research.mdusing structured format below. Merge by topic, rewrite full file. - Budget: ≤4KB. Existing >3KB → consolidate before adding.
research.md Format
Prohibited: code blocks, implementation snippets, comparison tables, narrative paragraphs, duplicate summary sections.
Per-topic: 4 structured fields, max 2 sources. Global budget: ≤4KB.
Consolidation: merge overlapping topics, normalize names, remove stale details.
Structure:
# Research: [Feature Name]
> Feature | Date | Purpose
## [Topic N]
- **Decision**: [what was chosen]
- **Rationale**: [why — max 1 sentence]
- **Rejected**: [alternatives and why — max 1 sentence]
- **Pitfalls**: [anti-patterns to avoid — max 1 sentence]
- **Sources**: [URL1], [URL2]
## Summary
| Topic | Decision | Rationale |
|-------|----------|-----------|
## Sources Index
| URL | Topic | Fetched |
|-----|-------|---------|Phase 1: Design & Contracts
Prerequisites: research.md complete
Items 1–2 are conditional — auto-detect signals from spec; fall back to interactive prompt when ambiguous.
- Data Model →
data-model.md(conditional):- Generate when: non-empty "Key Entities", terms
database/storage/persist/CRUD/entity/etc., orStorage≠N/A - Skip → replace Data Model Summary table with
N/A — no persistent data - Include: entity names, fields, relationships, validation rules, state transitions
- Populate
## Data Model Summarytable inplan.mdwith entity overview
- Generate when: non-empty "Key Entities", terms
- API Contracts →
contracts/(conditional):- Generate when: terms
API/endpoint/route/REST/GraphQL/HTTP/webhook/etc., orProject Type=web/mobile - Skip → replace API Surface Summary table with
N/A — no API surface - Map user actions → endpoints; use REST/GraphQL patterns; output OpenAPI/GraphQL schemas
- Populate
## API Surface Summarytable inplan.mdwith endpoint overview
- Generate when: terms
Instructions Check
- Read
project-instructions.md - Validate every plan decision against project instructions principles
- If violations exist that must be justified, add a "## Complexity Tracking" section to
plan.mdwith a table:| Violation | Why Needed | Simpler Alternative Rejected Because |. If no violations exist, omit the section entirely. - GATE: Must pass before research. Re-check after design.
- Auditor outputs are transient gate checks; report status/decisions in
plan.mdwithout pasting full Auditor reports.
Artifact Conventions
Runtime rules: AGENTS.md §Artifact Conventions. Consult the expanded reference only for exceptions or remediation details not covered by the primer.
plan.md≤ 10KB — Architecture: target 8-12 nodes, hard cap 15- Conditional sections: populate table OR replace with
N/A — [reason]. Never leave template placeholders. - Mermaid: C4 syntax, Container/Component views,
<br>for breaks (never\n) - Default to Container view; use Component view only if internals matter
- C4 labels: names 1-3 words; short type fields; descriptions optional, max 4 words
- Relationship labels: short verbs only; omit obvious labels
- Exclude helpers and commodity infrastructure from the main view
- Do NOT remove Instructions Check, Technical Context, or Requirement Coverage Map sections
- Do NOT change Architecture Decision IDs (AD-###) — they may be referenced by tasks
[NEEDS CLARIFICATION]→ resolve only with user-approved answers- Preserve all cross-referenced IDs (AD-###, HINT-###)
Technical Context Fields
The plan template captures these metadata fields:
| Field | Example | Notes |
| Language/Version | Python 3.11 | Or "NEEDS CLARIFICATION" |
| Primary Dependencies | FastAPI | Frameworks, libraries |
| Storage | PostgreSQL | Or "N/A" if no persistence |
| Testing | pytest | Test framework |
| Target Platform | Linux server | Or iOS 15+, WASM, etc. |
| Project Type | single/web/mobile | Determines source structure |
| Project Mode | greenfield/brownfield/mixed | Determines structure approach |
| Performance Goals | 1000 req/s | Domain-specific |
| Constraints | <200ms p95 | Domain-specific |
| Scale/Scope | 10k users | Domain-specific |
These same fields should also appear in the project-level Technical Context Document when one is maintained.
Testing Strategy Configuration
Populate ## Testing Strategy table in plan.md. Each row maps a testing tier to its tool, scope, mock boundary, and install command.
Tiers to cover
| Tier | Purpose |
| Unit | Isolated logic tests |
| Integration | Cross-component / API tests |
| Security | Vulnerability scanning (code + dependencies) |
| Coverage | Code coverage measurement |
Rules
- Delegate to Technical Researcher during planning Step 4.5 for detected tech stack.
- Consider: language/version, framework, dependency manager, existing tool configs.
- Prefer: widely adopted, actively maintained, single-command install.
- Existing config → Install column =
configured. - N/A tier → include row with rationale in Scope column (e.g.,
N/A — no external dependencies). - Include ready-to-run install commands for tools not yet present.
Acceptance Test Stubs
Populate ## Acceptance Test Stubs in plan.md when at least one P1 requirement exists. This gives every P1 requirement a runnable RED→GREEN acceptance target so the Developer gets a per-requirement pass/fail signal during /sddp-implement instead of relying on lint/compilation alone. Replace the section body with N/A — no P1 requirements when the spec has no P1 work items.
Rules
- One row per P1 requirement (
FR-###/TR-###/OR-###/RR-###). P2/P3 requirements are not stubbed (the size budget and the issue scope are P1-only). Req IDMUST match a requirement fromspec.mdthat is tagged P1.Test Filefollows the project's Testing Strategy Unit tier convention — co-located with the implementation file (e.g.src/foo.test.ts) or in a siblingtests/directory (e.g.tests/test_foo.py). Choose one convention per project and keep it consistent across rows.Stub Blocks (framework-native)uses the syntax of the Unit tier tool from## Testing Strategy(e.g.describe('FR-001 user registration') / it('rejects duplicate emails')for Jest/Vitest,func TestFR001_RejectsDuplicateEmails(t *testing.T)for Go,def test_FR001_rejects_duplicate_emails():for pytest). Each block name embeds the reqID so the Developer and the Story Verifier can trace failures back to a requirement.RED Statusrecords how the stub fails before any implementation exists:pending(skip/todo marker),failing-assertion(an assertion that cannot pass until the requirement is implemented), orskip(framework skip marker). Pick the idiomatic one for the Unit tier tool.- Do NOT include test bodies that pin specific implementation details — stubs are acceptance targets (behavior-level), not unit-test mandates. The Developer fills in assertions as part of implementation; the stub only fixes the names and the failing state.
- Source the requirement set from the same P1 work items that will be tagged
🎯 MVPintasks.md; the Requirement Coverage MapFile Path(s)column informs theTest Filepath for each row. - Do NOT remove the
## Acceptance Test Stubssection once present — it is consumed by/sddp-tasks(emits a stub-creation task per row) and/sddp-implement(parses it intoSTUB_MAPto feed the Developer). reqID links are stable and subject to the cross-referenced ID preservation rules.
Error Handling Strategy
Populate ## Error Handling Strategy table when the feature has API endpoints, external service calls, or user-facing error states. Skip (replace with N/A) for pure libraries, CLI tools with simple exit codes, or infrastructure-only features.
Columns
| Column | Content |
| Error Category | Domain grouping (Validation, Auth, Downstream, Internal) |
| Pattern | Strategy (fail-fast, circuit breaker, retry, fallback) |
| Response | What the caller sees (status code + body shape, log level, alert) |
| Retry | yes/no + policy (exponential, fixed, none) |
Architecture Decisions
Populate ## Architecture Decisions table during Phase 0 (Research) and Phase 1 (Design). One row per non-trivial feature-local technical choice.
Rules
- ID format:
AD-###(sequential, zero-padded 3 digits). - Every row: question asked, options evaluated, choice made, rationale.
- Tasks may reference decisions via
{AD-###}tag (optional, not required). - Do NOT duplicate decisions already captured in the Technical Context Document or standalone ADRs under
specs/adrs/— reference them instead (e.g., "See ADR-0001"). - AD-### rows are for feature-local tradeoffs only. Decisions with project-wide architectural impact must become standalone ADRs created through the ADR Author subagent (
.github/agents/_adr-author.md), not AD rows. - When referencing a global ADR from a feature plan, cite the canonical ADR ID (e.g.,
ADR-0001) in the rationale column — do not copy the decision into an AD row.
Requirement Coverage Map
Populate ## Requirement Coverage Map table after design. Every FR-###, TR-###, OR-###, and RR-### from spec.md must have a row.
Rules
- Map each requirement to the component(s), file path(s), and the exported function(s)/symbol(s) with key signature hints that will implement it. Example:
UserModel(id,email,role),Checkout.run(),validateJwt(token). - Source the
Function(s)/Symbol(s)column fromdata-model.mdentities,contracts/schemas, architecture decisions, or named API/service surfaces when no design artifact exists. Avoid generic placeholders like "TBD" — if a symbol cannot be named yet, the design is incomplete; resolve before writing the row. - The full row —
Req ID → Component(s) → File Path(s) → Function(s)/Symbol(s)— is the traceability matrix. It is the primary input for/sddp-tasks(task generation derives→ exports:annotations from the symbol column) and for the Developer's per-task self-verification during/sddp-implement. - Missing requirement, empty
File Path(s), or emptyFunction(s)/Symbol(s)→ flag as gap during Plan Readiness Check. - The Story Verifier at QC reads this matrix as its starting traceability map but re-verifies authoritatively against the implemented code; the matrix is a hint, not a substitute for QC.
- The Plan gate reads these columns by header name. Existing four-column maps using
Requirement,File Path(s),Function(s)/Symbol(s), andDecisionremain supported.
Risk Mitigation
Populate ## Risk Mitigation table by mapping each risk from spec.md Assumptions & Risks to a concrete technical mitigation.
Rules
- One row per risk from spec. Preserve spec wording in Risk column.
- Mitigation = specific technical action (not "monitor" or "be careful").
- Owner = component or team responsible for the mitigation.
Implementation Hints
Populate ## Implementation Hints with max 5 tagged items. Each captures a non-obvious constraint, gotcha, or order-sensitive operation that the implementing agent needs.
Format
- **[HINT-###]** Category: detail
Categories: Order, Gotcha, Constraint, Compatibility, Performance.
Project Structure Options
By Project Type (greenfield)
- Single project (default):
src/,tests/at root - Web application (frontend + backend detected):
backend/,frontend/ - Mobile + API (iOS/Android detected):
api/,ios/orandroid/
Brownfield / Mixed Mode
When Project Mode = brownfield or mixed:
- Scan existing project layout — do NOT impose a template structure.
- Show only new/modified paths: prefix
+(new file) or~(modified file). - Include Brownfield Notes block in template:
- Patterns to reuse: existing patterns relevant to this feature
- Tests to extend: existing test files/suites to add cases to
- Naming conventions: observed conventions to follow
- Omit generic project initialization tasks.
Delete unused options from the template. The delivered plan must not include "Option" labels.
Template
Use the template at assets/plan-template.md.
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.

