documentation-engine 0.1.2__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 (67) hide show
  1. documentation_engine-0.1.2/.github/ISSUE_TEMPLATE/adoption-finding.yml +127 -0
  2. documentation_engine-0.1.2/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. documentation_engine-0.1.2/.github/ISSUE_TEMPLATE/core-bug.yml +126 -0
  4. documentation_engine-0.1.2/.github/ISSUE_TEMPLATE/docs-pattern-request.yml +91 -0
  5. documentation_engine-0.1.2/.github/ISSUE_TEMPLATE/runtime-report.yml +119 -0
  6. documentation_engine-0.1.2/.github/PULL_REQUEST_TEMPLATE.md +31 -0
  7. documentation_engine-0.1.2/.github/copilot-instructions.md +13 -0
  8. documentation_engine-0.1.2/.github/workflows/ci.yml +65 -0
  9. documentation_engine-0.1.2/.github/workflows/release.yml +366 -0
  10. documentation_engine-0.1.2/.gitignore +13 -0
  11. documentation_engine-0.1.2/AGENTS.md +23 -0
  12. documentation_engine-0.1.2/CHANGELOG.md +57 -0
  13. documentation_engine-0.1.2/CLAUDE.md +29 -0
  14. documentation_engine-0.1.2/CONTRIBUTING.md +91 -0
  15. documentation_engine-0.1.2/LICENSE +21 -0
  16. documentation_engine-0.1.2/PKG-INFO +417 -0
  17. documentation_engine-0.1.2/README.md +400 -0
  18. documentation_engine-0.1.2/SECURITY.md +53 -0
  19. documentation_engine-0.1.2/docs/adopter-reporting.md +155 -0
  20. documentation_engine-0.1.2/docs/adoption.md +163 -0
  21. documentation_engine-0.1.2/docs/agent-contract.md +211 -0
  22. documentation_engine-0.1.2/docs/architecture.md +267 -0
  23. documentation_engine-0.1.2/docs/assets/context-reduction.svg +54 -0
  24. documentation_engine-0.1.2/docs/context-efficiency.md +135 -0
  25. documentation_engine-0.1.2/docs/local-state-safety.md +109 -0
  26. documentation_engine-0.1.2/docs/mcp-adapter.md +124 -0
  27. documentation_engine-0.1.2/docs/paradigmarium-integration.md +121 -0
  28. documentation_engine-0.1.2/docs/releasing.md +90 -0
  29. documentation_engine-0.1.2/docs/setup-guide.md +289 -0
  30. documentation_engine-0.1.2/docs/workstream-branching.md +94 -0
  31. documentation_engine-0.1.2/examples/generic-adopter/.docsystem.toml +25 -0
  32. documentation_engine-0.1.2/examples/generic-adopter/README.md +26 -0
  33. documentation_engine-0.1.2/examples/generic-adopter/plan/README.md +9 -0
  34. documentation_engine-0.1.2/examples/generic-adopter/plan/design.md +22 -0
  35. documentation_engine-0.1.2/examples/generic-adopter/plan/review.md +16 -0
  36. documentation_engine-0.1.2/examples/generic-adopter/plan/templates/document-template.md +9 -0
  37. documentation_engine-0.1.2/examples/paradigmarium-profile/.docsystem.toml +31 -0
  38. documentation_engine-0.1.2/examples/paradigmarium-profile/README.md +28 -0
  39. documentation_engine-0.1.2/examples/paradigmarium-profile/plan/README.md +14 -0
  40. documentation_engine-0.1.2/examples/paradigmarium-profile/plan/architecture/README.md +10 -0
  41. documentation_engine-0.1.2/examples/paradigmarium-profile/plan/decisions/README.md +9 -0
  42. documentation_engine-0.1.2/examples/workstream-branch-template.md +52 -0
  43. documentation_engine-0.1.2/pyproject.toml +55 -0
  44. documentation_engine-0.1.2/scripts/installed_cli_smoke.sh +146 -0
  45. documentation_engine-0.1.2/src/docsystem/__init__.py +22 -0
  46. documentation_engine-0.1.2/src/docsystem/__main__.py +4 -0
  47. documentation_engine-0.1.2/src/docsystem/catalog.py +665 -0
  48. documentation_engine-0.1.2/src/docsystem/cli.py +2573 -0
  49. documentation_engine-0.1.2/src/docsystem/config.py +216 -0
  50. documentation_engine-0.1.2/src/docsystem/mcp_server.py +324 -0
  51. documentation_engine-0.1.2/src/docsystem/metadata.py +307 -0
  52. documentation_engine-0.1.2/src/docsystem/migration.py +309 -0
  53. documentation_engine-0.1.2/src/docsystem/projection.py +609 -0
  54. documentation_engine-0.1.2/src/docsystem/readiness.py +132 -0
  55. documentation_engine-0.1.2/src/docsystem/sections.py +252 -0
  56. documentation_engine-0.1.2/tests/test_catalog.py +231 -0
  57. documentation_engine-0.1.2/tests/test_cli.py +287 -0
  58. documentation_engine-0.1.2/tests/test_config.py +216 -0
  59. documentation_engine-0.1.2/tests/test_context_cli.py +1107 -0
  60. documentation_engine-0.1.2/tests/test_mcp_adapter.py +294 -0
  61. documentation_engine-0.1.2/tests/test_metadata.py +211 -0
  62. documentation_engine-0.1.2/tests/test_migration.py +539 -0
  63. documentation_engine-0.1.2/tests/test_readiness.py +174 -0
  64. documentation_engine-0.1.2/tests/test_release_workflows.py +388 -0
  65. documentation_engine-0.1.2/tests/test_sections.py +188 -0
  66. documentation_engine-0.1.2/tests/test_vertical.py +1078 -0
  67. documentation_engine-0.1.2/uv.lock +802 -0
@@ -0,0 +1,127 @@
1
+ name: Adoption finding
2
+ description: Report adopter compatibility, migration profile, or workflow gaps.
3
+ title: "[Adoption Finding]: "
4
+ labels: ["adoption-finding", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Use this template when DocumentationEngine behaves deterministically but does not yet fit an adopter project's real documentation workflow.
10
+ Use `core-bug` instead for defects reproducible with a minimal public or synthetic fixture.
11
+ - type: input
12
+ id: project
13
+ attributes:
14
+ label: Project or adopter name
15
+ placeholder: "example-project"
16
+ validations:
17
+ required: true
18
+ - type: dropdown
19
+ id: source
20
+ attributes:
21
+ label: Source host or agent
22
+ options:
23
+ - codex
24
+ - claude
25
+ - vscode
26
+ - other
27
+ validations:
28
+ required: true
29
+ - type: input
30
+ id: version
31
+ attributes:
32
+ label: DocumentationEngine version or commit
33
+ placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
34
+ validations:
35
+ required: true
36
+ - type: dropdown
37
+ id: component
38
+ attributes:
39
+ label: Component
40
+ options:
41
+ - catalog
42
+ - profiles
43
+ - relations
44
+ - graph
45
+ - navigation
46
+ - anchors
47
+ - projection
48
+ - context
49
+ - adoption
50
+ - readiness
51
+ - reporting
52
+ - privacy
53
+ - other
54
+ validations:
55
+ required: false
56
+ - type: textarea
57
+ id: commands
58
+ attributes:
59
+ label: Commands run and exit codes
60
+ description: Include the adoption or shadow-run commands that exposed the gap.
61
+ render: shell
62
+ validations:
63
+ required: true
64
+ - type: textarea
65
+ id: diagnostics
66
+ attributes:
67
+ label: Compact diagnostics or counts
68
+ description: Include counts such as included/excluded/unmapped, resolved migrations, boundaries, stale pins, omitted sections, direct-vs-indexed equality, or byte sizes.
69
+ render: text
70
+ validations:
71
+ required: true
72
+ - type: textarea
73
+ id: config
74
+ attributes:
75
+ label: Sanitized profile/config excerpt
76
+ description: Include relevant areas, identifier prefixes, catalog exclusions, relation policy, navigation settings, snapshot types, or projection settings.
77
+ render: toml
78
+ validations:
79
+ required: true
80
+ - type: textarea
81
+ id: affected
82
+ attributes:
83
+ label: Affected IDs, anchors, or paths
84
+ description: Use stable IDs, anchors, or sanitized paths when safe. Do not paste private document bodies.
85
+ render: text
86
+ validations:
87
+ required: false
88
+ - type: textarea
89
+ id: expected
90
+ attributes:
91
+ label: Expected adopter workflow behavior
92
+ validations:
93
+ required: true
94
+ - type: textarea
95
+ id: actual
96
+ attributes:
97
+ label: Actual behavior or compatibility gap
98
+ validations:
99
+ required: true
100
+ - type: textarea
101
+ id: local_changes
102
+ attributes:
103
+ label: Runtime or local-state changes made
104
+ description: State "none" if the run was read-only or only wrote disposable generated projection state.
105
+ placeholder: "none"
106
+ validations:
107
+ required: true
108
+ - type: textarea
109
+ id: requested_action
110
+ attributes:
111
+ label: Requested DocumentationEngine action
112
+ placeholder: "Add profile option, clarify migration guidance, improve context diagnostics..."
113
+ validations:
114
+ required: true
115
+ - type: checkboxes
116
+ id: privacy
117
+ attributes:
118
+ label: Privacy and sanitization checklist
119
+ options:
120
+ - label: I omitted or sanitized private document bodies.
121
+ required: true
122
+ - label: I omitted private scratch, review, roadmap, or planning content.
123
+ required: true
124
+ - label: I sanitized config/profile excerpts and removed secrets or private paths where necessary.
125
+ required: true
126
+ - label: Any local artifact paths are pointers only; maintainers are not expected to access private files.
127
+ required: true
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Adopter reporting guide
4
+ url: https://github.com/Jafa7/DocumentationEngine/blob/main/docs/adopter-reporting.md
5
+ about: Read the privacy-safe reporting policy before filing adopter reports.
@@ -0,0 +1,126 @@
1
+ name: Core bug
2
+ description: Report deterministic DocumentationEngine defects reproducible outside a private adopter corpus.
3
+ title: "[Core Bug]: "
4
+ labels: ["core-bug", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Use this template for deterministic defects in the parser, metadata model, graph, projection, context, MCP adapter, or CLI.
10
+ Prefer a minimal public or synthetic fixture over private adopter content.
11
+ - type: input
12
+ id: project
13
+ attributes:
14
+ label: Project or adopter name
15
+ description: Use the adopter name if discovered during adoption, or "synthetic fixture".
16
+ placeholder: "synthetic fixture"
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: source
21
+ attributes:
22
+ label: Source host or agent
23
+ options:
24
+ - codex
25
+ - claude
26
+ - vscode
27
+ - other
28
+ validations:
29
+ required: true
30
+ - type: input
31
+ id: version
32
+ attributes:
33
+ label: DocumentationEngine version or commit
34
+ placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
35
+ validations:
36
+ required: true
37
+ - type: dropdown
38
+ id: component
39
+ attributes:
40
+ label: Component
41
+ options:
42
+ - catalog
43
+ - metadata
44
+ - sections
45
+ - relations
46
+ - graph
47
+ - projection
48
+ - context
49
+ - mcp
50
+ - cli
51
+ - other
52
+ validations:
53
+ required: false
54
+ - type: textarea
55
+ id: fixture
56
+ attributes:
57
+ label: Minimal public or synthetic reproduction fixture
58
+ description: Paste only the smallest sanitized fixture or explain why it cannot be minimized yet.
59
+ render: markdown
60
+ validations:
61
+ required: true
62
+ - type: textarea
63
+ id: commands
64
+ attributes:
65
+ label: Commands run and exit codes
66
+ render: shell
67
+ validations:
68
+ required: true
69
+ - type: textarea
70
+ id: diagnostics
71
+ attributes:
72
+ label: Compact diagnostics
73
+ description: Include exact errors, warnings, JSON fields, or counts needed to reproduce the defect.
74
+ render: text
75
+ validations:
76
+ required: true
77
+ - type: textarea
78
+ id: config
79
+ attributes:
80
+ label: Sanitized config/profile excerpt
81
+ description: Include the smallest config needed for the bug. Use "not applicable" if none.
82
+ render: toml
83
+ validations:
84
+ required: true
85
+ - type: textarea
86
+ id: expected
87
+ attributes:
88
+ label: Expected behavior
89
+ validations:
90
+ required: true
91
+ - type: textarea
92
+ id: actual
93
+ attributes:
94
+ label: Actual behavior
95
+ validations:
96
+ required: true
97
+ - type: textarea
98
+ id: local_changes
99
+ attributes:
100
+ label: Runtime or local-state changes made
101
+ description: State "none" if no generated state, cache, config, or local files were changed after the failure.
102
+ placeholder: "none"
103
+ validations:
104
+ required: true
105
+ - type: textarea
106
+ id: requested_action
107
+ attributes:
108
+ label: Requested DocumentationEngine action
109
+ placeholder: "Fix parser diagnostic, make projection fallback fail closed, add regression..."
110
+ validations:
111
+ required: true
112
+ - type: checkboxes
113
+ id: privacy
114
+ attributes:
115
+ label: Privacy and sanitization checklist
116
+ options:
117
+ - label: I omitted or sanitized private document bodies.
118
+ required: true
119
+ - label: I omitted private scratch, review, roadmap, or planning content.
120
+ required: true
121
+ - label: I sanitized config/profile excerpts and removed secrets or private paths where necessary.
122
+ required: true
123
+ - label: Any local artifact paths are pointers only; maintainers are not expected to access private files.
124
+ required: true
125
+ - label: I provided a minimal public/synthetic fixture or explained why not.
126
+ required: true
@@ -0,0 +1,91 @@
1
+ name: Documentation pattern request
2
+ description: Request a reusable documentation pattern, template, workflow, or privacy-safe reporting convention.
3
+ title: "[Docs Pattern Request]: "
4
+ labels: ["docs-pattern-request", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Use this template for reusable documentation patterns discovered during adopter work.
10
+ Use `runtime-report`, `adoption-finding`, or `core-bug` for defects.
11
+ - type: input
12
+ id: project
13
+ attributes:
14
+ label: Project or adopter name
15
+ placeholder: "example-project"
16
+ validations:
17
+ required: true
18
+ - type: dropdown
19
+ id: source
20
+ attributes:
21
+ label: Source host or agent
22
+ options:
23
+ - codex
24
+ - claude
25
+ - vscode
26
+ - other
27
+ validations:
28
+ required: true
29
+ - type: input
30
+ id: version
31
+ attributes:
32
+ label: DocumentationEngine version or commit
33
+ placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
34
+ validations:
35
+ required: true
36
+ - type: dropdown
37
+ id: component
38
+ attributes:
39
+ label: Component
40
+ options:
41
+ - adoption
42
+ - reporting
43
+ - navigation
44
+ - context
45
+ - templates
46
+ - privacy
47
+ - other
48
+ validations:
49
+ required: false
50
+ - type: textarea
51
+ id: scenario
52
+ attributes:
53
+ label: Reusable scenario
54
+ description: Describe the pattern need without private project details.
55
+ validations:
56
+ required: true
57
+ - type: textarea
58
+ id: evidence
59
+ attributes:
60
+ label: Compact evidence or examples
61
+ description: Include sanitized counts, commands, or minimal examples that show why this should be reusable.
62
+ render: text
63
+ validations:
64
+ required: true
65
+ - type: textarea
66
+ id: proposed_pattern
67
+ attributes:
68
+ label: Proposed pattern or template shape
69
+ description: If known, describe sections, metadata fields, workflow gates, or examples.
70
+ validations:
71
+ required: false
72
+ - type: textarea
73
+ id: requested_action
74
+ attributes:
75
+ label: Requested DocumentationEngine action
76
+ placeholder: "Add guide, add template, clarify adoption docs..."
77
+ validations:
78
+ required: true
79
+ - type: checkboxes
80
+ id: privacy
81
+ attributes:
82
+ label: Privacy and sanitization checklist
83
+ options:
84
+ - label: I omitted or sanitized private document bodies.
85
+ required: true
86
+ - label: I omitted private scratch, review, roadmap, or planning content.
87
+ required: true
88
+ - label: I sanitized config/profile excerpts and removed secrets or private paths where necessary.
89
+ required: true
90
+ - label: Any local artifact paths are pointers only; maintainers are not expected to access private files.
91
+ required: true
@@ -0,0 +1,119 @@
1
+ name: Runtime report
2
+ description: Report adopter-side setup, local state, or docsystem execution problems.
3
+ title: "[Runtime Report]: "
4
+ labels: ["runtime-report", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Use this template for local setup and execution issues in an adopter project.
10
+ Do not paste private document bodies, large logs, or full generated projections.
11
+ - type: input
12
+ id: project
13
+ attributes:
14
+ label: Project or adopter name
15
+ description: Use a short public-safe project name or slug.
16
+ placeholder: "example-project"
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: source
21
+ attributes:
22
+ label: Source host or agent
23
+ options:
24
+ - codex
25
+ - claude
26
+ - vscode
27
+ - other
28
+ validations:
29
+ required: true
30
+ - type: input
31
+ id: version
32
+ attributes:
33
+ label: DocumentationEngine version or commit
34
+ placeholder: "0bf364673c55d76d216a3dfe982b0af746f1ab69"
35
+ validations:
36
+ required: true
37
+ - type: dropdown
38
+ id: component
39
+ attributes:
40
+ label: Component
41
+ options:
42
+ - setup
43
+ - readiness
44
+ - local-state
45
+ - cli
46
+ - projection
47
+ - mcp
48
+ - other
49
+ validations:
50
+ required: false
51
+ - type: textarea
52
+ id: commands
53
+ attributes:
54
+ label: Commands run and exit codes
55
+ description: Include exact commands and exit codes. Redact private paths if needed.
56
+ render: shell
57
+ placeholder: |
58
+ docsystem readiness /path/to/project --json
59
+ exit: 1
60
+ validations:
61
+ required: true
62
+ - type: textarea
63
+ id: diagnostics
64
+ attributes:
65
+ label: Compact diagnostics or counts
66
+ description: Prefer compact output from readiness, doctor, validate, index, changes, context, read, or impact. Summaries are better than unbounded logs.
67
+ render: text
68
+ validations:
69
+ required: true
70
+ - type: textarea
71
+ id: config
72
+ attributes:
73
+ label: Sanitized config or profile excerpt
74
+ description: Include only relevant areas, identifiers, catalog policy, relation policy, navigation settings, projection settings, or MCP setup.
75
+ render: toml
76
+ validations:
77
+ required: true
78
+ - type: textarea
79
+ id: expected
80
+ attributes:
81
+ label: Expected behavior
82
+ description: What should have happened?
83
+ validations:
84
+ required: true
85
+ - type: textarea
86
+ id: actual
87
+ attributes:
88
+ label: Actual behavior
89
+ description: What happened instead?
90
+ validations:
91
+ required: true
92
+ - type: textarea
93
+ id: local_changes
94
+ attributes:
95
+ label: Runtime or local-state changes made
96
+ description: State "none" if no generated state, cache, config, or local files were changed after the failure.
97
+ placeholder: "none"
98
+ validations:
99
+ required: true
100
+ - type: textarea
101
+ id: requested_action
102
+ attributes:
103
+ label: Requested DocumentationEngine action
104
+ placeholder: "Clarify setup guide, fix CLI runtime behavior, improve diagnostic..."
105
+ validations:
106
+ required: true
107
+ - type: checkboxes
108
+ id: privacy
109
+ attributes:
110
+ label: Privacy and sanitization checklist
111
+ options:
112
+ - label: I omitted or sanitized private document bodies.
113
+ required: true
114
+ - label: I omitted private scratch, review, roadmap, or planning content.
115
+ required: true
116
+ - label: I sanitized config/profile excerpts and removed secrets or private paths where necessary.
117
+ required: true
118
+ - label: Any local artifact paths are pointers only; maintainers are not expected to access private files.
119
+ required: true
@@ -0,0 +1,31 @@
1
+ ## Summary
2
+
3
+ <!-- What changed and why. Link related issues if any. -->
4
+
5
+ ## Testing
6
+
7
+ <!-- Commands run and their result. Use "N/A: <reason>" for anything skipped. -->
8
+
9
+ ```bash
10
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run pytest
11
+ TMPDIR=/tmp TMP=/tmp TEMP=/tmp uv run ruff check .
12
+ ```
13
+
14
+ ## Checklist
15
+
16
+ - [ ] This change stays within a single described scope (no unrelated
17
+ refactors bundled in).
18
+ - [ ] `uv run pytest` passes, and configuration-behavior changes have tests.
19
+ - [ ] `uv run ruff check .` passes.
20
+ - [ ] `uv lock --check` passes, or this change does not touch dependencies
21
+ (N/A with reason otherwise).
22
+ - [ ] `./scripts/installed_cli_smoke.sh` passes, or this change does not
23
+ affect packaging/entry points/CLI surface (N/A with reason otherwise).
24
+ - [ ] `CHANGELOG.md` and relevant docs are updated, or this change has no
25
+ public-contract impact (N/A with reason otherwise).
26
+ - [ ] The core package (`src/docsystem/`) remains provider-neutral — no
27
+ 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).
30
+ - [ ] Executable bits on any added/modified shell scripts are preserved
31
+ (`git ls-files --stage <script>` shows `100755`).
@@ -0,0 +1,13 @@
1
+ # GitHub Copilot instructions
2
+
3
+ Follow the repository's [`AGENTS.md`](../AGENTS.md) as the primary,
4
+ provider-neutral instruction source. This file is only a thin Copilot adapter;
5
+ do not duplicate product architecture or private planning here.
6
+
7
+ For orchestrated work, read the supplied task contract first. Work only in its
8
+ assigned checkout or detached worktree and allowed paths. Run the required
9
+ checks, report changed files and evidence, and do not commit, push or accept
10
+ your own changes.
11
+
12
+ Use [`README.md`](../README.md), [`docs/architecture.md`](../docs/architecture.md)
13
+ and [`docs/adoption.md`](../docs/adoption.md) for public product behavior.
@@ -0,0 +1,65 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ env:
12
+ TMPDIR: /tmp
13
+ TMP: /tmp
14
+ TEMP: /tmp
15
+
16
+ jobs:
17
+ check:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v7
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v7
24
+ with:
25
+ python-version: "3.12"
26
+
27
+ - name: Run pytest
28
+ run: uv run pytest
29
+
30
+ - name: Run ruff
31
+ run: uv run ruff check .
32
+
33
+ - name: Verify lockfile is current
34
+ run: uv lock --check
35
+
36
+ - name: Installed CLI smoke test
37
+ run: ./scripts/installed_cli_smoke.sh
38
+
39
+ # The smoke test builds and installs a wheel only. The release workflow
40
+ # uploads a wheel *and* an sdist, and an index rejects a distribution
41
+ # whose metadata or long description does not render. Check both
42
+ # artifacts here rather than during an irreversible upload.
43
+ - name: Build and check both distributions
44
+ run: |
45
+ dist_dir="$(mktemp -d)/dist"
46
+ uv build --out-dir "$dist_dir"
47
+ version="$(uv run python -c 'import docsystem; print(docsystem.__version__)')"
48
+ test -f "$dist_dir/documentation_engine-${version}-py3-none-any.whl"
49
+ test -f "$dist_dir/documentation_engine-${version}.tar.gz"
50
+ uvx --from 'twine>=6,<7' twine check --strict "$dist_dir"/*
51
+
52
+ # Dogfooding: walk the documented adoption sequence end-to-end against
53
+ # the public example profile, on a scratch copy so the fixture stays
54
+ # byte-identical in the repository.
55
+ - name: Example profile adoption walkthrough
56
+ run: |
57
+ profile="$(mktemp -d)/profile"
58
+ cp -r examples/paradigmarium-profile "$profile"
59
+ uv run python -m docsystem readiness "$profile" --json
60
+ uv run python -m docsystem migrate "$profile" --apply
61
+ uv run python -m docsystem index "$profile" --write
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
65
+ uv run python -m docsystem changes "$profile" --json