Skip to content

Commit 816c116

Browse files
fix(commands): rename NFR references to success criteria in analyze and clarify (#1935)
* fix(commands): rename NFR references to success criteria in analyze and clarify * fix(analyze): align Success Criteria description and inventory keys with 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
1 parent bc766c3 commit 816c116

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

templates/commands/analyze.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Load only the minimal necessary context from each artifact:
4444

4545
- Overview/Context
4646
- Functional Requirements
47-
- Non-Functional Requirements
47+
- Success Criteria (measurable outcomes — e.g., performance, security, availability, user success, business impact)
4848
- User Stories
4949
- Edge Cases (if present)
5050

@@ -71,7 +71,7 @@ Load only the minimal necessary context from each artifact:
7171

7272
Create internal representations (do not include raw artifacts in output):
7373

74-
- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" → `user-can-upload-file`)
74+
- **Requirements inventory**: For each Functional Requirement (FR-###) and Success Criterion (SC-###), record a stable key. Use the explicit FR-/SC- identifier as the primary key when present, and optionally also derive an imperative-phrase slug for readability (e.g., "User can upload file" → `user-can-upload-file`). Include only Success Criteria items that require buildable work (e.g., load-testing infrastructure, security audit tooling), and exclude post-launch outcome metrics and business KPIs (e.g., "Reduce support tickets by 50%").
7575
- **User story/action inventory**: Discrete user actions with acceptance criteria
7676
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
7777
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
@@ -105,7 +105,7 @@ Focus on high-signal findings. Limit to 50 findings total; aggregate remainder i
105105

106106
- Requirements with zero associated tasks
107107
- Tasks with no mapped requirement/story
108-
- Non-functional requirements not reflected in tasks (e.g., performance, security)
108+
- Success Criteria requiring buildable work (performance, security, availability) not reflected in tasks
109109

110110
#### F. Inconsistency
111111

templates/commands/clarify.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ Execution steps:
145145
- Functional ambiguity → Update or add a bullet in Functional Requirements.
146146
- User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
147147
- Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
148-
- Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
148+
- Non-functional constraint → Add/modify measurable criteria in Success Criteria > Measurable Outcomes (convert vague adjective to metric or explicit target).
149149
- Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
150150
- Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
151151
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.

0 commit comments

Comments
 (0)