fix(commands): rename NFR references to success criteria in analyze and clarify#1935
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the analyze and clarify command templates so they reference the spec template’s Success Criteria / Measurable Outcomes section instead of inconsistent “Non-Functional Requirements” terminology, improving alignment across the spec → analyze workflow.
Changes:
analyze.md: Switches spec-loading guidance from “Non-Functional Requirements” to “Success Criteria” and refines how Success Criteria are considered for coverage.clarify.md: Routes non-functional constraints intoSuccess Criteria > Measurable Outcomesto matchspec-template.md.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| templates/commands/clarify.md | Updates clarification integration guidance to place non-functional constraints under Success Criteria → Measurable Outcomes. |
| templates/commands/analyze.md | Updates analyzed spec sections and coverage-gap language to use Success Criteria instead of Non-Functional Requirements. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
mnriem
left a comment
There was a problem hiding this comment.
Please address Copilot feedback
3a11311 to
d5d2cff
Compare
…ith spec template - Reword "non-functional targets" to "measurable outcomes" to match the spec template's broader scope (performance, user success, business impact) - Use explicit FR-/SC- identifiers as primary stable keys in the requirements inventory instead of derived slugs alone
d5d2cff to
5258cd4
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nc-main-2026-03-25 * upstream/main: (90 commits) fix(ps1): replace null-conditional operator for PowerShell 5.1 compatibility (github#1975) chore: bump version to 0.4.2 (github#1973) feat: Auto-register ai-skills for extensions whenever applicable (github#1840) docs: add manual testing guide for slash command validation (github#1955) Add AIDE, Extensify, and Presetify to community extensions (github#1961) docs: add community presets section to main README (github#1960) docs: move community extensions table to main README for discoverability (github#1959) docs(readme): consolidate Community Friends sections and fix ToC anchors (github#1958) fix(commands): rename NFR references to success criteria in analyze and clarify (github#1935) Add Community Friends section to README (github#1956) docs: add Community Friends section with Spec Kit Assistant VS Code extension (github#1944) chore: bump version to 0.4.1 (github#1953) Add checkpoint extension (github#1947) fix(scripts): prioritize .specify over git for repo root detection (github#1933) docs: add AIDE extension demo to community projects (github#1943) fix(templates): add missing Assumptions section to spec template (github#1939) chore: bump version to 0.4.0 (github#1937) fix(cli): add allow_unicode=True and encoding="utf-8" to YAML I/O (github#1936) fix(codex): native skills fallback refresh + legacy prompt suppression (github#1930) feat(cli): embed core pack in wheel for offline/air-gapped deployment (github#1803) ...
Description
Replaces "Non-Functional Requirements" terminology with "Success Criteria" in the
analyzeandclarifycommand templates to fix a mismatch with the spec template.The problem:
The
analyzecommand instructs the agent to load a "Non-Functional Requirements" section from specs — but that section is not part of the spec template. Thespecifycommand generates specs usingspec-template.md, which defines a "Success Criteria" section (with "Measurable Outcomes" underneath), not a "Non-Functional Requirements" section. This meansanalyzewas looking for a section name that doesn't match what the spec actually contains, forcing the agent to infer mappings or miss the Success Criteria content when assessing coverage gaps.The only way NFR-like content could appear in a spec was through the
clarifycommand, which uses its own label ("Non-Functional Quality Attributes") that doesn't match the spec template's actual section name either. This meant non-functional content could end up scattered — partially under "Success Criteria > Measurable Outcomes" and partially under a clarify-only "Non-Functional / Quality Attributes" heading — and only when a user's clarification response happened to surface a non-functional constraint. In the typical workflow (specify→analyze), these labels never align.What this PR does:
Testing
uv run specify --helpuv sync --extra test && uv run pytest(435 passed)AI Disclosure