Product Requirements & Roadmap Handbook
Customer-facing product roadmap grounded in PRD v3.12 — the milestone loop (M0–M7), functional requirements each milestone delivers, and the user stories that trace to them.
Overview
The Kav AI Platform (KAP) follows a milestone-gated delivery model. Each milestone has gate criteria (product and technical), delivers a set of functional requirements, and is validated by user stories with testable acceptance criteria. A functional requirement (FR) is a statement of one discrete capability the platform must provide — what it must do, not how it’s built — carrying a stable ID of the form FR-<AREA>-<NN> (e.g. FR-APP-02) that user stories and test suites cite for traceability. This handbook is the engineering-facing companion to the PRD — the PRD owns the what and why, this handbook owns the when and how it behaves.
Source of truth
Every fact below is derived from three canonical data files under docs/portfolio/_data/:
| File | Purpose |
|---|---|
milestones.yaml |
The milestone ledger (M0–M5) — names, targets, statuses, gate criteria |
requirements.yaml |
The FR catalogue (PRD Appendix A) — 71 requirements with capability, priority, status, milestone |
capabilities.yaml |
The capability catalogue — five deep modules + four cross-cutting concerns that classify every FR |
tests.yaml |
The test-suite registry (TEST-XXX-NN) — suites mapped to FRs, rendered into the Test Traceability page |
A review sheet is generated from these files by docs/portfolio/_build/generate_requirements_review.py into docs/architecture/requirements-by-milestone.md. This handbook’s own FR catalogue — the click-through target for every FR ID below — is generated the same way by docs/portfolio/_build/generate_fr_catalogue.py. The user stories page — the click-through target for every US ID below — is generated from docs/portfolio/product/user-stories/*.qmd by docs/portfolio/_build/generate_user_stories_page.py. To update the data, edit the _data/*.yaml files (or the .qmd story files) and re-run the generators.
Milestone Taxonomy
KAP uses a M0–M5 milestone taxonomy spanning July 2025 through Q4 2026, plus a directional H1 2027 roadmap horizon for autonomous-patrol robotics and dose-aware inspection work.
| Milestone | Name | Target | Status | Gate (Technical) |
|---|---|---|---|---|
| M0 | Platform Foundation | Jul 2025 | ✅ Done | Web-Based 3D Viewer + Multi-Tenant Auth + Operator Dashboard + Visual Defect Gallery |
| M1 | AI Foundation | Dec 2025 | ✅ Done | Multimodal AI Pipeline + Natural Language Chat + Automated Agentic Coordination + On-Demand Defect Detection |
| M2 | App MVP | Mar 2026 | ✅ Done | 3D Viewer + AI Chat functional |
| M3 | AI Q2 Delivery | Jun 2026 | ✅ Done | Contextual Data Chat + Failure Recovery + Agent Evaluation Tests |
| M4 | Persistent Sensing | Q3 2026 | 📋 Planned | Multi-Sensor Automated Detection + CAD (IFC) Ingestion & P&ID Tag-Linkage + Geo-Tagged Spatial Anchoring + Contextual Chat Phase 1 |
| M5 | Engineering Context & Enterprise | Q4 2026 | 📋 Planned | SCADA/OPC UA Connectors + IOW Checks + 3D CAD Model Overlay + P&ID SQL Connector + SOC 2 Type II + Compliance Management + Customer Cloud Tenant Deployment |
| H1 2027 | Roadmap horizon | H1 2027 | 📋 Directional | _Not a committed milestone — autonomous patrol robotics + dose-/hazard-aware inspection |
Gate criteria (product and technical)
Each milestone carries two phrasings of its gate: a product gate (business outcome) and a technical gate (engineering deliverables). Both live in milestones.yaml.
| Milestone | Product Gate | Technical Gate |
|---|---|---|
| M0 | 3D Viewer + Authentication + Image Gallery + Operator Dashboard, validated on first real-world RGB inspection dataset | Web-Based 3D Viewer + Multi-Tenant Auth + Operator Dashboard + Visual Defect Gallery |
| M1 | Multimodal AI Pipeline + Natural Language Interface + Automated Task Coordination + Machine Vision Engine prototype, validated with thermal imagery and gas sensor readings | Multimodal AI Pipeline + Natural Language Chat + Automated Agentic Coordination + On-Demand Defect Detection |
| M2 | Unified 3D Viewer + AI Chat operator interface; Avoided-Cost Pilot case study (MVP v0.2) | 3D Viewer + AI Chat functional |
| M3 | MVP v0.3 — Contextual data chat in persona-tailored workspaces (Data Explorer & Integrity Engineer); validated agent reliability (evaluation tests + failure recovery) | Contextual Data Chat + Failure Recovery + Agent Evaluation Tests |
| M4 | MVP v0.4 — Closed loop on inspection evidence (Alpha) + CAD/P&ID Engineering Context; Quantified Inspection Prioritization; RBI/IDMS Workflow Integration; Persona Sign-off (IE & DE); ROI Calculator | Multi-Sensor Automated Detection + CAD (IFC) Ingestion & P&ID Tag-Linkage + Geo-Tagged Spatial Anchoring + Contextual Chat Phase 1 |
| M5 | Engineering-context depth + enterprise readiness; 10 Signed Letters of Intent (LOIs); SOC 2 Type II Sign-off; First 3 Production Subscriptions; Customer Cloud Tenant Package (air-gapped: H1 2027) | SCADA/OPC UA Connectors + IOW Checks + 3D CAD Model Overlay + P&ID SQL Connector + SOC 2 Type II + Compliance Management + Customer Cloud Tenant Deployment |
Status legend
- ✅ Done — milestone delivered and gate criteria met
- 🔵 Active — currently in progress; gate criteria being worked
- 📋 Planned — committed milestone with target quarter; not yet started
- 📋 Directional (H1 2027 only) — roadmap horizon, not a committed milestone
Capabilities
Every FR is classified under one of five deep modules (the product architecture) or one of four cross-cutting concerns. Capabilities provide the stable categories that requirements roll up under and that each milestone matures.
The five deep modules
| Capability | Owns |
|---|---|
| Evidence Intake | Normalized evidence, QC, provenance, timestamp alignment |
| World Model | Asset identity, spatial registration, tag reconciliation, engineering context, photorealistic 3D scene (3DGS), AI assistant brain |
| Evidence Confidence | Cross-source correlation, contradiction, consistency, calibrated confidence |
| Integrity Analytical Chain | Observed anomaly → damage-mechanism review → risk assessment → inspection-plan reasoning |
| Operator Handoff | Verification queue, recommendation packets, inspection plan handoff |
Cross-cutting concerns
| Concern | Owns |
|---|---|
| Application Surface | 3D viewer, contextual data-chat, interactive overlays |
| Security & Compliance | Certifications, compliance management, access control |
| Deployment Profile | Runtime profiles — SaaS, customer tenant, air-gapped, high-hazard |
| Commercial / GTM | Partner-integrated delivery, proposal templates, MVP demonstration program |
Requirements by Milestone
71 requirements total (v3.9, after the FR-CAD-05 retirement): 15 delivered · 2 alpha prototypes · 4 in progress (Q2) · 12 Q3 target · 28 Q4 target · 3 Q4 research-gated · 7 H1 2027 roadmap · 9 Critical.
✦ = Critical priority.
M0 — Platform Foundation · Jul 2025 · ✅ Done
5 requirements · all delivered.
Product gate: 3D Viewer + Authentication + Image Gallery + Operator Dashboard, validated on first real-world RGB inspection dataset Technical gate: Web-Based 3D Viewer + Multi-Tenant Auth + Operator Dashboard + Visual Defect Gallery
| FR | Capability | Priority | Feature |
|---|---|---|---|
| FR-APP-07 ✦ | Application Surface | Critical | Web-based 3D inspection viewer (Cesium geospatial scene) |
| FR-APP-08 | Application Surface | High | Operator dashboard — organization / campaign / anomaly overview |
| FR-APP-09 | Application Surface | High | Visual defect gallery — geo-tagged imagery, annotations & anomaly bounding boxes |
| FR-EVI-01 | Evidence Intake | High | RGB inspection imagery ingestion — EXIF / GPS provenance & dataset scoping |
| FR-SEC-04 ✦ | Security & Compliance | Critical | Multi-tenant authentication & workspace access control |
M1 — AI Foundation · Dec 2025 · ✅ Done
4 requirements · all delivered.
Product gate: Multimodal AI Pipeline + Natural Language Interface + Automated Task Coordination + Machine Vision Engine prototype, validated with thermal imagery and gas sensor readings Technical gate: Multimodal AI Pipeline + Natural Language Chat + Automated Agentic Coordination + On-Demand Defect Detection
| FR | Capability | Priority | Feature |
|---|---|---|---|
| FR-AI-05 | Application Surface | High | First-generation AI chat assistant — natural-language query over inspection data (early, not-yet-reliable prototype) |
| FR-APP-10 | Application Surface | High | Automated agentic task coordination — multi-agent orchestration (planner / executor, tool routing) |
| FR-APP-12 | Application Surface | Medium | Gas measurement visualization — sensor-reading heatmap overlay on the 3D scene |
| FR-EVI-02 | Evidence Intake | High | Multimodal evidence pipeline foundation — thermal / OGI / gas ingest (prototype) |
M2 — App MVP · Mar 2026 · ✅ Done
2 requirements. Statuses corrected by the v3.9 source audit (2026-09-01): FR-APP-11 is In Progress — no backend emits the provenance event on any branch; FR-OPS-01 is an alpha prototype — the export exists only on the alpha lineage.
Product gate: Unified 3D Viewer + AI Chat operator interface; Avoided-Cost Pilot case study (MVP v0.2) Technical gate: 3D Viewer + AI Chat functional
| FR | Capability | Priority | Feature |
|---|---|---|---|
| FR-APP-11 | Application Surface | Medium | Provenance-cited chat answers — citations & tool-execution timeline |
| FR-OPS-01 | Operator Handoff | Medium | Work-order / recommendation export — markdown + CSV |
M3 — AI Q2 Delivery · Jun 2026 · ✅ Done (with exceptions)
5 requirements. Closed by the v3.9 source audit (2026-09-01): FR-APP-02, FR-APP-13, FR-APP-14, and FR-APP-16 verified Delivered on the production branch; FR-APP-15 (persona workspaces) is an alpha prototype pending promotion.
Product gate: MVP v0.3 — Contextual data chat in persona-tailored workspaces (Data Explorer & Integrity Engineer); validated agent reliability (evaluation tests + failure recovery) Technical gate: Contextual Data Chat + Failure Recovery + Agent Evaluation Tests
| FR | Capability | Priority | Feature |
|---|---|---|---|
| FR-APP-02 ✦ | Application Surface | Critical | Contextual data chat Ph.0 — single-turn NL query (classify → SQL execute → report) over workspace data |
| FR-APP-13 ✦ | Application Surface | Critical | Agent failure recovery — Supabase RLS/timeout, Gemini rate-limit/timeout, JWT expiry, and blob-storage retry handled without pipeline crash |
| FR-APP-14 | Application Surface | High | Contextual chat agent evaluation gate — classifier/executor/reporter accuracy benchmarks required before ship |
| FR-APP-15 | Application Surface | High | Persona-tailored workspace chat scoping — Data Explorer vs Integrity Engineer chat views |
| FR-APP-16 ✦ | Application Surface | Critical | Contextual chat SQL-injection & malicious-input defense — DML/DDL blocking, injection-pattern rejection, workspace-scoped query firewall |
User stories — M3
| Story | Persona | Acceptance criteria reference (FR IDs) |
|---|---|---|
| US-M3-01 — Workspace-scoped natural-language query | Integrity Engineer | FR-APP-02, FR-APP-03 |
| US-M3-08 — Graceful degradation on backend faults | Integrity Engineer | FR-APP-13 |
| US-M3-09 — Trustworthy chat backed by accuracy gates | Integrity Engineer | FR-APP-14 |
| US-M3-10 — Persona-tailored workspace view | Data Explorer | FR-APP-15 |
| US-M3-11 — Query firewall against injection and malicious input | Integrity Engineer | FR-APP-16 |
M4 — Persistent Sensing · Q3 2026 · 📋 Planned
15 requirements · 3 in progress (CAD work pulled into Q2).
Product gate: MVP v0.4 — Closed loop on inspection evidence (Alpha) + CAD/P&ID Engineering Context; IDMS Workflow Integration; Persona Sign-off (IE & DE); ROI Calculator Technical gate: Multi-Sensor Ingestion (OGI / Thermal / Gas) + CAD (IFC) Ingestion & P&ID Tag-Linkage + Geo-Tagged Spatial Anchoring + Contextual Chat Phase 1
| FR | Capability | Priority | Status | Feature |
|---|---|---|---|---|
| FR-APP-03 | Application Surface | High | Q3 Target | Contextual data chat Ph.1 |
| FR-PRT-02 | Commercial / GTM | High | Q3 Target | Reference partnership — OI.Expert × Kav AI integrated proposal template |
| FR-APP-04 | Application Surface | High | Q3 Target | Chat with 3D map |
| FR-APP-05 | Application Surface | Medium | Q3 Target | Interactive overlays |
| FR-APP-06 | Operator Handoff | Medium | Q3 Target | Automated reports |
| FR-APP-17 | Application Surface | Medium | Q3 Target | Asset-scoped chat focus — set an engineering asset tag (e.g. AB-106) as chat scope; queries ground on the resolved asset record, its findings, and its geo-vicinity |
| FR-SCN-01 | Evidence Intake | High | Q3 Target | OGI sensor ingestion |
| FR-SCN-02 | Evidence Intake | High | Q3 Target | Calibrated thermal ingestion |
| FR-SCN-03 | Evidence Intake | High | Q3 Target | Gas sensor ingestion |
| FR-INT-03 ✦ | Operator Handoff | Critical | Q3 Target | IDMS bidirectional integration specification |
| FR-PRT-01 | Operator Handoff | High | Q3 Target | Partner-integrated delivery model — single procurement vehicle, partner-provided HITL seat |
| FR-CAD-01 | World Model | High | In Progress (Q2) | CAD geometry via open IFC4 (BIM STEP) standard |
| FR-CAD-06 | World Model | High | In Progress (Q2) | DEXPI open-standard P&ID ingestion (equipment, nozzles, piping, connectivity) |
| FR-CAD-07 | World Model | High | In Progress (Q2) | Deterministic dual-tagging (legacy CAD ↔︎ operator / DEXPI tags) with asset cross-reference |
| FR-VIS-02 | World Model | High | Q3 Target | Geo-tagged assets & images in 3D |
User stories — M4
| Story | Persona | Acceptance criteria reference (FR IDs) |
|---|---|---|
| US-M4-03 — Geo-tagged assets & imagery in 3D | Data Explorer | FR-VIS-02 |
| US-M4-05 — IDMS bidirectional integration | Integrity Engineer | FR-INT-03 |
| US-M4-06 — Partner-integrated delivery | Operations Supervisor | FR-PRT-01 |
| US-M4-08 — Click-through from 3D element to engineering identity | Integrity Engineer | FR-CAD-01, FR-CAD-07 |
| US-M4-09 — P&ID structure from a clicked asset | Integrity Engineer | FR-CAD-06 |
| US-M4-10 — Chat grounded on the 3D map | Data Explorer | FR-APP-04, FR-APP-05 |
| US-M4-11 — Multi-modal anomaly review | Integrity Engineer | FR-SCN-01, FR-SCN-02, FR-SCN-03 |
| US-M4-12 — One-click finding export | Integrity Engineer | FR-APP-06 |
| US-M4-13 — Focus the chat on an asset | Integrity Engineer | FR-APP-17 |
| US-M4-14 — Anomalies on an asset and its vicinity | Integrity Engineer | FR-APP-17 |
M5 — Engineering Context & Enterprise · Q4 2026 · 📋 Planned
24 requirements · 0 in motion.
Product gate: Engineering-context depth + enterprise readiness; Quantified Inspection Prioritization (API 581 RBI); 10 Signed Letters of Intent (LOIs); SOC 2 Type II Sign-off; First 3 Production Subscriptions; Customer Cloud Tenant Package (air-gapped: H1 2027) Technical gate: Multi-Sensor Automated Detection + Evidence-Confidence Gates (Filter Skill, Calibration, Stage 3.5, Cross-Source Correlation) + SCADA/OPC UA Connectors + IOW Checks + API 581 RBI Intervals + Solomon Benchmarking + 3D CAD Model Overlay + P&ID SQL Connector + SOC 2 Type II + Compliance Management + Customer Cloud Tenant Deployment
| FR | Capability | Priority | Status | Feature |
|---|---|---|---|---|
| FR-SEC-01 ✦ | Security & Compliance | Critical | Q4 Target | SOC 2 Type II certification |
| FR-SEC-02 | Deployment Profile | High | Q4 Target | Customer cloud tenant deployment |
| FR-SEC-03 | Security & Compliance | High | Q4 Target | Compliance management |
| FR-INT-01 | Evidence Intake | High | Q4 Target | OPC UA SCADA connector |
| FR-AI-04 | Evidence Confidence | Medium | Q4 Target | Out-of-distribution (OOD) detector update cadence — moved from Q3: verification needs a held-out campaign as OOD ground truth plus an update cycle (data-gated, same rationale as the v3.5 SCADA move) |
| FR-AI-01 ✦ | Evidence Confidence | Critical | Q4 Target | Filter Skill calibration & FNR measurement |
| FR-AI-02 | Evidence Confidence | High | Q4 Target | Confidence score calibration protocol |
| FR-AI-03 | Evidence Confidence | High | Q4 Target | Chain-level consistency gate (Stage 3.5) |
| FR-ANO-01 | Evidence Confidence | High | Q4 (research-gated) | Cross-modal anomaly detection |
| FR-XSC-01 ✦ | Evidence Confidence | Critical | Q4 Target | Cross-source correlation engine — promoted to named primitive (tag / match / score / surface) |
| FR-MDA-01 | Integrity Analytical Chain | High | Q4 Target | Solomon Associates benchmarking |
| FR-RBI-01 | Integrity Analytical Chain | High | Q4 Target | API 581 inspection interval calculation |
| FR-RBI-02 | Integrity Analytical Chain | High | Q4 Target | Equipment class boundary of automation |
| FR-INT-02 | World Model | Medium | Q4 Target | P&ID database (SQL) connector — direct read (distinct from DEXPI ingestion, FR-CAD-06) |
| FR-INT-04 | Operator Handoff | High | Q4 Target | SAP PM certified connector |
| FR-VIS-01 | World Model | Medium | Q4 Target | 3D CAD model overlay |
| FR-CAD-02 | World Model | High | Q4 Target | CAD version tracking and diff visualization |
| FR-CAD-03 | World Model | High | Q4 Target | As-built vs as-designed comparison |
| FR-CAD-04 | World Model | Medium | Q4 Target | Engineering change notification |
| FR-CAD-08 | World Model | Medium | Q4 Target | Additional CAD formats (RVT / DGN) beyond IFC4 |
| FR-XSC-02 | Evidence Confidence | High | Q4 Target | Multi-source confirmed TPR > 98% / FPR < 2% target reporting |
| FR-ANO-02 | Evidence Confidence | High | Q4 (research-gated) | Physical AI reasoning & remediation |
| FR-MDA-02 | Evidence Confidence | High | Q4 (research-gated) | Synthetic data generation |
User stories — M5
| Story | Persona | Acceptance criteria reference (FR IDs) |
|---|---|---|
| US-M5-01 — SCADA / IOW signals (read-only) | Integrity Engineer | FR-INT-01 |
| US-M5-02 — 3D CAD model overlay | Data Explorer | FR-VIS-01 |
| US-M5-03 — CAD lifecycle: diff, as-built, change | Design Engineer | FR-CAD-02, FR-CAD-03, FR-CAD-04, FR-CAD-08 |
| US-M5-04 — P&ID database (SQL) connector | Integrity Engineer | FR-INT-02 |
| US-M5-05 — Multi-source confirmed reporting | On-call Integrity Engineer | FR-XSC-01, FR-XSC-02 |
| US-M5-06 — Physical-AI reasoning to remediation | Integrity Engineer | FR-ANO-02 |
| US-M5-07 — Synthetic data for rare defects | Data Explorer | FR-MDA-02 |
| US-M5-10 — Calibrated, gated AI outputs | On-call Integrity Engineer | FR-AI-02, FR-AI-03, FR-AI-04 |
| US-M5-11 — Cross-source correlation primitive | On-call Integrity Engineer | FR-ANO-01, FR-XSC-01 |
| US-M5-12 — Grounded damage-mechanism suggestions | On-call Integrity Engineer | FR-AI-01 |
| US-M5-13 — RBI inspection intervals and scope | Integrity Engineer | FR-MDA-01, FR-RBI-01, FR-RBI-02 |
| US-M5-08 — SAP PM certified connector | Integrity Engineer | FR-INT-04 |
| US-M5-09 — Certification, compliance, and deployment profiles | Operations Supervisor | FR-NUC-01, FR-SEC-01, FR-SEC-02, FR-SEC-03 |
H1 2027 — Roadmap Horizon · H1 2027 · 📋 Directional
7 requirements · 0 in motion.
Not a committed milestone — a directional roadmap horizon (FR milestone
H1-2027); it is tracked here but absent from the canonical ledger (milestones.yaml).
| FR | Capability | Priority | Feature |
|---|---|---|---|
| FR-NUC-01 | Deployment Profile | Medium | Dose-aware inspection workflow (GI: Hazard-aware inspection workflow — dose, heat, hot/molten material, hazardous-area gas, confined space) |
| FR-NAV-01 | Evidence Intake | Medium | Full spatial navigation |
| FR-ROB-01 | Evidence Intake | High | KRSI robot ingestion adapter |
| FR-ROB-02 | Evidence Intake | High | Fixed infrastructure: navigation beacons |
| FR-ROB-03 | Evidence Intake | High | Fixed infrastructure: communication backbone |
| FR-ROB-04 | Evidence Intake | Medium | Coverage orchestration |
| FR-ROB-05 | Evidence Intake | High | Fleet intelligence analytics |
User stories — H1 2027
| Story | Persona | Acceptance criteria reference (FR IDs) |
|---|---|---|
| US-H1-01 — Autonomous robot coverage | Operations Supervisor | FR-ROB-01, FR-ROB-04, FR-ROB-05 |
| US-H1-02 — Fixed capture infrastructure | Operations Supervisor | FR-ROB-02, FR-ROB-03 |
| US-H1-03 — Full spatial navigation | Data Explorer | FR-NAV-01 |
User Stories Convention
User stories are the execution companion to the PRD. The PRD owns the what and why (the FR catalogue); user stories own the how it behaves — testable acceptance criteria organized by milestone.
Format
- Story format: As a [persona], I want [capability] so that [benefit].
- Acceptance criteria: Given / When / Then, covering the happy path, at least one error or empty state, and any negative case (“must not…”).
- Traceability: each story is tagged with its FR ID(s) and the FR’s current status, taken from PRD Appendix A.
- IDs:
US-<milestone>-<n>(e.g.US-M3-01).
Coverage convention
- Delivered foundations (M0–M2): No user stories are recorded. Delivered milestones retire to release notes per the user-stories convention. Stories are written for active/forward milestones only.
- Active and forward milestones (M3 onward): Each FR should be cited by at least one user story. Uncited FRs are flagged as a coverage gap during review.
Personas
| Persona | Who they are |
|---|---|
| Integrity Engineer (IE) | Reviews and validates findings; owns sign-off on Critical findings and Remaining Life. |
| Data Explorer (DE) | Explores datasets, imagery, and gas readings; surfaces patterns and anomalies visually. |
| On-call Integrity Engineer | Time-pressured decision-maker during shifts; needs calibrated, gated AI outputs. |
| Operations Supervisor | Oversees facility-wide inspection programs; approves coverage plans and deployment profiles. |
| Design Engineer | Works with CAD/BIM models; needs version tracking, as-built comparisons, and change notifications. |
Traceability
Requirements, user stories, and tests are linked through the functional requirement: user stories cite the FRs they depend on, and test suites cite the FRs they evidence — so story ↔︎ test coverage is derived from those two citations rather than maintained by hand. The chain from planning to implementation is:
Milestone (milestones.yaml)
│
▼
Functional Requirement (requirements.yaml)
│
▼
User Story (docs/portfolio/product/user-stories/)
│
▼
Test Registry (tests.yaml — TEST-XXX-NN)
│
▼
Implementation (test_*.py)
Every functional test suite should be registered in docs/portfolio/_data/tests.yaml and linked to a requirement via fr_ids. The full matrix — every FR with its test suites and derived user stories — is on the Test Traceability page; see the Tests Handbook for test tiers and the @pytest.mark.registry marker pattern.
Editing the Data
To add, modify, or remove a requirement, milestone, or capability:
- Edit the relevant
_data/*.yamlfile underdocs/portfolio/_data/(for a requirement or a test suite) or the relevantdocs/portfolio/product/user-stories/*.qmdfile (for a story) - Re-run the generators:
python docs/portfolio/_build/generate_requirements_review.py,python docs/portfolio/_build/generate_fr_catalogue.py,python docs/portfolio/_build/generate_user_stories_page.py, andpython docs/portfolio/_build/generate_test_traceability.py - Re-render the handbook:
npm run buildfromdocs/handbooks/
The _data/requirements.yaml file is the single source of truth for every requirement fact; the .qmd files under docs/portfolio/product/user-stories/ are the single source of truth for every story’s text; _data/tests.yaml is the single source of truth for the test-suite registry. The review sheet, the FR catalogue, the user-stories page, the test-traceability page, and this handbook only re-arrange those for readability.
FR and user-story full detail both live in this same handbook site — not on the separate Quarto portfolio site — because that Quarto book’s own chapter list only wires up m3.qmd today (see docs/portfolio/_quarto.yml), so a cross-site link to m4/m5/horizon would 404.
New FR IDs added to the milestone tables below must be wrapped as [**FR-ID**](./fr-catalogue.qmd#FR-ID) (or [`FR-ID`](./fr-catalogue.qmd#FR-ID) in an Acceptance-criteria-reference cell) so they click through to the FR catalogue entry; the FR catalogue itself is generated, but these table links are hand-maintained. Likewise, new US IDs must link to their story anchor, e.g. [**US-M3-01**](./user-stories.qmd#US-M3-01) — the anchor comes from the {#US-ID} explicit heading ID in the corresponding docs/portfolio/product/user-stories/*.qmd file, and the story’s rendering on the user-stories page comes from generate_user_stories_page.py.
Last Updated: 2026-06-29