ai-docs-toolkit 0.2.0__tar.gz → 0.3.1__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.1}/PKG-INFO +55 -9
  2. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/README.md +28 -2
  3. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/packaging/pypi/README.md +54 -8
  4. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/pyproject.toml +1 -1
  5. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/__init__.py +1 -1
  6. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/cli/__init__.py +43 -0
  7. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/changed_files.py +23 -4
  8. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/impact.py +3 -2
  9. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/docs/agent-installation.md +214 -11
  10. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/impact/json_output.py +120 -2
  11. ai_docs_toolkit-0.3.1/src/ai_docs_toolkit/review/__init__.py +3 -0
  12. ai_docs_toolkit-0.3.1/src/ai_docs_toolkit/review/check.py +252 -0
  13. ai_docs_toolkit-0.3.1/src/ai_docs_toolkit/review/record.py +150 -0
  14. ai_docs_toolkit-0.3.1/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.1}/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.1}/src/ai_docs_toolkit.egg-info/PKG-INFO +55 -9
  17. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit.egg-info/SOURCES.txt +4 -0
  18. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_cli_baseline.py +2 -2
  19. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_document_graph.py +1 -1
  20. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_graph_cli_json.py +20 -2
  21. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_impact_analysis.py +109 -0
  22. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_impact_cli_human.py +57 -0
  23. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_impact_cli_json.py +169 -3
  24. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_mcp_server.py +3 -2
  25. ai_docs_toolkit-0.3.1/tests/test_review_check.py +459 -0
  26. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/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.1}/setup.cfg +0 -0
  29. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/__main__.py +0 -0
  30. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/context/__init__.py +0 -0
  31. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/context/markdown_output.py +0 -0
  32. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/__init__.py +0 -0
  33. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/azure_devops_provider.py +0 -0
  34. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/config.py +0 -0
  35. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/context.py +0 -0
  36. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/doctor.py +0 -0
  37. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/file_lookup.py +0 -0
  38. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/frontmatter.py +0 -0
  39. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/graph.py +0 -0
  40. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/init.py +0 -0
  41. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/planning_operations.py +0 -0
  42. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/planning_scaffold.py +0 -0
  43. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/registry.py +0 -0
  44. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/requirement_capture.py +0 -0
  45. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/scanner.py +0 -0
  46. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/schema_validation.py +0 -0
  47. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/section_fix.py +0 -0
  48. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/structure_validation.py +0 -0
  49. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/core/task_export.py +0 -0
  50. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/graph/__init__.py +0 -0
  51. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/graph/json_output.py +0 -0
  52. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/impact/__init__.py +0 -0
  53. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/mcp/__init__.py +0 -0
  54. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/mcp/__main__.py +0 -0
  55. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/mcp/server.py +0 -0
  56. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/mcp/setup.py +0 -0
  57. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/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.1}/src/ai_docs_toolkit/templates/project/AGENTS.md +0 -0
  112. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/templates/project/ai-docs-index.md +0 -0
  113. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/templates/project/ai-docs.config.yaml +0 -0
  114. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/validation/__init__.py +0 -0
  115. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit/validation/human.py +0 -0
  116. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit.egg-info/dependency_links.txt +0 -0
  117. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit.egg-info/entry_points.txt +0 -0
  118. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit.egg-info/requires.txt +0 -0
  119. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/src/ai_docs_toolkit.egg-info/top_level.txt +0 -0
  120. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_azure_devops_provider.py +0 -0
  121. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_bootstrap_templates.py +0 -0
  122. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_config_loader_and_scanner.py +0 -0
  123. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_consumer_matrix.py +0 -0
  124. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_context_cli_json.py +0 -0
  125. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_context_cli_markdown.py +0 -0
  126. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_context_depth.py +0 -0
  127. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_context_policy.py +0 -0
  128. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_context_selector.py +0 -0
  129. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_document_registry.py +0 -0
  130. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_execution_evals.py +0 -0
  131. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_frontmatter_parser.py +0 -0
  132. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_init_cli.py +0 -0
  133. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_schema_validation.py +0 -0
  134. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_skill_eval_harness.py +0 -0
  135. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_structure_validation.py +0 -0
  136. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/tests/test_task_export.py +0 -0
  137. {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.1}/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.1
4
4
  Summary: AI-oriented documentation toolkit.
5
5
  Requires-Python: >=3.14
6
6
  Description-Content-Type: text/markdown
@@ -30,40 +30,80 @@ 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.1 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.
40
42
 
41
43
  ## Installation
42
44
 
43
- Install the stable release with Python 3.14 or newer:
45
+ Install this version with Python 3.14 or newer once it is available on PyPI:
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.1
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.1 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.1"
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.1
69
+
70
+ The package installation guide now describes preserving review/evidence before
71
+ revert and verifying the restored files and environment. See
72
+ `ai_docs_toolkit/docs/agent-installation.md`, “Rollback Verification”.
73
+ The patch requires no managed-file refresh, schema or project-data migration
74
+ from 0.3.0. After installation, verify the version, run `ai-docs validate --json`,
75
+ `ai-docs doctor --format json`, `ai-docs init --check`, and the project's checks.
76
+ Preserve historical review rounds: the version change causes `tool_changed`
77
+ findings even when project files are unchanged. See “Migration 0.3.0 To 0.3.1”
78
+ in the packaged guide for installation and verification commands.
79
+
80
+ ## Release 0.3.0
81
+
82
+ Impact now reaches explicitly linked test cases from business rules, scenarios
83
+ and acceptance criteria. Test cases end traversal. Changed-mode JSON adds a
84
+ `coverage` object with path counts and unmapped reasons; strict JSON clients
85
+ must accept that field. Explicit-id output keeps its shape. Coverage describes
86
+ discovery and does not establish semantic completeness or successful tests.
87
+
88
+ The optional `ai-docs review-check RECORD --format json` command compares a
89
+ saved YAML review with current input hashes, tool identity, impact candidates
90
+ and decisions. It supports YAML files and fenced YAML in Markdown. It is
91
+ read-only; exit 0 means no mechanical discrepancy, not review approval.
92
+ Git discovery preserves literal Unicode/whitespace paths and rename/deletion
93
+ evidence. Existing CLI/MCP entrypoints and independent project gates remain.
94
+
95
+ After upgrading from 0.2.0, review `ai-docs init --check` and `ai-docs init
96
+ --dry-run`, reconcile local overrides, then refresh the existing managed review
97
+ skill/reference with `ai-docs init`. Run project validation and representative
98
+ impact checks. No schema, id, layout or mandatory review-record migration is
99
+ required. Preserve historical review evidence; a new tool identity requires a
100
+ new reviewed round instead of silently rewriting previous evidence.
101
+
102
+ See the packaged `ai_docs_toolkit/docs/agent-installation.md`,
103
+ “Migration 0.2.0 To 0.3.0”, for commands, preservation rules and rollback.
104
+ Consumers on 0.1.0 must also apply the Python/archive prerequisites below.
105
+
106
+ ## Earlier Stable 0.2.0
67
107
 
68
108
  Completed task files are retained as execution history. Standalone tasks are
69
109
  archived after closure; tasks in a plan stay in place with status `done` until
@@ -221,6 +261,12 @@ Analyze impact for changed files:
221
261
  ai-docs impact --changed
222
262
  ```
223
263
 
264
+ Check optional saved review evidence:
265
+
266
+ ```bash
267
+ ai-docs review-check review.yaml --format json
268
+ ```
269
+
224
270
  Prepare an agent context bundle for changed files:
225
271
 
226
272
  ```bash
@@ -267,7 +313,7 @@ Operators can give the prompt from that document to an AI agent when asking it t
267
313
 
268
314
  ## Development
269
315
 
270
- Version 0.2.0 and the development baseline require Python 3.14+. Earlier
316
+ Versions 0.2.0 and later require Python 3.14+. Earlier
271
317
  published releases retain their original Python requirements. Recreate older
272
318
  environments with Python 3.14+ before upgrading.
273
319
 
@@ -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.1 clarifies rollback verification, alongside the linked test cases, changed-path coverage and optional review evidence checks introduced in 0.3.0. Python 3.14 or newer is required.
6
6
 
7
7
  ## Purpose
8
8
 
@@ -83,11 +83,22 @@ 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 from 0.3.0 to 0.3.1, follow the [consumer migration guide](src/ai_docs_toolkit/docs/agent-installation.md#migration-030-to-031).
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.2.0 must also apply the
89
+ [0.3.0 migration](src/ai_docs_toolkit/docs/agent-installation.md#migration-020-to-030);
90
+ consumers on 0.1.0 must also apply the
91
+ [0.2.0 prerequisites](src/ai_docs_toolkit/docs/agent-installation.md#migration-010-to-020).
87
92
  Use Python 3.14+, review managed-file changes and preserve existing project rules
88
93
  and task records before refreshing. Completed standalone tasks are archived;
89
94
  tasks in a plan remain in place until the whole plan is archived.
90
95
 
96
+ The 0.3.1 release preparation includes a clarification of
97
+ [rollback verification](src/ai_docs_toolkit/docs/agent-installation.md#rollback-verification):
98
+ preserve review/evidence before revert, then check restored files and the actual
99
+ environment. No managed-file refresh or data migration is required for this
100
+ clarification. Publication is pending; the published 0.3.0 package is unchanged.
101
+
91
102
  Docker, npm/npx and standalone binary distribution are deferred.
92
103
  See [Distribution Strategy](.ai-docs/reference/distribution-strategy.md) for supported and deferred channels.
93
104
 
@@ -135,6 +146,21 @@ ai-docs impact --changed --base <git-ref> --format json
135
146
 
136
147
  Projects can opt in to code-to-document impact through `cascade.root_module` and `cascade.module_ownership` in `ai-docs.config.yaml`.
137
148
 
149
+ Changed-mode output includes discovery coverage and unmapped paths with reasons.
150
+ Impact follows explicit rule, scenario and acceptance links to test cases;
151
+ returned test cases are review candidates and do not prove test execution.
152
+
153
+ Check a saved review record without modifying the project:
154
+
155
+ ```bash
156
+ ai-docs review-check review.yaml --format json
157
+ ```
158
+
159
+ This optional command reports missing decisions, changed input hashes and changed
160
+ impact candidates. It does not approve semantic correctness. See the
161
+ [review record contract](.ai-docs/reference/documentation-change-review-skill.md#advisory-checker)
162
+ for YAML/Markdown input, tool identity and exit codes.
163
+
138
164
  Prepare an agent context bundle for changed files:
139
165
 
140
166
  ```bash
@@ -16,40 +16,80 @@ 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.1 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.
26
28
 
27
29
  ## Installation
28
30
 
29
- Install the stable release with Python 3.14 or newer:
31
+ Install this version with Python 3.14 or newer once it is available on PyPI:
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.1
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.1 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.1"
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.1
55
+
56
+ The package installation guide now describes preserving review/evidence before
57
+ revert and verifying the restored files and environment. See
58
+ `ai_docs_toolkit/docs/agent-installation.md`, “Rollback Verification”.
59
+ The patch requires no managed-file refresh, schema or project-data migration
60
+ from 0.3.0. After installation, verify the version, run `ai-docs validate --json`,
61
+ `ai-docs doctor --format json`, `ai-docs init --check`, and the project's checks.
62
+ Preserve historical review rounds: the version change causes `tool_changed`
63
+ findings even when project files are unchanged. See “Migration 0.3.0 To 0.3.1”
64
+ in the packaged guide for installation and verification commands.
65
+
66
+ ## Release 0.3.0
67
+
68
+ Impact now reaches explicitly linked test cases from business rules, scenarios
69
+ and acceptance criteria. Test cases end traversal. Changed-mode JSON adds a
70
+ `coverage` object with path counts and unmapped reasons; strict JSON clients
71
+ must accept that field. Explicit-id output keeps its shape. Coverage describes
72
+ discovery and does not establish semantic completeness or successful tests.
73
+
74
+ The optional `ai-docs review-check RECORD --format json` command compares a
75
+ saved YAML review with current input hashes, tool identity, impact candidates
76
+ and decisions. It supports YAML files and fenced YAML in Markdown. It is
77
+ read-only; exit 0 means no mechanical discrepancy, not review approval.
78
+ Git discovery preserves literal Unicode/whitespace paths and rename/deletion
79
+ evidence. Existing CLI/MCP entrypoints and independent project gates remain.
80
+
81
+ After upgrading from 0.2.0, review `ai-docs init --check` and `ai-docs init
82
+ --dry-run`, reconcile local overrides, then refresh the existing managed review
83
+ skill/reference with `ai-docs init`. Run project validation and representative
84
+ impact checks. No schema, id, layout or mandatory review-record migration is
85
+ required. Preserve historical review evidence; a new tool identity requires a
86
+ new reviewed round instead of silently rewriting previous evidence.
87
+
88
+ See the packaged `ai_docs_toolkit/docs/agent-installation.md`,
89
+ “Migration 0.2.0 To 0.3.0”, for commands, preservation rules and rollback.
90
+ Consumers on 0.1.0 must also apply the Python/archive prerequisites below.
91
+
92
+ ## Earlier Stable 0.2.0
53
93
 
54
94
  Completed task files are retained as execution history. Standalone tasks are
55
95
  archived after closure; tasks in a plan stay in place with status `done` until
@@ -207,6 +247,12 @@ Analyze impact for changed files:
207
247
  ai-docs impact --changed
208
248
  ```
209
249
 
250
+ Check optional saved review evidence:
251
+
252
+ ```bash
253
+ ai-docs review-check review.yaml --format json
254
+ ```
255
+
210
256
  Prepare an agent context bundle for changed files:
211
257
 
212
258
  ```bash
@@ -253,7 +299,7 @@ Operators can give the prompt from that document to an AI agent when asking it t
253
299
 
254
300
  ## Development
255
301
 
256
- Version 0.2.0 and the development baseline require Python 3.14+. Earlier
302
+ Versions 0.2.0 and later require Python 3.14+. Earlier
257
303
  published releases retain their original Python requirements. Recreate older
258
304
  environments with Python 3.14+ before upgrading.
259
305
 
@@ -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.1"
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.1"
@@ -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"}),