synthesis-agent-conformance · v2.0.1 · 2026-10-30 · sha256 13261b3b8e178fff
synthesis-agent-conformance v2.0.1A
Immutable. This exact content never changes and is served at /api/v1/blob/13261b3b8e178fff.
--- name: synthesis-agent-conformance description: "Audit and verify that synthesis behaves the same in Claude Code, Codex and Muse: source lint, installed parity, hook wiring and trust, AGENTS.md/CLAUDE.md adapters, skill catalogs, and project handoff between harnesses. Use for parity audits, instruction migrations, or checks after install." license: "Apache-2.0" depends_on: ["synthesis-project-management", "synthesis-context-lifecycle"] metadata: author: "Rajiv Pant" version: "2.0.1" source_repo: "github.com/synthesisengineering/synthesis-skills" source_type: "public" format: v5 --- # Synthesis Agent Conformance Treat cross-agent portability as a continuously tested system, not a file-count comparison. This skill audits five planes (source, installed, live, continuity, capability) with the v5 tools, repairs from source, and keeps always-loaded instructions small enough for every harness. ## Binding rules 1. **Parity is tested, never inferred.** Matching inventories or version labels are not parity; a self-report is a claim, so compare installed bytes and read each harness's own answers. 2. **Name the plane when facts conflict.** Runtime state is current behavior; source is what the next deployment produces. 3. **UNKNOWN never becomes PASS.** A check that could not run is reported as unknown, with what it needed. 4. **Never write a harness's trust state.** Codex `/hooks` trust and Muse hook approval are the person's decisions; report what needs approving. 5. **Repair from source, never in an installed copy or cache.** Keep shared behavior agent-neutral and put harness differences in adapters. 6. **`AGENTS.md` is canonical; `CLAUDE.md` is exactly `@AGENTS.md`.** Private skills go to `~/.claude/skills` and `~/.agents/skills`, never `~/.codex/skills`. 7. **Respect Codex's budgets.** Instructions stay under `project_doc_max_bytes` minus 4 KiB, and the skill catalog within 2% of context, with specialists explicit-only and the router routing. 8. **Follow a generator-backed artifact only when it is verifiably the generator's output.** A hand-made decision packet skips what the generator guarantees. 9. **When a desktop client cannot read a protected file, find the engine responsible** and report UNKNOWN until an observed check shows otherwise. ## Contents - **Procedure** (below): the audit in order. - [references/audit.md](references/audit.md): the five planes, the source lint, every doctor check, live and continuity checks, the skill catalog contract, skill-output provenance, repair rules. Read before an audit or when a check fails. - [references/architecture.md](references/architecture.md): ownership, instruction discovery, deployment, lifecycle controls, project handoff, cross-machine sync, the conformance contract. Read when designing or changing an install, plugin, hook set or sync. - [references/instruction-kernel-pattern.md](references/instruction-kernel-pattern.md): the thin-kernel structure, four enforcement classes, the not-weakening proof, the budget gate. Read when an always-loaded instruction file nears its budget or rules move to skills, hooks or config. - [references/macos-file-access.md](references/macos-file-access.md): attributing a protected-file denial and accepting a permission across updates. Read when a desktop client cannot access a file. - [references/autopilot-browser-quality.md](references/autopilot-browser-quality.md): reviewing an outcome on an external target (account, stored state, excluded items). Read for external-target work. - [references/coverage-map.md](references/coverage-map.md): where every section of 1.14.1 went (ruling D8). - [references/preserved.md](references/preserved.md), [references/preserved-architecture.md](references/preserved-architecture.md), [references/preserved-hermes-cli-pilot.md](references/preserved-hermes-cli-pilot.md), [references/preserved-provider-change-intake.md](references/preserved-provider-change-intake.md), [references/preserved-report-contract.md](references/preserved-report-contract.md), [references/preserved-signed-observations.md](references/preserved-signed-observations.md), [references/preserved-vendor-demo-protocol.md](references/preserved-vendor-demo-protocol.md), [references/preserved-vendor-review-packages.md](references/preserved-vendor-review-packages.md), [references/preserved-yaml-runtime.md](references/preserved-yaml-runtime.md): the 1.14.1 text verbatim. Read only to review what was cut. ## Procedure 1. **Source.** In the source checkout: `python3 -m pytest -q tests/test_source_lint.py`. Every failure names the file or skill to fix. 2. **Installed.** `synthesis doctor` (add `--latest` to compare with the published release). The first line says `healthy` or how many problems; each later line is `ok`, `warn`, `fail` or `info`, a check name, and what it found. Fix every `fail` from source, then rerun. 3. **Live.** Start a fresh session in each harness and confirm its SessionStart context names the active project. Ask the person to trust changed hooks in Codex's `/hooks` and to run `muse plugins approve synthesis-skills` when doctor lists pending hooks. 4. **Continuity.** `synthesis use <project>` and `synthesis brief` in one harness; open another harness with no pasted transcript and confirm the same phase, plan and next action. For another Mac, `synthesis handoff` pushes the records in this session's claims. 5. **Instructions.** For each folder doctor lists under `instruction adapters`, make `AGENTS.md` canonical and `CLAUDE.md` exactly `@AGENTS.md`; never overwrite a divergent pair blindly, merge it in source first. 6. **Close.** Record genuine harness differences as boundaries with evidence; report parity only when every plane passed.