Skip to content

fix(commands): rename NFR references to success criteria in analyze and clarify#1935

Merged
mnriem merged 2 commits intogithub:mainfrom
ismaelJimenez:fix/nfr-to-success-criteria
Mar 24, 2026
Merged

fix(commands): rename NFR references to success criteria in analyze and clarify#1935
mnriem merged 2 commits intogithub:mainfrom
ismaelJimenez:fix/nfr-to-success-criteria

Conversation

@ismaelJimenez
Copy link
Contributor

Description

Replaces "Non-Functional Requirements" terminology with "Success Criteria" in the analyze and clarify command templates to fix a mismatch with the spec template.

The problem:

The analyze command instructs the agent to load a "Non-Functional Requirements" section from specs — but that section is not part of the spec template. The specify command generates specs using spec-template.md, which defines a "Success Criteria" section (with "Measurable Outcomes" underneath), not a "Non-Functional Requirements" section. This means analyze was 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 clarify command, 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 (specifyanalyze), these labels never align.

What this PR does:

  • analyze.md: Points spec-loading at "Success Criteria" instead of the nonexistent "Non-Functional Requirements" section. Refines the requirements inventory to include only Success Criteria items that require buildable work (e.g., load-testing infrastructure, security audit tooling), explicitly excluding post-launch outcome metrics and business KPIs that aren't actionable as tasks.
  • clarify.md: Updates the clarification routing rule to direct non-functional constraints to "Success Criteria > Measurable Outcomes" — matching the actual section name in the spec template.

Testing

  • Tested locally with uv run specify --help
  • Ran existing tests with uv sync --extra test && uv run pytest (435 passed)
  • Tested with a sample project

AI Disclosure

  • I did not use AI assistance for this contribution

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 into Success Criteria > Measurable Outcomes to match spec-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.

Copy link
Collaborator

@mnriem mnriem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address Copilot feedback

@ismaelJimenez ismaelJimenez force-pushed the fix/nfr-to-success-criteria branch from 3a11311 to d5d2cff Compare March 23, 2026 15:06
…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
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@mnriem mnriem requested a review from Copilot March 24, 2026 16:36
@mnriem mnriem merged commit 816c116 into github:main Mar 24, 2026
17 of 18 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

jonasbokim added a commit to Jonas-Construction-Software/jonas-spec-kit-dev that referenced this pull request Mar 26, 2026
…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)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants