Translates business specifications into traceable technical requirements (TR-), constraints-and-decisions (C-), and non-functional requirements (NFR-). Outputs requirements.md, constraints-and-decisions.md, nfrs.md with full FR-to-TR mapping and acceptance criteria.
From humaninloopnpx claudepluginhub deepeshbodh/human-in-loop --plugin humaninloopThis skill uses the workspace's default tool permissions.
references/ARTIFACT-TEMPLATES.mdreferences/TRACEABILITY-PATTERNS.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Translate business specifications into three traceable analysis artifacts: requirements, constraints-and-decisions, and NFRs. Every artifact traces to a business source. Every target is measurable. Every constraint accounts for its design impact.
Violating the letter of the rules is violating the spirit of the rules.
humaninloop:authoring-requirements insteadEach artifact uses a distinct ID prefix and traces to business sources. These are produced during Phase 1 (Analysis) of /humaninloop:plan: requirements.md, constraints-and-decisions.md, and nfrs.md.
Note: Integration maps (INT-XXX) are now embedded as
x-integrationextensions incontracts/api.yamlduring Phase 2 (Design). Data sensitivity classifications (DS-XXX) are now embedded per-entity indata-model.mdduring Phase 2 (Design). Seehumaninloop:patterns-api-contractsandhumaninloop:patterns-entity-modelingskills respectively.
See ARTIFACT-TEMPLATES.md for complete field definitions and examples.
Map every business FR to one or more TRs. A single FR-001 ("users can sign in") may decompose into TR-001 (authentication flow), TR-002 (token management), TR-003 (session handling).
| Field | Required | Purpose |
|---|---|---|
| ID | Yes | TR-XXX sequential format |
| Source FR | Yes | Which FR(s) this implements |
| Description | Yes | Technical capability (WHAT, not HOW) |
| Acceptance Criteria | Yes | Testable technical conditions |
| Dependencies | No | Other TRs, constraints, or NFRs referenced |
No orphan TRs. Every TR maps to at least one FR. No unmapped FRs. Every FR has at least one TR.
No exceptions: Not for "simple" systems. Not for "obvious" mappings. Not even when the FR appears to map 1:1 — decompose anyway.
Document hard boundaries (constraints) and the technology decisions shaped by them, in a single unified artifact.
Section 1: Hard Constraints (C-XXX)
| Field | Required | Purpose |
|---|---|---|
| ID | Yes | C-XXX sequential format |
| Type | Yes | infrastructure / compatibility / regulatory / migration / organizational |
| Description | Yes | The hard boundary |
| Source | Yes | Where this constraint originates |
| Severity | Yes | blocking / significant / minor |
| Impact | Yes | What design choices this eliminates; references D-XXX decisions it shapes |
Section 2: Technology Decisions (D-XXX)
| Field | Required | Purpose |
|---|---|---|
| ID | Yes | D-XXX sequential format |
| Context | Yes | The situation requiring a decision |
| Options | Yes | Alternatives evaluated |
| Choice | Yes | Selected option |
| Consequences | Yes | Trade-offs accepted |
| Rationale | Yes | Why this choice; references C-XXX constraints that shaped it |
Constraints are facts, not preferences. Each decision record MUST reference the constraints that shaped the choice. Each constraint impact field SHOULD reference decisions it influences.
No exceptions: Not for "well-known" constraints. Not for "obvious" technology choices. Not even when the team has consensus — document the constraint and its source explicitly.
Section 3: Infrastructure Requirements (IP-XXX)
| Field | Required | Purpose |
|---|---|---|
| ID | Yes | IP-XXX sequential format |
| Type | Yes | compute / networking / storage / ci-cd / monitoring / security / environment-config |
| Source | Yes | C-XXX or NFR-XXX that necessitates this provisioning |
| Description | Yes | What must be provisioned (WHAT, not HOW) |
| Acceptance Criteria | Yes | Verifiable provisioning conditions |
Every constraint that implies platform work gets an IP-XXX item. Constraints document boundaries; IP-XXX items document what those boundaries require operationally.
Define measurable quality attributes. Every NFR has a numeric target.
| Field | Required | Purpose |
|---|---|---|
| ID | Yes | NFR-XXX sequential format |
| Category | Yes | performance / availability / scalability / security / other |
| Requirement | Yes | The quality attribute |
| Target | Yes | Specific numeric threshold |
| Measurement Method | Yes | How to verify the target is met |
| Source | Yes | Business requirement or stakeholder justifying this |
"Fast" is not a requirement. "p95 response time < 200ms under 1000 concurrent users, measured by APM" is.
No exceptions: Not for "standard" performance expectations. Not for "obvious" availability targets. Every NFR gets a number, a measurement method, and a source — no deferrals to "later during design."
Integrations are now documented as
x-integrationextensions per endpoint incontracts/api.yamlduring Phase 2 (Design). See thehumaninloop:patterns-api-contractsskill for details.
Fields per integration: system name, protocol, API version, criticality, failure modes (detection, impact, fallback), authentication details.
Optimistic integration maps are incomplete. Every external dependency fails eventually. Document what happens when it does.
Sensitivity classifications are now documented per-entity/per-attribute in
data-model.mdduring Phase 2 (Design). See thehumaninloop:patterns-entity-modelingskill for details.
Fields per entity: classification level, encryption at rest/in transit, retention period, access control, audit requirements, masking rules. Compliance mapping table per entity.
Every artifact connects to others. No artifact stands alone.
See TRACEABILITY-PATTERNS.md for detailed cross-reference patterns and dependency chains.
Mandatory links:
Completeness check: No FR without a TR. No TR without acceptance criteria. No NFR without a numeric target. No constraint without a source. No decision without referenced constraints. No infrastructure-implying constraint without an IP-XXX.
Describe WHAT the system must achieve, not HOW.
| Wrong (HOW) | Right (WHAT) |
|---|---|
| "Must use PostgreSQL" | "Must support ACID transactions on relational data" |
| "Must implement OAuth 2.0" | "Must support secure delegated authentication" |
| "Must use Redis for caching" | "Must cache frequently-accessed data with < 10ms retrieval" |
| "Must encrypt with AES-256" | "Must encrypt at rest using industry-standard algorithms" |
Exception: Constraints MAY name specific technologies when they reflect real infrastructure facts (e.g., "existing production database is PostgreSQL 15").
Before finalizing, verify:
Copying FRs as TRs unchanged. Translation means decomposition: one FR often becomes multiple TRs with distinct technical concerns.
"System must be highly available." Replace with: "System MUST maintain 99.9% uptime measured monthly, excluding scheduled maintenance windows."
Listing integrations without documenting what happens when they fail. Every INT-XXX entry needs explicit failure modes and fallback strategies.
"Must use React" is a preference unless there is a real constraint (existing team expertise, existing codebase). Constraints trace to facts.
Handling user data without explicit sensitivity classification. Every data element touching the system needs a DS-XXX entry before design begins.
TRs that trace to no FR. NFRs with no source justification. Integrations referenced by no TR. Every artifact connects to the web of traceability.
If any of these thoughts arise, STOP immediately:
All of these mean: A shortcut is being rationalized. Restart with the full process.
No exceptions:
| Excuse | Reality |
|---|---|
| "Requirements are straightforward, TRs would just duplicate FRs" | Straightforward FRs hide technical complexity. Decompose anyway -- translation is the job, not transcription. |
| "NFR targets can be refined later during design" | Targets set during design are reverse-engineered from implementation, not derived from business needs. Define now. |
| "Only a few integrations, formal mapping is overkill" | Few integrations with undocumented failure modes cause the worst outages. Catalogue every one. |
| "Data classification is a security team concern" | Every technical requirement that touches data needs classification before design. Security reviews supplement, not replace. |
| "Constraints are well-known to the team" | Implicit constraints cause the costliest mid-implementation discoveries. Make every one explicit. |
| "This is a simple system" | Simple systems with missing technical requirements become complex debugging sessions. Follow the full process. |