Skip to content

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

Open
ismaelJimenez wants to merge 1 commit intogithub:mainfrom
ismaelJimenez:fix/nfr-to-success-criteria
Open

fix(commands): rename NFR references to success criteria in analyze and clarify#1935
ismaelJimenez wants to merge 1 commit 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

@ismaelJimenez ismaelJimenez requested a review from mnriem as a code owner March 22, 2026 22:03
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.

1 participant