agentleFS
felipefontourafelipefontoura/pi-sdd-kit/skills/sdd-spec/SKILL.md

sdd-spec

Skill36 starsChanged 6 months agoMITView on GitHub

Core cognitive SDD skill for creating design.md technical specifications from approved requirements. Use when the conversation calls for HOW decisions: architecture, components, data/state, APIs, flows, edge cases, technical decisions, risks, and implementation FAQ, even without an explicit command. Do not use for requirements creation, task breakdown, or coding.

We split this skill into the rules it gives an agent

19 rules. 0 are common, 7 are distinctive, and 12 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read ../_shared/references/templates.md when drafting the artifact.

    line 19
  2. Very specific:

    Use package-level templates/design.md as the user-facing template when available.

    line 20
  3. Very specific:

    If .status is missing or invalid, stop and ask the user to repair it.

    line 27
  4. Very specific:

    If blocked, report the current status and recommend /skill:sdd-prd approval as the next safe action.

    line 29
  5. Distinctive:

    Prefer existing patterns over new abstractions.

    line 34
  6. Distinctive:

    Ask one question at a time when decisions require user input.

    line 38
  7. Very specific:

    Use the Design Template from ../_shared/references/templates.md.

    line 43
  8. Very specific:

    Add or update decisions.md only when a decision should survive beyond this feature or has significant trade-offs.

    line 51
  9. Distinctive:

    Ask for explicit approval or requested changes.

    line 55
  10. Very specific:

    Keep .status as design:draft until explicit approval.

    line 62
  11. Very specific:

    After explicit approval, update the artifact status header to approved and set .status to design:approved.

    line 63
  12. Very specific:

    Update .ai/sdd/INDEX.md with the current status when practical.

    line 64
  13. Distinctive:

    Every Must Have requirement maps to a technical approach in the Requirements Mapping table.

    line 74
  14. Distinctive:

    Do not over-design: avoid new layers, services, or abstractions unless justified.

    line 78
  15. Very specific:

    Do not create tasks.md in this skill.

    line 82
  16. Distinctive:

    Do not write implementation code in this skill.

    line 83
  17. Very specific:

    Do not silently change requirements.

    line 84
  18. Distinctive:

    Do not mark design approved without explicit user approval.

    line 85
  19. Very specific:

    Do not infer requirements approval from file existence.

    line 87

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SDD Spec / Design

Translate approved requirements into a practical technical design.

Purpose

Design defines how the approved requirements will be implemented. It should be detailed enough for an implementer to work without guessing, but lightweight enough for small and medium projects.

Workflow

  1. Load the SDD reference.
    • Read ../_shared/references/sdd-practical.md.
    • Apply the Language Policy: respond and write artifacts in the user's initial chat language while keeping skill instructions and templates in EN-US.
    • Read ../_shared/references/templates.md when drafting the artifact.
    • Use package-level templates/design.md as the user-facing template when available.
    • Load relevant .ai/steering/*.md files when present, especially product.md, tech-stack.md, conventions.md, and principles.md.
  2. Locate the feature and validate the gate.
    • Use .ai/sdd/specs/NNN-feature-name/.
    • Read .status.
    • Validate .status against the official status values from sdd-practical.md.
    • If .status is missing or invalid, stop and ask the user to repair it; do not infer approval from requirements.md existing.
    • Block if status is not requirements:approved, unless the user explicitly asks for a non-binding draft spike.
    • If blocked, report the current status and recommend /skill:sdd-prd approval as the next safe action.
    • Read requirements.md completely.
  3. Explore project context.
    • Inspect existing code, conventions, routing, components, services, tests, and build tooling relevant to the feature.
    • Prefer existing patterns over new abstractions.
    • Identify likely files and integration points, but do not generate tasks yet.
  4. Clarify technical choices.
    • Ask one question at a time when decisions require user input.
    • Present 2-3 approaches for meaningful trade-offs.
    • Cover component/module boundaries, state/data ownership, API/integration boundaries, testing approach, and operational risks where relevant.
  5. Draft design.
    • Use the Design Template from ../_shared/references/templates.md.
    • Scale detail to project size:
      • small frontend feature: component structure, data/state, user flows, edge cases, decisions, tests
      • medium project: include API, persistence, auth, concurrency, observability, migration, or deployment only when relevant
    • Include a Requirements Mapping table linking each Must Have requirement to design sections or decisions.
    • Include technical decisions with trade-offs and alternatives.
    • Include rich technical sections when relevant: data model, API/integration contract, security/permissions/privacy, accessibility, observability, migration/rollout, and verification strategy.
    • Include an Implementation FAQ for ambiguity-prone points.
    • Add or update decisions.md only when a decision should survive beyond this feature or has significant trade-offs.
  6. Review with the user.
    • Present the complete draft.
    • Ask for explicit approval or requested changes.
    • Revise until approved.
  7. Save draft and gate.
    • Save draft design to .ai/sdd/specs/NNN-feature-name/design.md with > Status: Draft when useful for collaboration.
    • Set .status to design:draft only after a binding design draft is created from requirements:approved.
    • For non-binding draft spikes, do not advance .status; clearly label the draft as non-binding.
    • Keep .status as design:draft until explicit approval.
    • After explicit approval, update the artifact status header to approved and set .status to design:approved.
    • Update .ai/sdd/INDEX.md with the current status when practical; if not updated, tell the user the index may be stale.

Output

  • .ai/sdd/specs/NNN-feature-name/design.md
  • Optional .ai/sdd/specs/NNN-feature-name/decisions.md
  • Updated .status

Quality Bar

  • Every Must Have requirement maps to a technical approach in the Requirements Mapping table.
  • Design must prefer existing project patterns.
  • Technical decisions must name trade-offs.
  • Edge cases from requirements must have expected behavior.
  • Do not over-design: avoid new layers, services, or abstractions unless justified.

Critical Rules

  • Do not create tasks.md in this skill.
  • Do not write implementation code in this skill.
  • Do not silently change requirements; if the design reveals a requirements problem, stop and ask whether to update requirements.md.
  • Do not mark design approved without explicit user approval.
  • Draft designs may be saved, but they do not authorize task execution or implementation.
  • Do not infer requirements approval from file existence; require valid .status.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.