- Move ASPICE docs to chanoraapp/docs submodule at docs/ - Move development docs to dev-docs/ (superpowers, offline-knowledge, impl-mapping) - Add AGENTS.md with project conventions for AI agents - Add impl-mapping.md (SAD component → source file mapping) - Archive completed plans to dev-docs/superpowers/plans/_archived/ - Remove AGENTS.md from .gitignore (now tracked)
7.4 KiB
7.4 KiB
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.dartis orphaned (no matching source) - Actual:
poke_active_chat_test.dartEXISTS in test/services/, butpoke_active_chat.dartdoes 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
- chanora_audio test count: 221 claimed → 333 actual (112 test undercount)
- chanora_core test count: 11 claimed → 38 actual (27 test undercount)
- Total Dart test count: 221 claimed → 233 actual (12 test undercount)
- chat_views_test.dart count: 18 claimed → 29 actual
- Widget test file count: 13 claimed → 14 actual (missed audio_device_list_tile_test.dart)
- Total integration tests: 2 claimed → 6 actual (missed chanora_core's 3 files / 4 tests)
- Total doc file count: 55 claimed → 86 actual
doc-quality-analysis.md — Errors Found
- "Useless content" characterization: Path record files are intentional DV navigation aids, not useless. The label is misleading.
- 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
- Update chanora_audio inline test count: 221 → 333
- Update chanora_core test count: 11 → 38 (34 inline + 4 integration)
- Update total Dart test count: 221 → 233
- Update chat_views_test.dart count: 18 → 29
- Add
audio_device_list_tile_test.dartto widget test list (3 tests) - Update widget test file count: 13 → 14; untested widgets: 11 → 10
- Update total integration tests: 2 → 6
- Update total doc file count: 55 → 86
- Add chanora_core integration test files to the integration tests section
doc-quality-analysis.md
- Relabel "Useless Content" → "Path Record Files" or "DV Navigation Aids" with explanation that these are intentional
- Soften "identical" to "overlapping" for commit examples (Instance 2)