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)
348 lines
16 KiB
Markdown
348 lines
16 KiB
Markdown
# 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 | 11 | `../../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.
|