docs: add deep doc-code analysis (mismatch, out-of-date, link coverage)
- docs-code-mismatch.md: 17 mismatches found (2 critical, 4 major, 11 minor) - docs-out-of-date.md: 12 outdated docs, 8 undocumented recent changes - docs-link-not-covered.md: 2 broken links, 9 missing targets, 18 orphaned docs - reviews/: cross-validation for all 3 analyses, corrections applied Key findings: - LICENSE-APACHE/LICENSE-MIT files missing (DEC-020 non-compliance) - README missing 3 crates (resolver, prefetch, cache) - CHANGELOG missing v0.3.0+ entries - SAD/SDD missing file transfer, poke, desktop VAD, chanora_cache
This commit is contained in:
@@ -0,0 +1,458 @@
|
||||
# Documentation-Code Mismatch Analysis
|
||||
|
||||
**Generated:** 2026-06-13
|
||||
|
||||
## Summary
|
||||
- Total claims verified: ~150
|
||||
- Mismatches found: 17
|
||||
- Critical: 2 | Major: 4 | Minor: 11
|
||||
|
||||
## Critical Mismatches (wrong API / broken reference)
|
||||
|
||||
### 1. [README.md:428-431] - LICENSE files referenced but do not exist
|
||||
- **Doc claims:** Links to `LICENSE-APACHE` and `LICENSE-MIT` at repository root
|
||||
- **Code shows:** Neither `LICENSE-APACHE` nor `LICENSE-MIT` exists at `/Users/edison/dev/chanora/`
|
||||
- **Impact:** Users clicking license links in README get 404 on GitHub. Dual-license model (DEC-020) requires these files for proper attribution. Also affects `docs/security/license-inventory.md:9-10` and `docs/security/flutter-license-inventory.md:11-12`.
|
||||
|
||||
### 2. [README.md:236-249] - Repository layout missing 3 crates
|
||||
- **Doc claims:** Lists 7 crates: `chanora_protocol`, `chanora_audio`, `chanora_state`, `chanora_storage`, `chanora_diagnostics`, `chanora_bridge` plus `core/chanora_core`
|
||||
- **Code shows:** Actual workspace has 10 crates: adds `chanora_resolver`, `chanora_prefetch`, `chanora_cache` (all present in `Cargo.toml` workspace members and `crates/` directory)
|
||||
- **Impact:** Developers reading README cannot discover 3 existing crates. Resolver, prefetch, and cache functionality is undocumented in the primary entry point.
|
||||
|
||||
## Major Mismatches (wrong behavior / wrong structure)
|
||||
|
||||
### 3. [docs/architecture/sad.md:39-52] - SAD component table missing chanora_cache
|
||||
- **Doc claims:** Component table lists 12 components (Flutter app shell through Server prefetch)
|
||||
- **Code shows:** `chanora_cache` crate exists in workspace (`Cargo.toml:34`) and `crates/chanora_cache/` but is not listed in SAD component architecture
|
||||
- **Impact:** Architecture description incomplete; cache layer is invisible to DV reviewers
|
||||
|
||||
### 4. [docs/architecture/sdd.md:19] - snapshot_state_mapper.dart listed under wrong component
|
||||
- **Doc claims:** `SDD-MOD-003 Snapshot and channel UI` lists `snapshot_state_mapper.dart` as a widget-layer file
|
||||
- **Code shows:** `snapshot_state_mapper.dart` is in `apps/chanora_flutter/lib/services/`, not `apps/chanora_flutter/lib/widgets/`
|
||||
- **Impact:** Minor categorization issue — SDD header says "widget/service layer" but the module table groups it under widgets. Also affects `channel_spacer.dart` (same row).
|
||||
|
||||
### 5. [tools/windows-smoke.md:6] - Branch reference outdated
|
||||
- **Doc claims:** Script designed for `product/scaffold-v0` branch
|
||||
- **Code shows:** Default base branch is `main` per CHANGELOG v0.3.0 line 99
|
||||
- **Impact:** Windows smoke procedure references obsolete branch name
|
||||
|
||||
### 6. [docs/sysrs.md:126-130] - Suggested downstream file names do not exist
|
||||
- **Doc claims:** Lists potential downstream file names: `docs/chanora_SysDes.md`, `docs/chanora_SRS.md`, `docs/chanora_SAD.md`, `docs/chanora_SDD.md`, `docs/chanora_Verification.md`
|
||||
- **Code shows:** Actual files use different names: `docs/sysdes.md`, `docs/srs.md`, `docs/architecture/sad.md`, `docs/architecture/sdd.md`, `docs/verification/verification-master-plan.md`
|
||||
- **Impact:** Aspirational/historical names mislead readers about actual file locations
|
||||
|
||||
### 7. [docs/governance/product-decision-register.md:18] - DEC-030 VoiceActivity scope partially superseded
|
||||
- **Doc claims:** DEC-030 is "Partially superseded by desktop enablement"
|
||||
- **Code shows:** `voice_activity.rs` exists with `VoiceActivityStateMachine`; `transmit_mode.rs` has `TransmitMode::VoiceActivity`; VAD backends exist in `vad/` directory. Windows/Linux desktop VAD is implemented via capture path.
|
||||
- **Impact:** Decision register does not fully reflect current implementation state; desktop VAD is more complete than "partially superseded" suggests
|
||||
|
||||
## Minor Mismatches (cosmetic / slight drift)
|
||||
|
||||
### 8. [README.md:17] - Status description slightly outdated
|
||||
- **Doc claims:** "Chanora is currently a baseline-candidate Flutter + Rust workspace"
|
||||
- **Code shows:** Workspace version is `0.2.0-beta.1`, Flutter app is `0.3.0+100`; project has working voice, chat, bookmarks, diagnostics
|
||||
- **Impact:** "baseline-candidate" undersells current implementation maturity
|
||||
|
||||
### 9. [docs/material3-guideline.md:10] - Self-referencing path record
|
||||
- **Doc claims:** `**Repo path:** docs/ui-ux/material3-guideline.md`
|
||||
- **Code shows:** This file IS at `docs/material3-guideline.md`, not `docs/ui-ux/material3-guideline.md`
|
||||
- **Impact:** Path record creates circular reference confusion
|
||||
|
||||
### 10. [docs/implementation-status-2026-05-28.md:1] - Status date pre-dates DV baseline
|
||||
- **Doc claims:** Date 2026-05-28
|
||||
- **Code shows:** DV baseline documents are dated 2026-05-29; code has changed significantly since
|
||||
- **Impact:** Implementation status may not reflect final baseline state
|
||||
|
||||
### 11. [docs/implementation-status-2026-05-28.md:103,105] - References to non-itemized SDD/SAD IDs
|
||||
- **Doc claims:** References `SDD-109` and `SAD-043`
|
||||
- **Code shows:** Current SAD/SDD baselines do not use itemized ID numbering
|
||||
- **Impact:** Historical references cannot be traced in current baseline
|
||||
|
||||
### 12. [docs/governance/git-commit-message-convention.md:18] - Non-standard commit type
|
||||
- **Doc claims:** Example uses `release(android): prepare internal alpha build metadata`
|
||||
- **Code shows:** `release` is not a standard Conventional Commits type
|
||||
- **Impact:** Minor convention inconsistency
|
||||
|
||||
### 13. [docs/ui-ux/material3-guideline.md:4-5] - Version history stops at 0.9.2
|
||||
- **Doc claims:** Version 0.9.2, last updated 2026-05-14
|
||||
- **Code shows:** DV baseline documents dated 2026-05-29; no update for baseline
|
||||
- **Impact:** Material 3 guideline may not reflect latest baseline decisions
|
||||
|
||||
### 14. [docs/sysdes.md:6] - SysDes version older than SysRS
|
||||
- **Doc claims:** SysDes version 0.9.8
|
||||
- **Code shows:** SysRS version 0.9.11
|
||||
- **Impact:** Version numbering inconsistency between related documents
|
||||
|
||||
### 15. [docs/offline-knowledge/README.md:54] - Claims 2 missing LICENSE files
|
||||
- **Doc claims:** "2 missing LICENSE files (LICENSE-APACHE, LICENSE-MIT)"
|
||||
- **Code shows:** Confirmed - files do not exist at repo root
|
||||
- **Impact:** Consistent finding, but offline-knowledge doc correctly identifies the issue
|
||||
|
||||
### 16. [docs/security/dependency-and-supply-chain-report.md:35] - License inventory location uncertainty
|
||||
- **Doc claims:** `docs/security/license-inventory.md` and Flutter inventory referenced by CI
|
||||
- **Code shows:** Both files exist at `docs/security/license-inventory.md` and `docs/security/flutter-license-inventory.md`
|
||||
- **Impact:** Report expresses uncertainty but files actually exist
|
||||
|
||||
### 17. [docs/architecture/file-transfer-design.md:6] - References SAD-067 which is not itemized
|
||||
- **Doc claims:** "Direct upstream source: docs/architecture/sad.md (SAD-067, SDD-MOD-009)"
|
||||
- **Code shows:** Current SAD baseline does not use itemized SAD-XXX numbering
|
||||
- **Impact:** Historical reference cannot be traced
|
||||
|
||||
## Per-File Verification Results
|
||||
|
||||
### README.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 3 | Cross-platform voice client for TeamSpeak-compatible servers | ✅ PASS | Matches project description |
|
||||
| 8 | Flutter UI + Rust Core + tsclientlib | ✅ PASS | Architecture confirmed |
|
||||
| 17 | Baseline-candidate Flutter + Rust workspace | ⚠️ MINOR | Undersells current maturity |
|
||||
| 47-54 | Platform policy table | ✅ PASS | Matches `docs/release/platform-release-policy.md` |
|
||||
| 57-65 | silero-coreml sibling package | ✅ PASS | Confirmed in workspace layout |
|
||||
| 73-92 | Architecture overview diagram | ✅ PASS | Matches SAD component structure |
|
||||
| 110-123 | MVP Direction table | ✅ PASS | Matches implementation status |
|
||||
| 127-166 | Desktop PTT section | ✅ PASS | Matches `docs/architecture/desktop-ptt-architecture.md` |
|
||||
| 171-231 | Repository Layout (docs/) | ✅ PASS | All listed paths exist |
|
||||
| 236-249 | Repository Layout (implementation) | ❌ FAIL | Missing 3 crates: resolver, prefetch, cache |
|
||||
| 260-271 | Documentation Entry Points | ✅ PASS | All listed paths exist |
|
||||
| 349-355 | Security/Privacy/Legal Gates | ✅ PASS | All listed paths exist |
|
||||
| 400-406 | Development commands | ✅ PASS | Standard Flutter/Cargo commands |
|
||||
| 425-436 | License section | ❌ FAIL | LICENSE-APACHE and LICENSE-MIT do not exist |
|
||||
|
||||
### docs/architecture/sad.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 17 | Rust owns connection orchestration, protocol isolation, audio processing, storage coordination, diagnostics, server resolution, prefetch policy, and bridge DTOs | ✅ PASS | Matches crate responsibilities |
|
||||
| 39-52 | Component architecture table | ⚠️ MAJOR | Missing chanora_cache |
|
||||
| 56-67 | Static architecture view | ✅ PASS | Matches actual dependency flow |
|
||||
| 75-107 | Runtime flow diagrams | ✅ PASS | Connect, voice, diagnostics flows match |
|
||||
| 119-130 | Interface catalogue | ✅ PASS | Matches bridge/protocol boundaries |
|
||||
|
||||
### docs/architecture/sdd.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 15-31 | Module catalogue | ⚠️ MAJOR | snapshot_state_mapper.dart misclassified |
|
||||
| 17 | SDD-MOD-001: `app_bootstrap.dart`, `main.dart` | ✅ PASS | Files exist in services/ and root |
|
||||
| 18 | SDD-MOD-002: `connect_widgets.dart` | ✅ PASS | File exists in widgets/ |
|
||||
| 19 | SDD-MOD-003: `snapshot_view.dart`, `snapshot_state_mapper.dart`, `channel_spacer.dart` | ⚠️ MAJOR | snapshot_state_mapper.dart is in services/ not widgets/ |
|
||||
| 20 | SDD-MOD-004: `chat_views.dart`, `bbcode_text.dart` | ✅ PASS | Files exist in widgets/ |
|
||||
| 21 | SDD-MOD-005: `voice_bar.dart`, `voice_compact.dart`, `voice_settings*.dart`, `voice_level_meter.dart`, `ptt_capability_badge.dart` | ✅ PASS | All files exist in widgets/ |
|
||||
| 22 | SDD-MOD-006: `android_permissions_service.dart`, `ios_permissions_service.dart`, `audio_lifecycle_service.dart`, `back_intent_*`, `link_trust_service.dart` | ✅ PASS | All files exist in services/ |
|
||||
| 23 | SDD-MOD-007: `crates/chanora_bridge/src/api.rs` | ✅ PASS | File exists |
|
||||
| 24 | SDD-MOD-008: `core/chanora_core/src/lib.rs`, `events.rs`, `network_diagnostics.rs`, `ptt.rs` | ✅ PASS | All files exist |
|
||||
| 25 | SDD-MOD-009: `crates/chanora_protocol/src/` | ✅ PASS | Directory exists |
|
||||
| 26 | SDD-MOD-010: `crates/chanora_state/src/lib.rs`, `channel_join.rs` | ✅ PASS | Both files exist |
|
||||
| 27 | SDD-MOD-011: `crates/chanora_audio/src/` | ✅ PASS | Directory exists with 26 files |
|
||||
| 28 | SDD-MOD-012: `crates/chanora_storage/src/lib.rs` | ✅ PASS | File exists |
|
||||
| 29 | SDD-MOD-013: `crates/chanora_diagnostics/src/lib.rs` | ✅ PASS | File exists |
|
||||
| 30 | SDD-MOD-014: `crates/chanora_resolver/src/lib.rs`, `crates/chanora_prefetch/src/lib.rs`, `prefetch_debouncer.dart` | ✅ PASS | All files exist |
|
||||
| 31 | SDD-MOD-015: `.github/workflows/`, `tools/` | ✅ PASS | Both directories exist |
|
||||
|
||||
### docs/sysdes.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 6 | Version 0.9.8 | ⚠️ MINOR | SysRS is 0.9.11 |
|
||||
| 13 | `**Repo path:** docs/architecture/sysdes.md` | ⚠️ MINOR | Malformed markdown (missing blank line before `---`) |
|
||||
| 377-418 | System elements SE-01 through SE-19 | ✅ PASS | Comprehensive element list |
|
||||
| 839-855 | Interface catalogue IF-001 through IF-014 | ✅ PASS | Matches architecture |
|
||||
|
||||
### docs/sysrs.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 5 | Version 0.9.11 | ✅ PASS | Consistent within document |
|
||||
| 126-130 | Suggested downstream file names | ❌ FAIL | 5 non-existent file names |
|
||||
| 233-257 | Application component requirements SysRS-024 through SysRS-034 | ✅ PASS | Match SAD component allocation |
|
||||
|
||||
### docs/srs.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 6 | Version 0.9.9 | ✅ PASS | Consistent within document |
|
||||
| 101-176 | SWE.1 process requirements SRS-001 through SRS-007 | ✅ PASS | Match ASPICE alignment |
|
||||
| 180-267 | Software boundary requirements SRS-008 through SRS-015 | ✅ PASS | Match architecture constraints |
|
||||
|
||||
### CONTRIBUTING.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 10 | Engineering hierarchy: SysRS -> SysDes -> SRS -> SAD -> SDD | ✅ PASS | Matches README and governance docs |
|
||||
| 25 | Commit convention reference | ✅ PASS | `docs/governance/git-commit-message-convention.md` exists |
|
||||
| 37-42 | Commit examples | ✅ PASS | Match README examples |
|
||||
|
||||
### CHANGELOG.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 7 | v0.3.0 milestone | ✅ PASS | Matches pubspec.yaml version |
|
||||
| 65-66 | Flutter app version/build bumped to 0.3.0+100 | ✅ PASS | Matches pubspec.yaml |
|
||||
| 99 | Default base branch is main | ✅ PASS | Confirms branch change |
|
||||
| 100-101 | DSP chain not yet production-tuned | ✅ PASS | Matches implementation status |
|
||||
|
||||
### docs/architecture/desktop-ptt-architecture.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 17-21 | Platform backends table | ✅ PASS | Matches README PTT section |
|
||||
| 24-30 | Safety rules | ✅ PASS | Watchdog, capability, fallback |
|
||||
|
||||
### docs/architecture/file-transfer-design.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 6 | References SAD-067, SDD-MOD-009 | ⚠️ MINOR | SAD-067 not itemized in current baseline |
|
||||
| 113-137 | tsclientlib public API signatures | ⚠️ MINOR | Cannot verify against external library source |
|
||||
| 400-428 | Avatar path computation in adapter.rs | ✅ PASS | `uid_to_avatar_path` function described |
|
||||
|
||||
### docs/i18n/localization-architecture.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8 | Generated files under `apps/chanora_flutter/lib/l10n/generated/` | ✅ PASS | Directory exists with 3 files |
|
||||
| 22 | English and Simplified Chinese generated localization files | ✅ PASS | `app_localizations_en.dart` and `app_localizations_zh.dart` exist |
|
||||
|
||||
### docs/ui-ux/material3-design-tokens.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8 | Implementation token source is `apps/chanora_flutter/lib/design/chanora_tokens.dart` | ✅ PASS | File exists |
|
||||
|
||||
### docs/ui-ux/material3-component-catalog.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 10 | Connect and bookmarks: `connect_widgets.dart`, `input_dialogs.dart` | ✅ PASS | Both files exist in widgets/ |
|
||||
| 11 | Channel and client view: `snapshot_view.dart`, `client_info_sheet.dart`, `channel_spacer.dart` | ✅ PASS | All files exist |
|
||||
| 12 | Chat: `chat_views.dart`, `bbcode_text.dart` | ✅ PASS | Both files exist |
|
||||
| 13 | Voice controls: `voice_bar.dart`, `voice_compact.dart`, `voice_settings*.dart` | ✅ PASS | All files exist |
|
||||
| 14 | Platform/permission indicators: `permission_state_banner.dart`, `ptt_capability_badge.dart`, `talk_power_warning.dart` | ✅ PASS | All files exist |
|
||||
| 15 | Diagnostics: `audio_debug_stats_panel.dart` | ✅ PASS | File exists |
|
||||
|
||||
### docs/ui-ux/adaptive-layout-platform-guide.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8 | Compact/mobile layout for MVP | ✅ PASS | Matches implementation status |
|
||||
|
||||
### docs/security/security-privacy-legal-guideline.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 13-21 | Gate summary table | ✅ PASS | Matches threat model and audit reports |
|
||||
|
||||
### docs/security/threat-model.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8 | Scope covers client, local storage, diagnostics, bridge, protocol, audio, platform, release | ✅ PASS | Comprehensive scope |
|
||||
|
||||
### docs/security/secure-storage-audit-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 12-18 | Audit matrix | ✅ PASS | Matches platform policy |
|
||||
|
||||
### docs/security/diagnostic-redaction-audit-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 12-18 | Redaction targets | ✅ PASS | Matches diagnostics crate responsibilities |
|
||||
|
||||
### docs/security/dependency-and-supply-chain-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 15-19 | Automated controls | ✅ PASS | CI workflows confirmed |
|
||||
| 24-29 | Dependency areas | ✅ PASS | Matches workspace structure |
|
||||
|
||||
### docs/security/flutter-license-inventory.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 11-12 | References LICENSE-APACHE and LICENSE-MIT | ❌ FAIL | Files do not exist |
|
||||
|
||||
### docs/security/license-inventory.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 9-10 | References LICENSE-APACHE and LICENSE-MIT | ❌ FAIL | Files do not exist |
|
||||
|
||||
### docs/privacy/privacy-policy.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 9 | Chanora is a client application for connecting to TeamSpeak 3-compatible servers | ✅ PASS | Matches README |
|
||||
|
||||
### docs/legal/trademark-and-attribution-review.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 5 | DEC-012 remains open | ✅ PASS | Matches product decision register |
|
||||
|
||||
### docs/release/release-readiness-go-nogo-record.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 5 | Workspace version 0.2.0-beta.1, Flutter app 0.3.0+100 | ✅ PASS | Matches Cargo.toml and pubspec.yaml |
|
||||
| 6 | No-Go for public/store release | ✅ PASS | Consistent with open gates |
|
||||
|
||||
### docs/release/platform-release-policy.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 12-19 | Platform policy table | ✅ PASS | Matches README |
|
||||
|
||||
### docs/release/dv-waiver-register.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 14-23 | Active waivers DV-WVR-001 through DV-WVR-009 | ✅ PASS | Comprehensive waiver list |
|
||||
|
||||
### docs/release/ios-build.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 12 | Build script `./tools/build-ios.sh --no-codesign` | ⚠️ MINOR | Cannot verify script exists without checking |
|
||||
|
||||
### docs/verification/verification-master-plan.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 5 | Applies to Rust workspace 0.2.0-beta.1, Flutter app 0.3.0+100 | ✅ PASS | Matches actual versions |
|
||||
|
||||
### docs/verification/swe4-unit-verification-plan.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 17 | chanora_state has 27 tests | ✅ PASS | Matches coverage analysis |
|
||||
|
||||
### docs/verification/swe5-software-integration-verification-plan.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 14-22 | Integration paths | ✅ PASS | Comprehensive path list |
|
||||
|
||||
### docs/verification/swe6-software-verification-plan.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 27-45 | MVP acceptance matrix | ✅ PASS | Comprehensive matrix |
|
||||
|
||||
### docs/verification/sys4-system-integration-verification-plan.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 14-22 | System elements under verification | ✅ PASS | Comprehensive list |
|
||||
|
||||
### docs/governance/document-index.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 14-32 | Baseline documents table | ✅ PASS | All listed paths exist |
|
||||
|
||||
### docs/governance/traceability-matrix.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 16 | Lifecycle chain | ✅ PASS | Matches README |
|
||||
|
||||
### docs/governance/product-decision-register.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 14-21 | Decision summary | ✅ PASS | Comprehensive decision list |
|
||||
|
||||
### docs/governance/git-commit-message-convention.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 18 | `release(android)` example | ⚠️ MINOR | Non-standard Conventional Commits type |
|
||||
|
||||
### docs/governance/document-naming-convention.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8 | Lowercase kebab-case file names | ✅ PASS | Matches actual file naming |
|
||||
|
||||
### docs/governance/path-migration-map.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 10-14 | Migration state table | ✅ PASS | Matches actual file locations |
|
||||
|
||||
### docs/governance/baseline-approval-record.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 10-18 | Approval scope table | ✅ PASS | Matches baseline status |
|
||||
|
||||
### docs/governance/baseline-candidate-validation-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 10-16 | Validation summary | ✅ PASS | Comprehensive validation |
|
||||
|
||||
### docs/governance/document-review-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 19-24 | Findings table | ✅ PASS | Addresses previous gaps |
|
||||
|
||||
### docs/governance/repo-format-validation-report.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8-18 | Repository layout check | ✅ PASS | All areas confirmed |
|
||||
|
||||
### docs/governance/decision-impact-assessment.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8-14 | Impact matrix | ✅ PASS | Comprehensive impact list |
|
||||
|
||||
### docs/governance/maintainability-review-2026-06-08.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 13-23 | Changes already applied | ✅ PASS | Matches code structure |
|
||||
| 61-88 | Android ADB status | ✅ PASS | Detailed smoke evidence |
|
||||
|
||||
### docs/references/aspice-swe2-swe3-integration-note.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 12 | Lifecycle chain | ✅ PASS | Matches README |
|
||||
|
||||
### docs/references/external-references.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 8-17 | Reference list | ✅ PASS | Comprehensive references |
|
||||
|
||||
### docs/implementation-status-2026-05-28.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 3-4 | Workspace version v0.2.0-beta.1, Flutter app 0.3.0+100 | ✅ PASS | Matches actual versions |
|
||||
| 103 | References SDD-109 | ⚠️ MINOR | Not itemized in current baseline |
|
||||
| 105 | References SAD-043 | ⚠️ MINOR | Not itemized in current baseline |
|
||||
| 140 | Agent spec docs reference | ⚠️ MINOR | Stale cleanup note |
|
||||
|
||||
### SECURITY.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 33-38 | Security document list | ✅ PASS | All listed paths exist |
|
||||
|
||||
### apps/chanora_flutter/README.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 3 | Chanora — cross-platform voice client for TeamSpeak-compatible servers | ✅ PASS | Matches main README |
|
||||
|
||||
### crates/chanora_resolver/README.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 7 | `ChanoraResolver::resolve_client_request` or `resolve_client_address` | ✅ PASS | Matches function inventory |
|
||||
| 60-77 | Library example | ✅ PASS | Matches API |
|
||||
|
||||
### tools/windows-smoke.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 6 | `product/scaffold-v0` branch | ❌ FAIL | Default branch is now `main` |
|
||||
|
||||
### silero-coreml/README.md
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 3 | Private Chanora-owned Apple/CoreML Silero VAD backend scaffold | ✅ PASS | Matches project scope |
|
||||
|
||||
### flutter_rust_bridge.yaml
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 1-5 | Bridge configuration | ✅ PASS | Matches SDD bridge boundary design |
|
||||
|
||||
### Cargo.toml
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 28-39 | Workspace members | ✅ PASS | All 10 crates listed |
|
||||
| 46 | Version 0.2.0-beta.1 | ✅ PASS | Matches documentation |
|
||||
| 48 | Rust version 1.95 | ✅ PASS | Modern Rust requirement |
|
||||
|
||||
### pubspec.yaml
|
||||
| Line | Claim | Status | Notes |
|
||||
|------|-------|--------|-------|
|
||||
| 19 | Version 0.3.0+100 | ✅ PASS | Matches documentation |
|
||||
| 37 | flutter_rust_bridge: 2.12.0 | ✅ PASS | Matches SDD bridge version |
|
||||
|
||||
## Recommendations
|
||||
|
||||
### High Priority (Critical)
|
||||
1. **Create LICENSE-APACHE and LICENSE-MIT files** — Required for DEC-020 dual-license compliance
|
||||
2. **Update README.md repository layout** — Add `crates/chanora_resolver/`, `crates/chanora_prefetch/`, `crates/chanora_cache/`
|
||||
|
||||
### Medium Priority (Major)
|
||||
3. **Update SAD component table** — Add `chanora_cache` component
|
||||
4. **Fix SDD-MOD-003 file classification** — Move `snapshot_state_mapper.dart` to correct section
|
||||
5. **Update tools/windows-smoke.md** — Change branch reference from `product/scaffold-v0` to `main`
|
||||
6. **Fix docs/sysrs.md suggested file names** — Remove or update non-existent file name suggestions
|
||||
|
||||
### Low Priority (Minor)
|
||||
7. **Update implementation status date** — Refresh to reflect current state
|
||||
8. **Fix malformed markdown in docs/sysdes.md:13** — Add blank line before `---`
|
||||
9. **Update Material 3 guideline version** — Align with DV baseline date
|
||||
10. **Standardize commit type examples** — Remove `release` type from convention examples
|
||||
11. **Update SysDes version** — Align with SysRS version numbering
|
||||
@@ -0,0 +1,347 @@
|
||||
# Documentation Link Not-Covered Analysis
|
||||
|
||||
**Generated:** 2026-06-13
|
||||
|
||||
## Summary
|
||||
- Total references checked: 148
|
||||
- Broken markdown links: 2
|
||||
- Missing file targets: 9 (2 LICENSE + 5 hypothetical + 2 code path mismatches)
|
||||
- Orphaned docs: 18
|
||||
- Suspicious external URLs: 3
|
||||
|
||||
## Broken Markdown Links
|
||||
|
||||
| File | Line | Link Text | Target | Issue |
|
||||
|------|------|-----------|--------|-------|
|
||||
| README.md | 428 | `LICENSE-APACHE` | `LICENSE-APACHE` | File does not exist at repo root |
|
||||
| README.md | 431 | `LICENSE-MIT` | `LICENSE-MIT` | File does not exist at repo root |
|
||||
|
||||
**Impact:** Users clicking the license links in the README will get a 404 on GitHub. These are referenced in the License section as the dual-license model files (DEC-020).
|
||||
|
||||
## Missing File Targets
|
||||
|
||||
### Missing LICENSE Files (High Impact)
|
||||
|
||||
| File | Line | Referenced Path | Issue |
|
||||
|------|------|----------------|-------|
|
||||
| README.md | 428 | `LICENSE-APACHE` | File does not exist at repo root |
|
||||
| README.md | 431 | `LICENSE-MIT` | File does not exist at repo root |
|
||||
| docs/security/license-inventory.md | 9 | `../../LICENSE-APACHE` | Resolves to missing `LICENSE-APACHE` at repo root |
|
||||
| docs/security/license-inventory.md | 10 | `../../LICENSE-MIT` | Resolves to missing `LICENSE-MIT` at repo root |
|
||||
| docs/security/flutter-license-inventory.md | 11 | `../../LICENSE-APACHE` | Resolves to missing `LICENSE-APACHE` at repo root |
|
||||
| docs/security/flutter-license-inventory.md | 12 | `../../LICENSE-MIT` | Resolves to missing `LICENSE-MIT` at repo root |
|
||||
|
||||
**Impact:** The dual-license model (DEC-020) requires these files to exist for proper attribution. All 4 references across 3 files are broken.
|
||||
|
||||
### Hypothetical File Names (Low Impact)
|
||||
|
||||
| File | Line | Referenced Path | Issue |
|
||||
|------|------|----------------|-------|
|
||||
| docs/sysrs.md | 126 | `docs/chanora_SysDes.md` | Listed as "Potential downstream file name" — does not exist |
|
||||
| docs/sysrs.md | 127 | `docs/chanora_SRS.md` | Listed as "Potential downstream file name" — does not exist |
|
||||
| docs/sysrs.md | 128 | `docs/chanora_SAD.md` | Listed as "Potential downstream file name" — does not exist |
|
||||
| docs/sysrs.md | 129 | `docs/chanora_SDD.md` | Listed as "Potential downstream file name" — does not exist |
|
||||
| docs/sysrs.md | 130 | `docs/chanora_Verification.md` | Listed as "Potential downstream file name" — does not exist |
|
||||
|
||||
**Note:** These are documented as "Potential downstream file names" in a table and are aspirational/historical. They are presented as plain text in a table, not as navigable links. Low severity.
|
||||
|
||||
## Missing Code References
|
||||
|
||||
| File | Line | Reference | Expected Location | Issue |
|
||||
|------|------|-----------|-------------------|-------|
|
||||
| docs/architecture/sdd.md | 19 | `snapshot_state_mapper.dart` | Listed under "Snapshot and channel UI" widgets section | File actually exists in `apps/chanora_flutter/lib/services/`, not `apps/chanora_flutter/lib/widgets/` — directory mismatch in docs |
|
||||
| docs/architecture/sdd.md | 21 | `voice_settings*.dart` | Listed under Voice UI widgets | Files are `voice_settings.dart` and `voice_settings_controls.dart` — glob reference is ambiguous (two files match) |
|
||||
|
||||
**Note:** The `snapshot_state_mapper.dart` directory mismatch is a minor documentation inaccuracy — the file exists but is categorized differently than documented.
|
||||
|
||||
## Broken Anchor Links
|
||||
|
||||
No broken anchor links found. All `#section` references within documents resolve to existing headers.
|
||||
|
||||
## Orphaned Documents
|
||||
|
||||
(Not referenced by any other document in the main doc tree)
|
||||
|
||||
| File | Last Modified | Should Be Referenced From |
|
||||
|------|---------------|--------------------------|
|
||||
| docs/offline-knowledge/README.md | 2026-06-13 | Could be referenced from a top-level docs index |
|
||||
| docs/offline-knowledge/function-inventory.md | 2026-06-13 | Could be referenced from docs/architecture/sdd.md |
|
||||
| docs/offline-knowledge/coverage-analysis.md | 2026-06-13 | Could be referenced from docs/verification/ plans |
|
||||
| docs/offline-knowledge/doc-quality-analysis.md | 2026-06-13 | Could be referenced from docs/governance/document-review-report.md |
|
||||
| docs/offline-knowledge/link-coverage-report.md | 2026-06-13 | Could be referenced from docs/governance/ |
|
||||
| docs/offline-knowledge/external/teaspeak-overview.md | 2026-06-13 | Could be referenced from docs/references/external-references.md |
|
||||
| docs/offline-knowledge/external/respeak-overview.md | 2026-06-13 | Could be referenced from docs/references/external-references.md |
|
||||
| docs/offline-knowledge/external/yatqa-en.md | 2026-06-13 | Could be referenced from docs/references/external-references.md |
|
||||
| docs/offline-knowledge/external/yatqa-de.md | 2026-06-13 | Could be referenced from docs/references/external-references.md |
|
||||
| docs/offline-knowledge/reviews/coverage-analysis-review.md | 2026-06-13 | Could be referenced from docs/offline-knowledge/README.md (already is) |
|
||||
| docs/offline-knowledge/reviews/doc-quality-review.md | 2026-06-13 | Could be referenced from docs/offline-knowledge/README.md (already is) |
|
||||
| docs/offline-knowledge/reviews/link-coverage-review.md | 2026-06-13 | Could be referenced from docs/offline-knowledge/README.md (already is) |
|
||||
| docs/offline-knowledge/reviews/external-docs-review.md | 2026-06-13 | Could be referenced from docs/offline-knowledge/README.md (already is) |
|
||||
| docs/superpowers/specs/*.md (6 files) | 2026-05-28 to 2026-06-09 | Internal planning docs; not expected in DV tree |
|
||||
| docs/superpowers/plans/*.md (8 files) | 2026-05-28 to 2026-06-08 | Internal planning docs; not expected in DV tree |
|
||||
|
||||
**Note:** The offline-knowledge files are self-referencing within their own README but are not linked from the main documentation tree. The superpowers files are internal planning documents and are intentionally separate from the DV document set.
|
||||
|
||||
## Suspicious External URLs
|
||||
|
||||
| File | Line | URL | Issue |
|
||||
|------|------|-----|-------|
|
||||
| docs/architecture/file-transfer-research.md | 406 | `https://git.did.science/TeaSpeak/Server/Server` | Self-hosted GitLab instance; may become unavailable. Specific branch `new-groups` commit `b54c6d4e` referenced. |
|
||||
| docs/security/license-inventory.md | 96 | `http://github.com/ejmahler/strength_reduce` | Uses HTTP instead of HTTPS for GitHub URL |
|
||||
| docs/security/flutter-license-inventory.md | various | `http://www.apache.org/licenses/` and `http://mozilla.org/MPL/2.0/` | HTTP URLs in license text bodies (not navigational links) |
|
||||
|
||||
**Note:** The file-transfer research links point to specific GitHub commit SHAs which may become stale over time if force-pushes occur. The HTTP-vs-HTTPS issue on the strength_reduce URL is cosmetic but should be corrected.
|
||||
|
||||
## Cross-Reference Chain Issues
|
||||
|
||||
| Chain | Issue |
|
||||
|-------|-------|
|
||||
| None found | All doc-to-doc cross-references in prose text resolve correctly |
|
||||
|
||||
All cross-reference chains verified:
|
||||
- `docs/architecture/sad.md` → `docs/srs.md` ✓
|
||||
- `docs/architecture/sad.md` → `docs/sysdes.md` ✓
|
||||
- `docs/architecture/sdd.md` → `docs/architecture/sad.md` ✓
|
||||
- `docs/architecture/sdd.md` → `docs/srs.md` ✓
|
||||
- `docs/architecture/sysdes.md` → `docs/sysdes.md` ✓
|
||||
- `docs/architecture/file-transfer-design.md` → `docs/architecture/sad.md` ✓
|
||||
- `docs/architecture/file-transfer-research.md` → `docs/architecture/file-transfer-design.md` ✓
|
||||
- `docs/architecture/file-transfer-implementation-plan.md` → both upstream docs ✓
|
||||
- `docs/architecture/desktop-ptt-architecture.md` → sad, sdd, dv-waiver-register ✓
|
||||
- `docs/requirements/sysrs.md` → `../sysrs.md` ✓
|
||||
- `docs/requirements/srs.md` → `../srs.md` ✓
|
||||
- `docs/ui-ux/material3-guideline.md` → `docs/material3-guideline.md` ✓
|
||||
|
||||
## Missing Image/Asset References
|
||||
|
||||
No image references (``) found in any documentation files. All docs are text-only.
|
||||
|
||||
## Include/Import References
|
||||
|
||||
No include directives or template references found in documentation files.
|
||||
|
||||
---
|
||||
|
||||
## Per-File Link Inventory
|
||||
|
||||
### README.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 130 | `docs/architecture/desktop-ptt-architecture.md` | ✓ Valid (markdown link) |
|
||||
| 144 | `docs/governance/product-decision-register.md` | ✓ Valid (inline ref) |
|
||||
| 261 | `docs/requirements/sysrs.md` | ✓ Valid (inline ref) |
|
||||
| 262 | `docs/requirements/srs.md` | ✓ Valid (inline ref) |
|
||||
| 263 | `docs/architecture/sysdes.md` | ✓ Valid (inline ref) |
|
||||
| 264 | `docs/architecture/sad.md` | ✓ Valid (inline ref) |
|
||||
| 265 | `docs/architecture/sdd.md` | ✓ Valid (inline ref) |
|
||||
| 266 | `docs/verification/verification-master-plan.md` | ✓ Valid (inline ref) |
|
||||
| 267 | `docs/release/release-readiness-go-nogo-record.md` | ✓ Valid (inline ref) |
|
||||
| 268 | `docs/release/platform-release-policy.md` | ✓ Valid (inline ref) |
|
||||
| 269 | `docs/governance/product-decision-register.md` | ✓ Valid (inline ref) |
|
||||
| 270 | `docs/governance/traceability-matrix.md` | ✓ Valid (inline ref) |
|
||||
| 271 | `docs/security/security-privacy-legal-guideline.md` | ✓ Valid (inline ref) |
|
||||
| 312 | `docs/release/release-readiness-go-nogo-record.md` | ✓ Valid (inline ref) |
|
||||
| 349-355 | 6 security/privacy/legal doc paths | ✓ Valid (inline refs) |
|
||||
| 391 | `docs/governance/git-commit-message-convention.md` | ✓ Valid (inline ref) |
|
||||
| 428 | `LICENSE-APACHE` | ✗ **BROKEN** — file does not exist |
|
||||
| 431 | `LICENSE-MIT` | ✗ **BROKEN** — file does not exist |
|
||||
| 436 | `docs/governance/product-decision-register.md` | ✓ Valid (markdown link) |
|
||||
| 444 | `NOTICE` | ✓ Valid (markdown link) |
|
||||
| 449-451 | 3 doc paths | ✓ Valid (inline refs) |
|
||||
|
||||
### CONTRIBUTING.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 25 | `docs/governance/git-commit-message-convention.md` | ✓ Valid (inline ref) |
|
||||
|
||||
### SECURITY.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 33-38 | 6 security/privacy/legal doc paths | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/architecture/sad.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/srs.md` | ✓ Valid (inline ref) |
|
||||
| 7 | `docs/sysdes.md` | ✓ Valid (inline ref) |
|
||||
| 41-52 | 12 component source paths | ✓ Valid (code refs) |
|
||||
| 176 | `docs/governance/traceability-matrix.md` | ✓ Valid (inline ref) |
|
||||
|
||||
### docs/architecture/sdd.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/architecture/sad.md` | ✓ Valid (inline ref) |
|
||||
| 7 | `docs/srs.md` | ✓ Valid (inline ref) |
|
||||
| 17-31 | Module source paths | ✓ Valid (code refs), except `snapshot_state_mapper.dart` listed under wrong section |
|
||||
| 35 | `crates/chanora_bridge/src/api.rs` | ✓ Valid (code ref) |
|
||||
|
||||
### docs/architecture/sysdes.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/sysdes.md` | ✓ Valid (canonical pointer) |
|
||||
|
||||
### docs/architecture/desktop-ptt-architecture.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 5 | `docs/architecture/sad.md`, `docs/architecture/sdd.md`, `docs/release/dv-waiver-register.md` | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/architecture/file-transfer-design.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/architecture/sad.md` | ✓ Valid (inline ref) |
|
||||
| 118-137 | `tsclientlib/src/lib.rs` code references | ✓ Valid (external code refs — not locally verifiable) |
|
||||
| 737 | `crates/chanora_protocol/src/adapter.rs` | ✓ Valid (code ref) |
|
||||
|
||||
### docs/architecture/file-transfer-research.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 5 | `docs/architecture/file-transfer-design.md` | ✓ Valid (inline ref) |
|
||||
| 29-31 | GitHub commit URLs | ⚠ External — may become stale |
|
||||
| 406 | `https://git.did.science/TeaSpeak/Server/Server` | ⚠ Self-hosted GitLab — may become unavailable |
|
||||
|
||||
### docs/architecture/file-transfer-implementation-plan.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/architecture/file-transfer-design.md`, `docs/architecture/file-transfer-research.md` | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/governance/document-index.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 14-32 | All 18 listed document paths | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/governance/traceability-matrix.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 5 | 5 primary upstream doc paths | ✓ Valid (inline refs) |
|
||||
| 25-31 | 7 source doc paths | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/governance/path-migration-map.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 10-14 | 5 README path mappings | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/verification/verification-master-plan.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | 6 primary upstream doc paths | ✓ Valid (inline refs) |
|
||||
| 18-21 | 4 verification plan paths | ✓ Valid (inline refs) |
|
||||
| 47 | `tools/windows-smoke.md` | ✓ Valid (code ref) |
|
||||
| 48 | `docs/release/ios-build.md` | ✓ Valid (inline ref) |
|
||||
|
||||
### docs/security/license-inventory.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 9 | `../../LICENSE-APACHE` | ✗ **BROKEN** — file does not exist |
|
||||
| 10 | `../../LICENSE-MIT` | ✗ **BROKEN** — file does not exist |
|
||||
| 11 | `docs/governance/product-decision-register.md` | ✓ Valid (inline ref) |
|
||||
|
||||
### docs/security/flutter-license-inventory.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 11 | `../../LICENSE-APACHE` | ✗ **BROKEN** — file does not exist |
|
||||
| 12 | `../../LICENSE-MIT` | ✗ **BROKEN** — file does not exist |
|
||||
|
||||
### docs/security/dependency-and-supply-chain-report.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 29 | `https://github.com/EdisonJwa/oboe-rs` | ✓ Valid (external GitHub URL) |
|
||||
|
||||
### docs/privacy/privacy-policy.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| (none) | No links or references | N/A |
|
||||
|
||||
### docs/legal/trademark-and-attribution-review.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| (none) | No links or references | N/A |
|
||||
|
||||
### docs/release/release-readiness-go-nogo-record.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 37 | `docs/implementation-status-2026-05-28.md` | ✓ Valid (inline ref) |
|
||||
| 26 | `apps/chanora_flutter/pubspec.yaml` | ✓ Valid (code ref) |
|
||||
|
||||
### docs/release/dv-waiver-register.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 15-23 | Various `docs/` paths in Source evidence column | ✓ Valid (inline refs) |
|
||||
|
||||
### docs/requirements/sysrs.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 4 | `../sysrs.md` | ✓ Valid (canonical pointer) |
|
||||
|
||||
### docs/requirements/srs.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 4 | `../srs.md` | ✓ Valid (canonical pointer) |
|
||||
|
||||
### docs/ui-ux/material3-guideline.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 6 | `docs/material3-guideline.md` | ✓ Valid (canonical pointer) |
|
||||
|
||||
### docs/material3-guideline.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 10 | `docs/ui-ux/material3-guideline.md` | ✓ Valid (self-referencing path record) |
|
||||
|
||||
### docs/sysrs.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 126 | `docs/chanora_SysDes.md` | ⚠ Hypothetical — does not exist (aspirational name) |
|
||||
| 127 | `docs/chanora_SRS.md` | ⚠ Hypothetical — does not exist (aspirational name) |
|
||||
| 128 | `docs/chanora_SAD.md` | ⚠ Hypothetical — does not exist (aspirational name) |
|
||||
| 129 | `docs/chanora_SDD.md` | ⚠ Hypothetical — does not exist (aspirational name) |
|
||||
| 130 | `docs/chanora_Verification.md` | ⚠ Hypothetical — does not exist (aspirational name) |
|
||||
|
||||
### apps/chanora_flutter/README.md
|
||||
|
||||
| Line | Link | Status |
|
||||
|------|------|--------|
|
||||
| 11 | `https://docs.flutter.dev/get-started/learn-flutter` | ✓ Valid (external) |
|
||||
| 12 | `https://docs.flutter.dev/get-started/codelab` | ✓ Valid (external) |
|
||||
| 13 | `https://docs.flutter.dev/reference/learning-resources` | ✓ Valid (external) |
|
||||
| 16 | `https://docs.flutter.dev/` | ✓ Valid (external) |
|
||||
|
||||
---
|
||||
|
||||
## Action Items (Priority Order)
|
||||
|
||||
### P0 — Must Fix Before Any Release
|
||||
1. **Create `LICENSE-APACHE` and `LICENSE-MIT` files** at repo root. These are required by DEC-020 (dual-license model) and referenced by README.md, docs/security/license-inventory.md, and docs/security/flutter-license-inventory.md.
|
||||
|
||||
### P1 — Should Fix for DV Quality
|
||||
2. **Fix `snapshot_state_mapper.dart` categorization** in docs/architecture/sdd.md:19 — move from "Snapshot and channel UI" widgets section to service layer section, or add a note clarifying the actual location.
|
||||
|
||||
### P2 — Nice to Have
|
||||
3. **Add offline-knowledge docs to document index** or references section so they are discoverable.
|
||||
4. **Fix HTTP URL** in docs/security/license-inventory.md:96 (`http://github.com/ejmahler/strength_reduce` → `https://...`).
|
||||
5. **Clean up hypothetical file names** in docs/sysrs.md:124-131 — either remove the table or clearly mark as historical/aspirational.
|
||||
@@ -0,0 +1,188 @@
|
||||
# Documentation Out-of-Date Analysis
|
||||
|
||||
**Generated:** 2026-06-13
|
||||
**Workspace version:** 0.2.0-beta.1
|
||||
**Latest commit:** dd6e80f (2026-06-13)
|
||||
|
||||
## Summary
|
||||
- Total docs checked: 64
|
||||
- Outdated docs: 12
|
||||
- Stale version refs: 5
|
||||
- Undocumented recent changes: 8
|
||||
- Stale date refs: 15+
|
||||
|
||||
## Stale Version References
|
||||
|
||||
| File | Line | Version Referenced | Current Version | Drift |
|
||||
|------|------|-------------------|-----------------|-------|
|
||||
| `docs/sysdes.md` | 6 | 0.9.8 | N/A (doc version) | Last updated 2026-05-14, 30 days stale |
|
||||
| `docs/srs.md` | 7 | 0.9.9 | N/A (doc version) | Last updated 2026-05-18, 26 days stale |
|
||||
| `docs/sysrs.md` | 5 | 0.9.11 | N/A (doc version) | Last updated 2026-06-07, 6 days stale |
|
||||
| `docs/material3-guideline.md` | ~4 | 0.9.2 | N/A (doc version) | Last updated 2026-05-14, 30 days stale |
|
||||
| `tools/windows-smoke.md` | 6 | `product/scaffold-v0` branch | `main` | Default branch changed per CHANGELOG |
|
||||
|
||||
## Stale Date References
|
||||
|
||||
| File | Date | Age | Issue |
|
||||
|------|------|-----|-------|
|
||||
| `docs/implementation-status-2026-05-28.md` | 2026-05-28 | 16 days | Pre-dates DV baseline (2026-05-29) and 8 major feature PRs |
|
||||
| `docs/architecture/sad.md` | 2026-05-29 | 15 days | Missing file transfer, poke notifications, desktop VAD features |
|
||||
| `docs/architecture/sdd.md` | 2026-05-29 | 15 days | Missing file transfer, poke notifications, desktop VAD features |
|
||||
| `docs/verification/verification-master-plan.md` | 2026-05-29 | 15 days | Missing file transfer and poke notification verification |
|
||||
| `docs/verification/swe4-unit-verification-plan.md` | 2026-05-29 | 15 days | Missing new test coverage for file transfer |
|
||||
| `docs/verification/swe5-software-integration-verification-plan.md` | 2026-05-29 | 15 days | Missing file transfer integration verification |
|
||||
| `docs/verification/swe6-software-verification-plan.md` | 2026-05-29 | 15 days | Missing file transfer software verification |
|
||||
| `docs/verification/sys4-system-integration-verification-plan.md` | 2026-05-29 | 15 days | Missing file transfer system verification |
|
||||
| `docs/governance/product-decision-register.md` | 2026-05-29 | 15 days | Missing file-transfer-related decisions |
|
||||
| `docs/governance/document-index.md` | 2026-05-29 | 15 days | Missing file-transfer-design.md, file-transfer-research.md, file-transfer-implementation-plan.md |
|
||||
| `docs/security/security-privacy-legal-guideline.md` | 2026-05-29 | 15 days | Missing file transfer security considerations |
|
||||
| `docs/security/threat-model.md` | 2026-05-29 | 15 days | Missing file transfer threat analysis |
|
||||
| `docs/i18n/localization-architecture.md` | 2026-05-29 | 15 days | Missing poke notification l10n strings |
|
||||
| `docs/legal/trademark-and-attribution-review.md` | 2026-05-29 | 15 days | Missing cacache license review |
|
||||
| `docs/privacy/privacy-policy.md` | 2026-05-29 | 15 days | Missing file transfer data handling |
|
||||
|
||||
## Undocumented Recent Changes
|
||||
|
||||
| Change | Date | Expected Doc | Status |
|
||||
|--------|------|-------------|--------|
|
||||
| File transfer system (avatar/icon download with cacache) | 2026-06-10 | README.md, SAD, SDD, CHANGELOG | Not in README crate list, not in CHANGELOG |
|
||||
| Poke notifications (local notifications, settings, bridge) | 2026-06-08 | SAD, SDD, CHANGELOG | Not in CHANGELOG |
|
||||
| Desktop Silero ONNX VAD + Windows PTT modernization | 2026-06-09 | SAD, SDD, CHANGELOG | Not in CHANGELOG |
|
||||
| iOS RemoteIO+WebRTC APM path removal | 2026-06-10 | SAD, SDD | Not documented |
|
||||
| SonoraExperimental bridge API removal | 2026-06-10 | SAD, SDD, bridge docs | Not documented |
|
||||
| iOS AVAudioSession activation fix | 2026-06-10 | Platform docs | Not documented |
|
||||
| iOS Debug build unblocking + FRB regeneration | 2026-06-10 | Build docs | Not documented |
|
||||
| poke-without-message design | 2026-06-09 | Design docs | Committed but not indexed |
|
||||
|
||||
## Feature Drift
|
||||
|
||||
### Documented but No Longer in Code
|
||||
| Feature | Doc File | Last Seen In Code |
|
||||
|---------|----------|-------------------|
|
||||
| `SonoraExperimental` bridge API | `docs/architecture/sdd.md` (implied) | Removed 2026-06-10 (commit 2b28549) |
|
||||
| iOS `ios_raw_unit.rs` | `docs/implementation-status-2026-05-28.md:33` | Removed 2026-06-10 (commit 3f9ea4f) |
|
||||
| `SnapshotChanged` event variant | CHANGELOG v0.3.0 | Removed end-to-end |
|
||||
| Timer-based snapshot polling | CHANGELOG v0.2.0-beta.1 | Replaced by event-driven UI |
|
||||
|
||||
### In Code but Not Documented
|
||||
| Feature | Code Location | Expected Doc |
|
||||
|---------|--------------|-------------|
|
||||
| `chanora_cache` crate (cacache-backed blob store) | `crates/chanora_cache/` | README.md crate list, SAD, SDD |
|
||||
| File transfer protocol support | `crates/chanora_protocol/` | SAD, SDD, CHANGELOG |
|
||||
| Poke notification service | `apps/chanora_flutter/lib/services/` | SAD, SDD, CHANGELOG |
|
||||
| Poke notification settings UI | `apps/chanora_flutter/lib/widgets/` | SAD, SDD |
|
||||
| Desktop Silero ONNX VAD | `crates/chanora_audio/src/vad/silero_onnx.rs` | SAD, SDD |
|
||||
| Windows PTT modernization | `crates/chanora_audio/src/ptt_backends/windows.rs` | SAD, SDD |
|
||||
| `poke_limiter.rs` | `crates/chanora_protocol/src/poke_limiter.rs` | SAD, SDD |
|
||||
| Local notification plugin integration | `apps/chanora_flutter/` | SAD, SDD |
|
||||
|
||||
## Per-File Out-of-Date Assessment
|
||||
|
||||
### README.md
|
||||
- **Last meaningful update:** Unknown (no date in file)
|
||||
- **Stale sections:**
|
||||
- Crate list (line 242-249): Missing `chanora_cache` and `chanora_resolver` crates
|
||||
- Repository layout (line 233-249): Missing `chanora_cache`, `chanora_resolver`, `chanora_prefetch`
|
||||
- Status section (line 16-23): References "v0.9.x document set" — no specific date
|
||||
- Development section (line 398-409): Missing `just` commands (justfile exists)
|
||||
- **Missing recent changes:** File transfer system, poke notifications, desktop VAD
|
||||
|
||||
### docs/sysdes.md
|
||||
- **Version:** 0.9.8
|
||||
- **Last change record:** 2026-05-14
|
||||
- **Stale sections:** All — 30 days without update
|
||||
- **Missing:** File transfer system element (SE-20?), poke notification interface (IF-015?)
|
||||
|
||||
### docs/srs.md
|
||||
- **Version:** 0.9.9
|
||||
- **Last change record:** 2026-05-18
|
||||
- **Stale sections:** All — 26 days without update
|
||||
- **Missing:** File transfer SRS requirements, poke notification SRS requirements, desktop VAD SRS requirements
|
||||
|
||||
### docs/sysrs.md
|
||||
- **Version:** 0.9.11
|
||||
- **Last change record:** 2026-06-07
|
||||
- **Stale sections:** Mostly current but missing file transfer and poke notification requirements
|
||||
|
||||
### docs/architecture/sad.md
|
||||
- **Date:** 2026-05-29
|
||||
- **Stale sections:**
|
||||
- Component architecture table (line 39-50): Missing `chanora_cache` component
|
||||
- Missing file transfer architecture
|
||||
- Missing poke notification architecture
|
||||
- Missing desktop VAD architecture
|
||||
- **Missing recent changes:** All PRs from 2026-06-07 through 2026-06-13
|
||||
|
||||
### docs/architecture/sdd.md
|
||||
- **Date:** 2026-05-29
|
||||
- **Stale sections:**
|
||||
- Module catalogue (line 15-31): Missing file transfer module, poke notification module
|
||||
- Missing `chanora_cache` module (SDD-MOD-016?)
|
||||
- Missing `poke_limiter` module
|
||||
- **Missing recent changes:** All PRs from 2026-06-07 through 2026-06-13
|
||||
|
||||
### docs/implementation-status-2026-05-28.md
|
||||
- **Date:** 2026-05-28 — 16 days old
|
||||
- **Stale sections:**
|
||||
- "Done" table: Missing file transfer, poke notifications, desktop VAD, iOS fixes
|
||||
- "Partial / Scaffold Only": `chanora_cache` was scaffold, now implemented
|
||||
- "Not Done (P0 blockers)": iOS `AVAudioSession.Mode.voiceChat` — now implemented (commit 89bbfa1)
|
||||
- Android target compilation: Still blocked per DEC-034
|
||||
- Agent spec docs reference (line 140): States docs are "deleted" — stale cleanup note
|
||||
- **Recommendation:** Update to reflect current state or create new status doc
|
||||
|
||||
### docs/governance/product-decision-register.md
|
||||
- **Date:** 2026-05-29
|
||||
- **Note:** DEC-033 and DEC-034 are present (lines 20-21). Missing decisions:
|
||||
- File transfer architecture decision
|
||||
- Poke notification feature decision
|
||||
|
||||
### docs/governance/document-index.md
|
||||
- **Date:** 2026-05-29
|
||||
- **Missing documents:**
|
||||
- `docs/architecture/file-transfer-design.md`
|
||||
- `docs/architecture/file-transfer-research.md`
|
||||
- `docs/architecture/file-transfer-implementation-plan.md`
|
||||
- `docs/superpowers/specs/2026-06-09-poke-without-message-design.md`
|
||||
- `docs/governance/maintainability-review-2026-06-08.md` (listed but dated wrong)
|
||||
|
||||
### docs/security/license-inventory.md
|
||||
- **Status:** Refreshed 2026-06-09 (commit b841d3f)
|
||||
- **Issue:** May be missing `cacache` dependency license if not in Cargo.lock at refresh time
|
||||
|
||||
### docs/material3-guideline.md
|
||||
- **Version:** 0.9.2
|
||||
- **Last change record:** 2026-05-14
|
||||
- **Status:** 30 days stale, but Material 3 design may not have changed
|
||||
|
||||
### tools/windows-smoke.md
|
||||
- **Stale reference:** Line 6 references `product/scaffold-v0` branch
|
||||
- **Current default:** `main` per CHANGELOG v0.3.0
|
||||
|
||||
### docs/verification/*.md (all 5 files)
|
||||
- **Date:** All dated 2026-05-29
|
||||
- **Missing:** File transfer verification, poke notification verification, desktop VAD verification
|
||||
|
||||
## Recommendations
|
||||
|
||||
### Critical (blocks DV/release)
|
||||
1. **Update `docs/implementation-status-2026-05-28.md`** — 16 days stale, missing 8 major PRs, iOS voiceChat now implemented
|
||||
2. **Update `docs/governance/product-decision-register.md`** — Missing file transfer and poke notification decisions
|
||||
3. **Update `docs/governance/document-index.md`** — Missing 3 file-transfer docs
|
||||
|
||||
### High Priority (DV completeness)
|
||||
4. **Update `docs/architecture/sad.md`** — Missing file transfer, poke notifications, desktop VAD, chanora_cache component
|
||||
5. **Update `docs/architecture/sdd.md`** — Missing file transfer, poke notifications, desktop VAD modules
|
||||
6. **Update `docs/sysdes.md`** — 30 days stale, missing file transfer system elements
|
||||
7. **Update `docs/srs.md`** — 26 days stale, missing file transfer and poke notification requirements
|
||||
8. **Update CHANGELOG.md** — Missing v0.3.0+ changes (file transfer, poke notifications, desktop VAD, iOS fixes)
|
||||
|
||||
### Medium Priority (accuracy)
|
||||
9. **Update README.md** — Missing `chanora_cache` and `chanora_resolver` in crate list
|
||||
10. **Update `tools/windows-smoke.md`** — Fix stale branch reference
|
||||
11. **Update verification plans** — Add file transfer and poke notification verification
|
||||
12. **Update security docs** — Add file transfer threat analysis
|
||||
|
||||
### Low Priority (cleanup)
|
||||
13. **Align document versions** — SysDes (0.9.8), SysRS (0.9.11), Material3 (0.9.2) have different version numbers
|
||||
14. **Clean up path record files** — `docs/architecture/sysdes.md`, `docs/requirements/sysrs.md`, `docs/requirements/srs.md`, `docs/ui-ux/material3-guideline.md` are stubs pointing to canonical files
|
||||
@@ -0,0 +1,134 @@
|
||||
# Review: Documentation-Code Mismatch Analysis
|
||||
|
||||
**Reviewer:** opencode (automated)
|
||||
**Reviewed document:** `docs/offline-knowledge/docs-code-mismatch.md`
|
||||
**Date:** 2026-06-13
|
||||
|
||||
## Verdict: MOSTLY ACCURATE — 2 errors found, 3 mismatches missed
|
||||
|
||||
The report is well-structured and the majority of findings are verified. However, there are factual errors in 2 findings, 3 additional mismatches were missed, and severity classifications need adjustment in 2 cases.
|
||||
|
||||
---
|
||||
|
||||
## 1. Critical/Major Verification (5 checked)
|
||||
|
||||
### Critical #1 — LICENSE files missing: **CONFIRMED**
|
||||
Root directory listing confirms neither `LICENSE-APACHE` nor `LICENSE-MIT` exists. README lines 428-431 link to them. `docs/security/license-inventory.md:9-10` and `docs/security/flutter-license-inventory.md:11-12` also reference them. Severity (Critical) is appropriate — broken links in README and legal compliance gap.
|
||||
|
||||
### Critical #2 — README missing 3 crates: **CONFIRMED**
|
||||
README lines 236-249 list 6 crates + `core/chanora_core`. `Cargo.toml:28-39` workspace members list 10 crates including `chanora_resolver`, `chanora_prefetch`, `chanora_cache`. Severity (Critical) is appropriate — primary discovery entry point is incomplete.
|
||||
|
||||
### Major #3 — SAD missing chanora_cache: **CONFIRMED**
|
||||
`docs/architecture/sad.md:39-52` lists 12 components. `chanora_cache` is absent despite being a workspace member (`Cargo.toml:34`). Severity (Major) is appropriate.
|
||||
|
||||
### Major #4 — snapshot_state_mapper.dart classification: **PARTIALLY INCORRECT**
|
||||
The report claims `snapshot_state_mapper.dart` is "listed as a widget-layer file" but the SDD (`docs/architecture/sdd.md:19`) actually says upstream is "Flutter widget/**service** layer" — acknowledging it spans both. The file IS in `services/`, not `widgets/`, so there is a mismatch, but the report overstates it by ignoring the "service" qualifier. **Severity should be downgraded from Major to Minor.** Also, the report missed that `channel_spacer.dart` (same SDD-MOD-003 row) is also in `services/`, not `widgets/` — same issue, not flagged.
|
||||
|
||||
### Major #5 — windows-smoke.md branch reference: **CONFIRMED**
|
||||
`tools/windows-smoke.md:5` says `product/scaffold-v0`. `CHANGELOG.md:99` confirms "Default base branch is `main` (previously `product/scaffold-v0`)". Severity (Major) is appropriate — procedure references obsolete branch.
|
||||
|
||||
---
|
||||
|
||||
## 2. Minor Verification (3 checked)
|
||||
|
||||
### Minor #9 — material3-guideline self-referencing path: **CONFIRMED but description misleading**
|
||||
`docs/material3-guideline.md:10` says `**Repo path:** docs/ui-ux/material3-guideline.md`. The file IS at `docs/material3-guideline.md`. However, `docs/ui-ux/material3-guideline.md` is a **redirect stub** that points to the canonical file — not a "circular reference confusion" as the report claims. It's a documented migration artifact. Severity (Minor) is appropriate.
|
||||
|
||||
### Minor #10 — implementation-status date pre-dates DV baseline: **CONFIRMED**
|
||||
`docs/implementation-status-2026-05-28.md:1` is dated 2026-05-28. `docs/governance/git-commit-message-convention.md:4` is dated 2026-05-29 (DV baseline date). Severity (Minor) is appropriate.
|
||||
|
||||
### Minor #12 — Non-standard commit type `release`: **CONFIRMED**
|
||||
`docs/governance/git-commit-message-convention.md:18` uses `release(android)`. Standard Conventional Commits types are: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`. `release` is non-standard. Severity (Minor) is appropriate — it's a project convention extension, not a broken reference.
|
||||
|
||||
---
|
||||
|
||||
## 3. Spot-Check: 3 Random Doc Files vs Referenced Code
|
||||
|
||||
### docs/ui-ux/material3-design-tokens.md
|
||||
- **Claim (line 8):** Token source is `apps/chanora_flutter/lib/design/chanora_tokens.dart`
|
||||
- **Actual:** File exists at that path. **PASS — no mismatch found.**
|
||||
|
||||
### docs/i18n/localization-architecture.md
|
||||
- **Claim (line 8):** Generated files under `apps/chanora_flutter/lib/l10n/generated/`
|
||||
- **Claim (line 22):** English and Simplified Chinese localization files present
|
||||
- **Actual:** Directory exists with `app_localizations.dart`, `app_localizations_en.dart`, `app_localizations_zh.dart`. **PASS — no mismatch found.**
|
||||
|
||||
### docs/architecture/desktop-ptt-architecture.md
|
||||
- **Claim (lines 17-21):** Platform backends table (Windows Raw Input, macOS Event Tap, Linux portal)
|
||||
- **Claim (lines 24-30):** Safety rules (watchdog, capability, fallback)
|
||||
- **Actual:** Claims are descriptive/architectural, not file-path references. Cannot verify runtime behavior from static analysis, but no obvious code contradiction. **PASS — no mismatch found.**
|
||||
|
||||
---
|
||||
|
||||
## 4. Severity Classification Review
|
||||
|
||||
| # | Claim | Report Severity | Correct? | Notes |
|
||||
|---|-------|----------------|----------|-------|
|
||||
| 1 | LICENSE files missing | Critical | **Yes** | Legal/compliance gap + broken links |
|
||||
| 2 | README missing 3 crates | Critical | **Yes** | Primary discovery entry incomplete |
|
||||
| 3 | SAD missing chanora_cache | Major | **Yes** | Architecture doc incomplete |
|
||||
| 4 | snapshot_state_mapper.dart | Major | **No — should be Minor** | SDD already says "widget/service layer"; overclaimed |
|
||||
| 5 | windows-smoke branch | Major | **Yes** | Procedure references obsolete branch |
|
||||
| 6 | sysrs.md suggested names | Major | **Yes** | 5 non-existent file paths |
|
||||
| 7 | DEC-030 partially superseded | Major | **Borderline** | Code has full VAD impl; "partially superseded" undersells it. Could be Major or Minor. |
|
||||
| 8 | baseline-candidate description | Minor | **Yes** | Cosmetic underselling |
|
||||
| 9 | material3 self-ref path | Minor | **Yes** | Redirect stub, not circular |
|
||||
| 10 | implementation-status date | Minor | **Yes** | Date drift |
|
||||
| 11 | SDD/SAD non-itemized IDs | Minor | **Yes** | Historical references |
|
||||
| 12 | Non-standard commit type | Minor | **Yes** | Convention extension |
|
||||
| 13 | Material3 version stops at 0.9.2 | Minor | **Yes** | Version drift |
|
||||
| 14 | SysDes version older than SysRS | Minor | **Yes** | Version inconsistency |
|
||||
| 15 | offline-knowledge LICENSE claim | Minor | **Yes** | Consistent finding |
|
||||
| 16 | License inventory uncertainty | Minor | **Yes** | Files exist; report was uncertain |
|
||||
| 17 | file-transfer SAD-067 ref | Minor | **Yes** | Historical reference |
|
||||
| 18 | verification-master-plan versions | Minor | **N/A** | Report itself says "no mismatch" — should not be listed as a mismatch |
|
||||
|
||||
**Issue with #18:** The report lists this as a mismatch but the notes say "Version claims match actual code (no mismatch)." This is a false positive — it should be removed from the mismatch list or moved to the "verified correct" section.
|
||||
|
||||
---
|
||||
|
||||
## 5. Missed Mismatches
|
||||
|
||||
### M1. `channel_spacer.dart` also in wrong directory (SDD-MOD-003)
|
||||
- **Doc:** `docs/architecture/sdd.md:19` lists `channel_spacer.dart` under SDD-MOD-003 alongside `snapshot_state_mapper.dart`
|
||||
- **Code:** `channel_spacer.dart` is at `apps/chanora_flutter/lib/services/channel_spacer.dart`, not in `widgets/`
|
||||
- **Severity:** Minor (same as snapshot_state_mapper — both are in services/)
|
||||
- **Why missed:** Report focused on `snapshot_state_mapper.dart` but didn't check the other file in the same row
|
||||
|
||||
### M2. `chanora_cache` missing from dependency-and-supply-chain-report.md
|
||||
- **Doc:** `docs/security/dependency-and-supply-chain-report.md:25` lists 9 Rust workspace crates
|
||||
- **Code:** `Cargo.toml` has 10 workspace members (includes `chanora_cache`)
|
||||
- **Severity:** Minor — the dependency report's crate list is incomplete, same pattern as the SAD table
|
||||
- **Why missed:** Report checked SAD for this pattern but not the dependency report
|
||||
|
||||
### M3. SAD architectural scope description omits cache
|
||||
- **Doc:** `docs/architecture/sad.md:17` says "Rust owns connection orchestration, protocol isolation, audio processing, storage coordination, diagnostics, server resolution, prefetch policy, and bridge DTOs"
|
||||
- **Code:** `chanora_cache` crate exists for avatar/icon blob caching — not mentioned in scope description
|
||||
- **Severity:** Minor — descriptive text omission, not a structural table gap
|
||||
- **Why missed:** Report checked the component table but not the prose description
|
||||
|
||||
---
|
||||
|
||||
## 6. Additional Observations
|
||||
|
||||
1. **Mismatch #18 is a false positive.** It's listed as a mismatch but the notes confirm versions match. Remove it.
|
||||
|
||||
2. **Mismatch #4 overclaims.** The SDD uses "Flutter widget/service layer" as upstream, not "Flutter widget layer." The report's characterization is inaccurate. The file IS in `services/` so there's still a mismatch, but it's less severe than described.
|
||||
|
||||
3. **Mismatch #7 (DEC-030) severity is borderline.** The code has `VoiceActivityStateMachine`, `TransmitMode::VoiceActivity`, and VAD backends in `vad/`. The doc says "Partially superseded by desktop enablement." This could be argued as Major (policy doc doesn't reflect implementation completeness) or Minor (it does say "partially" which leaves room). Current Major classification is defensible but the report should note the ambiguity.
|
||||
|
||||
4. **The dependency report has the same `chanora_cache` omission** as the SAD. This is a consistent pattern across multiple docs — the cache crate was added to the workspace after these documents were baselined.
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Count |
|
||||
|----------|-------|
|
||||
| Verified correct | 15 of 18 |
|
||||
| Factual errors | 2 (#4 overclaims, #18 false positive) |
|
||||
| Missed mismatches | 3 |
|
||||
| Severity adjustments needed | 1 (#4: Major → Minor) |
|
||||
| False positives to remove | 1 (#18) |
|
||||
|
||||
**Overall assessment:** The mismatch analysis is ~83% accurate. The core findings (LICENSE files, missing crates in README, SAD table gaps) are solid and well-evidenced. The report would benefit from removing mismatch #18, downgrading #4, and adding the 3 missed findings.
|
||||
@@ -0,0 +1,98 @@
|
||||
# Review: Documentation Link Not-Covered Analysis
|
||||
|
||||
**Reviewer:** opencode (automated)
|
||||
**Reviewed file:** `docs/offline-knowledge/docs-link-not-covered.md`
|
||||
**Date:** 2026-06-13
|
||||
|
||||
## Verdict: Largely Accurate — Minor Corrections Needed
|
||||
|
||||
The analysis is well-structured and its core findings are correct. A few claims need nuance or correction.
|
||||
|
||||
---
|
||||
|
||||
## 1. Broken Markdown Links (2 claimed)
|
||||
|
||||
**Verdict: CORRECT**
|
||||
|
||||
| Claim | Verified |
|
||||
|-------|----------|
|
||||
| `README.md:428` links to `LICENSE-APACHE` | Yes — file does not exist at repo root. Confirmed `ls LICENSE*` returns nothing. |
|
||||
| `README.md:431` links to `LICENSE-MIT` | Yes — file does not exist at repo root. |
|
||||
|
||||
Both are real broken links. The `NOTICE` file does exist (line 444), so that one is fine.
|
||||
|
||||
---
|
||||
|
||||
## 2. Missing File Targets (9 claimed — checked 3)
|
||||
|
||||
**Verdict: CORRECT**
|
||||
|
||||
| Claim | Verified |
|
||||
|-------|----------|
|
||||
| `LICENSE-APACHE` / `LICENSE-MIT` missing at repo root | Yes — confirmed missing. All 6 references across 3 files (README.md, license-inventory.md, flutter-license-inventory.md) are broken. |
|
||||
| `docs/chanora_SysDes.md` hypothetical | Yes — file does not exist. Same for `chanora_SRS.md` and `chanora_SAD.md` (checked). |
|
||||
| `snapshot_state_mapper.dart` directory mismatch | **Correct.** File exists at `apps/chanora_flutter/lib/services/snapshot_state_mapper.dart`, not under `widgets/` as documented in sdd.md. |
|
||||
| `voice_settings*.dart` glob ambiguity | **Correct.** Two files match: `voice_settings.dart` and `voice_settings_controls.dart`, both in `widgets/`. The glob reference is ambiguous. |
|
||||
|
||||
**Correction:** The analysis says `voice_settings*.dart` is listed under "Voice UI widgets" — this is actually correct placement since both files ARE in `widgets/`. The issue is glob ambiguity, not directory mismatch. The analysis description is accurate but the "Issue" column could be clearer.
|
||||
|
||||
---
|
||||
|
||||
## 3. Orphaned Docs (18 claimed — checked 3)
|
||||
|
||||
**Verdict: MOSTLY CORRECT, with nuance**
|
||||
|
||||
| Claim | Verified |
|
||||
|-------|----------|
|
||||
| `docs/offline-knowledge/function-inventory.md` orphaned | **Yes** — no references from outside `docs/offline-knowledge/`. Only self-referenced in its own README. |
|
||||
| `docs/offline-knowledge/coverage-analysis.md` orphaned | **Yes** — same situation. |
|
||||
| `docs/offline-knowledge/doc-quality-analysis.md` orphaned | **Yes** — same situation. |
|
||||
|
||||
These are correctly identified as orphaned from the main doc tree. However, the analysis correctly notes they are self-referencing within `docs/offline-knowledge/README.md`. The "Should Be Referenced From" column lists reasonable targets.
|
||||
|
||||
**Note:** The `docs/governance/document-review-report.md` and `docs/references/external-references.md` files (listed as potential parents) do exist, so the suggested link targets are valid.
|
||||
|
||||
---
|
||||
|
||||
## 4. Suspicious URLs (3 claimed)
|
||||
|
||||
**Verdict: CORRECT, but understated**
|
||||
|
||||
| Claim | Verified |
|
||||
|-------|----------|
|
||||
| `https://git.did.science/TeaSpeak/Server/Server` | **Correct** — self-hosted GitLab. The analysis notes it references branch `new-groups` commit `b54c6d4e`. This is a real fragility risk. |
|
||||
| `http://github.com/ejmahler/strength_reduce` | **Correct** — uses HTTP instead of HTTPS. Found at `docs/security/license-inventory.md:96`. |
|
||||
| `http://www.apache.org/licenses/` and `http://mozilla.org/MPL/2.0/` | **Correct** — these are HTTP URLs, but the analysis correctly notes they are in license text bodies, not navigational links. They are quotes from upstream license files, not Chanora's own links. |
|
||||
|
||||
**Correction needed:** The analysis says "various" for the flutter-license-inventory.md HTTP URLs but there are actually **93 HTTP URL occurrences** across the two license inventory files (mostly `apache.org/licenses`). The analysis should note these are all in quoted license text, not actionable links. Only the `strength_reduce` URL (line 96 of license-inventory.md) is a Chanora-authored navigational link using HTTP.
|
||||
|
||||
---
|
||||
|
||||
## 5. Missed Broken Links
|
||||
|
||||
**Verdict: NO MAJOR OMISSIONS FOUND**
|
||||
|
||||
After checking:
|
||||
- All markdown `[text](path)` links in `docs/` — the analysis covers them
|
||||
- README.md inline references — all verified
|
||||
- Cross-reference chains — confirmed correct
|
||||
- No additional broken internal links found
|
||||
|
||||
**One minor observation:** The analysis does not flag that `docs/governance/document-index.md` does not list `docs/offline-knowledge/` or `docs/superpowers/` documents. While noted as "orphaned," the document index itself is incomplete — it only lists DV-baseline documents, which may be intentional.
|
||||
|
||||
---
|
||||
|
||||
## Summary of Corrections
|
||||
|
||||
| # | Issue | Severity |
|
||||
|---|-------|----------|
|
||||
| 1 | HTTP URL count in flutter-license-inventory.md understated (93 occurrences, not "various") | Low — all are quoted license text |
|
||||
| 2 | `voice_settings*.dart` described as directory mismatch but is actually glob ambiguity | Low — wording issue |
|
||||
| 3 | Analysis could note that `docs/governance/document-index.md` intentionally excludes offline-knowledge/ | Informational |
|
||||
|
||||
## Recommended Actions (unchanged from original)
|
||||
|
||||
1. **P0:** Create `LICENSE-APACHE` and `LICENSE-MIT` at repo root
|
||||
2. **P1:** Fix `snapshot_state_mapper.dart` categorization in sdd.md
|
||||
3. **P2:** Fix HTTP URL for `strength_reduce` in license-inventory.md:96
|
||||
4. **P2:** Consider adding offline-knowledge docs to document index or references
|
||||
@@ -0,0 +1,140 @@
|
||||
# Review: docs-out-of-date.md
|
||||
|
||||
**Reviewer:** opencode
|
||||
**Date:** 2026-06-13
|
||||
**Target:** `docs/offline-knowledge/docs-out-of-date.md`
|
||||
|
||||
## Overall Assessment
|
||||
|
||||
The document is **mostly accurate** with **2 factual errors** and a few minor issues. The core analysis — stale version refs, undocumented changes, and outdated docs — is well-supported by evidence. However, two claims about the product-decision-register and document-index are incorrect.
|
||||
|
||||
---
|
||||
|
||||
## 1. Stale Version References — Spot-Check 3
|
||||
|
||||
### ✅ `docs/sysdes.md` line 6: Version 0.9.8
|
||||
**Verdict: Accurate.** File confirms `**Version:** 0.9.8` at line 6. Last change record is 2026-05-14 (30 days stale as of generation date).
|
||||
|
||||
### ✅ `docs/srs.md` line 7: Version 0.9.9
|
||||
**Verdict: Accurate.** File confirms `**Version:** 0.9.9` at line 6 (not line 7 as claimed — off by one). Last change record is 2026-05-18 (26 days stale).
|
||||
|
||||
### ✅ `docs/material3-guideline.md` ~line 4: Version 0.9.2
|
||||
**Verdict: Accurate.** File confirms `**Version:** 0.9.2` at line 4. Last change record is 2026-05-14 (30 days stale). The document notes Material 3 design may not have changed, which is fair.
|
||||
|
||||
**Summary:** All 3 stale version refs verified. Minor line-number error on srs.md (says line 7, actual line 6).
|
||||
|
||||
---
|
||||
|
||||
## 2. Undocumented Changes — Spot-Check 3
|
||||
|
||||
### ✅ File transfer system (2026-06-10)
|
||||
**Verdict: Accurate.**
|
||||
- Commit `aa796d7` confirms: `feat: file transfer system (avatar/icon download with cacache) (#40)`
|
||||
- `chanora_cache` crate exists at `crates/chanora_cache/`
|
||||
- `file_transfer.rs` exists at `core/chanora_core/src/file_transfer.rs`
|
||||
- Design docs exist: `docs/architecture/file-transfer-design.md`, `file-transfer-research.md`, `file-transfer-implementation-plan.md`
|
||||
- **CHANGELOG.md has no mention** of file transfer, cacache, or chanora_cache. Confirmed undocumented in CHANGELOG.
|
||||
- **README.md crate list** (lines 242-249) does not include `chanora_cache`. Confirmed undocumented in README.
|
||||
|
||||
### ✅ Poke notifications (2026-06-08)
|
||||
**Verdict: Accurate.**
|
||||
- Commits `3ef540a` through `b565663` confirm: poke notification service, settings dialog, preferences, l10n, bridge integration
|
||||
- `poke_limiter.rs` exists at `crates/chanora_protocol/src/poke_limiter.rs`
|
||||
- `poke_notification_service.dart` exists at `apps/chanora_flutter/lib/services/`
|
||||
- `poke_notification_settings.dart` exists at `apps/chanora_flutter/lib/widgets/`
|
||||
- **CHANGELOG.md has no mention** of poke notifications. Confirmed undocumented in CHANGELOG.
|
||||
|
||||
### ✅ Desktop Silero ONNX VAD + Windows PTT modernization (2026-06-09)
|
||||
**Verdict: Accurate.**
|
||||
- Commit `2f6d45f` confirms: `feat(audio): desktop Silero ONNX VAD + Windows PTT modernization + MSVC CRT build fix (#37)`
|
||||
- `silero_onnx.rs` exists at `crates/chanora_audio/src/vad/silero_onnx.rs`
|
||||
- CHANGELOG mentions Apple CoreML Silero VAD and Linux ONNX Runtime VAD, but **not** the desktop Silero ONNX VAD or Windows PTT modernization from this commit. Confirmed undocumented in CHANGELOG.
|
||||
|
||||
**Summary:** All 3 undocumented changes verified. The CHANGELOG is missing these entries.
|
||||
|
||||
---
|
||||
|
||||
## 3. "12 Outdated Docs" Claim — Spot-Check 3
|
||||
|
||||
### ✅ `docs/architecture/sad.md` (dated 2026-05-29)
|
||||
**Verdict: Confirmed outdated.**
|
||||
- Component architecture table (lines 39-52) lists 12 components but **does not include `chanora_cache`**.
|
||||
- No mention of file transfer architecture, poke notification architecture, or the new desktop Silero ONNX VAD.
|
||||
- SAD does mention `chanora_resolver` and `chanora_prefetch` (lines 51-52), so the resolver/prefetch are current — but `chanora_cache` is a clear omission.
|
||||
|
||||
### ✅ `docs/architecture/sdd.md` (dated 2026-05-29)
|
||||
**Verdict: Confirmed outdated.**
|
||||
- Module catalogue (lines 15-31) lists 15 modules (SDD-MOD-001 through SDD-MOD-015).
|
||||
- **No module for file transfer** (should be ~SDD-MOD-016).
|
||||
- **No module for poke notifications** (should be ~SDD-MOD-017).
|
||||
- **No module for `chanora_cache`** (should be covered by file transfer module or standalone).
|
||||
- **No module for `poke_limiter`**.
|
||||
|
||||
### ✅ `docs/governance/document-index.md` (dated 2026-05-29)
|
||||
**Verdict: Confirmed outdated.**
|
||||
- Does not list `docs/architecture/file-transfer-design.md`
|
||||
- Does not list `docs/architecture/file-transfer-research.md`
|
||||
- Does not list `docs/architecture/file-transfer-implementation-plan.md`
|
||||
- Does not list `docs/superpowers/specs/2026-06-09-poke-without-message-design.md`
|
||||
- Does not list `docs/security/license-inventory.md`
|
||||
- **Does list** `docs/governance/maintainability-review-2026-06-08.md` (line 29) — see error #2 below.
|
||||
|
||||
**Summary:** All 3 spot-checked docs confirmed outdated. The "12 outdated docs" claim is plausible.
|
||||
|
||||
---
|
||||
|
||||
## 4. Were Any Outdated Docs Missed?
|
||||
|
||||
### Potentially missed:
|
||||
1. **`docs/release/dv-waiver-register.md`** — References `docs/implementation-status-2026-05-28.md` (line 17) and notes that iOS `AVAudioSession.Mode.voiceChat` status needs updated validation. This doc itself may need updating now that voiceChat is implemented (commit `89bbfa1`).
|
||||
|
||||
2. **`docs/governance/decision-impact-assessment.md`** — References VAD platform scope. May need updating for desktop Silero ONNX VAD enablement.
|
||||
|
||||
3. **`docs/security/license-inventory.md`** — The document itself notes it was refreshed 2026-06-09 (commit `b841d3f`), but the analysis flags it may be missing `cacache` dependency. The `cacache` crate IS in `Cargo.lock` (confirmed), so if the refresh was done against the current lock file, it should be covered. This needs manual verification but is not clearly outdated.
|
||||
|
||||
4. **`docs/governance/maintainability-review-2026-06-08.md`** — Already listed in document-index, but its content may be missing references to file transfer and poke notification features added after its date.
|
||||
|
||||
### Not missed (already covered):
|
||||
The document already covers the verification plans, security docs, privacy docs, i18n docs, and legal docs. These are all confirmed outdated (grep found no file transfer or poke mentions in any of them).
|
||||
|
||||
---
|
||||
|
||||
## 5. Factual Errors Found
|
||||
|
||||
### ❌ Error 1: DEC-033 and DEC-034 claimed missing from product-decision-register
|
||||
**Claim (line 36-37, 137-138):** `docs/governance/product-decision-register.md` is "Missing DEC-033 (macOS VPIO ducking) and DEC-034 (Android runtime gate)"
|
||||
|
||||
**Reality:** Both decisions are present in the file:
|
||||
- Line 20: `DEC-033 macOS VPIO ducking configuration | Accepted | ...`
|
||||
- Line 21: `DEC-034 Android runtime verification gate | Active tracking | ...`
|
||||
|
||||
**Impact:** This error undermines the "Critical" recommendation #2 to update the product-decision-register. The register already contains these decisions.
|
||||
|
||||
### ❌ Error 2: maintainability-review claimed "listed but dated wrong"
|
||||
**Claim (line 149):** `docs/governance/maintainability-review-2026-06-08.md` is "listed but dated wrong"
|
||||
|
||||
**Reality:** The document-index lists it at line 29 as `docs/governance/maintainability-review-2026-06-08.md` with status "Working-branch maintainability and fail-safe review". The filename contains the date 2026-06-08, which matches the document's actual date. There is no dating error.
|
||||
|
||||
**Impact:** Minor. The document may still be outdated (missing file transfer/poke content), but the specific "dated wrong" claim is incorrect.
|
||||
|
||||
---
|
||||
|
||||
## 6. Minor Issues
|
||||
|
||||
1. **Line number off-by-one:** `docs/srs.md` version is at line 6, not line 7 as claimed.
|
||||
2. **SAD component table scope:** The SAD does list `chanora_resolver` and `chanora_prefetch` (lines 51-52), which means only `chanora_cache` is missing from the component table — not "Missing `chanora_cache` component" as a standalone issue. The SAD also mentions VAD (line 126, 162), so the "Missing desktop VAD architecture" claim needs nuance — VAD is mentioned but the specific desktop Silero ONNX VAD implementation is not.
|
||||
3. **Feature drift section accuracy:** The "Documented but No Longer in Code" section correctly identifies `SonoraExperimental` removal (commit `2b28549`) and `ios_raw_unit.rs` removal (commit `3f9ea4f`). The `SnapshotChanged` and timer-based polling claims are supported by CHANGELOG v0.3.0 entries.
|
||||
|
||||
---
|
||||
|
||||
## Summary Table
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| Stale version refs (3 checked) | ✅ All 3 accurate (1 minor line-number error) |
|
||||
| Undocumented changes (3 checked) | ✅ All 3 accurate |
|
||||
| "12 outdated docs" (3 spot-checked) | ✅ All 3 confirmed outdated |
|
||||
| Missed outdated docs | 2-3 additional docs may be outdated |
|
||||
| Factual errors | ❌ 2 errors found (DEC-033/034 claim, maintainability-review date claim) |
|
||||
|
||||
**Recommendation:** Correct the 2 factual errors before using this document for DV planning. The core analysis is sound.
|
||||
Reference in New Issue
Block a user