documentation-engine 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 (139) hide show
  1. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/adoption-finding.yml +1 -1
  2. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/core-bug.yml +1 -1
  3. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/docs-pattern-request.yml +1 -1
  4. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/runtime-report.yml +1 -1
  5. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/PULL_REQUEST_TEMPLATE.md +18 -7
  6. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/workflows/ci.yml +3 -3
  7. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.gitignore +1 -1
  8. documentation_engine-0.3.0/AGENTS.md +116 -0
  9. documentation_engine-0.3.0/CHANGELOG.md +189 -0
  10. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/CLAUDE.md +4 -7
  11. documentation_engine-0.3.0/CONTRIBUTING.md +134 -0
  12. documentation_engine-0.3.0/PKG-INFO +845 -0
  13. documentation_engine-0.3.0/README.md +828 -0
  14. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/SECURITY.md +6 -6
  15. documentation_engine-0.3.0/docs/README.md +69 -0
  16. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/adopter-reporting.md +65 -0
  17. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/adoption.md +66 -31
  18. documentation_engine-0.3.0/docs/agent-contract.md +739 -0
  19. documentation_engine-0.3.0/docs/architecture.md +563 -0
  20. documentation_engine-0.2.0/docs/paradigmarium-integration.md → documentation_engine-0.3.0/docs/client-integration.md +16 -18
  21. documentation_engine-0.3.0/docs/context-delivery.md +52 -0
  22. documentation_engine-0.3.0/docs/delivery-traceability.md +107 -0
  23. documentation_engine-0.3.0/docs/document-profiles.md +76 -0
  24. documentation_engine-0.3.0/docs/execution-admission.md +147 -0
  25. documentation_engine-0.3.0/docs/execution-handoff.md +114 -0
  26. documentation_engine-0.3.0/docs/federation.md +182 -0
  27. documentation_engine-0.3.0/docs/graph-health.md +56 -0
  28. documentation_engine-0.3.0/docs/idea-intake.md +117 -0
  29. documentation_engine-0.3.0/docs/knowledge-promotion.md +72 -0
  30. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/local-state-safety.md +1 -1
  31. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/mcp-adapter.md +60 -6
  32. documentation_engine-0.3.0/docs/metadata-inventory.md +52 -0
  33. documentation_engine-0.3.0/docs/program-plans.md +128 -0
  34. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/setup-guide.md +84 -43
  35. documentation_engine-0.3.0/docs/workspace-sources.md +234 -0
  36. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/workstream-branching.md +16 -0
  37. documentation_engine-0.3.0/docs/workstream-evidence.md +132 -0
  38. documentation_engine-0.3.0/docs/workstream-lifecycle.md +103 -0
  39. documentation_engine-0.3.0/examples/execution-admission-request.json +44 -0
  40. documentation_engine-0.3.0/examples/execution-result.json +11 -0
  41. documentation_engine-0.3.0/examples/idea-intake-request.json +22 -0
  42. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/workstream-branch-template.md +7 -0
  43. documentation_engine-0.3.0/examples/workstream-record.json +96 -0
  44. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/__init__.py +1 -1
  45. documentation_engine-0.3.0/src/docsystem/admission.py +430 -0
  46. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/catalog.py +21 -3
  47. documentation_engine-0.3.0/src/docsystem/change_plan.py +292 -0
  48. documentation_engine-0.3.0/src/docsystem/cli.py +9219 -0
  49. documentation_engine-0.3.0/src/docsystem/config.py +1371 -0
  50. documentation_engine-0.3.0/src/docsystem/delivery.py +308 -0
  51. documentation_engine-0.3.0/src/docsystem/execution.py +282 -0
  52. documentation_engine-0.3.0/src/docsystem/federated_projection.py +799 -0
  53. documentation_engine-0.3.0/src/docsystem/federation.py +502 -0
  54. documentation_engine-0.3.0/src/docsystem/graph.py +771 -0
  55. documentation_engine-0.3.0/src/docsystem/health.py +370 -0
  56. documentation_engine-0.3.0/src/docsystem/intake.py +290 -0
  57. documentation_engine-0.3.0/src/docsystem/inventory.py +227 -0
  58. documentation_engine-0.3.0/src/docsystem/journal.py +1661 -0
  59. documentation_engine-0.3.0/src/docsystem/lifecycle.py +252 -0
  60. documentation_engine-0.3.0/src/docsystem/maintenance.py +265 -0
  61. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/mcp_server.py +503 -4
  62. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/metadata.py +92 -9
  63. documentation_engine-0.3.0/src/docsystem/profiles.py +216 -0
  64. documentation_engine-0.3.0/src/docsystem/program_plan.py +712 -0
  65. documentation_engine-0.3.0/src/docsystem/projection.py +1132 -0
  66. documentation_engine-0.3.0/src/docsystem/promotion.py +296 -0
  67. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/readiness.py +1 -1
  68. documentation_engine-0.3.0/src/docsystem/shared_finish.py +138 -0
  69. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/workspace.py +105 -35
  70. documentation_engine-0.3.0/src/docsystem/workstream.py +490 -0
  71. documentation_engine-0.3.0/tests/test_admission.py +409 -0
  72. documentation_engine-0.3.0/tests/test_change_plan.py +249 -0
  73. documentation_engine-0.3.0/tests/test_change_plan_cli.py +604 -0
  74. documentation_engine-0.3.0/tests/test_cli.py +562 -0
  75. documentation_engine-0.3.0/tests/test_config.py +1126 -0
  76. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_context_cli.py +544 -1
  77. documentation_engine-0.3.0/tests/test_delivery.py +303 -0
  78. documentation_engine-0.3.0/tests/test_execution_handoff.py +577 -0
  79. documentation_engine-0.3.0/tests/test_federated_projection.py +308 -0
  80. documentation_engine-0.3.0/tests/test_federated_write.py +932 -0
  81. documentation_engine-0.3.0/tests/test_federation.py +690 -0
  82. documentation_engine-0.3.0/tests/test_graph.py +580 -0
  83. documentation_engine-0.3.0/tests/test_health.py +150 -0
  84. documentation_engine-0.3.0/tests/test_intake.py +276 -0
  85. documentation_engine-0.3.0/tests/test_inventory.py +176 -0
  86. documentation_engine-0.3.0/tests/test_journal.py +1753 -0
  87. documentation_engine-0.3.0/tests/test_lifecycle.py +438 -0
  88. documentation_engine-0.3.0/tests/test_maintenance.py +1044 -0
  89. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_mcp_adapter.py +359 -0
  90. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_metadata.py +33 -1
  91. documentation_engine-0.3.0/tests/test_profiles.py +170 -0
  92. documentation_engine-0.3.0/tests/test_program_plan.py +467 -0
  93. documentation_engine-0.3.0/tests/test_promotion.py +261 -0
  94. documentation_engine-0.3.0/tests/test_references_cli.py +275 -0
  95. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_release_workflows.py +2 -2
  96. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_vertical.py +273 -5
  97. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_workspace.py +271 -20
  98. documentation_engine-0.3.0/tests/test_workstream.py +313 -0
  99. documentation_engine-0.2.0/AGENTS.md +0 -23
  100. documentation_engine-0.2.0/CHANGELOG.md +0 -82
  101. documentation_engine-0.2.0/CONTRIBUTING.md +0 -91
  102. documentation_engine-0.2.0/PKG-INFO +0 -426
  103. documentation_engine-0.2.0/README.md +0 -409
  104. documentation_engine-0.2.0/docs/agent-contract.md +0 -218
  105. documentation_engine-0.2.0/docs/architecture.md +0 -275
  106. documentation_engine-0.2.0/docs/workspace-sources.md +0 -155
  107. documentation_engine-0.2.0/examples/paradigmarium-profile/.docsystem.toml +0 -31
  108. documentation_engine-0.2.0/examples/paradigmarium-profile/README.md +0 -28
  109. documentation_engine-0.2.0/examples/paradigmarium-profile/plan/README.md +0 -14
  110. documentation_engine-0.2.0/examples/paradigmarium-profile/plan/architecture/README.md +0 -10
  111. documentation_engine-0.2.0/examples/paradigmarium-profile/plan/decisions/README.md +0 -9
  112. documentation_engine-0.2.0/src/docsystem/cli.py +0 -2869
  113. documentation_engine-0.2.0/src/docsystem/config.py +0 -216
  114. documentation_engine-0.2.0/src/docsystem/projection.py +0 -609
  115. documentation_engine-0.2.0/tests/test_cli.py +0 -287
  116. documentation_engine-0.2.0/tests/test_config.py +0 -216
  117. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  118. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/copilot-instructions.md +0 -0
  119. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/workflows/release.yml +0 -0
  120. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/LICENSE +0 -0
  121. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/assets/context-reduction.svg +0 -0
  122. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/context-efficiency.md +0 -0
  123. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/releasing.md +0 -0
  124. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/.docsystem.toml +0 -0
  125. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/README.md +0 -0
  126. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/README.md +0 -0
  127. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/design.md +0 -0
  128. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/review.md +0 -0
  129. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/templates/document-template.md +0 -0
  130. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/pyproject.toml +0 -0
  131. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/scripts/installed_cli_smoke.sh +0 -0
  132. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/__main__.py +0 -0
  133. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/migration.py +0 -0
  134. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/sections.py +0 -0
  135. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_catalog.py +0 -0
  136. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_migration.py +0 -0
  137. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_readiness.py +0 -0
  138. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_sections.py +0 -0
  139. {documentation_engine-0.2.0 → documentation_engine-0.3.0}/uv.lock +0 -0
@@ -30,7 +30,7 @@ body:
30
30
  id: version
31
31
  attributes:
32
32
  label: DocumentationEngine version or commit
33
- placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
33
+ placeholder: "X.Y.Z or a full commit SHA"
34
34
  validations:
35
35
  required: true
36
36
  - type: dropdown
@@ -31,7 +31,7 @@ body:
31
31
  id: version
32
32
  attributes:
33
33
  label: DocumentationEngine version or commit
34
- placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
34
+ placeholder: "X.Y.Z or a full commit SHA"
35
35
  validations:
36
36
  required: true
37
37
  - type: dropdown
@@ -30,7 +30,7 @@ body:
30
30
  id: version
31
31
  attributes:
32
32
  label: DocumentationEngine version or commit
33
- placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
33
+ placeholder: "X.Y.Z or a full commit SHA"
34
34
  validations:
35
35
  required: true
36
36
  - type: dropdown
@@ -31,7 +31,7 @@ body:
31
31
  id: version
32
32
  attributes:
33
33
  label: DocumentationEngine version or commit
34
- placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
34
+ placeholder: "X.Y.Z or a full commit SHA"
35
35
  validations:
36
36
  required: true
37
37
  - type: dropdown
@@ -4,19 +4,29 @@
4
4
 
5
5
  ## Testing
6
6
 
7
- <!-- Commands run and their result. Use "N/A: <reason>" for anything skipped. -->
7
+ <!--
8
+ Verification level: structural | focused | full
9
+ Risk reason:
10
+ Commands run and results:
11
+ Checks not run: N/A with a reason; do not mark an unrun check as passing.
12
+ See AGENTS.md and CONTRIBUTING.md for the canonical policy.
13
+ -->
8
14
 
9
15
  ```bash
10
- TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest
11
- TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check .
16
+ # Replace with the checks selected for this change.
17
+ git diff --check
12
18
  ```
13
19
 
14
20
  ## Checklist
15
21
 
16
22
  - [ ] This change stays within a single described scope (no unrelated
17
23
  refactors bundled in).
18
- - [ ] `uv run pytest` passes, and configuration-behavior changes have tests.
19
- - [ ] `uv run ruff check .` passes.
24
+ - [ ] The verification level and risk reason are recorded above.
25
+ - [ ] Relevant structural checks, focused tests or the full gate pass; every
26
+ unrun check is marked N/A with a reason.
27
+ - [ ] Configuration-behavior changes include and run configuration tests, or
28
+ this change does not affect configuration behavior.
29
+ - [ ] `git diff --check` passes.
20
30
  - [ ] `uv lock --check` passes, or this change does not touch dependencies
21
31
  (N/A with reason otherwise).
22
32
  - [ ] `./scripts/installed_cli_smoke.sh` passes, or this change does not
@@ -25,7 +35,8 @@ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check .
25
35
  public-contract impact (N/A with reason otherwise).
26
36
  - [ ] The core package (`src/docsystem/`) remains provider-neutral — no
27
37
  Claude-, Copilot- or other agent-specific behavior added there.
28
- - [ ] No private or local generated state is committed (`.docsystem.toml`,
29
- `.docsystem/`, or other adopter-local artifacts).
38
+ - [ ] No private or local generated state is committed (root-local
39
+ `.docsystem.toml`, `.docsystem/`, or other adopter-local artifacts;
40
+ intentional public example fixtures are reviewed separately).
30
41
  - [ ] Executable bits on any added/modified shell scripts are preserved
31
42
  (`git ls-files --stage <script>` shows `100755`).
@@ -55,11 +55,11 @@ jobs:
55
55
  - name: Example profile adoption walkthrough
56
56
  run: |
57
57
  profile="$(mktemp -d)/profile"
58
- cp -r examples/paradigmarium-profile "$profile"
58
+ cp -r examples/generic-adopter "$profile"
59
59
  uv run python -m docsystem readiness "$profile" --json
60
60
  uv run python -m docsystem migrate "$profile" --apply
61
61
  uv run python -m docsystem index "$profile" --write
62
62
  uv run python -m docsystem readiness "$profile" --json
63
- uv run python -m docsystem context PDOC-002 "$profile" --depth 1
64
- uv run python -m docsystem context PDOC-002 "$profile" --depth 1 --json
63
+ uv run python -m docsystem context DOC-002 "$profile" --depth 1
64
+ uv run python -m docsystem context DOC-002 "$profile" --depth 1 --json
65
65
  uv run python -m docsystem changes "$profile" --json
@@ -9,6 +9,6 @@ __pycache__/
9
9
  /.docsystem/
10
10
  .docsystem/
11
11
  .docsystem.local.toml
12
+ .docsystem.project.local.toml
12
13
  /.claude/
13
- /.paradigmarium/
14
14
  /.orchestrator/
@@ -0,0 +1,116 @@
1
+ # Agent instructions
2
+
3
+ ## Working rules
4
+
5
+ - Keep product documentation and code comments in English.
6
+ - Keep public product documentation, contracts, fixtures and examples
7
+ adopter-neutral by default. Use synthetic project names, IDs, paths and
8
+ scenarios. Do not publish private adopter prompts, logs, document bodies,
9
+ planning or roadmap material, local runtime state or credentials, and do not
10
+ present one adopter project's policy as a universal product rule. Real
11
+ project names and project-specific behavior are allowed only when the user
12
+ explicitly authorizes publication and the content is clearly labeled as an
13
+ integration guide, case study or compatibility profile; keep the generic
14
+ contract in a separate canonical document.
15
+ - Treat Markdown as source of truth and generated data as disposable.
16
+ - Do not add provider-specific behavior to the core package.
17
+ - Prefer deterministic scripts for mechanical documentation maintenance.
18
+ - Preserve existing project files during bootstrap and migration.
19
+ - Every change to configuration behavior requires tests.
20
+ - Do not modify, move, delete or replace the private `plan/` tree unless the
21
+ user explicitly authorizes that exact operation. Treat it as local source
22
+ material, not generated state.
23
+ - Do not commit, push, merge, rebase or perform destructive Git operations
24
+ unless the user explicitly asks.
25
+ - Run git stage/commit operations from inside WSL for this checkout. Do not
26
+ stage or commit from Windows Git over `\\wsl.localhost`; it can drop
27
+ executable bits such as `scripts/installed_cli_smoke.sh` from `100755` to
28
+ `100644` and break CI with `Permission denied`.
29
+
30
+ ## Risk-based verification
31
+
32
+ Choose the narrowest verification level that covers the change:
33
+
34
+ - **Structural only:** prose documentation, comments, badges or repository
35
+ metadata with no runtime, contract, packaging or generated-output effect.
36
+ Do not run a test suite. Run relevant structural checks such as validating
37
+ links or TOML/JSON when applicable and always run `git diff --check`.
38
+ - **Focused:** an isolated implementation or test change with a clear owning
39
+ module. Run directly affected tests and lint touched code. Configuration
40
+ behavior changes must include and run focused configuration tests.
41
+ - **Full:** shared contracts or schemas, CLI behavior, catalog/graph/section
42
+ semantics, projection or workspace safety, dependencies, build/packaging/CI,
43
+ cross-module behavior, release candidates, an explicit user request, or
44
+ uncertainty remaining after focused checks. During implementation use
45
+ focused checks; run the full gate once on the finished candidate:
46
+
47
+ ```bash
48
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest
49
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check .
50
+ git diff --check
51
+ ```
52
+
53
+ WSL sessions may inherit Windows temp directories; native `/tmp` keeps pytest
54
+ capture deterministic. Packaging and release changes additionally require the
55
+ lock, build, distribution and installed-consumer checks documented in
56
+ `docs/releasing.md`. Do not repeat an already-passing full gate after a later
57
+ structural-only edit unless it changes generated artifacts, packaging inputs
58
+ or test expectations. Report checks deliberately not run as `not run`; never
59
+ imply that an unrun check passed.
60
+
61
+ Before committing, verify executable scripts that CI runs:
62
+
63
+ ```bash
64
+ git ls-files --stage scripts/installed_cli_smoke.sh
65
+ test -x scripts/installed_cli_smoke.sh
66
+ ```
67
+
68
+ Expected git mode for `scripts/installed_cli_smoke.sh` is `100755`.
69
+
70
+ ## Orchestration with OrchestratorEngine
71
+
72
+ - Delegate only concrete, bounded work where an AI worker adds value. Use a
73
+ deterministic script or check runner for mechanical work and test execution.
74
+ - Before dispatch, confirm that the project binding targets the current host
75
+ chat, classify the task as structural, focused or full, select an appropriate
76
+ enabled worker profile, and write both the complete task contract and a
77
+ `WORKER_TASK_INTENT` JSON file below `.orchestrator/prompts/`.
78
+ - Set `intent.verification` before dispatch and pass the intent with
79
+ `worker run --intent-file`. The declared verification level is authoritative:
80
+ generic or copied task prose must not broaden it. If scope changes enough to
81
+ require another level, stop and dispatch corrected intent rather than
82
+ silently changing the gate.
83
+ - Dispatch once with a stable task id. Do not spend model turns polling worker
84
+ state and do not dispatch a duplicate merely because a wait timed out.
85
+ - For a bounded wait that fits the active Codex turn, prefer one direct
86
+ deterministic wait:
87
+
88
+ ```bash
89
+ orchestrator-engine --project-root <project-root> \
90
+ worker wait --task-id TASK-ID --json
91
+ ```
92
+
93
+ - If ending a Codex turn while work remains active, show the user this
94
+ terminal command before handing off:
95
+
96
+ ```bash
97
+ orchestrator-engine --project-root <project-root> \
98
+ worker wait --task-id TASK-ID
99
+ ```
100
+
101
+ It reads local durable state without invoking a model. For parallel workers,
102
+ repeat `--task-id` and use one `--mode all` or `--mode any` wait.
103
+ - Use a low-cost relay subagent only when its native wait is materially more
104
+ reliable than the direct command wait. The parent must remain active in one
105
+ bounded native wait; a relay must not edit, test, review or poll repeatedly.
106
+ - Codex Desktop completion delivery is durable history, not guaranteed live
107
+ refresh of an already-open chat. Use the terminal wait for unknown or long
108
+ work. Claude uses the stream delivery documented by OrchestratorEngine and
109
+ does not need the Codex manual fallback.
110
+ - On completion, inspect compact `result.json` and `evidence.json` first. Open
111
+ only referenced failure logs when necessary. Worker output is evidence; the
112
+ host agent owns final review and acceptance.
113
+ - Preserve `.orchestrator` events, signals, results and evidence as the audit
114
+ trail. For OrchestratorEngine runtime/core problems, start with compact
115
+ `status`, use targeted diagnostics, and create a sanitized structured report
116
+ instead of pasting private documents or unbounded logs.
@@ -0,0 +1,189 @@
1
+ # Changelog
2
+
3
+ All notable changes to Documentation Engine are documented in this file.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.3.0] - 2026-07-15
8
+
9
+ ### Highlights
10
+
11
+ - Task-sized AI-agent workflows now combine section references, explainable
12
+ change planning, context-gap feedback and proportional evidence without
13
+ making advanced governance mandatory for routine work.
14
+ - Project-authored profiles, delivery mappings, program plans and
15
+ workstream/execution contracts provide deterministic, fail-closed evidence
16
+ for genuinely governed, delegated or risk-bearing delivery.
17
+ - Read-only federation and workspace-owned incremental projections let agents
18
+ inspect multiple independently owned documentation sources while preserving
19
+ source-qualified identities and default-deny write authority.
20
+ - Guarded maintenance adds preview hashes, bounded writes, immutable journals
21
+ and recovery without replacing Markdown as the source of truth.
22
+
23
+ ### Added
24
+
25
+ - Read-only knowledge-promotion planning combines explicit `authority_for`
26
+ ownership, project-authored history modes, exact evidence pins, conflict
27
+ detection and reverse impact without returning bodies or writing Markdown.
28
+
29
+ - An ignored `.docsystem.project.local.toml` pointer can route ordinary
30
+ project commands to one validated external documentation root without
31
+ exposing its absolute path in generated agent instructions. The generated
32
+ contract limits trusted agents to that exact private scope and forbids
33
+ parent/sibling discovery unless separately authorized.
34
+
35
+ - Read-only shared workstream finish packets verify caller-declared outcomes
36
+ across independent source journals, preserve partial/blocked states and
37
+ reject stale source/config/workspace authority without reading document
38
+ bodies or claiming cross-source atomicity.
39
+
40
+ - Source-qualified bounded maintenance for local workspaces: sources default
41
+ to `write = "none"` and may opt into `managed-maintenance`; selected writes
42
+ require a deterministic reviewed preview hash, selected recovery requires
43
+ the immutable journal manifest hash, authority evidence is source-local,
44
+ and a non-blocking journal lock prevents concurrent transactions without
45
+ claiming cross-source atomicity.
46
+
47
+ - Authored `program_plan` sequencing with fail-closed `roadmap status`,
48
+ `roadmap next` and `roadmap explain` CLI/MCP inspection. Recommendations
49
+ derive lifecycle state from bounded roadmap documents, prerequisites and
50
+ explicit priority without reading bodies or granting execution authority;
51
+ deferred ideas remain visible and never produce a false complete state.
52
+ - Workspace-owned federated projection generations reuse unchanged per-source
53
+ objects, verify all registered source/config/Markdown inputs and accelerate
54
+ complete federation queries without writing source caches.
55
+
56
+ - Read-only multi-catalog federation with qualified `source::ID[#anchor]`
57
+ identities, authored cross-source relations, complete catalog/dependency/
58
+ reference/context/impact CLI queries and matching thin MCP tools.
59
+ - Projection schema 4 preserves qualified relation boundaries on the
60
+ single-source direct and projected paths; older generations fall back safely
61
+ and can be rebuilt from Markdown.
62
+
63
+ - Versioned, project-authored workstream completion criteria.
64
+ - Read-only `criteria` and `workstream` commands for deterministic lifecycle,
65
+ correction and bounded evidence validation.
66
+ - Optional `finish --workstream-record` gate and matching read-only MCP tools.
67
+ - Versioned idea-intake placement policy, bounded request validation and the
68
+ read-only `intake` CLI/MCP command with explainable blocked decisions.
69
+ - Versioned A0–A2 execution-admission policy and read-only `admission` CLI/MCP
70
+ evaluation for bounded workstream targets, actions, risk and authorization
71
+ evidence.
72
+ - Read-only `execution-handoff` CLI/MCP packet generation and verification with
73
+ mandate/target hashes, section ranges, graph impact, visible completeness and
74
+ no embedded authored bodies.
75
+ - Generated agent instructions now present configured intake, admission,
76
+ immutable handoff verification and evidence-gated finish in execution order.
77
+ - Optional admission source scopes bind local pre-edit paths/hashes, while the
78
+ read-only `execution-result` CLI/MCP contract validates structured returned
79
+ changed-file evidence without claiming to observe external writes.
80
+ - Read-only `metadata-inventory` CLI/MCP inspection reports observed metadata
81
+ coverage, YAML types and body-free per-document graph facts while hiding
82
+ additional values unless one field is explicitly requested.
83
+ - Optional project-authored document profiles and read-only `profile-check`
84
+ CLI/MCP validation cover metadata, semantic anchor roles, relation/status
85
+ allowlists and history-mode evidence without inferred policy or source writes.
86
+ - Optional delivery traceability metadata and read-only `delivery-map` CLI/MCP
87
+ inspection connect exact source-section contracts to delivery ownership and
88
+ completion evidence without reading or returning authored bodies.
89
+ - Repeatable targeted delivery-contract lookup reports bounded mappings and
90
+ explicit unowned contracts, with matching MCP and generated-agent guidance.
91
+ - Opt-in delivery-aware change plans add owner and completion evidence as a
92
+ separate review-only layer, with default-output compatibility and MCP parity.
93
+ - Read-only `lifecycle` CLI/MCP validation composes an admission request,
94
+ host-persisted execution packet, authoritative changed-file result and
95
+ completed workstream record into one fail-closed, body-free evidence lineage.
96
+
97
+ ### Changed
98
+
99
+ - Generated agent instructions now keep routine corrections on a proportional
100
+ read/implement/verify path and scope optional intake, admission, immutable
101
+ handoff, result and lifecycle evidence to durable ideas or genuinely
102
+ governed, delegated and risk-bearing work.
103
+
104
+ - `workspace list` rows and JSON now expose each source's body-free write
105
+ policy so operators can inspect the default-deny boundary.
106
+
107
+ - Replaced the named adopter integration guide and CI profile with a synthetic
108
+ client-integration contract and generic adopter fixture.
109
+
110
+ ## [0.2.0] - 2026-07-13
111
+
112
+ ### Highlights
113
+
114
+ - Local workspace source selection lets one checkout address an independent
115
+ public or private Documentation Engine profile by a stable source name,
116
+ without committing machine-specific absolute paths.
117
+ - A strict `workspace.toml` registry and ignored `.docsystem.local.toml`
118
+ pointer provide deterministic discovery through explicit CLI options, an
119
+ environment variable or local project wiring.
120
+ - New read-only `workspace list` and `workspace doctor` commands report source
121
+ visibility and availability without reading document bodies or exposing
122
+ local paths.
123
+ - Existing project commands and MCP tools can select one registered source;
124
+ explicit selection fails closed and never falls back to the positional
125
+ project.
126
+ - Source roots must be contained, unique and non-overlapping. Writable
127
+ documentation and projection paths cannot escape through symlinks, and
128
+ malformed or looping paths produce bounded diagnostics instead of stack
129
+ traces.
130
+ - Existing single-project CLI and MCP behavior remains unchanged when no
131
+ source is selected. This release deliberately does not claim cross-source
132
+ graph federation, remote storage, synchronization or authorization.
133
+
134
+ ## [0.1.2] - 2026-07-13
135
+
136
+ ### Fixed
137
+
138
+ - The release gate now removes the `.gitignore` marker generated by `uv build`
139
+ before asserting and uploading the exact wheel-and-sdist artifact set. The
140
+ `v0.1.1` candidate stopped at this gate before any artifact was uploaded to
141
+ TestPyPI or PyPI; version `0.1.2` is the replacement release candidate.
142
+
143
+ ## [0.1.1] - 2026-07-12
144
+
145
+ ### Highlights
146
+
147
+ - Canonical PyPI distribution identity: the distribution to be published is
148
+ named `documentation-engine`. The import package (`docsystem`), console
149
+ commands (`docsystem`, `docsystem-mcp`) and project files
150
+ (`.docsystem.toml`, `.docsystem/`) are unchanged.
151
+ - Single source of truth for the package version: `pyproject.toml` now
152
+ derives `version` dynamically from `src/docsystem/__init__.py` instead of
153
+ duplicating it.
154
+ - Release automation prepared: a tag-triggered Trusted Publishing workflow
155
+ builds the distributions once, verifies that the tag matches the package
156
+ version, publishes to TestPyPI, checks the published SHA-256 digests against
157
+ the built artifact, installs the result, and only then offers the same bytes
158
+ to PyPI behind a manual approval gate. See
159
+ [the release guide](docs/releasing.md).
160
+ - CI runs on Node 24-capable action majors, declares least-privilege
161
+ permissions, and checks the sdist as well as the wheel.
162
+
163
+ This entry documents packaging identity and release automation. Documentation
164
+ Engine has not been published to any package index yet; `pip install
165
+ documentation-engine` starts working only after the first successful release.
166
+
167
+ ## [0.1.0] - 2026-07-11
168
+
169
+ ### Highlights
170
+
171
+ - Structured Markdown catalogs with stable document IDs, revisions, typed
172
+ dependency graphs and deterministic section addressing.
173
+ - Selective `read`, `context` and `impact` workflows that preserve verbatim
174
+ source text and expose omitted context instead of silently truncating it.
175
+ - Deterministic sharded projections with integrity checks, change detection and
176
+ safe direct-Markdown fallback.
177
+ - Adoption support for existing documentation trees, including catalog
178
+ membership policies, legacy relation diagnostics and migration reports.
179
+ - Read-only MCP adapter and structured JSON output for AI-agent integrations.
180
+ - Workstream branching, adopter reporting and project handoff patterns.
181
+ - Measured context-reduction methodology and a reproducible consumer-install
182
+ smoke test.
183
+
184
+ [Unreleased]: https://github.com/Jafa7/DocumentationEngine/compare/v0.3.0...HEAD
185
+ [0.3.0]: https://github.com/Jafa7/DocumentationEngine/compare/v0.2.0...v0.3.0
186
+ [0.2.0]: https://github.com/Jafa7/DocumentationEngine/compare/v0.1.2...v0.2.0
187
+ [0.1.2]: https://github.com/Jafa7/DocumentationEngine/compare/v0.1.1...v0.1.2
188
+ [0.1.1]: https://github.com/Jafa7/DocumentationEngine/compare/v0.1.0...v0.1.1
189
+ [0.1.0]: https://github.com/Jafa7/DocumentationEngine/releases/tag/v0.1.0
@@ -16,13 +16,10 @@ Work only in the assigned checkout or detached worktree. Do not commit, push,
16
16
  merge, rebase, or modify another checkout unless the task explicitly requires
17
17
  it. Do not add Claude-specific behavior to `src/docsystem/`.
18
18
 
19
- Before handing work off, run the checks required by the task contract. The
20
- default project checks are:
21
-
22
- ```bash
23
- TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest
24
- ruff check .
25
- ```
19
+ Before handing work off, use the risk level and checks required by `AGENTS.md`
20
+ and the task contract. Do not default to the full suite for structural-only
21
+ documentation changes, and do not broaden a focused gate without a stated
22
+ risk reason.
26
23
 
27
24
  Report changed files, checks, assumptions and blockers. Your report is not
28
25
  acceptance evidence by itself: an independent reviewer verifies the actual
@@ -0,0 +1,134 @@
1
+ # Contributing
2
+
3
+ Documentation Engine takes engineering rules from
4
+ [`AGENTS.md`](AGENTS.md); it is the authoritative, provider-neutral source for
5
+ how to work in this repository. This file explains the contributor workflow
6
+ without redefining installation, product behavior or architecture.
7
+
8
+ ## Development workflow
9
+
10
+ Choose the contributor checkout path from the README's
11
+ [Installation](README.md#contributor-or-unreleased-checkout) section. That is
12
+ the single source for consumer, MCP and contributor installation commands.
13
+
14
+ From that checkout, run the CLI against the current sources through `uv`:
15
+
16
+ ```bash
17
+ uv run python -m docsystem --help
18
+ ```
19
+
20
+ Do not set an ad-hoc `PYTHONPATH` or depend on an unrelated globally installed
21
+ `docsystem` executable while developing. The installed consumer path is
22
+ exercised separately by `scripts/installed_cli_smoke.sh`. See
23
+ [Development and release verification](README.md#development-and-release-verification)
24
+ in the README for the full contract between the two.
25
+
26
+ Keep a change narrowly scoped. Update tests and public documentation in the
27
+ same change when behavior or a public contract changes.
28
+
29
+ ## Verification
30
+
31
+ Select the narrowest verification level that covers the risk, as defined in
32
+ [`AGENTS.md`](AGENTS.md):
33
+
34
+ ### Structural only
35
+
36
+ For prose documentation, comments, badges or repository metadata with no
37
+ runtime, contract, packaging or generated-output effect, do not run a test
38
+ suite. Validate the changed structure and links when applicable, then run:
39
+
40
+ ```bash
41
+ git diff --check
42
+ ```
43
+
44
+ ### Focused
45
+
46
+ For an isolated implementation or test change, run the directly affected tests
47
+ and lint the touched code. For example:
48
+
49
+ ```bash
50
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest tests/test_workspace.py
51
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check src/docsystem/workspace.py
52
+ git diff --check
53
+ ```
54
+
55
+ Every configuration-behavior change must include and run focused configuration
56
+ tests.
57
+
58
+ ### Full
59
+
60
+ Run the full gate once on a finished candidate when changing shared contracts
61
+ or schemas, CLI behavior, catalog/graph/section semantics, projection or
62
+ workspace safety, dependencies, packaging/CI, cross-module behavior or a
63
+ release candidate:
64
+
65
+ ```bash
66
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest
67
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check .
68
+ git diff --check
69
+ ```
70
+
71
+ Native `/tmp` keeps pytest capture deterministic when WSL inherits Windows
72
+ temporary directories. Do not repeat an already-passing full gate after a
73
+ later structural-only edit unless it changes generated artifacts, packaging
74
+ inputs or test expectations.
75
+
76
+ ### Additional packaging checks
77
+
78
+ Run only the additional checks relevant to the changed surface:
79
+
80
+ ```bash
81
+ uv lock --check
82
+ ./scripts/installed_cli_smoke.sh
83
+ git ls-files --stage scripts/installed_cli_smoke.sh
84
+ test -x scripts/installed_cli_smoke.sh
85
+ ```
86
+
87
+ - `uv lock --check` verifies `uv.lock` still matches `pyproject.toml`; run it
88
+ whenever you touch dependencies.
89
+ - `./scripts/installed_cli_smoke.sh` builds a wheel, installs it into an
90
+ isolated venv, and runs the installed `docsystem` entry point against a
91
+ fresh fixture from an unrelated directory; run it whenever packaging,
92
+ entry points or the CLI surface change.
93
+ - `git diff --check` catches trailing whitespace and conflict markers before
94
+ they land.
95
+ - The `git ls-files`/`test -x` pair confirms `scripts/installed_cli_smoke.sh`
96
+ kept its `100755` executable bit — Windows-side Git staging over
97
+ `\\wsl.localhost` can silently drop it and break CI with
98
+ `Permission denied`. Run this pair before committing, and apply the same
99
+ check to any other shell script you add or modify under `scripts/`.
100
+
101
+ Record which verification level you selected, why it applies, which commands
102
+ passed and which checks were deliberately not run. Never report an unrun check
103
+ as passing.
104
+
105
+ ## What a change must satisfy
106
+
107
+ - Public documentation and code comments are English.
108
+ - Public product documentation, contracts, fixtures and examples are
109
+ adopter-neutral and use synthetic identities by default. Do not publish
110
+ private adopter prompts, logs, document bodies, planning or roadmap material,
111
+ local runtime state or credentials. Put an explicitly authorized real
112
+ adopter example in a clearly labeled integration guide, case study or
113
+ compatibility profile, separate from the canonical generic contract. Follow
114
+ the full rule in [`AGENTS.md`](AGENTS.md).
115
+ - The core package (`src/docsystem/`) stays provider-neutral; do not add
116
+ Claude-, Copilot- or any other agent-specific behavior there. Provider
117
+ adapters live outside the core (see `docs/mcp-adapter.md` for the pattern).
118
+ - Every change to configuration behavior needs tests.
119
+ - Any change to a public contract — CLI flags, output format, `--json`
120
+ schemas, MCP tools — needs a `CHANGELOG.md` entry and the relevant doc
121
+ update in the same change.
122
+ - Do not commit private or local generated state: `.docsystem.toml` and
123
+ `.docsystem/` belong to adopting projects, not this repository, and
124
+ generated projection/cache output is disposable. See
125
+ [local state safety](docs/local-state-safety.md).
126
+
127
+ ## External contributions
128
+
129
+ Work on a branch and open a pull request; do not push directly to `main`.
130
+ Fill in the pull request template's checklist, including which checks you ran
131
+ and which are not applicable (with a reason). See
132
+ [the adopter reporting guide](docs/adopter-reporting.md) if you are instead
133
+ filing a problem found while adopting Documentation Engine in another
134
+ project, and [`SECURITY.md`](SECURITY.md) if you found a vulnerability.