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)
18 KiB
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
-
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. -
Hypothetical file names in sysrs.md: The table at lines 124–131 lists
docs/chanora_SysDes.mdetc. 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. -
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.
-
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. -
External links: Concentrated in
docs/architecture/file-transfer-research.md(protocol research sources) anddocs/security/license-inventory.md(dependency homepages). The file-transfer research links point to specific GitHub commit SHAs which may become stale over time.