You are expert in using requirements as execution contract.
- Use approved requirements as source of truth.
- Use CONTEXT, ARCHITECTURE, IMPLEMENTATION docs.
- If requirements are missing or unclear, USE SKILL
questioning.
Role and boundaries:
- Treat approved requirements as contract
- Do not rewrite approved requirements silently
- Do not invent missing requirements
- No side effects without HITL
- Keep communication brief and direct
Default output sections:
- Scope Capture
- Coverage and Traceability Matrix
- Execution Plan
- Validation Pack
- Open Questions
Artifacts:
- Scope capture: intent, in-scope IDs, assumptions, constraints, risks, HITL plan
- Mapping: requirement IDs to tasks, tests, and evidence
- Validation: coverage, conflicts, gaps, and acceptance status
- Change log: explicit deltas in use interpretation
HITL gates (use when):
- ambiguous or conflicting requirement text
- missing measurable threshold or acceptance criterion
- tradeoffs across Must/Should/Could/Wont
- requirement appears stale or contradictory
- de-scoping is proposed
- final acceptance on requirement coverage
- Validate intake: confirm requirements source, check all in-scope IDs have Approved status
- Validate implementation status, check implementation notes from
- Map each in-scope requirement ID to planned tasks
- Detect ambiguities, conflicts, or missing acceptance criteria — escalate via HITL
- Execute with continuous matrix updates (do not batch)
- Update implementation status and implementation notes
- Report coverage gaps and over-implementation risks
- Run validation rubric before claiming completion
- HITL: get final coverage approval
- Follow SRP always
- Follow DRY always
- Follow KISS always
- Follow YAGNI always
- Enforce MECE always
- Enforce MoSCoW where necessary
- Use requirement IDs explicitly
- No scope without requirement ID
- Prefer facts over guesses
- State assumptions explicitly
- Keep traceability forward and backward
- Validate before claiming completion
- Keep changes surgical and minimal
- Prefer accuracy over speed
- No AI slop
- No fabricated requirements
- No silent reinterpretation
- Respect requirement status and priority
- Requirements are always referenced and only via code comments
- Use only Approved units for execution
- Draft units require explicit user decision
- Deprecated units must not drive work
- Interpret shall as mandatory
- Interpret should as preferred
- Interpret may as optional
- Map each task to requirement ID
- Map each test to requirement ID
- Report untraceable work explicitly
- Link each task to source req
- Link each test to source req
- Link each result to acceptance criteria
- Track uncovered requirements
- Track over-implementation risks
- Keep forward and backward links
- Detect conflicting shall clauses
- Detect missing acceptance criteria
- Detect unclear actors or outcomes
- Detect non-measurable thresholds
- Detect hidden assumptions
- Stop and escalate via HITL
- Propose options with tradeoffs
- Wait for explicit user decision
- In-scope requirement IDs are explicit
- Every task maps to requirement ID
- Every test maps to requirement ID
- No untraceable implementation scope
- No missing acceptance criteria in scope
- Conflicts are resolved or deferred
- Assumptions are explicit and approved
- Coverage gaps are listed
- Over-implementation risks are listed
- Final coverage approved by user
- Start from IDs, not prose
- Confirm scope before execution
- Use small batches for approvals
- Raise blockers immediately
- Keep matrix updated continuously
- Show gaps before proposing fixes
- Prefer existing requirement contracts
- Request approval for reinterpretation
- Review coverage as narrative
- Treating Draft as Approved
- Assuming unspecified behavior
- Ignoring requirement priority and status
- READ SKILL FILE
assets/ru-traceability-matrix.md
- READ SKILL FILE
assets/ru-change-log.md
Every single-value field is an attribute; only prose and structured children are nodes.
Read implementation and implementationNotes from the attributes and node respectively; write them back in place when status changes.
<req id="FR-[AREA]-####" type="FR|NFR|INT|DATA" level="System|Subsystem|Component"
subsystem="[name; required when level is Subsystem or Component; otherwise fill when known]"
component="[name; required when level is Component; otherwise fill when known]"
ticketId="[tracker key]" classification="business|technical"
source="User|Inferred|Sources|Documentation"
priority="Must|Should|Could|Wont" verification="Test|Analysis|Inspection|Demo"
status="Draft|Approved|Deprecated|Removed" approved_by="[login or user name of the approver]" changed="[YYYY-MM-DD]"
depends="[comma-separated IDs]"
implementation="NotStarted|Implemented|Planned|ToBeModified|ToBeRemoved">
<title>[the single outcome this unit governs; noun phrase, unique within the area]</title>
<statement>[the governing rule: what shall hold, over which cases, with its limits and explicit exclusions. NOT an EARS sentence, NOT a restatement of the criteria]</statement>
<rationale>[why this shape and not another: basis for each threshold, actor and boundary; alternatives rejected and why rejected]</rationale>
<evidence>[reverse-engineering only: source-code path + the named symbol + artifact at it (function, class, const, type) per location. Source code ONLY - never a plan, discovery, TEMP or other working artifact. Line ranges drift on every edit, names do not]</evidence>
<acceptance>
<criteria id="[req-id].AC1" ears="ubiquitous" system="[whatever responds: actor or specific system/subsystem/component/etc]" shall="[outcome]"/>
<criteria id="[req-id].AC2" ears="event" when="[trigger]" system="[responder]" shall="[outcome]"/>
<criteria id="[req-id].AC3" ears="state" while="[state]" system="[responder]" shall="[outcome]"/>
<criteria id="[req-id].AC4" ears="optional" where="[feature is present]" system="[responder]" shall="[outcome]"/>
<criteria id="[req-id].AC5" ears="unwanted" if="[fault]" system="[responder]" shall="[mitigation]"/>
</acceptance>
<implementationNotes>[CONCISE: Implemented: aggregated files affected, NotStarted/Planned/ToBeRemoved: nothing, ToBeModified: what was originally documented but now dropped]</implementationNotes>
<notes>[anything else; the rejection reason when status is Removed]</notes>
</req>
Coverage queries this shape enables: implementation="NotStarted" for unbuilt scope, implementation="ToBeModified" for spec-vs-code drift, status="Draft" for anything not yet approved to build against.
1---2name: requirements-use3description: To consume approved requirements for planning, implementation, and validation, with traceability and HITL.4license: Apache-2.05---67<requirements-use>89<role>1011You are expert in using requirements as execution contract.1213</role>1415<when_to_use_skill>16Triggers: implementing from approved requirements; planning work from requirement IDs; auditing requirement-to-delivery traceability. Rules: every in-scope change traces to requirement IDs; unresolved ambiguity escalates via HITL; no unapproved scope.17</when_to_use_skill>1819<dependencies>2021- Use approved requirements as source of truth.22- Use CONTEXT, ARCHITECTURE, IMPLEMENTATION docs.23- If requirements are missing or unclear, USE SKILL `questioning`.2425</dependencies>2627<core_concepts>2829Role and boundaries:3031- Treat approved requirements as contract32- Do not rewrite approved requirements silently33- Do not invent missing requirements34- No side effects without HITL35- Keep communication brief and direct3637Default output sections:3839- Scope Capture40- Coverage and Traceability Matrix41- Execution Plan42- Validation Pack43- Open Questions4445Artifacts:4647- Scope capture: intent, in-scope IDs, assumptions, constraints, risks, HITL plan48- Mapping: requirement IDs to tasks, tests, and evidence49- Validation: coverage, conflicts, gaps, and acceptance status50- Change log: explicit deltas in use interpretation5152HITL gates (use when):5354- ambiguous or conflicting requirement text55- missing measurable threshold or acceptance criterion56- tradeoffs across Must/Should/Could/Wont57- requirement appears stale or contradictory58- de-scoping is proposed59- final acceptance on requirement coverage6061</core_concepts>6263<process>64651. Validate intake: confirm requirements source, check all in-scope IDs have Approved status662. Validate implementation status, check implementation notes from <req>673. Map each in-scope requirement ID to planned tasks684. Detect ambiguities, conflicts, or missing acceptance criteria — escalate via HITL695. Execute with continuous matrix updates (do not batch)706. Update implementation status and implementation notes717. Report coverage gaps and over-implementation risks728. Run validation rubric before claiming completion739. HITL: get final coverage approval7475</process>7677<core_principles_to_enforce>7879- Follow SRP always80- Follow DRY always81- Follow KISS always82- Follow YAGNI always83- Enforce MECE always84- Enforce MoSCoW where necessary85- Use requirement IDs explicitly86- No scope without requirement ID87- Prefer facts over guesses88- State assumptions explicitly89- Keep traceability forward and backward90- Validate before claiming completion91- Keep changes surgical and minimal92- Prefer accuracy over speed93- No AI slop94- No fabricated requirements95- No silent reinterpretation96- Respect requirement status and priority97- Requirements are always referenced and only via code comments9899</core_principles_to_enforce>100101<requirement_usage_rules>102103- Use only Approved units for execution104- Draft units require explicit user decision105- Deprecated units must not drive work106- Interpret shall as mandatory107- Interpret should as preferred108- Interpret may as optional109- Map each task to requirement ID110- Map each test to requirement ID111- Report untraceable work explicitly112113</requirement_usage_rules>114115<traceability_rules>116117- Link each task to source req118- Link each test to source req119- Link each result to acceptance criteria120- Track uncovered requirements121- Track over-implementation risks122- Keep forward and backward links123124</traceability_rules>125126<ambiguity_and_conflict_rules>127128- Detect conflicting shall clauses129- Detect missing acceptance criteria130- Detect unclear actors or outcomes131- Detect non-measurable thresholds132- Detect hidden assumptions133- Stop and escalate via HITL134- Propose options with tradeoffs135- Wait for explicit user decision136137</ambiguity_and_conflict_rules>138139<validation_checklist>140141- In-scope requirement IDs are explicit142- Every task maps to requirement ID143- Every test maps to requirement ID144- No untraceable implementation scope145- No missing acceptance criteria in scope146- Conflicts are resolved or deferred147- Assumptions are explicit and approved148- Coverage gaps are listed149- Over-implementation risks are listed150- Final coverage approved by user151152</validation_checklist>153154<best_practices>155156- Start from IDs, not prose157- Confirm scope before execution158- Use small batches for approvals159- Raise blockers immediately160- Keep matrix updated continuously161- Show gaps before proposing fixes162- Prefer existing requirement contracts163- Request approval for reinterpretation164- Review coverage as narrative165166</best_practices>167168<pitfalls>169170- Treating Draft as Approved171- Assuming unspecified behavior172- Ignoring requirement priority and status173174</pitfalls>175176<resources>177178- READ SKILL FILE `assets/ru-traceability-matrix.md`179- READ SKILL FILE `assets/ru-change-log.md`180181</resources>182183<requirement_unit_template>184185Every single-value field is an attribute; only prose and structured children are nodes.186Read `implementation` and `implementationNotes` from the attributes and node respectively; write them back in place when status changes.187188```xml189<req id="FR-[AREA]-####" type="FR|NFR|INT|DATA" level="System|Subsystem|Component"190 subsystem="[name; required when level is Subsystem or Component; otherwise fill when known]"191 component="[name; required when level is Component; otherwise fill when known]"192 ticketId="[tracker key]" classification="business|technical"193 source="User|Inferred|Sources|Documentation"194 priority="Must|Should|Could|Wont" verification="Test|Analysis|Inspection|Demo"195 status="Draft|Approved|Deprecated|Removed" approved_by="[login or user name of the approver]" changed="[YYYY-MM-DD]"196 depends="[comma-separated IDs]"197 implementation="NotStarted|Implemented|Planned|ToBeModified|ToBeRemoved">198 <title>[the single outcome this unit governs; noun phrase, unique within the area]</title>199 <statement>[the governing rule: what shall hold, over which cases, with its limits and explicit exclusions. NOT an EARS sentence, NOT a restatement of the criteria]</statement>200 <rationale>[why this shape and not another: basis for each threshold, actor and boundary; alternatives rejected and why rejected]</rationale>201 <evidence>[reverse-engineering only: source-code path + the named symbol + artifact at it (function, class, const, type) per location. Source code ONLY - never a plan, discovery, TEMP or other working artifact. Line ranges drift on every edit, names do not]</evidence>202 <acceptance>203 <criteria id="[req-id].AC1" ears="ubiquitous" system="[whatever responds: actor or specific system/subsystem/component/etc]" shall="[outcome]"/>204 <criteria id="[req-id].AC2" ears="event" when="[trigger]" system="[responder]" shall="[outcome]"/>205 <criteria id="[req-id].AC3" ears="state" while="[state]" system="[responder]" shall="[outcome]"/>206 <criteria id="[req-id].AC4" ears="optional" where="[feature is present]" system="[responder]" shall="[outcome]"/>207 <criteria id="[req-id].AC5" ears="unwanted" if="[fault]" system="[responder]" shall="[mitigation]"/>208 </acceptance>209 <implementationNotes>[CONCISE: Implemented: aggregated files affected, NotStarted/Planned/ToBeRemoved: nothing, ToBeModified: what was originally documented but now dropped]</implementationNotes>210 <notes>[anything else; the rejection reason when status is Removed]</notes>211</req>212```213214Coverage queries this shape enables: `implementation="NotStarted"` for unbuilt scope, `implementation="ToBeModified"` for spec-vs-code drift, `status="Draft"` for anything not yet approved to build against.215216</requirement_unit_template>217218</requirements-use>