Amanuensis

Subsystem · B-05

Packaging, installer, validation, and product docs

Survey record for Packaging, installer, validation, and product docs: scope, reading path, concern review, findings, boundaries, vocabulary, and notes.

Branch  main Checked  adc4ce04aa57 As of  2026-08-29 04:56:43 No recorded stale entries Survey depth  Mapped

Status: Mapped Layer: delivery

§Scope

mcp-server/src/cli.ts, mcp-server/scripts/, the mcp-server test suites and fixtures, package metadata, .github/, dev/adr/ (ADRs 0001-0020), dev/conspectus/ and the living-conspectus and pecia roadmap gates, README/CONTRIBUTING/ROADMAP/INSTALLATION/HISTORY, and workspace MCP config.

§Start here

mcp-server/src/cli.ts; .github/workflows/test.yml; INSTALLATION.md

§Notes

Owns install/config merge, generated package mirrors, CI gates, and the public product contract. Grew substantially between b8b566f and 5694080: user-scoped Codex installation with activation-contract markers and pre-write diagnosis, twenty ADRs, twenty new test suites, and the INSTALLATION/HISTORY documents. TR-2 re-assessed at 5694080; the remaining dispositions still carry b8b566f evidence. Seam SM-10 records that setup.md and cli.ts agree today but that nothing machine-checks them.

§File ledger

pages.yml

Path
.github/workflows/pages.yml
Review
candidate
Revision
5694080

Why this file is in scope

Documentation publication workflow.

publish.yml

Path
.github/workflows/publish.yml
Review
candidate
Revision
5694080

Why this file is in scope

Release publication workflow.

.gitignore

Path
.gitignore
Review
candidate
Revision
5694080

Why this file is in scope

Repository-level exclusion policy affecting what ships and what is tracked.

.tool-versions

Path
.tool-versions
Review
candidate
Revision
5694080

Why this file is in scope

Toolchain pinning for reproducible builds.

HISTORY.md

Path
HISTORY.md
Review
candidate
Revision
5694080

Why this file is in scope

Public release history added in this refresh range.

0001-living-conspectus-terms.md

Path
dev/adr/0001-living-conspectus-terms.md
Review
candidate
Revision
5694080

Why this file is in scope

Architecture decision record for living-conspectus terminology.

0002-temporal-claim-model.md

Path
dev/adr/0002-temporal-claim-model.md
Review
candidate
Revision
5694080

Why this file is in scope

ADR backing the claims tool module.

0007-impact-aware-review-brief.md

Path
dev/adr/0007-impact-aware-review-brief.md
Review
candidate
Revision
5694080

Why this file is in scope

ADR backing the impact-aware review brief.

0011-codebase-brief-contract.md

Path
dev/adr/0011-codebase-brief-contract.md
Review
candidate
Revision
5694080

Why this file is in scope

ADR backing the codebase brief contract.

0017-stratified-operating-envelope.md

Path
dev/adr/0017-stratified-operating-envelope.md
Review
candidate
Revision
5694080

Why this file is in scope

ADR backing the stratified operating envelope.

check-living-conspectus.mjs

Path
dev/check-living-conspectus.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Living-conspectus roadmap gate checker.

README.md

Path
dev/conspectus/README.md
Review
candidate
Revision
5694080

Why this file is in scope

Living-conspectus baseline detector documentation.

baseline-report-detector-1.0.0.json

Path
dev/conspectus/baseline-report-detector-1.0.0.json
Review
candidate
Revision
5694080

Why this file is in scope

Versioned detector baseline report.

baseline-report.json

Path
dev/conspectus/baseline-report.json
Review
candidate
Revision
5694080

Why this file is in scope

Living-conspectus baseline report.

detector-registry.json

Path
dev/conspectus/detector-registry.json
Review
candidate
Revision
5694080

Why this file is in scope

Registry of living-conspectus baseline detectors.

self-baseline.json

Path
dev/conspectus/self-baseline.json
Review
candidate
Revision
5694080

Why this file is in scope

Self-applied baseline measurement.

pecia-dogfood.md

Path
dev/pecia-dogfood.md
Review
candidate
Revision
5694080

Why this file is in scope

Dogfood record for the pecia roadmap workflow.

practice-catalog-v2.10.json

Path
dev/practice-catalog-v2.10.json
Review
candidate
Revision
5694080

Why this file is in scope

Pinned external practice catalog used by ADR-0020 reconciliation.

test-living-conspectus.mjs

Path
dev/test-living-conspectus.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test for the living-conspectus gate.

test-pecia-roadmap-red-gates.mjs

Path
dev/test-pecia-roadmap-red-gates.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Red-gate suite proving the pecia roadmap check can fail.

test-pecia-roadmap.mjs

Path
dev/test-pecia-roadmap.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test for the pecia roadmap projection.

manifest.json

Path
mcp-server/fixtures/change-impact/manifest.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for change-impact runs.

source-input.json

Path
mcp-server/fixtures/codebase-brief/source-input.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for codebase-brief source input.

manifest.json

Path
mcp-server/fixtures/composition/manifest.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for composition runs.

qualification-result.json

Path
mcp-server/fixtures/crosswalk/qualification-result.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for crosswalk qualification.

program.json

Path
mcp-server/fixtures/evaluation/program.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for evaluation programs.

method-qualification.json

Path
mcp-server/fixtures/learning/method-qualification.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for method qualification.

claims.md

Path
mcp-server/fixtures/research/scholiast/version-semantics/claims.md
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture: Scholiast research claims used by the research broker.

sources.md

Path
mcp-server/fixtures/research/scholiast/version-semantics/sources.md
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture: Scholiast research sources used by the research broker.

manifest.json

Path
mcp-server/fixtures/revalidation/manifest.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for revalidation runs.

manifest.json

Path
mcp-server/fixtures/review-analysis/manifest.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for review analysis.

semantic-states.json

Path
mcp-server/fixtures/review-session/semantic-states.json
Review
candidate
Revision
5694080

Why this file is in scope

Test fixture for review-session semantic states.

historical-evaluation.mjs

Path
mcp-server/scripts/historical-evaluation.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Build-time script producing the historical evaluation corpus.

test-change-impact.mjs

Path
mcp-server/test-change-impact.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for change-impact prediction and application.

test-chorusmith-adapter.mjs

Path
mcp-server/test-chorusmith-adapter.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the Chorusmith adapter parity boundary.

test-codebase-brief.mjs

Path
mcp-server/test-codebase-brief.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the codebase brief contract.

test-composition.mjs

Path
mcp-server/test-composition.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for composition fan-in.

test-crosswalk-qualification.mjs

Path
mcp-server/test-crosswalk-qualification.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for crosswalk qualification.

test-decisions.mjs

Path
mcp-server/test-decisions.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for decision acceptance.

test-design-session.mjs

Path
mcp-server/test-design-session.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for design sessions.

test-historical-evaluation.mjs

Path
mcp-server/test-historical-evaluation.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for historical evaluation.

test-learning-ledger.mjs

Path
mcp-server/test-learning-ledger.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the learning ledger.

test-mcp-compatibility.mjs

Path
mcp-server/test-mcp-compatibility.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for MCP protocol compatibility.

test-package-artifact.mjs

Path
mcp-server/test-package-artifact.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the published package artifact.

test-projection-custody.mjs

Path
mcp-server/test-projection-custody.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for projection custody.

test-refresh-recovery.mjs

Path
mcp-server/test-refresh-recovery.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for unattended refresh recovery.

test-research-broker.mjs

Path
mcp-server/test-research-broker.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the research broker.

test-resolution-proof.mjs

Path
mcp-server/test-resolution-proof.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for resolution proof.

test-revalidation-scheduler.mjs

Path
mcp-server/test-revalidation-scheduler.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for revalidation scheduling.

test-review-analysis.mjs

Path
mcp-server/test-review-analysis.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for review analysis.

test-review-brief.mjs

Path
mcp-server/test-review-brief.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the review brief.

test-review-session.mjs

Path
mcp-server/test-review-session.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for review session custody and blinding.

test-temporal-claims.mjs

Path
mcp-server/test-temporal-claims.mjs
Review
candidate
Revision
5694080

Why this file is in scope

Test suite for the claims tool module.

published-smoke.yml

Path
.github/workflows/published-smoke.yml
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test.yml

Path
.github/workflows/test.yml
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

.mcp.json

Path
.mcp.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

CONTRIBUTING.md

Path
CONTRIBUTING.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

INSTALLATION.md

Path
INSTALLATION.md
Review
examined
Revision
5694080

Why this file is in scope

Public installation contract added in this refresh range.

README.md

Path
README.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

ROADMAP.md

Path
ROADMAP.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

cross-domain-analysis.md

Path
dev/cross-domain-analysis.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

render-roadmap.mjs

Path
dev/render-roadmap.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

roadmap.json

Path
dev/roadmap.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-roadmap.mjs

Path
dev/test-roadmap.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

.gitignore

Path
mcp-server/.gitignore
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

DEVELOPMENT.md

Path
mcp-server/DEVELOPMENT.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

README.md

Path
mcp-server/README.md
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

biome.json

Path
mcp-server/biome.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

package-lock.json

Path
mcp-server/package-lock.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

package.json

Path
mcp-server/package.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

check-evidence-vocabulary.mjs

Path
mcp-server/scripts/check-evidence-vocabulary.mjs
Review
examined
Revision
9c53be1

Why this file is in scope

CI guard holding the evidence-quality vocabulary together across add_evidence, set_disposition, and SKILL.md; the substrate fix for B03-3.

check-sql-identifiers.mjs

Path
mcp-server/scripts/check-sql-identifiers.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

check-tool-schemas.mjs

Path
mcp-server/scripts/check-tool-schemas.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

gen-tool-inventory.mjs

Path
mcp-server/scripts/gen-tool-inventory.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

prepack-bundle-assets.mjs

Path
mcp-server/scripts/prepack-bundle-assets.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

cli.ts

Path
mcp-server/src/cli.ts
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-adversarial-correctness.mjs

Path
mcp-server/test-adversarial-correctness.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-adversarial-performance.mjs

Path
mcp-server/test-adversarial-performance.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-adversarial-security.mjs

Path
mcp-server/test-adversarial-security.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-autoprogress.mjs

Path
mcp-server/test-autoprogress.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-cloud-e2e.mjs

Path
mcp-server/test-cloud-e2e.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-cloud-storage.mjs

Path
mcp-server/test-cloud-storage.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-compare.mjs

Path
mcp-server/test-compare.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-derived-staleness.mjs

Path
mcp-server/test-derived-staleness.mjs
Review
examined
Revision
9c53be1

Why this file is in scope

Red-gate suite for ledger-derived staleness and scope reconciliation; the A1/A2 gates behind B03-1 and B03-2.

test-installer.mjs

Path
mcp-server/test-installer.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-invariants.mjs

Path
mcp-server/test-invariants.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-perf-ceilings.mjs

Path
mcp-server/test-perf-ceilings.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-perf-tier2.mjs

Path
mcp-server/test-perf-tier2.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-perf.mjs

Path
mcp-server/test-perf.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-priority.mjs

Path
mcp-server/test-priority.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-smoke.mjs

Path
mcp-server/test-smoke.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

test-storage-git.mjs

Path
mcp-server/test-storage-git.mjs
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

tsconfig.json

Path
mcp-server/tsconfig.json
Review
examined
Revision
b8b566f

Why this file is in scope

Pinned A0 inventory assigns this file to B-05.

config.yaml

Path
.pecia/config.yaml
Review
generated-ignore
Revision
aba6d04

Why this file is in scope

Pecia execution-custody projection and its snapshot manifest; tool state regenerated from the local timeline.

snapshot.head

Path
.pecia/snapshot.head
Review
generated-ignore
Revision
aba6d04

Why this file is in scope

Pecia execution-custody projection and its snapshot manifest; tool state regenerated from the local timeline.

snapshot.json

Path
.pecia/snapshot.json
Review
generated-ignore
Revision
aba6d04

Why this file is in scope

Pecia execution-custody projection and its snapshot manifest; tool state regenerated from the local timeline.

work.jsonl

Path
.pecia/work.jsonl
Review
generated-ignore
Revision
aba6d04

Why this file is in scope

Pecia execution-custody projection and its snapshot manifest; tool state regenerated from the local timeline.

FUNDING.yml

Path
.github/FUNDING.yml
Review
irrelevant
Revision
b8b566f

Why this file is in scope

Sponsorship metadata does not participate in runtime or survey behavior; retained as a satisfied explicit exclusion. Owner: repository-maintainer.

LICENSE

Path
LICENSE
Review
irrelevant
Revision
b8b566f

Why this file is in scope

License text governs distribution but has no executable survey contract; retained as a satisfied explicit exclusion. Owner: repository-maintainer.

§Concern review

AT-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for AT-1 in B-05.

AT-2

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for AT-2 in B-05.

CC-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for CC-1 in B-05.

CR-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for CR-1 in B-05.

EP-1

Verdict
Accepted behavior
Evidence
Code verified

Rationale

The structural and behavioral read supports confirmed-acceptable for EP-1 in B-05.

EP-2

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for EP-2 in B-05.

IF-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for IF-1 in B-05.

RL-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for RL-1 in B-05.

RL-2

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for RL-2 in B-05.

SC-1

Verdict
Accepted behavior
Evidence
Code verified

Rationale

The structural and behavioral read supports confirmed-acceptable for SC-1 in B-05.

SC-2

Verdict
Accepted behavior
Evidence
Code verified

Rationale

SM-05 integral contract was read from both mapped endpoints and passed at the pinned revision; residuals remain separately visible.

SI-1

Verdict
Accepted behavior
Evidence
Code verified

Rationale

The structural and behavioral read supports confirmed-acceptable for SI-1 in B-05.

SI-2

Verdict
Accepted behavior
Evidence
Code verified

Rationale

The structural and behavioral read supports confirmed-acceptable for SI-2 in B-05.

TB-1

Verdict
Competing explanations
Evidence
Code verified
Linchpin dependency
🔗

Rationale

Code shape makes TB-1 plausible in B-05, but runtime or domain evidence is required before confirmation.

TR-1

Verdict
Out of scope
Evidence
Code verified

Rationale

The structural and behavioral read supports out-of-scope for TR-1 in B-05.

TR-2

Verdict
Accepted behavior
Evidence
Code verified

Rationale

Re-assessed at 5694080; the b8b566f disposition predates the user-scoped installation mode. The installer confines writes through assertSafeRootPath against the scope's own root ($CODEX_HOME for user scope, the workspace for a project pin), rejects --scope user for non-Codex clients, stamps distinct activation-contract markers, and diagnoses unmanaged or shadowing registrations before writing rather than overwriting them. The documented contract in B-01 setup.md matches this implementation exactly, including the explicit statement that superseded skill copies are not archived.

VG-1

Verdict
Confirmed defect
Evidence
Code verified

Rationale

The release gate checks only that roadmap.json and the A26 receipt agree with each other and match field shapes. No assertion resolves the git tag, reads the publish workflow conclusion, or queries the registry, so the publication-status claim has no external denominator and cannot turn red when publication actually occurs. Confirmed at 5694080: the gate passes while asserting not-published for a version npm serves as latest.

§Findings

§B05-1 · High · fixed

Symptom: The roadmap and the A26 receipt both assert v0.2.0-beta.1 is an unpublished candidate, while the package is published on npm holding the latest dist-tag. The publication gate cannot detect the discrepancy because nothing checks the registry or the tag. Root cause: render-roadmap.mjs validates delivery.release only for internal consistency — field shapes, and agreement between roadmap.json and the A26 receipt. It never queries the registry, the git tag, or the publish workflow run. A release that has actually been published therefore satisfies every candidate assertion, including publicationStatus 'not-published', indefinitely.

Business context: Two consequences. First, the published record is wrong in the direction that understates exposure: ROADMAP.md tells a reader the beta is authorized but not published, while npm serves it as latest, so anyone installing @gruetech/amanuensis today receives a build carrying B02-2, B03-1, B03-2, B03-3, and B04-1 — including the projection that tells its own readers the conspectus is fresh. Second, the A26 receipt names published npm registry installation as an unsupported stratum on the grounds that publication was not authorized; every real installation now sits in that declared-unsupported stratum. This is the same defect class as B03-2 — a gate whose denominator is structurally empty — applied to the release contract rather than to staleness.

Primary files:

  • dev/roadmap.json:delivery.release@5694080
  • dev/activation-evidence/a26-release-readiness.json:decision@5694080
  • dev/render-roadmap.mjs:validateEstablishedRelease@5694080

§Seams

seams
SeamShared objectOther party
SM-04packaged agent and reference mirrorsB-01
SM-05packaged Python materializer mirrorB-04
SM-10activation contract (installation scope, skill destination, config markers)B-01

§Survey notes

  • Survey revision: b8b566f
  • Status: adversarial pass complete; packaging pending

§Key types

The installer models changes as PlanAction values, separates plan from applyPlan, and constructs the server entry installed into host MCP configuration (mcp-server/src/cli.ts:PlanAction@b8b566f; mcp-server/src/cli.ts:plan@b8b566f). The roadmap JSON is canonical and render-roadmap.mjs validates and projects ROADMAP.md (dev/render-roadmap.mjs:validateRoadmap@b8b566f).

§State containers

  • Host MCP configuration and backups: persistent external configuration, mutated only by installer apply.
  • dev/roadmap.json and ROADMAP.md: source/projection pair with a CI drift check.
  • Package asset mirrors: generated at prepack from root agents and materializer.
  • CI workflow: the fan-in list for roadmap, MCP, installer, adversarial, performance, inventory, and materializer checks.

Evidence: mcp-server/src/cli.ts:applyPlan@b8b566f; mcp-server/scripts/prepack-bundle-assets.mjs:copyTree@b8b566f; .github/workflows/test.yml:jobs@b8b566f.

§Data flows

  1. Installer parses flags and existing JSON-with-comments, computes a dry-run-capable plan, backs up overwritten configuration, and applies agent/MCP changes.
  2. Prepack copies source assets into package-local generated mirrors before TypeScript compilation.
  3. CI installs pinned dependencies, builds, runs schema/tool/invariant/adversarial tests, verifies generated inventories, and runs Python materializer validation.
  4. Roadmap edits originate in JSON and are regenerated/read back through --check.

§Concurrency model

These are short-lived CLI/CI processes. Installer writes are not designed for concurrent modification of one host config; backups provide recovery. CI jobs are independent and GitHub aggregates job status.

§Seam contracts

  • SM-04 · B-05B-01: prepack must copy the source agent and reference bundle consumed by package users.
  • SM-05 · B-05B-04: prepack must copy the source Python materializer consumed by materialize_docs in installed layouts.

§Concern review

All 16 active concerns have terminal coverage. Installer path/config trust and source/package mirror consistency are applicable and compensated by planning, backup, pack-time generation, installer tests, and published-package smoke tests. The source .mcp.json is VS Code/Claude-shaped and does not configure Codex; the current run registered the server in Codex separately. That is a delivery gap, not silently folded into A0 scope.

§Adversarial review

The pass looked for a second editable source of generated docs/assets and for tests absent from CI. ROADMAP.md is derived and checked; package mirrors are regenerated at prepack and gitignored; tool inventory has a generator plus --check wired in CI (CONTRIBUTING.md:Generated roadmap@b8b566f; CONTRIBUTING.md:Auto-generated tool inventory@b8b566f). Verdict: mirror contracts upheld at the pinned revision. Clean-export A0 execution is added on the implementation branch because local-only success was not previously a dedicated gate.