AI Unified Process core - stack-agnostic requirements, entity model, and use cases
91
92%
Does it follow best practices?
Impact
91%
1.18xAverage score across 14 eval scenarios
Low
Low-risk findings worth noting
Create or update the requirements catalog at docs/requirements.md based on docs/vision.md.
The document contains functional requirements, non-functional requirements, and constraints organized as Markdown
tables. Alongside it, create or update the glossary at docs/glossary.md (see Glossary).
Define what the system should do. Always use the user story format:
Format: As a [role], I want [goal] so that [benefit].
| ID | Title | User Story | Priority | Status |
|---|---|---|---|---|
| FR-001 | Create Task | As a project manager, I want to create tasks so that I can track work items. | High | Open |
| FR-002 | Assign Task | As a project manager, I want to assign tasks to team members so that work is distributed. | High | Open |
| FR-003 | Filter Tasks | As a team member, I want to filter tasks by status so that I can focus on relevant items. | Medium | Open |
Define quality attributes. Must be measurable.
| ID | Title | Requirement | Category | Priority | Status |
|---|---|---|---|---|---|
| NFR-001 | Response Time | All page loads must complete within 2 seconds. | Performance | High | Open |
| NFR-002 | Availability | System must maintain 99.9% uptime during business hours. | Availability | High | Open |
| NFR-003 | Concurrent Users | System must support 100 concurrent users without degradation. | Scalability | Medium | Open |
| NFR-004 | Data Encryption | All data in transit must use TLS 1.3 encryption. | Security | High | Open |
Define limitations and boundaries imposed on the solution.
| ID | Title | Constraint | Category | Source | Priority | Status |
|---|---|---|---|---|---|---|
| C-001 | Runtime Platform | Backend must run on Java 21 LTS. | Technical | High | Open | |
| C-002 | Database Platform | System must use PostgreSQL 16. | Technical | High | Open | |
| C-003 | Browser Support | UI must support Chrome, Firefox, and Safari (latest 2 versions). | Technical | High | Open | |
| C-004 | Budget Limit | Total development cost must not exceed $50,000. | Business | High | Open | |
| C-005 | Deadline | System must be production-ready by Q2 2025. | Schedule | High | Open | |
| C-006 | Right to Erasure | Personal data of a customer must be erased within 30 days of a request. | Regulatory | GDPR Art. 17(1), 12(3) | High | Open |
The Source column is optional — omit it when no constraint comes from an outside document. It names where a
constraint comes from — a law, regulation, standard, or internal policy, down to the article or paragraph and, where it
matters, the version (GDPR Art. 17(1), ISO 27001:2022 A.8.24, Operating Policy OP-12 v3) — so the origin of a
mandated rule stays traceable. When the column is present, fill it for every Regulatory constraint and leave it empty
for the others. Keep Status the last column.
The glossary fixes one name per domain concept, so requirements, use cases, test cases, and code all use the same
word. Use references/glossary.md as the structure (the path is relative to the folder
containing this SKILL.md): one table with the columns Term | Definition | Avoid.
Take the terms from the vision and from the nouns of the user stories: roles, business objects, states, and business events. Leave out generic words (system, data, user interface). When the glossary already exists, add new terms and keep existing rows unless the user asks to change them.
See references/REFERENCE.md for ID prefixes, priority levels, status values, NFR categories, and constraint categories. The path is relative to the folder containing this SKILL.md, not to the project root.
Every requirement must pass these checks before finalizing:
| Check | Rule | Bad Example | Good Example |
|---|---|---|---|
| Measurable | NFRs must have a number or threshold | "System should be fast" | "Pages load within 2 seconds" |
| Singular | One requirement per row | "System must import and export data" | Split into FR-001 and FR-002 |
| Unambiguous | No subjective terms | "User-friendly interface" | "WCAG 2.1 AA compliant" |
| Testable | Can write a pass/fail test | "System is reliable" | "99.9% uptime over 30 days" |
| Unique IDs | No duplicate IDs across all tables | Two FR-001 entries | Each ID used exactly once |
Format survives error recovery. Ambiguity, conflict, and provisional status never justify abandoning the user-story form. Every FR row — even one you are flagging as conflicting or unconfirmed — must still read "As a [role], I want [goal] so that [benefit]." Record the issue in a note or in the Status column (e.g.,
Conflict,Needs review); never by dropping the requirement to a flat statement like "Support real-time sync."
**Status:** of the use cases that link it, as defined under
Status in the reference; never change a Deferred or Rejected status on your owndocs/glossary.md with the domain terms used in the catalog, and use exactly those terms (never
an Avoid synonym) in every requirement