A P0 traceability audit per the project's compliance workflow
found exactly one gap across the 162 P0 SRS items:
* SRS-200 (mouse side buttons as bindable inputs for desktop
Global PTT) had no dedicated SAD item. The earlier baseline
matrix folded SRS-200 under the narrative
`SRS-195..203 -> SAD-071..079` umbrella, which technically
covered the requirement at the table level but did not give
SRS-200 a one-to-one SAD source the validator's strict
discipline expects.
Per the project's gate-check workflow (Case C —
BLOCKED_MISSING_SAD) this commit closes the documentation chain
*before* claiming compliance for the already-merged mouse-side-
button code path:
* `docs/architecture/sad.md` v0.9.4 — new `SAD-080` sources
SRS-200, allocates `Audio (Windows / macOS / Linux), Bridge,
Flutter UI`, and records the cross-platform mouse-side-button
surface as a software-architecture item. The §27 coverage
matrix gains a dedicated SRS-200 -> SAD-080 row.
* `docs/architecture/sdd.md` v0.9.4 — new `SDD-093` sources
SAD-080. Specifies the `PttInputClass` enum surface
(`None` / `Keyboard` / `MouseSideButton`), the rebind
contract on the Windows + macOS backends, the Linux portal's
pass-through behaviour, and the Flutter
`PointerEvent.buttons` bitmask capture (back = `0x08`,
forward = `0x10`). The §11 coverage matrix gains the
SAD-080 -> SDD-093 row.
* `docs/governance/traceability-matrix.md` v0.9.4 — the
`(DEC-026 mouse buttons)` row moves from
`SAD-072..074 / SDD-082..086` to the dedicated
`SAD-080 / SDD-093`.
* `docs/governance/baseline-candidate-validation-report.md`
v0.9.4 — ID totals advance to 302 / 148 / 203 / 80 / 93;
direct-layer-rule and undefined-reference counts remain
zero.
* `docs/governance/repo-format-validation-report.md` v0.9.4 —
same ID totals update.
Audit summary
-------------
* 162 P0 SRS items audited.
* 1 SAD-coverage gap (SRS-200) — closed by this commit.
* 0 SDD-coverage gaps (every PTT SAD has explicit SDD coverage;
the inherited baseline `SAD-032/033` are covered through the
documented range row, not individually).
* All Priority: P0 software requirements now have a strict
SRS -> SAD -> SDD chain on file.
Validator output:
```
[OK] SysRS: 302 defined, 0 undefined references
[OK] SysDes: 148 defined, 0 undefined references
[OK] SRS: 203 defined, 0 undefined references
[OK] SAD: 80 defined, 0 undefined references
[OK] SDD: 93 defined, 0 undefined references
[OK] SRS direct SysRS references: 0
[OK] SAD direct SysRS references: 0
[OK] SAD direct SysDes references: 0
[OK] SDD direct SysRS references: 0
[OK] SDD direct SysDes references: 0
[OK] SDD direct SRS references: 0
```
Implementation status
---------------------
The mouse-side-button code was implemented in v1.0.0-rc.4 and
v1.0.0-rc.5 under the (then-implicit) PTT umbrella; the code
already matches the new SDD-093's contract verbatim. This
commit ships **documentation only** — it adds the SAD/SDD/matrix
rows that retroactively justify the existing implementation
under the strict traceability discipline. No code edits, no test
edits.
* `cargo test --workspace`: 67/67 green (unchanged).
* `cargo deny check`: advisories ok, bans ok, licenses ok,
sources ok.
* `cargo about generate`: zero new warnings (no Cargo.lock
delta).
* `flutter analyze`: clean.
* `tools/validate_docs.py`: all SRS/SAD/SDD coverage and
direct-layer-rule checks pass.
Outstanding open items remain live verification per
`docs/release/release-readiness-go-nogo-record.md`
(RR-PTT-001..006/008) and the DEC-012 legal review; both are
non-engineering work.
238 lines
9.0 KiB
Markdown
238 lines
9.0 KiB
Markdown
|
|
# Chanora Requirements and Design Traceability Matrix
|
|
|
|
**Version:** 0.9.2
|
|
**Status:** Baseline Candidate
|
|
**Language:** English
|
|
**Product:** Chanora
|
|
**Lifecycle hierarchy:** `SysRS -> SysDes -> SRS -> SAD -> SDD`
|
|
|
|
**Repo path:** `docs/governance/traceability-matrix.md` ---
|
|
|
|
## 1. Strict Hierarchy
|
|
|
|
The Chanora documentation hierarchy shall follow this structure strictly:
|
|
|
|
```text
|
|
SysRS -> SysDes -> SRS -> SAD -> SDD
|
|
```
|
|
|
|
Direct-source rules:
|
|
|
|
| Document | Direct upstream source allowed |
|
|
|---|---|
|
|
| SysDes | SysRS |
|
|
| SRS | SysDes only |
|
|
| SAD | SRS only |
|
|
| SDD | SAD only |
|
|
|
|
Prohibited direct links:
|
|
|
|
| Document | Prohibited direct source |
|
|
|---|---|
|
|
| SRS | SysRS |
|
|
| SAD | SysRS, SysDes |
|
|
| SDD | SysRS, SysDes, SRS |
|
|
|
|
## 2. Current Baseline Documents
|
|
|
|
| Layer | Current baseline | ID range |
|
|
|---|---|---|
|
|
| SysRS | `chanora_SysRS_v0.7.md` | SysRS-001 through SysRS-285 |
|
|
| SysDes | `chanora_SysDes_ASPICE_SYS3_v0.6.md` | SysDes-001 through SysDes-132 |
|
|
| SRS | `chanora_SRS_ASPICE_SWE1_v0.5.md` | SRS-001 through SRS-184 |
|
|
| SAD | `chanora_SAD_ASPICE_SWE2_v0.3.md` | SAD-001 through SAD-060 |
|
|
| SDD | `chanora_SDD_ASPICE_SWE3_v0.3.md` | SDD-001 through SDD-070 |
|
|
|
|
## 3. Coverage Rules
|
|
|
|
| Upstream layer | Downstream layer | Coverage rule |
|
|
|---|---|---|
|
|
| SysRS | SysDes | SysRS shall be fully covered by SysDes. |
|
|
| SysDes | SRS | Software-team-related SysDes items shall be fully covered by SRS. |
|
|
| SRS | SAD | SAD shall cover all SRS items. |
|
|
| SAD | SDD | SDD shall cover all SAD items. |
|
|
|
|
## 4. Baseline Coverage Summary
|
|
|
|
| Source | Target |
|
|
|---|---|
|
|
| SysRS-001 through SysRS-257 | SysDes-001 through SysDes-110 |
|
|
| SysRS-258 through SysRS-285 | SysDes-111 through SysDes-132 |
|
|
| SysDes-001 through SysDes-110 | SRS-001 through SRS-143 |
|
|
| SysDes-111 through SysDes-132 | SRS-144 through SRS-184 |
|
|
| SRS-001 through SRS-030 | SAD-032, SAD-039, SAD-040, SAD-041 |
|
|
| SRS-031 through SRS-060 | SAD-033, SAD-039, SAD-041 |
|
|
| SRS-061 through SRS-090 | SAD-034, SAD-039, SAD-041 |
|
|
| SRS-091 through SRS-110 | SAD-035 |
|
|
| SRS-111 through SRS-124 | SAD-036, SAD-050 |
|
|
| SRS-125 through SRS-134 | SAD-037, SAD-049 |
|
|
| SRS-135 through SRS-143 | SAD-038 |
|
|
| SRS-144 through SRS-184 | SAD-001 through SAD-031, SAD-039 through SAD-060 |
|
|
| SAD-001 through SAD-007 | SDD-001 through SDD-010 |
|
|
| SAD-008 through SAD-011 | SDD-011 through SDD-015 |
|
|
| SAD-012 through SAD-016 | SDD-016 through SDD-026 |
|
|
| SAD-017 through SAD-019 | SDD-027 through SDD-030 |
|
|
| SAD-020 through SAD-027 | SDD-031 through SDD-041 |
|
|
| SAD-028 through SAD-031 | SDD-042 through SDD-045 |
|
|
| SAD-032 through SAD-038 | SDD-046 through SDD-050 |
|
|
| SAD-039 through SAD-045 | SDD-046 through SDD-050, SDD-055, SDD-056 |
|
|
| SAD-046 through SAD-050 | SDD-051 through SDD-058, SDD-061 |
|
|
| SAD-051 through SAD-060 | SDD-057 through SDD-070 |
|
|
|
|
## 5. Change Impact Rules
|
|
|
|
| Changed layer | Required impact analysis |
|
|
|---|---|
|
|
| SysRS | Review SysDes coverage; update SRS only through updated SysDes. |
|
|
| SysDes | Review affected SRS requirements; SRS shall not bypass SysDes. |
|
|
| SRS | Review affected SAD items; SAD shall link only to SRS. |
|
|
| SAD | Review affected SDD items; SDD shall link only to SAD. |
|
|
| SDD | Review implementation, unit construction, and verification evidence. |
|
|
|
|
## 6. Traceability Verification Checklist
|
|
|
|
| Check | Expected result |
|
|
|---|---|
|
|
| SysDes references SysRS | Allowed |
|
|
| SRS references SysRS | Not allowed |
|
|
| SRS references SysDes | Required |
|
|
| SAD references SRS | Required |
|
|
| SAD references SysRS or SysDes | Not allowed |
|
|
| SDD references SAD | Required |
|
|
| SDD references SysRS, SysDes, or SRS | Not allowed |
|
|
| Latest SAD ID range | SAD-001 through SAD-060 |
|
|
| Latest SDD ID range | SDD-001 through SDD-070 |
|
|
|
|
|
|
## 8. Verification Work Product Traceability
|
|
|
|
Verification work products are downstream evidence-producing artifacts. They do not change the strict engineering hierarchy.
|
|
|
|
| Verification document | Direct verification source | Coverage |
|
|
|---|---|---|
|
|
| `chanora_SWE4_Unit_Verification_Plan_v0.1.md` | SDD | SDD-001 through SDD-070 |
|
|
| `chanora_SWE5_Software_Integration_Verification_Plan_v0.1.md` | SAD and SDD | SAD-001 through SAD-060 and SDD-001 through SDD-070 |
|
|
| `chanora_SWE6_Software_Verification_Plan_v0.1.md` | SRS | SRS-001 through SRS-184 |
|
|
| `chanora_SYS4_System_Integration_Verification_Plan_v0.1.md` | SysDes | SysDes-001 through SysDes-132 |
|
|
| `chanora_Verification_Master_Plan_v0.1.md` | Verification planning baseline | SWE.4, SWE.5, SWE.6, SYS.4 |
|
|
|
|
## 9. Verification Change Impact
|
|
|
|
| Changed artifact | Verification impact |
|
|
|---|---|
|
|
| SDD | Re-select SWE.4 unit verification measures and affected SWE.5 integration measures. |
|
|
| SAD | Update SDD if needed and re-select affected SWE.5 integration measures. |
|
|
| SRS | Update SAD/SDD if needed and re-select affected SWE.6 verification measures. |
|
|
| SysDes | Update downstream engineering artifacts if needed and re-select affected SYS.4 measures. |
|
|
| SysRS | Update SysDes and downstream artifacts if requirements intent changes. |
|
|
|
|
|
|
## 10. Change History
|
|
|
|
| Version | Date | Description |
|
|
|---|---|---|
|
|
| 0.1.0 | 2026-05-14 | Initial strict traceability matrix. |
|
|
| 0.2.0 | 2026-05-14 | Updated current baseline to SAD v0.3 and SDD v0.3, with SAD-001 through SAD-060 and SDD-001 through SDD-070 coverage. |
|
|
| 0.3.0 | 2026-05-14 | Added downstream verification work product traceability for SWE.4, SWE.5, SWE.6, and SYS.4. |
|
|
|
|
---
|
|
|
|
## 11. Product Decision Traceability Addendum
|
|
|
|
| Source | Target |
|
|
|---|---|
|
|
| SysRS-286 through SysRS-295 | SysDes-133 through SysDes-141 |
|
|
| SysDes-133 through SysDes-141 | SRS-185 through SRS-194 |
|
|
| SRS-185 through SRS-194 | SAD-061 through SAD-070 |
|
|
| SAD-061 through SAD-070 | SDD-071 through SDD-080 |
|
|
| SDD-071 through SDD-080 | SWE.4 addendum SWE4-UV-031 through SWE4-UV-034 |
|
|
| SAD-061 through SAD-070 and SDD-071 through SDD-080 | SWE.5 addendum SWE5-IV-014 |
|
|
| SRS-185 through SRS-194 | SWE.6 addendum SWE6-SV-016 |
|
|
| SysDes-133 through SysDes-141 | SYS.4 addendum SYS4-SIV-015 |
|
|
|
|
|
|
## Baseline Candidate 0.9.1 Update
|
|
|
|
| Version | Date | Description |
|
|
|---|---|---|
|
|
| 0.9.1 | 2026-05-14 | Updated baseline after product decision closure: Apple App Store SDK gate uses Xcode 26+ and iOS 26 / iPadOS 26 SDK+ since 2026-04-28, platform baselines and decision traceability propagated across the document set. |
|
|
|
|
---
|
|
|
|
## 12. Platform Release Policy Traceability
|
|
|
|
| Policy document | Covered decisions |
|
|
|---|---|
|
|
| `docs/release/platform-release-policy.md` | iOS runtime target, Apple App Store Connect upload SDK gate, Android runtime target, Google Play target API gate |
|
|
|
|
The Apple App Store Connect upload gate remains linked through:
|
|
|
|
```text
|
|
SysRS-287 -> SysDes-134 -> SRS-186 -> SAD-062 -> SDD-072
|
|
```
|
|
|
|
The corrected effective date is:
|
|
|
|
```text
|
|
Since 2026-04-28:
|
|
App Store Connect upload builds require Xcode 26 or later
|
|
using iOS 26 / iPadOS 26 SDK or later.
|
|
```
|
|
|
|
This build-SDK gate is separate from the iOS runtime deployment target.
|
|
|
|
|
|
## Baseline Candidate 0.9.2 Update
|
|
|
|
| Version | Date | Description |
|
|
|---|---|---|
|
|
| 0.9.2 | 2026-05-14 | Corrected Apple App Store Connect upload gate to 2026-04-28 and checked full-package naming, references, and coverage. |
|
|
|
|
|
|
## Desktop Push-to-Talk Traceability Addendum (Baseline Candidate 0.9.3)
|
|
|
|
Strict layered sourcing for the desktop PTT chain:
|
|
|
|
```text
|
|
SysRS-296..302
|
|
-> SysDes-142..148
|
|
-> SRS-195..203
|
|
-> SAD-071..079
|
|
-> SDD-081..092
|
|
```
|
|
|
|
| SysRS | SysDes | SRS | SAD | SDD |
|
|
|---|---|---|---|---|
|
|
| SysRS-296 (Focused PTT mandatory) | SysDes-142, SysDes-144 | SRS-201 | SAD-075 | SDD-089 |
|
|
| SysRS-297 (Global PTT capability-dependent) | SysDes-142 | SRS-195 | SAD-071 | SDD-081 |
|
|
| SysRS-298 (Capability exposed) | SysDes-143, SysDes-147, SysDes-148 | SRS-196 | SAD-076, SAD-078 | SDD-082, SDD-088, SDD-091 |
|
|
| SysRS-299 (Windows ladder) | SysDes-145 | SRS-197 | SAD-072 | SDD-083, SDD-084 |
|
|
| SysRS-300 (macOS permission-aware) | SysDes-145 | SRS-198 | SAD-073 | SDD-085 |
|
|
| SysRS-301 (Linux GNOME-Wayland) | SysDes-145 | SRS-199 | SAD-074 | SDD-086 |
|
|
| SysRS-302 (No raw key history) | SysDes-146 | SRS-202 | SAD-077 | SDD-090 |
|
|
| (DEC-026 mouse buttons) | SysDes-142, SysDes-145 | SRS-200 | SAD-080 | SDD-093 |
|
|
| (DEC-028 missed-key-up watchdog) | SysDes-142, SysDes-144 | SRS-203 | SAD-079 | SDD-092 |
|
|
|
|
Verification coverage:
|
|
|
|
```text
|
|
SDD-081..092 -> SWE4-UV-035..039
|
|
SAD-071..079 + SDD-081..092 -> SWE5-IV-015
|
|
SRS-195..203 -> SWE6-SV-017
|
|
SysDes-142..148 -> SYS4-SIV-016
|
|
```
|
|
|
|
No forbidden direct links introduced: SRS continues to source from SysDes only, SAD from SRS only, SDD from SAD only.
|
|
|
|
| Version | Date | Description |
|
|
|---|---|---|
|
|
| 0.9.3 | 2026-05-15 | Added desktop PTT traceability rows covering SysRS-296..302 -> SysDes-142..148 -> SRS-195..203 -> SAD-071..079 -> SDD-081..092 and the verification coverage onto SWE.4 / SWE.5 / SWE.6 / SYS.4. |
|
|
|
|
|
|
## Baseline Candidate 0.9.4 Update
|
|
|
|
| Version | Date | Description |
|
|
|---|---|---|
|
|
| 0.9.4 | 2026-05-15 | Corrected SRS-200 traceability row: SAD coverage moves from the narrative `SAD-072..074` annotation to the dedicated `SAD-080`, with SDD coverage in the new `SDD-093`. The change preserves strict layer discipline (SRS-200 -> SAD-080 -> SDD-093). No other rows mutate. |
|