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.
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/PKG-INFO +42 -8
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/README.md +20 -2
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/packaging/pypi/README.md +41 -7
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/pyproject.toml +1 -1
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/__init__.py +1 -1
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/cli/__init__.py +43 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/changed_files.py +23 -4
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/impact.py +3 -2
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/docs/agent-installation.md +124 -2
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/impact/json_output.py +120 -2
- ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/__init__.py +3 -0
- ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/check.py +252 -0
- ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/review/record.py +150 -0
- ai_docs_toolkit-0.3.0/src/ai_docs_toolkit/templates/project/.ai-docs/reference/documentation-change-review-skill.md +282 -0
- {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
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/PKG-INFO +42 -8
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/SOURCES.txt +4 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_cli_baseline.py +2 -2
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_document_graph.py +1 -1
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_graph_cli_json.py +20 -2
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_analysis.py +109 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_cli_human.py +57 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_impact_cli_json.py +169 -3
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_mcp_server.py +3 -2
- ai_docs_toolkit-0.3.0/tests/test_review_check.py +459 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_validate_cli_json.py +3 -3
- ai_docs_toolkit-0.2.0/src/ai_docs_toolkit/templates/project/.ai-docs/reference/documentation-change-review-skill.md +0 -128
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/setup.cfg +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/__main__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/context/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/context/markdown_output.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/azure_devops_provider.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/config.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/context.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/doctor.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/file_lookup.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/frontmatter.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/graph.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/init.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/planning_operations.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/planning_scaffold.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/registry.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/requirement_capture.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/scanner.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/schema_validation.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/section_fix.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/structure_validation.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/core/task_export.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/graph/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/graph/json_output.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/impact/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/__main__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/server.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/mcp/setup.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/AGENTS.md +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/ai-docs-index.md +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/templates/project/ai-docs.config.yaml +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/validation/__init__.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/validation/human.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/dependency_links.txt +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/entry_points.txt +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/requires.txt +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit.egg-info/top_level.txt +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_azure_devops_provider.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_bootstrap_templates.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_config_loader_and_scanner.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_consumer_matrix.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_cli_json.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_cli_markdown.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_depth.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_policy.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_context_selector.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_document_registry.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_execution_evals.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_frontmatter_parser.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_init_cli.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_schema_validation.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_skill_eval_harness.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_structure_validation.py +0 -0
- {ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/tests/test_task_export.py +0 -0
- {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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
##
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
|
|
@@ -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(
|
|
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
|
-
"
|
|
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.
|
|
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"}),
|
{ai_docs_toolkit-0.2.0 → ai_docs_toolkit-0.3.0}/src/ai_docs_toolkit/docs/agent-installation.md
RENAMED
|
@@ -31,7 +31,7 @@ Required behavior:
|
|
|
31
31
|
|
|
32
32
|
Use Python 3.14 or newer.
|
|
33
33
|
|
|
34
|
-
|
|
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.
|
|
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
|