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

sdd-prd

Skill36 starsChanged 6 months agoMITView on GitHub

Core cognitive SDD skill for creating or updating requirements.md from an approved idea, plan, or feature request. Use when the conversation calls for defining WHAT and WHY: user stories, acceptance criteria, EARS functional requirements, NFRs, and boundaries, even without an explicit command. Do not use for technical design or coding.

We split this skill into the rules it gives an agent

42 rules. About 0 are common, 16 are distinctive, and 26 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈16

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 26

    Very specific

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

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

    Create a practical requirements.md artifact for a small or medium project feature.

    line 8
  2. Very specific:

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

    line 19
  3. Very specific:

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

    line 20
  4. Very specific:

    If .ai/strategy/handoff/strategy-brief.md exists, read it as optional upstream context.

    line 22
  5. Very specific:

    If the user names an existing feature, resolve it from actual .ai/sdd/specs/*/ directories and artifact titles.

    line 26
  6. Very specific:

    If exactly one existing feature matches, use its directory and validate its .status against the official status values from …

    line 27
  7. Very specific:

    If an existing feature .status is missing or invalid, stop and ask the user to repair it before updating requirements.

    line 28
  8. Distinctive:

    If multiple existing features may match, list candidates and ask the user to choose.

    line 29
  9. Very specific:

    If creating a new feature, determine the next numeric prefix from the filesystem, not from memory and not from .ai/sdd/INDEX.md.

    line 30
  10. Distinctive:

    Before creating a new spec directory, state the resolved path and continue only when it fits the user's intent.

    line 33
  11. Very specific:

    Create .status with requirements:draft when starting a new requirements artifact.

    line 34
  12. Very specific:

    Read relevant .ai/sdd/ideas/*.md if the feature came from IDEA.

    line 37
  13. Very specific:

    Read .ai/sdd/PLAN.md if it exists.

    line 38
  14. Very specific:

    Read existing requirements.md when updating.

    line 39
  15. Very specific:

    When using the optional strategy handoff, preserve its path in the > Source: header or Business Context and translate strategic claims into …

    line 40
  16. Distinctive:

    Treat clarification as part of PRD, not as a separate public workflow step.

    line 44
  17. Distinctive:

    Ask one question at a time.

    line 45
  18. Distinctive:

    Keep questions focused on WHAT and WHY.

    line 47
  19. Distinctive:

    Avoid database, framework, API, or component-structure questions.

    line 48
  20. Distinctive:

    Prefer guided choice over open-ended questions when the user may not know how to answer technically.

    line 49
  21. Distinctive:

    Ask only questions whose answers materially change scope, UX, security/privacy, data behavior, acceptance criteria, or important NFRs.

    line 56
  22. Very specific:

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

    line 60
  23. Distinctive:

    Write functional requirements using EARS where possible.

    line 62
  24. Very specific:

    Use Questions to capture unresolved requirement uncertainty instead of guessing.

    line 66
  25. Very specific:

    Use Decisions to record answered questions or explicit product choices.

    line 67
  26. Distinctive:

    When a question is answered, update the affected requirements and link the decision back to the source question.

    line 68
  27. Very specific:

    Keep both sections inside requirements.md.

    line 71
  28. Very specific:

    Use Q-001, Q-002, ... for questions.

    line 72
  29. Very specific:

    Use D-001, D-002, ... for decisions.

    line 73
  30. Distinctive:

    Ask for explicit approval or requested changes.

    line 80
  31. Distinctive:

    If changes are requested, revise and present again.

    line 81
  32. Very specific:

    Keep .status as requirements:draft until explicit approval.

    line 85
  33. Very specific:

    Do not mark requirements approved while critical Questions remain open.

    line 86
  34. Very specific:

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

    line 87
  35. Very specific:

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

    line 88
  36. Distinctive:

    Every Must Have requirement must be testable.

    line 98
  37. Very specific:

    Do not create design.md in this skill.

    line 107
  38. Very specific:

    Do not guess or reuse feature IDs from memory.

    line 108
  39. Very specific:

    Do not infer approval from artifact existence.

    line 109
  40. Distinctive:

    Do not write code in this skill.

    line 110
  41. Distinctive:

    Do not proceed without explicit user approval before marking requirements approved.

    line 111
  42. Distinctive:

    If the user asks for a very small change, keep the artifact concise but still preserve the gate.

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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.

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

SDD PRD / Requirements

Create a practical requirements.md artifact for a small or medium project feature.

Purpose

Requirements define the product contract. They explain what the feature must do, who it serves, why it matters, and how the team will know it is done. They must not prescribe implementation details.

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/requirements.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.
    • If .ai/strategy/handoff/strategy-brief.md exists, read it as optional upstream context; use it to seed product requirements, but do not require it or let it bypass requirements approval.
  2. Locate or create the feature spec directory.
    • Use .ai/sdd/specs/NNN-feature-name/.
    • If the user names an existing feature, resolve it from actual .ai/sdd/specs/*/ directories and artifact titles.
    • If exactly one existing feature matches, use its directory and validate its .status against the official status values from sdd-practical.md.
    • If an existing feature .status is missing or invalid, stop and ask the user to repair it before updating requirements.
    • If multiple existing features may match, list candidates and ask the user to choose.
    • If creating a new feature, determine the next numeric prefix from the filesystem, not from memory and not from .ai/sdd/INDEX.md.
    • Numbering algorithm: list directories under .ai/sdd/specs/, extract prefixes matching ^([0-9]+)-, use max + 1, zero-pad to at least 3 digits, and preserve wider existing prefix width if present.
    • Generate a safe short slug from the feature name; ask the user if a safe slug is unclear.
    • Before creating a new spec directory, state the resolved path and continue only when it fits the user's intent.
    • Create .status with requirements:draft when starting a new requirements artifact.
  3. Gather context.
    • Read relevant .ai/sdd/ideas/*.md if the feature came from IDEA.
    • Read .ai/sdd/PLAN.md if it exists.
    • Read existing requirements.md when updating.
    • When using the optional strategy handoff, preserve its path in the > Source: header or Business Context and translate strategic claims into testable requirements only after validation.
    • Inspect nearby project files only enough to understand product context and naming; do not design implementation yet.
  4. Clarify scope with guided decisions.
    • Treat clarification as part of PRD, not as a separate public workflow step.
    • Ask one question at a time.
    • Cover: target users, main flows, edge cases, acceptance criteria, non-functional needs, and out-of-scope boundaries.
    • Keep questions focused on WHAT and WHY.
    • Avoid database, framework, API, or component-structure questions.
    • Prefer guided choice over open-ended questions when the user may not know how to answer technically.
    • For each important ambiguity, provide:
      • a short question;
      • why the answer matters;
      • a recommended option with a brief reason;
      • 2-4 concrete options plus Custom when useful;
      • the practical impact of each option.
    • Ask only questions whose answers materially change scope, UX, security/privacy, data behavior, acceptance criteria, or important NFRs.
    • Limit each pass to 3-5 high-impact questions unless the user asks to go deeper.
  5. Draft requirements.
    • Use the Requirements Template from ../_shared/references/templates.md.
    • Include user stories with acceptance criteria.
    • Write functional requirements using EARS where possible.
    • Classify functional requirements with MoSCoW: Must Have, Should Have, Could Have, Won't Have.
    • Include non-functional requirements only when they matter: usability, performance, accessibility, security, reliability.
    • Include explicit Out of Scope.
    • Use Questions to capture unresolved requirement uncertainty instead of guessing.
    • Use Decisions to record answered questions or explicit product choices.
    • When a question is answered, update the affected requirements and link the decision back to the source question.
  6. Record Questions and Decisions.
    • Keep both sections inside requirements.md.
    • Use Q-001, Q-002, ... for questions.
    • Use D-001, D-002, ... for decisions.
    • A question may be open or answered.
    • A decision should include the decision, reason, source question when applicable, and impacted requirement IDs or sections.
    • Open critical questions block approval but do not block saving a draft.
  7. Review with the user.
    • Present the complete draft.
    • Ask for explicit approval or requested changes.
    • If changes are requested, revise and present again.
  8. Save draft and gate.
    • Save draft requirements to .ai/sdd/specs/NNN-feature-name/requirements.md with > Status: Draft when useful for collaboration.
    • Keep .status as requirements:draft until explicit approval.
    • Do not mark requirements approved while critical Questions remain open.
    • After explicit approval, update the artifact status to approved and set .status to requirements:approved.
    • Update .ai/sdd/INDEX.md with the spec row and current status when practical; if not updated, tell the user the index may be stale.

Output

  • .ai/sdd/specs/NNN-feature-name/requirements.md
  • .ai/sdd/specs/NNN-feature-name/.status
  • Updated .ai/sdd/INDEX.md row when practical

Quality Bar

  • Every Must Have requirement must be testable.
  • Acceptance criteria must describe observable behavior.
  • Out of Scope must prevent likely scope creep.
  • Requirements must not contain implementation decisions.
  • Questions must help non-technical users make product decisions through clear options and impacts.
  • Decisions must be reflected in the affected user stories, requirements, NFRs, or scope boundaries.

Critical Rules

  • Do not create design.md in this skill.
  • Do not guess or reuse feature IDs from memory; always determine the next ID from actual directories under .ai/sdd/specs/.
  • Do not infer approval from artifact existence; require valid .status for existing specs.
  • Do not write code in this skill.
  • Do not proceed without explicit user approval before marking requirements approved.
  • Draft requirements may be saved, but they do not authorize design as an approved gate.
  • If the user asks for a very small change, keep the artifact concise but still preserve the gate.

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.