Commit 009e88a
feat(codemap-py): integrate engine, Codex skills
- Add the `codemap-py integrate` control plane (new `src/codemap_py/integration.py`, dispatched from `cli.py`): `check` reports installed/active versions, roots, protocol, shared-index identity, and runtime-log isolation with no writes; `plan` persists an inspectable artifact (exact targets, before-state hashes, argv arrays, ordered operations, rollback identities) bound by a SHA-256; `apply` updates only the sentinel-bounded managed block (`<!-- codemap-py:integration:begin v1 sha256=… -->`) inside allowlisted consumer source files, preserving everything outside it and refusing foreign/modified markers, path escapes, symlinks, installed-cache roots, and dirty overlap; `sync` runs only the approved native plugin-manager argv and never touches source or global instructions; `demo` writes disposable evidence. Every mutation is hash-approved, journaled with before-images, and rolled back on partial failure, ending `recovery-required` when a rollback cannot be verified.
- Ship a Codex skill roster under `codex-skills/` (six SKILL.md adapters) and point the Codex manifest `skills` at `./codex-skills/`, so both runtimes expose the same six skills — scan-codebase, query-code, test-impact, rename-refs, integration, debrief-coding — with identical truth-claims and only runtime-specific invocation differing.
- Add `shared/capability-contract.md` (the single source of the six skills' inputs, outputs, exit codes, completeness metadata, and caveats) and `shared/integration-contract.md` (the `codemap-py.integration.v1` marker, plan, approval, journal, and rollback shapes).
- Rewrite the Claude `integration` skill from the retired `check|init|demo` cache-injection model to `check|plan|apply|sync|demo`, deleting its legacy demo modes and template; update `scan-codebase`'s NOT-for pointer off the retired `integration init`.
- Teach `build_package.py` to ship `codex-skills/` and `shared/` and record the Codex roster in the manifest, and invert `validate_package.py` from the former Codex zero-roster rule to enforcing Codex/Claude six-skill parity (the no-Codex-hooks rule is unchanged).
- Add `tests/integration/test_skill_parity.py`, `test_integrate.py`, and `test_optionality.py` (roster/truth-claim parity; check/plan zero-write, approval digest, refusal matrix, journal transitions, rollback in both partial-failure orders, Windows argv quoting, demo; provider-only lane); flip the stale Codex zero-roster assertions to the six-skill contract; drop the retired manual-injection README-drift guard and the orphaned `measure_demo_arms` demo helper and its test.
- Bump both plugin manifests to 0.26.0 and record the release in README.md and CHANGELOG.md.
---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>1 parent b24e9ec commit 009e88a
32 files changed
Lines changed: 3976 additions & 1801 deletions
File tree
- plugins/codemap-py
- .claude-plugin
- .codex-plugin
- bin
- claude-skills
- integration
- modes
- templates
- scan-codebase
- codex-skills
- debrief-coding
- integration
- query-code
- rename-refs
- scan-codebase
- test-impact
- scripts
- src/codemap_py
- tests
- injection
- integration
- packaging
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
12 | 13 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
9 | 41 | | |
10 | 42 | | |
11 | 43 | | |
| |||
Large diffs are not rendered by default.
This file was deleted.
0 commit comments