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.
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/adoption-finding.yml +1 -1
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/core-bug.yml +1 -1
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/docs-pattern-request.yml +1 -1
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/runtime-report.yml +1 -1
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/PULL_REQUEST_TEMPLATE.md +18 -7
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/workflows/ci.yml +3 -3
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.gitignore +1 -1
- documentation_engine-0.3.0/AGENTS.md +116 -0
- documentation_engine-0.3.0/CHANGELOG.md +189 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/CLAUDE.md +4 -7
- documentation_engine-0.3.0/CONTRIBUTING.md +134 -0
- documentation_engine-0.3.0/PKG-INFO +845 -0
- documentation_engine-0.3.0/README.md +828 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/SECURITY.md +6 -6
- documentation_engine-0.3.0/docs/README.md +69 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/adopter-reporting.md +65 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/adoption.md +66 -31
- documentation_engine-0.3.0/docs/agent-contract.md +739 -0
- documentation_engine-0.3.0/docs/architecture.md +563 -0
- documentation_engine-0.2.0/docs/paradigmarium-integration.md → documentation_engine-0.3.0/docs/client-integration.md +16 -18
- documentation_engine-0.3.0/docs/context-delivery.md +52 -0
- documentation_engine-0.3.0/docs/delivery-traceability.md +107 -0
- documentation_engine-0.3.0/docs/document-profiles.md +76 -0
- documentation_engine-0.3.0/docs/execution-admission.md +147 -0
- documentation_engine-0.3.0/docs/execution-handoff.md +114 -0
- documentation_engine-0.3.0/docs/federation.md +182 -0
- documentation_engine-0.3.0/docs/graph-health.md +56 -0
- documentation_engine-0.3.0/docs/idea-intake.md +117 -0
- documentation_engine-0.3.0/docs/knowledge-promotion.md +72 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/local-state-safety.md +1 -1
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/mcp-adapter.md +60 -6
- documentation_engine-0.3.0/docs/metadata-inventory.md +52 -0
- documentation_engine-0.3.0/docs/program-plans.md +128 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/setup-guide.md +84 -43
- documentation_engine-0.3.0/docs/workspace-sources.md +234 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/workstream-branching.md +16 -0
- documentation_engine-0.3.0/docs/workstream-evidence.md +132 -0
- documentation_engine-0.3.0/docs/workstream-lifecycle.md +103 -0
- documentation_engine-0.3.0/examples/execution-admission-request.json +44 -0
- documentation_engine-0.3.0/examples/execution-result.json +11 -0
- documentation_engine-0.3.0/examples/idea-intake-request.json +22 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/workstream-branch-template.md +7 -0
- documentation_engine-0.3.0/examples/workstream-record.json +96 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/__init__.py +1 -1
- documentation_engine-0.3.0/src/docsystem/admission.py +430 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/catalog.py +21 -3
- documentation_engine-0.3.0/src/docsystem/change_plan.py +292 -0
- documentation_engine-0.3.0/src/docsystem/cli.py +9219 -0
- documentation_engine-0.3.0/src/docsystem/config.py +1371 -0
- documentation_engine-0.3.0/src/docsystem/delivery.py +308 -0
- documentation_engine-0.3.0/src/docsystem/execution.py +282 -0
- documentation_engine-0.3.0/src/docsystem/federated_projection.py +799 -0
- documentation_engine-0.3.0/src/docsystem/federation.py +502 -0
- documentation_engine-0.3.0/src/docsystem/graph.py +771 -0
- documentation_engine-0.3.0/src/docsystem/health.py +370 -0
- documentation_engine-0.3.0/src/docsystem/intake.py +290 -0
- documentation_engine-0.3.0/src/docsystem/inventory.py +227 -0
- documentation_engine-0.3.0/src/docsystem/journal.py +1661 -0
- documentation_engine-0.3.0/src/docsystem/lifecycle.py +252 -0
- documentation_engine-0.3.0/src/docsystem/maintenance.py +265 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/mcp_server.py +503 -4
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/metadata.py +92 -9
- documentation_engine-0.3.0/src/docsystem/profiles.py +216 -0
- documentation_engine-0.3.0/src/docsystem/program_plan.py +712 -0
- documentation_engine-0.3.0/src/docsystem/projection.py +1132 -0
- documentation_engine-0.3.0/src/docsystem/promotion.py +296 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/readiness.py +1 -1
- documentation_engine-0.3.0/src/docsystem/shared_finish.py +138 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/workspace.py +105 -35
- documentation_engine-0.3.0/src/docsystem/workstream.py +490 -0
- documentation_engine-0.3.0/tests/test_admission.py +409 -0
- documentation_engine-0.3.0/tests/test_change_plan.py +249 -0
- documentation_engine-0.3.0/tests/test_change_plan_cli.py +604 -0
- documentation_engine-0.3.0/tests/test_cli.py +562 -0
- documentation_engine-0.3.0/tests/test_config.py +1126 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_context_cli.py +544 -1
- documentation_engine-0.3.0/tests/test_delivery.py +303 -0
- documentation_engine-0.3.0/tests/test_execution_handoff.py +577 -0
- documentation_engine-0.3.0/tests/test_federated_projection.py +308 -0
- documentation_engine-0.3.0/tests/test_federated_write.py +932 -0
- documentation_engine-0.3.0/tests/test_federation.py +690 -0
- documentation_engine-0.3.0/tests/test_graph.py +580 -0
- documentation_engine-0.3.0/tests/test_health.py +150 -0
- documentation_engine-0.3.0/tests/test_intake.py +276 -0
- documentation_engine-0.3.0/tests/test_inventory.py +176 -0
- documentation_engine-0.3.0/tests/test_journal.py +1753 -0
- documentation_engine-0.3.0/tests/test_lifecycle.py +438 -0
- documentation_engine-0.3.0/tests/test_maintenance.py +1044 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_mcp_adapter.py +359 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_metadata.py +33 -1
- documentation_engine-0.3.0/tests/test_profiles.py +170 -0
- documentation_engine-0.3.0/tests/test_program_plan.py +467 -0
- documentation_engine-0.3.0/tests/test_promotion.py +261 -0
- documentation_engine-0.3.0/tests/test_references_cli.py +275 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_release_workflows.py +2 -2
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_vertical.py +273 -5
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_workspace.py +271 -20
- documentation_engine-0.3.0/tests/test_workstream.py +313 -0
- documentation_engine-0.2.0/AGENTS.md +0 -23
- documentation_engine-0.2.0/CHANGELOG.md +0 -82
- documentation_engine-0.2.0/CONTRIBUTING.md +0 -91
- documentation_engine-0.2.0/PKG-INFO +0 -426
- documentation_engine-0.2.0/README.md +0 -409
- documentation_engine-0.2.0/docs/agent-contract.md +0 -218
- documentation_engine-0.2.0/docs/architecture.md +0 -275
- documentation_engine-0.2.0/docs/workspace-sources.md +0 -155
- documentation_engine-0.2.0/examples/paradigmarium-profile/.docsystem.toml +0 -31
- documentation_engine-0.2.0/examples/paradigmarium-profile/README.md +0 -28
- documentation_engine-0.2.0/examples/paradigmarium-profile/plan/README.md +0 -14
- documentation_engine-0.2.0/examples/paradigmarium-profile/plan/architecture/README.md +0 -10
- documentation_engine-0.2.0/examples/paradigmarium-profile/plan/decisions/README.md +0 -9
- documentation_engine-0.2.0/src/docsystem/cli.py +0 -2869
- documentation_engine-0.2.0/src/docsystem/config.py +0 -216
- documentation_engine-0.2.0/src/docsystem/projection.py +0 -609
- documentation_engine-0.2.0/tests/test_cli.py +0 -287
- documentation_engine-0.2.0/tests/test_config.py +0 -216
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/copilot-instructions.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/.github/workflows/release.yml +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/LICENSE +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/assets/context-reduction.svg +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/context-efficiency.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/docs/releasing.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/.docsystem.toml +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/README.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/README.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/design.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/review.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/examples/generic-adopter/plan/templates/document-template.md +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/pyproject.toml +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/scripts/installed_cli_smoke.sh +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/__main__.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/migration.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/src/docsystem/sections.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_catalog.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_migration.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_readiness.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/tests/test_sections.py +0 -0
- {documentation_engine-0.2.0 → documentation_engine-0.3.0}/uv.lock +0 -0
|
@@ -4,19 +4,29 @@
|
|
|
4
4
|
|
|
5
5
|
## Testing
|
|
6
6
|
|
|
7
|
-
<!--
|
|
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
|
-
|
|
11
|
-
|
|
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
|
-
- [ ]
|
|
19
|
-
- [ ]
|
|
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 (
|
|
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/
|
|
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
|
|
64
|
-
uv run python -m docsystem context
|
|
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
|
|
@@ -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,
|
|
20
|
-
default
|
|
21
|
-
|
|
22
|
-
|
|
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.
|