|
7 | 7 |
|
8 | 8 | ## Overview |
9 | 9 |
|
10 | | -The high-level conceptual model — the three virtual categories (**vision**, **knowledge**, **experience**), the `slug.type.md` naming, and the document tracks — lives in the `archcore` global source (`concepts/core-concepts`, `concepts/document-tracks`). This document is the CLI's **detailed type reference and selection guide**: the per-type tables, the requirements layers, and the "choosing the right type" matrix the engine's templates depend on. The category is derived from the document type in the filename, not from the directory path. |
| 10 | +The full document-type reference — the per-type purpose tables, the "choosing the right type" matrix, and the requirements-track guidance — now lives in the `archcore` global source: |
11 | 11 |
|
12 | | -## Vision |
| 12 | +- `concepts/document-types-reference` — per-type tables + type-selection matrix + choosing a requirements track |
| 13 | +- `concepts/requirements-layers` — the Sources-vs-Specifications two-layer model and relation conventions |
| 14 | +- `concepts/core-concepts` / `concepts/document-tracks` — the high-level model and document flows |
13 | 15 |
|
14 | | -Documents that describe the future: what we want to build and why. |
15 | | - |
16 | | -### Product Track (Simple) |
17 | | - |
18 | | -| Type | Purpose | |
19 | | -| ------ | ---------------------------------------------------------- | |
20 | | -| `prd` | Product requirements — goals, scope, acceptance criteria | |
21 | | -| `idea` | A concept worth exploring — problem, value, rough approach | |
22 | | -| `plan` | A concrete implementation plan with phased tasks | |
23 | | - |
24 | | -### Sources Track (Discovery) |
25 | | - |
26 | | -| Type | Purpose | |
27 | | -| ----- | ---------------------------------------------------------------------------- | |
28 | | -| `mrd` | Market analysis — TAM/SAM/SOM, competitive landscape, market needs, timing | |
29 | | -| `brd` | Business justification — objectives, ROI, stakeholders, budget, constraints | |
30 | | -| `urd` | User needs — personas, journeys, usability requirements, acceptance criteria | |
31 | | - |
32 | | -The sources track captures **where** requirements come from (market → business → users). Documents flow naturally: MRD (market landscape) → BRD (business justification) → URD (user needs). |
33 | | - |
34 | | -### ISO Track (Decomposition) |
35 | | - |
36 | | -| Type | ISO Reference | Purpose | |
37 | | -| ------ | ------------- | -------------------------------------------------------------------------------------------- | |
38 | | -| `brs` | ISO §9.3 | Business requirements specification — mission, goals, operational concept, success criteria | |
39 | | -| `strs` | ISO §9.4 | Stakeholder requirements specification — per-class requirements with ConOps, compliance | |
40 | | -| `syrs` | ISO §9.5 | System requirements specification — system boundary, interfaces, modes, verification approach | |
41 | | -| `srs` | ISO §9.6 | Software requirements specification — per-function/per-endpoint specs, verification matrix | |
42 | | - |
43 | | -The ISO track decomposes requirements through progressively detailed levels: BRS (why the business needs it) → StRS (what stakeholders need) → SyRS (how the system behaves) → SRS (how the software works). |
44 | | - |
45 | | -### Requirements Layers — Sources vs Specifications |
46 | | - |
47 | | -Sources and Specifications are **separate layers**: |
48 | | - |
49 | | -- **Layer A (Sources):** mrd, brd, urd, prd — capture raw requirements from market, business, and user perspectives |
50 | | -- **Layer B (Specifications):** brs, strs, syrs, srs — formalize requirements into ISO-structured specifications |
51 | | - |
52 | | -Specifications formalize sources via `implements` relation (spec is the source, source doc is the target): |
53 | | - |
54 | | -| Specification | Formalizes | Relation Example | |
55 | | -|---------------|------------|------------------| |
56 | | -| BRS | MRD (market needs), BRD (business objectives) | `brs implements mrd`, `brs implements brd` | |
57 | | -| StRS | URD (user needs), BRS (ISO cascade) | `strs implements urd`, `strs implements brs` | |
58 | | -| SyRS | StRS (ISO cascade) | `syrs implements strs` | |
59 | | -| SRS | SyRS (ISO cascade) | `srs implements syrs` | |
60 | | -| PRD | ≈ all four ISO types (use `related`) | PRD is a pragmatic hybrid covering all levels | |
61 | | - |
62 | | -Do NOT confuse source documents (mrd/brd/urd) with specification documents (brs/strs/syrs/srs). Sources are informal, discovery-oriented. Specifications are formal, ISO-structured. |
63 | | - |
64 | | -## Knowledge |
65 | | - |
66 | | -Documents that capture what we know: decisions, standards, contracts, and reference material. |
67 | | - |
68 | | -| Type | Purpose | |
69 | | -| --------- | ----------------------------------------------------------------------------------------------------------- | |
70 | | -| `adr` | A technical decision that has been made, with context and alternatives | |
71 | | -| `rfc` | A proposal open for review before a decision is made | |
72 | | -| `rule` | A mandatory standard — imperative statements with good/bad examples | |
73 | | -| `guide` | Step-by-step instructions for completing a task | |
74 | | -| `spec` | Canonical normative contract — behavior, constraints, invariants, conformance for a specific technical boundary | |
75 | | -| `doc` | Non-behavioral reference — tables, registries, glossaries, component lists | |
76 | | - |
77 | | -## Experience |
78 | | - |
79 | | -Documents that encode proven patterns and lessons from practice. |
80 | | - |
81 | | -| Type | Purpose | |
82 | | -| ----------- | ----------------------------------------------------------------------------------- | |
83 | | -| `task-type` | A proven workflow for a recurring implementation task — steps, examples, pitfalls | |
84 | | -| `cpat` | A code pattern change — how and why a convention or approach changed (was → became) | |
85 | | - |
86 | | -## Choosing the Right Type |
87 | | - |
88 | | -- **rule vs doc** — rule prescribes behavior ("Always do X") with enforcement. doc describes what exists (tables, registries). Descriptive, non-behavioral content → doc. |
89 | | -- **adr vs rfc** — adr = decision already final. rfc = proposal open for feedback. |
90 | | -- **guide vs doc** — guide has sequential steps to follow. doc is non-sequential reference to look up. |
91 | | -- **spec vs doc** — spec defines a canonical normative contract for a concrete technical boundary (behavior, constraints, invariants, conformance). doc describes what exists without normative requirements. Normative contract → spec; structural reference → doc. |
92 | | -- **spec vs rule** — spec is a technical contract for one component. rule is a cross-cutting team standard. Scoped to a named artifact → spec; applied team-wide → rule. |
93 | | -- **spec vs adr** — spec is the living canonical truth (present-tense: "it works this way"). adr is the decision record (past-tense: "we chose this because"). Both may exist for the same component. |
94 | | -- **task-type vs guide** — task-type is a reusable pattern for a class of tasks (e.g., "how to create a UI-kit component"). guide is instructions for a specific one-time procedure. |
95 | | -- **cpat vs adr** — cpat focuses on a code pattern change with before/after examples. adr records a broader architectural decision with alternatives and consequences. |
96 | | -- **mrd vs prd** — MRD analyzes the MARKET (TAM/SAM/SOM, competitors, timing) without proposing a solution. PRD proposes a PRODUCT with requirements and solution overview. |
97 | | -- **brd vs prd** — BRD focuses on BUSINESS JUSTIFICATION (ROI, budget, organizational impact). PRD focuses on PRODUCT DEFINITION (features, user stories, solution). |
98 | | -- **urd vs prd** — URD captures user needs via PERSONAS and JOURNEYS (discovery-oriented). PRD defines product requirements with acceptance criteria (specification-oriented). |
99 | | -- **mrd vs brd** — MRD is MARKET ANALYSIS (external-facing — industry, competitors, TAM). BRD is BUSINESS JUSTIFICATION (internal-facing — ROI, stakeholders, budget). |
100 | | -- **brd vs urd** — BRD captures ORGANIZATIONAL needs (goals, budget, regulations). URD captures END-USER needs (personas, journeys, usability). |
101 | | -- **brs vs prd** — BRS has ONLY business objectives with ISO structure (mission, operational concept, success criteria), no user stories. PRD has user stories, requirements by priority, solution overview. |
102 | | -- **strs vs prd** — StRS groups requirements PER STAKEHOLDER CLASS with ConOps. PRD lists by priority (P0/P1/P2). |
103 | | -- **syrs vs adr** — SyRS defines WHOLE SYSTEM BOUNDARY with interface contracts and verification. ADR records a single decision. |
104 | | -- **srs vs prd** — SRS has PER-ENDPOINT/PER-FUNCTION requirements with verification matrix. PRD has product-level requirements. |
105 | | -- **brs vs strs** — BRS = WHY (business outcomes, technology-agnostic). StRS = WHAT stakeholders need (operational scenarios, solution-aware). |
106 | | -- **syrs vs srs** — SyRS = WHOLE SYSTEM boundary. SRS = SINGLE COMPONENT's detailed behavior. |
107 | | -- **brs vs brd** — BRS is ISO SPECIFICATION (formalized structure). BRD is INFORMAL SOURCE (business justification, ROI). BRS formalizes what BRD captures informally. |
108 | | -- **strs vs urd** — StRS is ISO SPECIFICATION (per-class requirements with ConOps). URD is INFORMAL SOURCE (personas, journeys). StRS formalizes what URD captures informally. |
109 | | - |
110 | | -## Choosing the Right Requirements Track |
111 | | - |
112 | | -Three approaches to requirements engineering — choose based on project complexity: |
113 | | - |
114 | | -| Track | Documents | Best For | |
115 | | -|-------|-----------|----------| |
116 | | -| Product (simple) | `prd` | Individual features, small teams, rapid prototyping, internal tools | |
117 | | -| Sources (discovery) | `mrd` → `brd` → `urd` | Product teams doing discovery, stakeholder alignment, business analysis | |
118 | | -| ISO (decomposition) | `brs` → `strs` → `syrs` → `srs` | Regulated systems, multi-team projects, complex distributed systems | |
119 | | - |
120 | | -All tracks can coexist — use what fits the project. Start simple (PRD), add sources when you need stakeholder alignment, add ISO when you need formal traceability. |
| 16 | +This file is retained as the CLI's local entry point to that model. The CLI enforces it through the MCP server type-selection instructions and the templates in `@templates/templates.go`. The category is derived from the `.type` suffix in the filename, not from the directory. |
0 commit comments