ai-docs-toolkit 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/PKG-INFO +42 -8
  2. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/README.md +20 -2
  3. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/packaging/pypi/README.md +41 -7
  4. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/pyproject.toml +1 -1
  5. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/__init__.py +1 -1
  6. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/cli/__init__.py +43 -0
  7. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/changed_files.py +23 -4
  8. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/impact.py +3 -2
  9. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/docs/agent-installation.md +124 -2
  10. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/impact/json_output.py +120 -2
  11. ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/__init__.py +3 -0
  12. ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/check.py +252 -0
  13. ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/record.py +150 -0
  14. ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/templates/project/.ai-docs/reference/documentation-change-review-skill.md +282 -0
  15. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/documentation-change-review/SKILL.md +5 -0
  16. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/PKG-INFO +42 -8
  17. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/SOURCES.txt +4 -0
  18. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_cli_baseline.py +2 -2
  19. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_document_graph.py +1 -1
  20. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_graph_cli_json.py +20 -2
  21. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_analysis.py +109 -0
  22. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_cli_human.py +57 -0
  23. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_cli_json.py +169 -3
  24. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_mcp_server.py +3 -2
  25. ai_docs_toolkit-0.3.0/tests/test_review_check.py +459 -0
  26. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_validate_cli_json.py +3 -3
  27. ai_docs_toolkit-0.2.0/src/ai_docs_toolkit/templates/project/.ai-docs/reference/documentation-change-review-skill.md +0 -128
  28. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/setup.cfg +0 -0
  29. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/__main__.py +0 -0
  30. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/context/__init__.py +0 -0
  31. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/context/markdown_output.py +0 -0
  32. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/__init__.py +0 -0
  33. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/azure_devops_provider.py +0 -0
  34. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/config.py +0 -0
  35. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/context.py +0 -0
  36. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/doctor.py +0 -0
  37. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/file_lookup.py +0 -0
  38. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/frontmatter.py +0 -0
  39. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/graph.py +0 -0
  40. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/init.py +0 -0
  41. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/planning_operations.py +0 -0
  42. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/planning_scaffold.py +0 -0
  43. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/registry.py +0 -0
  44. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/requirement_capture.py +0 -0
  45. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/scanner.py +0 -0
  46. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/schema_validation.py +0 -0
  47. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/section_fix.py +0 -0
  48. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/structure_validation.py +0 -0
  49. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/task_export.py +0 -0
  50. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/graph/__init__.py +0 -0
  51. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/graph/json_output.py +0 -0
  52. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/impact/__init__.py +0 -0
  53. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/__init__.py +0 -0
  54. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/__main__.py +0 -0
  55. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/server.py +0 -0
  56. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/setup.py +0 -0
  57. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/examples/skills/release-publication/SKILL.md +0 -0
  58. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/documentation-cascade-authoring-skill.md +0 -0
  59. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/incoming-request-model.md +0 -0
  60. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/incoming-request-triage-skill.md +0 -0
  61. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/init-command-contract.md +0 -0
  62. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/planning-document-model.md +0 -0
  63. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/reference/toolkit-maintenance-context-routing.md +0 -0
  64. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/acceptance.schema.yaml +0 -0
  65. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/architecture-decision.schema.yaml +0 -0
  66. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/asset.schema.yaml +0 -0
  67. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/business-rule.schema.yaml +0 -0
  68. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/contract.schema.yaml +0 -0
  69. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/guide.schema.yaml +0 -0
  70. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/implementation-task.schema.yaml +0 -0
  71. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/index.schema.yaml +0 -0
  72. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/inventory.schema.yaml +0 -0
  73. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/module.schema.yaml +0 -0
  74. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/operation.schema.yaml +0 -0
  75. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/plan-stage.schema.yaml +0 -0
  76. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/plan.schema.yaml +0 -0
  77. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/runbook.schema.yaml +0 -0
  78. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/scenario.schema.yaml +0 -0
  79. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/standalone-task.schema.yaml +0 -0
  80. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/task-registry.schema.yaml +0 -0
  81. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/document-types/test-case.schema.yaml +0 -0
  82. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/schemas/frontmatter.schema.yaml +0 -0
  83. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/documentation-cascade-authoring/SKILL.md +0 -0
  84. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/incoming-request-triage/SKILL.md +0 -0
  85. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/index.md +0 -0
  86. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/planning-record-generation/SKILL.md +0 -0
  87. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/planning-task-execution/SKILL.md +0 -0
  88. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/toolkit-consumer-policy/SKILL.md +0 -0
  89. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/skills/update-ai-docs-toolkit/SKILL.md +0 -0
  90. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/agent-context-architecture-beta-18.md +0 -0
  91. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/archive-validation-beta-12.md +0 -0
  92. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/cascade-impact-beta-14.md +0 -0
  93. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/consumer-migration-hardening.md +0 -0
  94. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/decision-visibility-beta-13.md +0 -0
  95. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/doctor-filesystem-traversal-beta-19.md +0 -0
  96. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/doctor-json-provenance-beta-20.md +0 -0
  97. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/documentation-cascade-authoring-beta-23.md +0 -0
  98. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/documentation-change-review-beta-21.md +0 -0
  99. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/incoming-request-storage-beta-17.md +0 -0
  100. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/incoming-request-triage-beta-22.md +0 -0
  101. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/migration-note.md +0 -0
  102. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/post-publication-checks.md +0 -0
  103. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/release-task.md +0 -0
  104. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/routing-restoration-beta-15.md +0 -0
  105. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/task-retirement-beta-16.md +0 -0
  106. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/validation-evidence.md +0 -0
  107. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/templates/release/version-change-checklist.md +0 -0
  108. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/workflows/documentation-cascade-adoption.md +0 -0
  109. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/workflows/plan-stage-workflow.md +0 -0
  110. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/.ai-docs/workflows/toolkit-migration-workflow.md +0 -0
  111. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/AGENTS.md +0 -0
  112. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/ai-docs-index.md +0 -0
  113. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/ai-docs.config.yaml +0 -0
  114. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/validation/__init__.py +0 -0
  115. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/validation/human.py +0 -0
  116. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/dependency_links.txt +0 -0
  117. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/entry_points.txt +0 -0
  118. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/requires.txt +0 -0
  119. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/top_level.txt +0 -0
  120. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_azure_devops_provider.py +0 -0
  121. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_bootstrap_templates.py +0 -0
  122. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_config_loader_and_scanner.py +0 -0
  123. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_consumer_matrix.py +0 -0
  124. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_cli_json.py +0 -0
  125. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_cli_markdown.py +0 -0
  126. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_depth.py +0 -0
  127. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_policy.py +0 -0
  128. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_selector.py +0 -0
  129. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_document_registry.py +0 -0
  130. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_execution_evals.py +0 -0
  131. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_frontmatter_parser.py +0 -0
  132. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_init_cli.py +0 -0
  133. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_schema_validation.py +0 -0
  134. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_skill_eval_harness.py +0 -0
  135. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_structure_validation.py +0 -0
  136. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_task_export.py +0 -0
  137. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_validate_cli_human.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-docs-toolkit
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: AI-oriented documentation toolkit.
5
5
  Requires-Python: >=3.14
6
6
  Description-Content-Type: text/markdown
@@ -30,10 +30,12 @@ The core idea is that documentation should not be a secondary artifact created a
30
30
 
31
31
  ## Current Status
32
32
 
33
- The stable 0.2.0 package includes:
33
+ Version 0.3.0 includes:
34
+
34
35
  - schema and structure validation for Markdown documents with YAML front matter;
35
36
  - document graph output;
36
- - impact analysis;
37
+ - impact analysis with linked test cases and changed-path discovery coverage;
38
+ - optional saved review evidence and the read-only `ai-docs review-check` command;
37
39
  - context bundle output;
38
40
  - an executable `ai-docs` CLI;
39
41
  - optional local MCP runtime entrypoint.
@@ -43,27 +45,53 @@ The stable 0.2.0 package includes:
43
45
  Install the stable release with Python 3.14 or newer:
44
46
 
45
47
  ```bash
46
- python -m pip install ai-docs-toolkit==0.2.0
48
+ python -m pip install ai-docs-toolkit==0.3.0
47
49
  ai-docs --version
48
50
  ```
49
51
 
50
52
  For ephemeral execution with `uvx`:
51
53
 
52
54
  ```bash
53
- uvx --python 3.14 --from ai-docs-toolkit==0.2.0 ai-docs --version
55
+ uvx --python 3.14 --from ai-docs-toolkit==0.3.0 ai-docs --version
54
56
  ```
55
57
 
56
58
  For the optional local MCP runtime:
57
59
 
58
60
  ```bash
59
- python -m pip install "ai-docs-toolkit[mcp]==0.2.0"
61
+ python -m pip install "ai-docs-toolkit[mcp]==0.3.0"
60
62
  ai-docs-mcp --project-root .
61
63
  ```
62
64
 
63
65
  For the latest stable release, use `python -m pip install --upgrade ai-docs-toolkit`
64
66
  without an exact version pin.
65
67
 
66
- ## Stable 0.2.0
68
+ ## Release 0.3.0
69
+
70
+ Impact now reaches explicitly linked test cases from business rules, scenarios
71
+ and acceptance criteria. Test cases end traversal. Changed-mode JSON adds a
72
+ `coverage` object with path counts and unmapped reasons; strict JSON clients
73
+ must accept that field. Explicit-id output keeps its shape. Coverage describes
74
+ discovery and does not establish semantic completeness or successful tests.
75
+
76
+ The optional `ai-docs review-check RECORD --format json` command compares a
77
+ saved YAML review with current input hashes, tool identity, impact candidates
78
+ and decisions. It supports YAML files and fenced YAML in Markdown. It is
79
+ read-only; exit 0 means no mechanical discrepancy, not review approval.
80
+ Git discovery preserves literal Unicode/whitespace paths and rename/deletion
81
+ evidence. Existing CLI/MCP entrypoints and independent project gates remain.
82
+
83
+ After upgrading from 0.2.0, review `ai-docs init --check` and `ai-docs init
84
+ --dry-run`, reconcile local overrides, then refresh the existing managed review
85
+ skill/reference with `ai-docs init`. Run project validation and representative
86
+ impact checks. No schema, id, layout or mandatory review-record migration is
87
+ required. Preserve historical review evidence; a new tool identity requires a
88
+ new reviewed round instead of silently rewriting previous evidence.
89
+
90
+ See the packaged `ai_docs_toolkit/docs/agent-installation.md`,
91
+ “Migration 0.2.0 To 0.3.0”, for commands, preservation rules and rollback.
92
+ Consumers on 0.1.0 must also apply the Python/archive prerequisites below.
93
+
94
+ ## Earlier Stable 0.2.0
67
95
 
68
96
  Completed task files are retained as execution history. Standalone tasks are
69
97
  archived after closure; tasks in a plan stay in place with status `done` until
@@ -221,6 +249,12 @@ Analyze impact for changed files:
221
249
  ai-docs impact --changed
222
250
  ```
223
251
 
252
+ Check optional saved review evidence:
253
+
254
+ ```bash
255
+ ai-docs review-check review.yaml --format json
256
+ ```
257
+
224
258
  Prepare an agent context bundle for changed files:
225
259
 
226
260
  ```bash
@@ -267,7 +301,7 @@ Operators can give the prompt from that document to an AI agent when asking it t
267
301
 
268
302
  ## Development
269
303
 
270
- Version 0.2.0 and the development baseline require Python 3.14+. Earlier
304
+ Versions 0.2.0 and later require Python 3.14+. Earlier
271
305
  published releases retain their original Python requirements. Recreate older
272
306
  environments with Python 3.14+ before upgrading.
273
307
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  AI Docs Toolkit is a documentation toolkit for AI-assisted software development.
4
4
 
5
- It treats documentation as an engineering interface between humans, AI agents, code, tests and change management. Version 0.2.0 retains completed task history and requires Python 3.14 or newer.
5
+ It treats documentation as an engineering interface between humans, AI agents, code, tests and change management. Version 0.3.0 adds linked test cases to impact, changed-path coverage and optional review evidence checks. Python 3.14 or newer is required.
6
6
 
7
7
  ## Purpose
8
8
 
@@ -83,7 +83,10 @@ pipx install ai-docs-toolkit
83
83
  uvx --from ai-docs-toolkit ai-docs validate
84
84
  ```
85
85
 
86
- For upgrades from 0.1.0, follow the [consumer migration guide](src/ai_docs_toolkit/docs/agent-installation.md#migration-010-to-020).
86
+ For upgrades to 0.3.0, follow the [consumer migration guide](src/ai_docs_toolkit/docs/agent-installation.md#migration-020-to-030).
87
+ Install the exact version only after it is available on PyPI; a source preparation
88
+ commit does not publish the package. Consumers on 0.1.0 must also apply the
89
+ [0.2.0 prerequisites](src/ai_docs_toolkit/docs/agent-installation.md#migration-010-to-020).
87
90
  Use Python 3.14+, review managed-file changes and preserve existing project rules
88
91
  and task records before refreshing. Completed standalone tasks are archived;
89
92
  tasks in a plan remain in place until the whole plan is archived.
@@ -135,6 +138,21 @@ ai-docs impact --changed --base <git-ref> --format json
135
138
 
136
139
  Projects can opt in to code-to-document impact through `cascade.root_module` and `cascade.module_ownership` in `ai-docs.config.yaml`.
137
140
 
141
+ Changed-mode output includes discovery coverage and unmapped paths with reasons.
142
+ Impact follows explicit rule, scenario and acceptance links to test cases;
143
+ returned test cases are review candidates and do not prove test execution.
144
+
145
+ Check a saved review record without modifying the project:
146
+
147
+ ```bash
148
+ ai-docs review-check review.yaml --format json
149
+ ```
150
+
151
+ This optional command reports missing decisions, changed input hashes and changed
152
+ impact candidates. It does not approve semantic correctness. See the
153
+ [review record contract](.ai-docs/reference/documentation-change-review-skill.md#advisory-checker)
154
+ for YAML/Markdown input, tool identity and exit codes.
155
+
138
156
  Prepare an agent context bundle for changed files:
139
157
 
140
158
  ```bash
@@ -16,10 +16,12 @@ The core idea is that documentation should not be a secondary artifact created a
16
16
 
17
17
  ## Current Status
18
18
 
19
- The stable 0.2.0 package includes:
19
+ Version 0.3.0 includes:
20
+
20
21
  - schema and structure validation for Markdown documents with YAML front matter;
21
22
  - document graph output;
22
- - impact analysis;
23
+ - impact analysis with linked test cases and changed-path discovery coverage;
24
+ - optional saved review evidence and the read-only `ai-docs review-check` command;
23
25
  - context bundle output;
24
26
  - an executable `ai-docs` CLI;
25
27
  - optional local MCP runtime entrypoint.
@@ -29,27 +31,53 @@ The stable 0.2.0 package includes:
29
31
  Install the stable release with Python 3.14 or newer:
30
32
 
31
33
  ```bash
32
- python -m pip install ai-docs-toolkit==0.2.0
34
+ python -m pip install ai-docs-toolkit==0.3.0
33
35
  ai-docs --version
34
36
  ```
35
37
 
36
38
  For ephemeral execution with `uvx`:
37
39
 
38
40
  ```bash
39
- uvx --python 3.14 --from ai-docs-toolkit==0.2.0 ai-docs --version
41
+ uvx --python 3.14 --from ai-docs-toolkit==0.3.0 ai-docs --version
40
42
  ```
41
43
 
42
44
  For the optional local MCP runtime:
43
45
 
44
46
  ```bash
45
- python -m pip install "ai-docs-toolkit[mcp]==0.2.0"
47
+ python -m pip install "ai-docs-toolkit[mcp]==0.3.0"
46
48
  ai-docs-mcp --project-root .
47
49
  ```
48
50
 
49
51
  For the latest stable release, use `python -m pip install --upgrade ai-docs-toolkit`
50
52
  without an exact version pin.
51
53
 
52
- ## Stable 0.2.0
54
+ ## Release 0.3.0
55
+
56
+ Impact now reaches explicitly linked test cases from business rules, scenarios
57
+ and acceptance criteria. Test cases end traversal. Changed-mode JSON adds a
58
+ `coverage` object with path counts and unmapped reasons; strict JSON clients
59
+ must accept that field. Explicit-id output keeps its shape. Coverage describes
60
+ discovery and does not establish semantic completeness or successful tests.
61
+
62
+ The optional `ai-docs review-check RECORD --format json` command compares a
63
+ saved YAML review with current input hashes, tool identity, impact candidates
64
+ and decisions. It supports YAML files and fenced YAML in Markdown. It is
65
+ read-only; exit 0 means no mechanical discrepancy, not review approval.
66
+ Git discovery preserves literal Unicode/whitespace paths and rename/deletion
67
+ evidence. Existing CLI/MCP entrypoints and independent project gates remain.
68
+
69
+ After upgrading from 0.2.0, review `ai-docs init --check` and `ai-docs init
70
+ --dry-run`, reconcile local overrides, then refresh the existing managed review
71
+ skill/reference with `ai-docs init`. Run project validation and representative
72
+ impact checks. No schema, id, layout or mandatory review-record migration is
73
+ required. Preserve historical review evidence; a new tool identity requires a
74
+ new reviewed round instead of silently rewriting previous evidence.
75
+
76
+ See the packaged `ai_docs_toolkit/docs/agent-installation.md`,
77
+ “Migration 0.2.0 To 0.3.0”, for commands, preservation rules and rollback.
78
+ Consumers on 0.1.0 must also apply the Python/archive prerequisites below.
79
+
80
+ ## Earlier Stable 0.2.0
53
81
 
54
82
  Completed task files are retained as execution history. Standalone tasks are
55
83
  archived after closure; tasks in a plan stay in place with status `done` until
@@ -207,6 +235,12 @@ Analyze impact for changed files:
207
235
  ai-docs impact --changed
208
236
  ```
209
237
 
238
+ Check optional saved review evidence:
239
+
240
+ ```bash
241
+ ai-docs review-check review.yaml --format json
242
+ ```
243
+
210
244
  Prepare an agent context bundle for changed files:
211
245
 
212
246
  ```bash
@@ -253,7 +287,7 @@ Operators can give the prompt from that document to an AI agent when asking it t
253
287
 
254
288
  ## Development
255
289
 
256
- Version 0.2.0 and the development baseline require Python 3.14+. Earlier
290
+ Versions 0.2.0 and later require Python 3.14+. Earlier
257
291
  published releases retain their original Python requirements. Recreate older
258
292
  environments with Python 3.14+ before upgrading.
259
293
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ai-docs-toolkit"
7
- version = "0.2.0"
7
+ version = "0.3.0"
8
8
  description = "AI-oriented documentation toolkit."
9
9
  readme = "packaging/pypi/README.md"
10
10
  requires-python = ">=3.14"
@@ -1,3 +1,3 @@
1
1
  """AI Docs Toolkit package baseline."""
2
2
 
3
- __version__ = "0.2.0"
3
+ __version__ = "0.3.0"
@@ -91,6 +91,7 @@ def _help_text() -> str:
91
91
  " ai-docs tasks push --provider azure-devops (--task TASK-ID | --stage STAGE-ID | --plan PLAN-ID) --organization ORG --project PROJECT [--dry-run] [--write-back] [--format json]",
92
92
  " ai-docs graph --format json [--type TYPE] [--module MODULE] [--id ID]",
93
93
  " ai-docs impact (--id ID | --changed [--base REF]) [--format json]",
94
+ " ai-docs review-check RECORD [--record N] [--format json|--json]",
94
95
  " ai-docs context (--id ID | --module MODULE | --feature FEATURE | --changed) [--format json] [--history exclude|include|legacy] [--body-budget-bytes N] [--depth N]",
95
96
  " ai-docs mcp status [--project-root PATH] [--config FILE]",
96
97
  " ai-docs mcp configure --client jetbrains --print-json [--project-root PATH] [--config FILE]",
@@ -116,6 +117,21 @@ def main(argv: list[str] | None = None) -> int:
116
117
  print(__version__)
117
118
  return 0
118
119
 
120
+ if args[0] == "review-check":
121
+ import json
122
+ import sys
123
+ from ai_docs_toolkit.review import check_review, format_review_human
124
+
125
+ review_args = _parse_review_args(args)
126
+ if review_args is None:
127
+ print("Usage: ai-docs review-check RECORD [--record N] [--format json|--json]", file=sys.stderr)
128
+ return 3
129
+ path, number, output_format = review_args
130
+ result = check_review(path, ".", record_number=number)
131
+ print(json.dumps(result, ensure_ascii=False, indent=2, sort_keys=True)
132
+ if output_format == "json" else format_review_human(result))
133
+ return result["exit_code"]
134
+
119
135
  init_args = _parse_init_args(args)
120
136
  if init_args is not None:
121
137
  profile, force, dry_run, check = init_args
@@ -1151,3 +1167,30 @@ def _parse_planning_args(args: list[str]):
1151
1167
  parsed["--task-id"],
1152
1168
  plan_date,
1153
1169
  )
1170
+
1171
+
1172
+ def _parse_review_args(args):
1173
+ if len(args) < 2 or args[1].startswith('-'):
1174
+ return None
1175
+ options = {}
1176
+ index = 2
1177
+ while index < len(args):
1178
+ option = args[index]
1179
+ if option not in {'--record', '--format', '--json'} or option in options:
1180
+ return None
1181
+ if option == '--json':
1182
+ options[option] = True
1183
+ index += 1
1184
+ elif index + 1 < len(args):
1185
+ options[option] = args[index + 1]
1186
+ index += 2
1187
+ else:
1188
+ return None
1189
+ if '--format' in options and ('--json' in options or options['--format'] != 'json'):
1190
+ return None
1191
+ number = options.get('--record')
1192
+ if number is not None:
1193
+ if not number.isascii() or not number.isdigit() or len(number) > 9 or int(number) < 1:
1194
+ return None
1195
+ number = int(number)
1196
+ return args[1], number, 'json' if '--format' in options or '--json' in options else 'human'
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import os
3
4
  import subprocess
4
5
  from dataclasses import dataclass
5
6
  from fnmatch import fnmatchcase
@@ -50,11 +51,12 @@ def read_git_changed_files(
50
51
  base_ref: str | None = None,
51
52
  ) -> GitChangedFilesResult:
52
53
  process = subprocess.run(
53
- ["git", "status", "--porcelain", "--untracked-files=all"],
54
+ ["git", "status", "--porcelain", "-z", "--untracked-files=all"],
54
55
  cwd=root,
55
56
  capture_output=True,
56
57
  text=True,
57
58
  check=False,
59
+ env={**os.environ, "GIT_OPTIONAL_LOCKS": "0"},
58
60
  )
59
61
  if process.returncode != 0:
60
62
  return GitChangedFilesResult(
@@ -69,20 +71,23 @@ def read_git_changed_files(
69
71
  ),
70
72
  )
71
73
 
72
- changed_files = set(parse_git_status_porcelain(process.stdout))
74
+ changed_files = set(_parse_git_status_z(process.stdout))
73
75
  if base_ref is not None:
74
76
  diff_process = subprocess.run(
75
77
  [
76
78
  "git",
77
79
  "diff",
78
80
  "--name-only",
79
- "--diff-filter=ACMRTUXB",
81
+ "-z",
82
+ "--no-renames",
83
+ "--diff-filter=ACDMRTUXB",
80
84
  f"{base_ref}...HEAD",
81
85
  ],
82
86
  cwd=root,
83
87
  capture_output=True,
84
88
  text=True,
85
89
  check=False,
90
+ env={**os.environ, "GIT_OPTIONAL_LOCKS": "0"},
86
91
  )
87
92
  if diff_process.returncode != 0:
88
93
  return GitChangedFilesResult(
@@ -97,12 +102,26 @@ def read_git_changed_files(
97
102
  ),
98
103
  )
99
104
  changed_files.update(
100
- path for path in diff_process.stdout.splitlines() if path
105
+ path for path in diff_process.stdout.split("\0") if path
101
106
  )
102
107
 
103
108
  return GitChangedFilesResult(changed_files=tuple(sorted(changed_files)))
104
109
 
105
110
 
111
+ def _parse_git_status_z(output: str) -> tuple[str, ...]:
112
+ fields = iter(output.split("\0"))
113
+ paths = []
114
+ for entry in fields:
115
+ if len(entry) < 4:
116
+ continue
117
+ paths.append(entry[3:])
118
+ if "R" in entry[:2] or "C" in entry[:2]:
119
+ original = next(fields, "")
120
+ if original:
121
+ paths.append(original)
122
+ return tuple(paths)
123
+
124
+
106
125
  def parse_git_status_porcelain(output: str) -> tuple[str, ...]:
107
126
  changed_files: list[str] = []
108
127
  for line in output.splitlines():
@@ -15,6 +15,7 @@ IMPACT_TRANSITIONS: dict[str, frozenset[str]] = {
15
15
  "module",
16
16
  "scenario",
17
17
  "acceptance",
18
+ "test_case",
18
19
  "guide",
19
20
  "operation",
20
21
  "runbook",
@@ -37,8 +38,8 @@ IMPACT_TRANSITIONS: dict[str, frozenset[str]] = {
37
38
  "module": frozenset(
38
39
  {"contract", "scenario", "acceptance", "guide", "operation", "runbook"}
39
40
  ),
40
- "scenario": frozenset({"acceptance", "guide", "operation", "runbook"}),
41
- "acceptance": frozenset({"operation", "runbook"}),
41
+ "scenario": frozenset({"acceptance", "test_case", "guide", "operation", "runbook"}),
42
+ "acceptance": frozenset({"test_case", "operation", "runbook"}),
42
43
  "guide": frozenset({"operation", "runbook"}),
43
44
  "operation": frozenset(),
44
45
  "runbook": frozenset({"operation"}),
@@ -31,7 +31,7 @@ Required behavior:
31
31
 
32
32
  Use Python 3.14 or newer.
33
33
 
34
- Version 0.2.0 and the development baseline require Python 3.14+.
34
+ Versions 0.2.0 and later require Python 3.14+.
35
35
  Previously published versions retain their declared requirements. Before
36
36
  upgrading, recreate an older project environment with Python 3.14+, reinstall
37
37
  its dependencies and rerun its checks; updating documentation does not change
@@ -47,7 +47,7 @@ ai-docs --version
47
47
  Pinned install:
48
48
 
49
49
  ```bash
50
- python -m pip install "ai-docs-toolkit==0.2.0"
50
+ python -m pip install "ai-docs-toolkit==0.3.0"
51
51
  ai-docs --version
52
52
  ```
53
53
 
@@ -156,6 +156,128 @@ reinstall the previously recorded package/environment, and preserve retained
156
156
  planning records. Package rollback does not reverse archive moves or external
157
157
  effects. Keep package versions and artifact hashes with the migration evidence.
158
158
 
159
+ ## Migration 0.2.0 To 0.3.0
160
+
161
+ From: `0.2.0`. To: `0.3.0`. Consumers on `0.1.0` must first apply the Python
162
+ 3.14 and archive-retention prerequisites in “Migration 0.1.0 To 0.2.0”; they
163
+ may install 0.3.0 directly after reviewing both sets of managed changes.
164
+ Run the exact installation only once 0.3.0 is available on the selected index.
165
+
166
+ Record `ai-docs --version`, `ai-docs doctor --format json`, `ai-docs init --check`
167
+ and existing project validation findings. Preserve a Git diff or backup of
168
+ `AGENTS.md`, config, `.ai-docs/local/`, `.ai-docs/managed-files.json`, managed
169
+ instructions, planning records and saved review evidence before upgrading.
170
+
171
+ Use the project's existing installer with Python 3.14+:
172
+
173
+ ```bash
174
+ python --version
175
+ python -m pip install --upgrade "ai-docs-toolkit==0.3.0"
176
+ # MCP users install the complete extra instead:
177
+ python -m pip install --upgrade "ai-docs-toolkit[mcp]==0.3.0"
178
+ # Isolated CLI alternatives:
179
+ pipx install --force --python python3.14 "ai-docs-toolkit==0.3.0"
180
+ uvx --python 3.14 --from ai-docs-toolkit==0.3.0 ai-docs --version
181
+ ai-docs --version
182
+ ai-docs init --check
183
+ ai-docs init --dry-run
184
+ ```
185
+
186
+ Expect version 0.3.0. Reconnect long-lived MCP clients. The managed refresh
187
+ updates `.ai-docs/skills/documentation-change-review/SKILL.md` and
188
+ `.ai-docs/reference/documentation-change-review-skill.md`. No new bootstrap
189
+ paths, schema, mandatory review records or task moves are introduced. Keep
190
+ document/task ids, relationship links, registry paths, archives and project
191
+ rules. Reconcile locally modified or provenance-missing managed files before
192
+ applying `init`; preserve local overrides instead of using blanket `--force`.
193
+
194
+ Review strict JSON consumers for the new changed-mode `coverage` field and
195
+ integrations that assume fixed impacted-document types/counts. The following
196
+ sections describe review-check, coverage and linked test-case behavior.
197
+ Do not refresh a saved record's `tool` or hashes merely to clear findings:
198
+ preserve historical rounds and create a new round after reviewing current
199
+ inputs, candidates and decisions. Free-form old tool descriptions remain
200
+ unverifiable. A version upgrade changes the checker identity even when project
201
+ files are unchanged.
202
+
203
+ After reviewing the refresh:
204
+
205
+ ```bash
206
+ ai-docs init
207
+ ai-docs validate --json
208
+ ai-docs doctor --format json
209
+ ai-docs init --check
210
+ ai-docs impact --changed --format json
211
+ ```
212
+
213
+ Expect successful validation, no unexpected doctor findings and no outstanding
214
+ managed refresh. In a Git project, inspect coverage and preserve unmapped-path
215
+ warnings. Also run `ai-docs impact --id <known-rule-or-acceptance-id> --format
216
+ json` with a real project id and inspect its explicit TC links. If a saved
217
+ review exists, run `ai-docs review-check <record-path> --format json`; findings
218
+ about an older tool are expected and need review, not automatic evidence edits.
219
+ Keep independent project tests/review gates. Stop for owner review on unmanaged
220
+ rewrites, unresolved local-policy conflicts or new validation errors.
221
+
222
+ For rollback, restore reviewed managed files and their manifest together,
223
+ reinstall the recorded previous package/environment and reconnect MCP clients.
224
+ Keep project ids, links, task history and review rounds. An executable downgrade
225
+ does not reverse manual edits or external effects; consumers using the new CLI
226
+ or JSON field must also revert that integration. Record package/artifact hashes
227
+ and validation results with the upgrade evidence.
228
+
229
+ ### Optional Review Evidence (0.3.0)
230
+
231
+ Version 0.3.0 adds an optional YAML review record and a separate read-only
232
+ `ai-docs review-check RECORD [--format json]` command. Use a YAML file or a fenced
233
+ YAML block in existing Markdown; select multiple rounds with `--record N`.
234
+ The checker reports missing/open decisions, stale/missing input hashes and
235
+ changed sources/candidates. Copy `current_tool` from its output when recording
236
+ the verified tool state; older free-form tool descriptions are unverifiable.
237
+ Changed review needs a pinned Git base. Git discovery now preserves literal
238
+ Unicode/whitespace paths and deleted/renamed paths, with optional index writes
239
+ disabled. Deleted owned implementation files can become impact sources.
240
+
241
+ The selected standalone YAML record can be stored in Git without a self-hash
242
+ or ignore rule. Other changed paths still need hashes. If a Markdown container
243
+ is also a required input, `review.record_is_input` asks you to move the record
244
+ to separate YAML and hash the complete Markdown there. Discovery warnings remain
245
+ visible; moving evidence does not prove complete impact coverage.
246
+
247
+ The command adds no required document or schema migration; `ai-docs validate`
248
+ does not validate these records. Exit 0 means no mechanical discrepancy, 1 means
249
+ findings/invalid record, and 2/3/4 mean config/usage/unavailable evidence. It does
250
+ not approve semantic consistency or external state. Keep independent review gates.
251
+
252
+ ### Changed Impact Coverage (0.3.0)
253
+
254
+ `ai-docs impact --changed` now summarizes changed paths, paths resolved as
255
+ documents or through module ownership, unique source document IDs and unmapped
256
+ paths with reasons. JSON adds a `coverage` object only for `--changed`; clients
257
+ that require exact top-level keys should accept this addition. Human output adds
258
+ a coverage section. Unavailable Git/config produces null counts rather than zero.
259
+ Existing provenance, warnings/errors, exit codes and `--id` output are preserved.
260
+
261
+ This summary measures discovery, not semantic completeness or test execution.
262
+ Updating the executable enables it; no new metadata, managed template, bootstrap
263
+ file-list change or `init` migration is required. Review records remain optional;
264
+ a changed executable identity requires review before refreshing their tool state.
265
+
266
+ ### Test Case Impact (0.3.0)
267
+
268
+ Version 0.3.0 includes linked `test_case` documents in impact results from
269
+ `business_rule`, `scenario` and `acceptance`. On a test case, use the existing
270
+ `related.business_rules`, `related.scenarios` or `related.acceptance` ids.
271
+ No front matter migration, new relationship group or managed-file refresh is
272
+ required for this behavior. Updating the toolkit executable enables it.
273
+
274
+ Review integrations that assume a fixed impacted-document count or type list.
275
+ The JSON shape stays the same; a rule linked to acceptance can now reach a test
276
+ case referencing that acceptance. Test cases end impact traversal and do not
277
+ serve as bridges to their other sources. A returned test case is a review
278
+ candidate, not evidence that a test ran or passed. Existing links remain valid;
279
+ missing links still require manual review.
280
+
159
281
  ## Scoped Authorization Update (0.1.0)
160
282
 
161
283
  This update preserves an existing session/task assignment across tools, skills