# Review: coverage-analysis.md & doc-quality-analysis.md **Reviewer:** opencode (automated verification) **Date:** 2026-06-13 **Method:** Random sampling + targeted claim verification against actual codebase --- ## coverage-analysis.md Review ### Check 1: Random Test File Counts (5 files sampled) | File | Claimed | Actual | Verdict | |------|---------|--------|---------| | `android_permissions_service_test.dart` | 14 | 14 | ✅ PASS | | `macos_permissions_service_test.dart` | 20 | 20 | ✅ PASS | | `chat_views_test.dart` | 18 | 29 | ❌ FAIL (off by 11) | | `back_intent_policy_test.dart` | 9 | 9 | ✅ PASS | | `channel_spacer_test.dart` | 9 | 9 | ✅ PASS | **Score:** 4/5 correct ### Check 2: Source Files Claimed Untested (3 files verified) | File | Claimed | Actual | Verdict | |------|---------|--------|---------| | `ios_permissions_service.dart` | UNTESTED | No test file exists | ✅ PASS | | `link_trust_service.dart` | UNTESTED | No test file exists | ✅ PASS | | `audio_device_list_tile.dart` (widget) | UNTESTED | **Test file EXISTS** (`audio_device_list_tile_test.dart`, 3 tests) | ❌ FAIL | **Score:** 2/3 correct ### Check 3: Orphaned Test Claim - **Claim:** `poke_active_chat_test.dart` is orphaned (no matching source) - **Actual:** `poke_active_chat_test.dart` EXISTS in test/services/, but `poke_active_chat.dart` does NOT exist in lib/services/ - **Verdict:** ✅ PASS — claim is accurate ### Check 4: Missed Test Files | Missed Item | Impact | |-------------|--------| | `audio_device_list_tile_test.dart` | Widget test coverage is 14/24 (58%), not 13/24 (54%) | | chanora_core integration tests (3 files: alpha_smoke.rs, avatar_cache.rs, mvp_storage.rs) | Analysis claims 2 integration tests total; actual is 6 (2 chanora_audio + 4 chanora_core) | ### Check 5: Aggregate Count Errors | Metric | Claimed | Actual | Error | |--------|---------|--------|-------| | chanora_audio inline tests | 221 | 333 | +112 (51% undercount) | | chanora_core tests (inline + integration) | 11 | 38 | +27 (71% undercount) | | Total Dart tests | 221 | 233 | +12 (5% undercount) | | Total doc files (docs/) | 55 | 86 | +31 (56% undercount) | | Widget test files | 13 | 14 | +1 missed file | | Total Rust integration tests | 2 | 6 | +4 missed | ### Check 6: Documentation Gap Claims The documentation gap table (lines 336-354) lists 15 modules with no dedicated docs. Spot-checking confirms these modules确实 lack dedicated documentation files. **Verdict:** ✅ PASS — gaps are accurately identified. --- ## doc-quality-analysis.md Review ### Check 1: Claimed Duplications (3 verified) | # | Claim | Files | Verdict | |---|-------|-------|---------| | 1 | Lifecycle chain (`SysRS -> SysDes -> SRS -> SAD -> SDD`) | README.md:280, CONTRIBUTING.md:10 | ✅ PASS — identical text confirmed | | 2 | Commit examples | README.md:379-386, CONTRIBUTING.md:37-42, git-commit-message-convention.md:14-18 | ⚠️ PARTIAL — README has 6 examples, CONTRIBUTING has 4, convention file has 4. Not "identical" but overlapping. | | 3 | Security doc list | README.md:349-355, SECURITY.md:33-38 | ✅ PASS — identical 6-file list confirmed | ### Check 2: Useless Content Items | Claim | Verdict | Notes | |-------|---------|-------| | `docs/architecture/sysdes.md` is "path record — no unique content" | ⚠️ MISLEADING | It's a DV entry-point record with review summary table. Intentional for ASPICE compliance, not "useless." | | `docs/requirements/sysrs.md` is "path record — no unique content" | ⚠️ MISLEADING | Same as above — intentional DV navigation aid. | | `docs/requirements/srs.md` is "path record — no unique content" | ⚠️ MISLEADING | Same pattern. | | `docs/ui-ux/material3-guideline.md` is "path record — no unique content" | ⚠️ MISLEADING | Same pattern. | | `docs/sysdes.md:13` malformed markdown | ✅ PASS | Line 13: `**Repo path:** ... ---` missing blank line before `---`. Confirmed. | ### Check 3: Broken References | Claim | Verdict | |-------|---------| | `docs/sysrs.md:126-130` references non-existent `docs/chanora_SysDes.md` etc. | ✅ PASS — confirmed. Actual files are `docs/sysdes.md`, `docs/srs.md`, etc. | | `docs/implementation-status-2026-05-28.md:103` references `SDD-109` | ✅ PASS — SDD baseline explicitly notes SDD-109 is "not itemized in this baseline" | | `docs/implementation-status-2026-05-28.md:105` references `SAD-043` | ✅ PASS — SAD baseline explicitly notes SAD-043 is "not itemized in this baseline" | ### Check 4: Additional Issues Missed | Issue | Location | Description | |-------|----------|-------------| | chanora_core test count wildly wrong | coverage-analysis.md:107-113 | Claims 11 tests; actual is 34 inline + 4 integration = 38 | | chanora_audio test count wrong | coverage-analysis.md:24 | Claims 221 inline tests; actual is 333 | | Total doc count wrong | coverage-analysis.md:215 | Claims 55; actual is 86 under docs/ | | Widget test file missed | coverage-analysis.md:188 | `audio_device_list_tile_test.dart` exists but listed as UNTESTED | | `release(android)` commit type | doc-quality-analysis.md:90 | Analysis correctly flags this as non-standard Conventional Commits type, but doesn't note it appears in the canonical `git-commit-message-convention.md` itself | --- ## Summary of Errors ### coverage-analysis.md — Errors Found 1. **chanora_audio test count:** 221 claimed → 333 actual (112 test undercount) 2. **chanora_core test count:** 11 claimed → 38 actual (27 test undercount) 3. **Total Dart test count:** 221 claimed → 233 actual (12 test undercount) 4. **chat_views_test.dart count:** 18 claimed → 29 actual 5. **Widget test file count:** 13 claimed → 14 actual (missed audio_device_list_tile_test.dart) 6. **Total integration tests:** 2 claimed → 6 actual (missed chanora_core's 3 files / 4 tests) 7. **Total doc file count:** 55 claimed → 86 actual ### doc-quality-analysis.md — Errors Found 1. **"Useless content" characterization:** Path record files are intentional DV navigation aids, not useless. The label is misleading. 2. **Commit examples "identical" claim:** They overlap but are not identical (different files have different subsets). --- ## Quality Scores | File | Score | Rationale | |------|-------|-----------| | **coverage-analysis.md** | **4/10** | Structure and methodology are sound, but 7 factual errors in counts undermine reliability. The chanora_audio undercount (112 tests) and chanora_core undercount (27 tests) are severe. Missed widget test file is a moderate error. | | **doc-quality-analysis.md** | **7/10** | Duplications and broken references are accurately identified. The "useless content" label is misleading but not factually wrong. Minor inaccuracy on "identical" claim for commit examples. | --- ## Corrections Needed ### coverage-analysis.md 1. Update chanora_audio inline test count: 221 → 333 2. Update chanora_core test count: 11 → 38 (34 inline + 4 integration) 3. Update total Dart test count: 221 → 233 4. Update chat_views_test.dart count: 18 → 29 5. Add `audio_device_list_tile_test.dart` to widget test list (3 tests) 6. Update widget test file count: 13 → 14; untested widgets: 11 → 10 7. Update total integration tests: 2 → 6 8. Update total doc file count: 55 → 86 9. Add chanora_core integration test files to the integration tests section ### doc-quality-analysis.md 1. Relabel "Useless Content" → "Path Record Files" or "DV Navigation Aids" with explanation that these are intentional 2. Soften "identical" to "overlapping" for commit examples (Instance 2)