Files
chanora/docs/governance/baseline-candidate-validation-report.md
T
EdisonJwa 02ffadfa52 docs(ptt): land Baseline Candidate v0.9.3 — capability-based desktop PTT
Applies the gen2 desktop-PTT review summary
(`gen2/chanora-desktop-ptt-review-summary-v0.9.2.md`) to our doc set
with the owner rulings PTT-OPEN-001 through PTT-OPEN-006 resolved as
accepted decisions DEC-023 through DEC-028:

  * DEC-023 Windows Global PTT P0 / MVP
  * DEC-024 macOS Global PTT P0 / MVP with permission UX
  * DEC-025 Linux officially-tested env: GNOME on Wayland only
  * DEC-026 Mouse side buttons supported (Win + macOS; Linux portal)
  * DEC-027 PTT diagnostics: capability + availability only, no
            raw key codes ever
  * DEC-028 Missed-key-up watchdog: P0

Requirements (SysRS / SRS) and architecture (SysDes / SAD / SDD)
gain the desktop-PTT ID set the gen2 summary describes:

  SysRS-296..302  -> SysDes-142..148
                  -> SRS-195..203
                  -> SAD-071..079
                  -> SDD-081..092

ID totals advance from 295 / 141 / 194 / 70 / 80 to 302 / 148 / 203
/ 79 / 92. The strict layered sourcing rule (`SRS -> SysDes` only,
`SAD -> SRS` only, `SDD -> SAD` only) is preserved; the
`tools/validate_docs.py` validator reports zero undefined refs and
zero direct-layer-rule violations.

New document:

  * `docs/architecture/desktop-ptt-architecture.md` — capability
    ladder (L0Focused, L1GlobalShortcut, L2GlobalHoldToTalk,
    L3GlobalWithMouseButtons, L4DeviceAware reserved), Windows /
    macOS / Linux strategies, privacy rule, audio-gate rule,
    missed-key-up watchdog, release-readiness evidence requirement,
    traceability summary.

Doc addenda (Baseline Candidate 0.9.3):

  * `privacy/privacy-policy.md` — no raw key history, capability-
    dependent Global PTT, UI reflects actual runtime capability
  * `security/threat-model.md` — THREAT-PTT-001..006
  * `security/diagnostic-redaction-audit-report.md` —
    REDACT-PTT-001..006 banned field list enforced by `PttSanitizer`
  * `release/platform-release-policy.md` — per-platform evidence
    fields, no over-claim on untested Linux compositors
  * `release/release-readiness-go-nogo-record.md` — RR-PTT-001..008
    release-readiness items
  * `verification/swe4-unit-verification-plan.md` —
    SWE4-UV-035..039
  * `verification/swe5-software-integration-verification-plan.md` —
    SWE5-IV-015
  * `verification/swe6-software-verification-plan.md` — SWE6-SV-017
  * `verification/sys4-system-integration-verification-plan.md` —
    SYS4-SIV-016
  * `governance/traceability-matrix.md` — full PTT trace rows +
    verification map
  * `governance/decision-impact-assessment.md` — DEC-023..028
    impact matrix
  * `governance/product-decision-register.md` v0.9.9 entry
    recording DEC-023..028 in the decision table and the status
    table at §7
  * `governance/document-index.md` — adds
    `desktop-ptt-architecture.md` to the controlled set
  * `architecture/proof-of-concept-plan.md` —
    PoC-PTT-001..005 platform items
  * `references/external-references.md` — Windows Raw Input,
    macOS event-tap, Linux GlobalShortcuts portal references
  * Both validation reports
    (`baseline-candidate-validation-report.md`,
    `repo-format-validation-report.md`) bumped to v0.9.3 with the
    new ID totals (302 / 148 / 203 / 79 / 92).

README §"Desktop Push-to-Talk" added between Architecture Overview
and Repository Layout: capability levels, per-platform strategy,
privacy posture, missed-key-up watchdog.

Tooling:

  * `tools/validate_docs.py` copied from the gen2 zip into the
    repo tree (was previously available only inside the zip).
    Reports zero undefined refs, zero direct-layer-rule violations,
    English-only CJK check passes. The 35 "old package-style
    filename" hits are pre-existing and identical to the gen2
    baseline (they live in `path-migration-map.md` and config-ID
    headers of governance docs and are intentional per the path
    migration policy).
  * `.gitignore` adds `/gen2/` so the externally-provided review
    package does not enter the repo.

No code changes in this commit; B (the implementation split into
`transmit_active` / `capture_active`, `PttCapabilityLevel`
reporting, `PttSanitizer` diagnostics rule, and the UI capability
badge) follows in a separate commit.
2026-05-15 14:51:22 +08:00

3.2 KiB

Cfg Baseline Candidate Validation Report

Document type: Configuration / Validation Report
Version: 0.9.3
Status: Baseline Candidate
Language: English
Product: Chanora
Repo path: docs/governance/baseline-candidate-validation-report.md ---

1. Package

chanora-docs-repo-format-v0.9.3

2. File Count

Type Count
Markdown files 37 (added docs/architecture/desktop-ptt-architecture.md)

3. Defined ID Counts

ID family Defined IDs
SysRS 302
SysDes 148
SRS 203
SAD 79
SDD 92

4. Undefined Reference Check

ID family Undefined references
SysRS 0
SysDes 0
SRS 0
SAD 0
SDD 0

5. Direct-Layer Rule Check

Rule Result
SRS direct SysRS references 0
SAD direct SysRS references 0
SAD direct SysDes references 0
SDD direct SysRS references 0
SDD direct SysDes references 0
SDD direct SRS references 0

6. Language Check

Check Result
CJK characters in en-only doc set 0

(Localised user-facing strings in apps/chanora_flutter/lib/l10n/app_zh.arb are out of scope of this report per DEC-015.)

7. Apple Gate Coverage Check

Item Coverage
Runtime deployment target iOS 13+ remains separate runtime policy
App Store Connect upload SDK gate Xcode 26+ and iOS 26 / iPadOS 26 SDK+ for upload on or after 2026-04-28
Link chain SysRS-287 -> SysDes-134 -> SRS-186 -> SAD-062 -> SDD-072
Internal Alpha / local development distinction Captured in Platform Release Policy
TestFlight / App Store upload distinction Captured in Platform Release Policy

8. Desktop Push-to-Talk Coverage Check

Item Coverage
Focused PTT mandatory on Win / macOS / Linux SysRS-296 -> SysDes-142, SysDes-144 -> SRS-201 -> SAD-075 -> SDD-089
Global PTT capability-dependent SysRS-297 -> SysDes-142 -> SRS-195 -> SAD-071 -> SDD-081
Capability exposed to UI + release record SysRS-298 -> SysDes-143/147/148 -> SRS-196 -> SAD-076/078 -> SDD-082/088/091
Windows ladder SysRS-299 -> SysDes-145 -> SRS-197 -> SAD-072 -> SDD-083/084
macOS permission-aware SysRS-300 -> SysDes-145 -> SRS-198 -> SAD-073 -> SDD-085
Linux GNOME-Wayland portal SysRS-301 -> SysDes-145 -> SRS-199 -> SAD-074 -> SDD-086
No raw key history in diagnostics SysRS-302 -> SysDes-146 -> SRS-202 -> SAD-077 -> SDD-090
Mouse side buttons (DEC-026) SRS-200 -> SAD-072/073/074 -> SDD-083/085/086
Missed-key-up watchdog (DEC-028) SRS-203 -> SAD-079 -> SDD-092
Owner-resolved review questions PTT-OPEN-001..006 DEC-023..028 in product-decision-register.md

9. Change History

Version Date Description
0.9.2 2026-05-14 Validation report for Apple App Store Connect upload SDK gate correction, full file update, and coverage check.
0.9.3 2026-05-15 Validation report for desktop Push-to-Talk update: added 7 SysRS / 7 SysDes / 9 SRS / 9 SAD / 12 SDD entries, added desktop-ptt-architecture.md, recorded six new owner decisions DEC-023..028; ID totals advance to 302 / 148 / 203 / 79 / 92; direct-layer rule and undefined-reference counts remain zero.