Corrections: - README: add 6 missing files to index, fix integration test count (2→6) - coverage-analysis: fix chanora_audio tests (221→333), chanora_core (11→38), integration tests (2→6) - docs-out-of-date: remove false maintainability-review claim - link-coverage-report + docs-link-not-covered: fix line number (12→11) New review reports (5): - function-inventory-review.md (score: 7/10) - coverage-docquality-review.md (coverage: 4/10, docquality: 7/10) - mismatch-outofdate-review.md (mismatch: 8/10, outofdate: 9/10) - link-reports-review.md (link: 8/10, notcovered: 7/10) - external-index-review.md (external: 8-9/10, index: 6/10)
253 lines
18 KiB
Markdown
253 lines
18 KiB
Markdown
# Link Coverage Report
|
||
|
||
**Generated:** 2026-06-13
|
||
**Scope:** All `.md` files in repository root and `docs/` tree
|
||
|
||
## Summary
|
||
|
||
- Total links checked: 148
|
||
- Valid internal links: 12 (4 markdown links + 8 inline doc-path references)
|
||
- Broken internal links: 2
|
||
- Valid inline doc-path references: 94
|
||
- Broken inline doc-path references: 5
|
||
- Valid code references: 62
|
||
- Broken code references: 2
|
||
- External links (manual review): 48
|
||
- Cross-references (doc→doc in prose): 0 broken
|
||
|
||
---
|
||
|
||
## Broken Internal Links
|
||
|
||
Markdown `[text](path)` style links that resolve to missing files.
|
||
|
||
| 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.
|
||
|
||
**Also affected by missing LICENSE files:**
|
||
|
||
| File | Line | Reference | Issue |
|
||
|------|------|-----------|-------|
|
||
| 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 | 11 | `../../LICENSE-MIT` | Resolves to missing `LICENSE-MIT` at repo root |
|
||
|
||
---
|
||
|
||
## Valid Internal Links
|
||
|
||
| File | Line | Target |
|
||
|------|------|--------|
|
||
| README.md | 130 | `docs/architecture/desktop-ptt-architecture.md` |
|
||
| README.md | 436 | `docs/governance/product-decision-register.md` |
|
||
| README.md | 444 | `NOTICE` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 266 | `../ui-ux/adaptive-layout-platform-guide.md` |
|
||
|
||
---
|
||
|
||
## Inline Doc-Path References
|
||
|
||
References to documentation files using backtick-quoted paths (not markdown links).
|
||
|
||
### Valid
|
||
|
||
| File | Line | Reference |
|
||
|------|------|-----------|
|
||
| CONTRIBUTING.md | 25 | `docs/governance/git-commit-message-convention.md` |
|
||
| README.md | 144 | `docs/governance/product-decision-register.md` |
|
||
| README.md | 261–271 | `docs/requirements/sysrs.md`, `docs/requirements/srs.md`, `docs/architecture/sysdes.md`, `docs/architecture/sad.md`, `docs/architecture/sdd.md`, `docs/verification/verification-master-plan.md`, `docs/release/release-readiness-go-nogo-record.md`, `docs/release/platform-release-policy.md`, `docs/governance/product-decision-register.md`, `docs/governance/traceability-matrix.md`, `docs/security/security-privacy-legal-guideline.md` |
|
||
| README.md | 312 | `docs/release/release-readiness-go-nogo-record.md` |
|
||
| README.md | 349–355 | `docs/security/threat-model.md`, `docs/security/secure-storage-audit-report.md`, `docs/security/diagnostic-redaction-audit-report.md`, `docs/security/dependency-and-supply-chain-report.md`, `docs/privacy/privacy-policy.md`, `docs/legal/trademark-and-attribution-review.md` |
|
||
| README.md | 391 | `docs/governance/git-commit-message-convention.md` |
|
||
| README.md | 449–451 | `docs/governance/product-decision-register.md`, `docs/security/dependency-and-supply-chain-report.md`, `docs/legal/trademark-and-attribution-review.md` |
|
||
| docs/architecture/sad.md | 6 | `docs/srs.md` |
|
||
| docs/architecture/sad.md | 7 | `docs/sysdes.md` |
|
||
| docs/architecture/sad.md | 176 | `docs/governance/traceability-matrix.md` |
|
||
| docs/architecture/sdd.md | 6 | `docs/architecture/sad.md` |
|
||
| docs/architecture/sdd.md | 7 | `docs/srs.md` |
|
||
| docs/architecture/sysdes.md | 6 | `docs/sysdes.md` (canonical pointer) |
|
||
| docs/architecture/desktop-ptt-architecture.md | 5 | `docs/architecture/sad.md`, `docs/architecture/sdd.md`, `docs/release/dv-waiver-register.md` |
|
||
| docs/architecture/file-transfer-design.md | 6 | `docs/architecture/sad.md` |
|
||
| docs/architecture/file-transfer-research.md | 5 | `docs/architecture/file-transfer-design.md` |
|
||
| docs/architecture/file-transfer-implementation-plan.md | 6 | `docs/architecture/file-transfer-design.md`, `docs/architecture/file-transfer-research.md` |
|
||
| docs/requirements/sysrs.md | 4 | `../sysrs.md` (canonical pointer) |
|
||
| docs/requirements/srs.md | 4 | `../srs.md` (canonical pointer) |
|
||
| docs/governance/document-index.md | 14–32 | All listed document paths |
|
||
| docs/material3-guideline.md | 10 | `docs/ui-ux/material3-guideline.md` (self-referencing path record) |
|
||
| docs/ui-ux/material3-guideline.md | 6 | `docs/material3-guideline.md` (canonical pointer) |
|
||
| docs/superpowers/specs/2026-06-08-maintainability-continuation-design.md | 125–141 | Multiple `docs/` paths |
|
||
| docs/superpowers/specs/2026-05-29-state-sync-ui-settings-validation-design.md | 51–55 | Multiple `docs/` paths |
|
||
| docs/superpowers/plans/2026-05-29-finish-dv-document-tree.md | 16–54 | Multiple `docs/` paths |
|
||
| docs/superpowers/plans/2026-05-29-swe2-swe3-baselines.md | 16–35 | Multiple `docs/` paths |
|
||
| docs/superpowers/plans/2026-05-29-state-sync-ui-settings-validation.md | 84–88 | Multiple `docs/` paths |
|
||
| docs/superpowers/plans/2026-05-29-dv-evidence-pack.md | 16–54 | Multiple `docs/` paths |
|
||
| docs/superpowers/plans/2026-05-28-server-resolution-prefetch.md | 31–836 | Multiple source file paths |
|
||
| docs/superpowers/plans/2026-05-28-chanora-server-prefetch-crate.md | 15–541 | Multiple source file paths |
|
||
| docs/superpowers/plans/2026-06-06-chat-panel-switching.md | 58–507 | Multiple source file paths |
|
||
| docs/superpowers/plans/2026-06-08-core-internal-split.md | 16–91 | Multiple source file paths |
|
||
|
||
### Broken
|
||
|
||
| File | Line | Reference | Issue |
|
||
|------|------|-----------|-------|
|
||
| docs/sysrs.md | 126 | `docs/chanora_SysDes.md` | Does not exist (listed as "potential downstream file name") |
|
||
| docs/sysrs.md | 127 | `docs/chanora_SRS.md` | Does not exist (listed as "potential downstream file name") |
|
||
| docs/sysrs.md | 128 | `docs/chanora_SAD.md` | Does not exist (listed as "potential downstream file name") |
|
||
| docs/sysrs.md | 129 | `docs/chanora_SDD.md` | Does not exist (listed as "potential downstream file name") |
|
||
| docs/sysrs.md | 130 | `docs/chanora_Verification.md` | Does not exist (listed as "potential downstream file name") |
|
||
|
||
**Note:** These five are documented as "Potential downstream file names" in a table and are aspirational/historical. They are presented as code blocks in the original, so they function as suggestions rather than navigable links. Low severity.
|
||
|
||
---
|
||
|
||
## Code References
|
||
|
||
### Valid
|
||
|
||
| File | Line | Reference | Found At |
|
||
|------|------|-----------|----------|
|
||
| docs/architecture/sad.md | 41 | `apps/chanora_flutter/lib/main.dart` | EXISTS |
|
||
| docs/architecture/sad.md | 42 | `apps/chanora_flutter/lib/services/` | EXISTS |
|
||
| docs/architecture/sad.md | 43 | `apps/chanora_flutter/lib/widgets/` | EXISTS |
|
||
| docs/architecture/sad.md | 44 | `crates/chanora_bridge`, `apps/chanora_flutter/lib/src/rust/` | EXISTS |
|
||
| docs/architecture/sad.md | 45 | `core/chanora_core` | EXISTS |
|
||
| docs/architecture/sad.md | 46 | `crates/chanora_protocol` | EXISTS |
|
||
| docs/architecture/sad.md | 47 | `crates/chanora_state` | EXISTS |
|
||
| docs/architecture/sad.md | 48 | `crates/chanora_audio` | EXISTS |
|
||
| docs/architecture/sad.md | 49 | `crates/chanora_storage` | EXISTS |
|
||
| docs/architecture/sad.md | 50 | `crates/chanora_diagnostics` | EXISTS |
|
||
| docs/architecture/sad.md | 51 | `crates/chanora_resolver` | EXISTS |
|
||
| docs/architecture/sad.md | 52 | `crates/chanora_prefetch`, Flutter `prefetch_debouncer.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 17 | `apps/chanora_flutter/lib/services/app_bootstrap.dart`, `main.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 18 | `apps/chanora_flutter/lib/widgets/connect_widgets.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 19 | `snapshot_view.dart`, `snapshot_state_mapper.dart`, `channel_spacer.dart` | EXISTS (in services/) |
|
||
| docs/architecture/sdd.md | 20 | `chat_views.dart`, `bbcode_text.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 21 | `voice_bar.dart`, `voice_compact.dart`, `voice_settings*.dart`, `voice_level_meter.dart`, `ptt_capability_badge.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 22 | `android_permissions_service.dart`, `ios_permissions_service.dart`, `audio_lifecycle_service.dart`, `back_intent_*`, `link_trust_service.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 23 | `crates/chanora_bridge/src/api.rs` | EXISTS |
|
||
| docs/architecture/sdd.md | 24 | `core/chanora_core/src/lib.rs`, `events.rs`, `network_diagnostics.rs`, `ptt.rs` | EXISTS |
|
||
| docs/architecture/sdd.md | 25 | `crates/chanora_protocol/src/` | EXISTS |
|
||
| docs/architecture/sdd.md | 26 | `crates/chanora_state/src/lib.rs`, `channel_join.rs` | EXISTS |
|
||
| docs/architecture/sdd.md | 27 | `crates/chanora_audio/src/` | EXISTS |
|
||
| docs/architecture/sdd.md | 28 | `crates/chanora_storage/src/lib.rs` | EXISTS |
|
||
| docs/architecture/sdd.md | 29 | `crates/chanora_diagnostics/src/lib.rs` | EXISTS |
|
||
| docs/architecture/sdd.md | 30 | `crates/chanora_resolver/src/lib.rs`, `crates/chanora_prefetch/src/lib.rs`, `prefetch_debouncer.dart` | EXISTS |
|
||
| docs/architecture/sdd.md | 31 | `.github/workflows/`, `tools/` | EXISTS |
|
||
| docs/architecture/sdd.md | 35 | `crates/chanora_bridge/src/api.rs`, `apps/chanora_flutter/lib/src/rust/` | EXISTS |
|
||
| docs/release/release-readiness-go-nogo-record.md | 26 | `apps/chanora_flutter/pubspec.yaml` | EXISTS |
|
||
| docs/implementation-status-2026-05-28.md | 69 | `apps/chanora_flutter/ios/Runner/AppDelegate.swift` | EXISTS |
|
||
| docs/sysrs.md | 503 | `apps/chanora_flutter/ios/Runner/AppDelegate.swift` | EXISTS |
|
||
| docs/sysrs.md | 1962 | `apps/chanora_flutter/macos/chanora_bridge.podspec` | EXISTS |
|
||
| README.md | 236–249 | `apps/chanora_flutter/`, `core/chanora_core/`, `crates/chanora_protocol/`, `crates/chanora_audio/`, `crates/chanora_state/`, `crates/chanora_storage/`, `crates/chanora_diagnostics/`, `crates/chanora_bridge/` | EXISTS |
|
||
|
||
### Broken
|
||
|
||
| File | Line | Reference | Issue |
|
||
|------|------|-----------|-------|
|
||
| docs/architecture/sdd.md | 19 | `snapshot_state_mapper.dart` (listed under "Snapshot and channel UI" widgets) | File is in `apps/chanora_flutter/lib/services/`, not `apps/chanora_flutter/lib/widgets/` — directory mismatch |
|
||
| docs/architecture/sdd.md | 21 | `voice_settings*.dart` (listed under Voice UI widgets) | Files are `voice_settings.dart` and `voice_settings_controls.dart` in `widgets/` — EXISTS but 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 listed under the wrong component section (widget layer vs service layer).
|
||
|
||
---
|
||
|
||
## External Links (Manual Review)
|
||
|
||
These URLs should be checked manually for validity.
|
||
|
||
| File | Line | URL |
|
||
|------|------|-----|
|
||
| README.md | 429 | `https://www.apache.org/licenses/LICENSE-2.0` |
|
||
| README.md | 432 | `https://opensource.org/licenses/MIT` |
|
||
| apps/chanora_flutter/README.md | 11 | `https://docs.flutter.dev/get-started/learn-flutter` |
|
||
| apps/chanora_flutter/README.md | 12 | `https://docs.flutter.dev/get-started/codelab` |
|
||
| apps/chanora_flutter/README.md | 13 | `https://docs.flutter.dev/reference/learning-resources` |
|
||
| apps/chanora_flutter/README.md | 16 | `https://docs.flutter.dev/` |
|
||
| silero-coreml/README.md | 343 | `https://apple.github.io/coremltools/docs-guides/source/introductory-quickstart.html` |
|
||
| silero-coreml/README.md | 350 | `https://apple.github.io/coremltools/docs-guides/source/convert-pytorch.html` |
|
||
| silero-coreml/Docs/CoreMLConversion.md | 244 | `https://apple.github.io/coremltools/docs-guides/source/convert-pytorch.html` |
|
||
| silero-coreml/Docs/CoreMLConversion.md | 252 | `https://apple.github.io/coremltools/docs-guides/source/introductory-quickstart.html` |
|
||
| docs/security/dependency-and-supply-chain-report.md | 29 | `https://github.com/EdisonJwa/oboe-rs` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 261 | `https://github.com/asportnoy/compact-discord` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 262 | `https://github.com/mattermost/mattermost/blob/...` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 263 | `https://github.com/RocketChat/fuselage/blob/...` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 264 | `https://github.com/flutter/flutter/issues/162965` |
|
||
| docs/superpowers/specs/2026-06-05-adaptive-3-panel-layout-design.md | 265 | `https://m3.material.io/foundations/layout/breakpoints/overview` |
|
||
| docs/architecture/file-transfer-research.md | 29 | `https://github.com/Splamy/TS3AudioBot/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 30 | `https://github.com/Multivit4min/TS3-NodeJS-Library/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 31 | `https://github.com/planetteamspeak/ts3phpframework/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 49 | `https://github.com/Multivit4min/TS3-NodeJS-Library/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 50 | `https://github.com/planetteamspeak/ts3phpframework/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 123 | `https://github.com/ReSpeak/Qint/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 124 | `https://github.com/ReSpeak/Qint/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 125 | `https://github.com/ReSpeak/Qint/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 140 | `https://github.com/teamspeak/ts3client-pluginsdk/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 141 | `https://github.com/teamspeak/ts3client-pluginsdk/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 142 | `https://community.teamspeak.com/t/clear-cache/41511` |
|
||
| docs/architecture/file-transfer-research.md | 142 | `https://community.teamspeak.com/t/server-icons-are-displaying-a-broken-image-issues-with-local-cache/58680` |
|
||
| docs/architecture/file-transfer-research.md | 208 | `https://github.com/Splamy/TS3AudioBot/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 209 | `https://github.com/Splamy/TS3AudioBot/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 220 | `https://github.com/Multivit4min/TS3-NodeJS-Library/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 221 | `https://github.com/Multivit4min/TS3-NodeJS-Library/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 320 | `https://github.com/rust-lang/rust/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 321 | `https://source.android.com/docs/core/storage/scoped` |
|
||
| docs/architecture/file-transfer-research.md | 322 | `https://developer.apple.com/library/archive/documentation/FileManagement/...` |
|
||
| docs/architecture/file-transfer-research.md | 334 | `https://github.com/zkat/cacache-rs/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 335 | `https://github.com/zkat/cacache-rs/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 336 | `https://github.com/zkat/cacache-rs/blob/...` |
|
||
| docs/architecture/file-transfer-research.md | 345 | `https://pub.dev/packages/flutter_cache_manager` |
|
||
| docs/architecture/file-transfer-research.md | 346 | `https://pub.dev/packages/super_cache_disk/versions/1.0.0` |
|
||
| docs/architecture/file-transfer-research.md | 406 | `https://git.did.science/TeaSpeak/Server/Server` |
|
||
| docs/security/license-inventory.md | 31–80 | ~50 URLs to GitHub repos for dependency licenses |
|
||
| docs/security/flutter-license-inventory.md | 624–4209 | Multiple `http://www.apache.org/licenses/` and `http://mozilla.org/MPL/2.0/` (in license text bodies) |
|
||
|
||
---
|
||
|
||
## Cross-References
|
||
|
||
### Valid
|
||
|
||
All doc-to-doc cross-references found in prose text resolve to existing files. Key verified chains:
|
||
|
||
| Source | Reference | Target Exists |
|
||
|--------|-----------|---------------|
|
||
| docs/architecture/sad.md:6 | `docs/srs.md` | YES |
|
||
| docs/architecture/sad.md:7 | `docs/sysdes.md` | YES |
|
||
| docs/architecture/sdd.md:6 | `docs/architecture/sad.md` | YES |
|
||
| docs/architecture/sdd.md:7 | `docs/srs.md` | YES |
|
||
| docs/architecture/sysdes.md:6 | `docs/sysdes.md` | YES |
|
||
| docs/architecture/file-transfer-design.md:6 | `docs/architecture/sad.md` | YES |
|
||
| docs/architecture/file-transfer-research.md:5 | `docs/architecture/file-transfer-design.md` | YES |
|
||
| docs/architecture/file-transfer-implementation-plan.md:6 | `docs/architecture/file-transfer-design.md` | YES |
|
||
| docs/architecture/file-transfer-implementation-plan.md:6 | `docs/architecture/file-transfer-research.md` | YES |
|
||
| docs/architecture/desktop-ptt-architecture.md:5 | `docs/architecture/sad.md` | YES |
|
||
| docs/architecture/desktop-ptt-architecture.md:5 | `docs/architecture/sdd.md` | YES |
|
||
| docs/architecture/desktop-ptt-architecture.md:5 | `docs/release/dv-waiver-register.md` | YES |
|
||
| docs/requirements/sysrs.md:4 | `../sysrs.md` | YES |
|
||
| docs/requirements/srs.md:4 | `../srs.md` | YES |
|
||
| docs/governance/document-index.md | All 18 listed paths | YES |
|
||
| docs/ui-ux/material3-guideline.md:6 | `docs/material3-guideline.md` | YES |
|
||
|
||
### Broken
|
||
|
||
None found — all doc-to-doc cross-references in prose text resolve correctly.
|
||
|
||
---
|
||
|
||
## Notes
|
||
|
||
1. **Path-record files**: Several docs exist as stubs pointing to canonical locations (`docs/requirements/sysrs.md` → `docs/sysrs.md`, `docs/requirements/srs.md` → `docs/srs.md`, `docs/architecture/sysdes.md` → `docs/sysdes.md`, `docs/ui-ux/material3-guideline.md` → `docs/material3-guideline.md`). These are intentional DV navigation aids, not broken links.
|
||
|
||
2. **Hypothetical file names in sysrs.md**: The table at lines 124–131 lists `docs/chanora_SysDes.md` etc. as "Potential downstream file names." These are aspirational names from an earlier draft, not current files. They are presented as plain text in a table, not as navigable links.
|
||
|
||
3. **LICENSE-APACHE and LICENSE-MIT**: These are the most impactful broken references. The README's License section links to them, and the security license inventory files reference them. The dual-license model (DEC-020) requires these files to exist for proper attribution.
|
||
|
||
4. **snapshot_state_mapper.dart location**: The SDD lists this under "Snapshot and channel UI" (widget layer), but the file is actually in `services/`. This is a minor organizational mismatch — the file exists but is categorized differently than documented.
|
||
|
||
5. **External links**: Concentrated in `docs/architecture/file-transfer-research.md` (protocol research sources) and `docs/security/license-inventory.md` (dependency homepages). The file-transfer research links point to specific GitHub commit SHAs which may become stale over time.
|