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
publish.yml
- Path
.github/workflows/publish.yml- Review
- candidate
- Revision
5694080
Why this file is in scope
.gitignore
- Path
.gitignore- Review
- candidate
- Revision
5694080
Why this file is in scope
.tool-versions
- Path
.tool-versions- Review
- candidate
- Revision
5694080
Why this file is in scope
HISTORY.md
- Path
HISTORY.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0001-living-conspectus-terms.md
- Path
dev/adr/0001-living-conspectus-terms.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0002-temporal-claim-model.md
- Path
dev/adr/0002-temporal-claim-model.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0003-predict-before-apply-change-impact.md
- Path
dev/adr/0003-predict-before-apply-change-impact.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0004-obligation-custody-and-reconciliation.md
- Path
dev/adr/0004-obligation-custody-and-reconciliation.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0005-resolution-proof-and-projection-readback.md
- Path
dev/adr/0005-resolution-proof-and-projection-readback.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0006-unattended-refresh-authority-and-recovery.md
- Path
dev/adr/0006-unattended-refresh-authority-and-recovery.md- Review
- candidate
- Revision
5694080
Why this file is in scope
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
0008-independent-review-custody-and-blinding.md
- Path
dev/adr/0008-independent-review-custody-and-blinding.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0009-integral-head-composition-fan-in.md
- Path
dev/adr/0009-integral-head-composition-fan-in.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0010-derived-review-surface-and-semantic-readback.md
- Path
dev/adr/0010-derived-review-surface-and-semantic-readback.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0011-codebase-brief-contract.md
- Path
dev/adr/0011-codebase-brief-contract.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0012-independent-dialectical-design.md
- Path
dev/adr/0012-independent-dialectical-design.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0013-decision-acceptance-and-premise-custody.md
- Path
dev/adr/0013-decision-acceptance-and-premise-custody.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0014-decision-bounded-research-custody.md
- Path
dev/adr/0014-decision-bounded-research-custody.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0015-identity-first-crosswalk-and-qualified-methods.md
- Path
dev/adr/0015-identity-first-crosswalk-and-qualified-methods.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0016-typed-revisable-learning-ledger.md
- Path
dev/adr/0016-typed-revisable-learning-ledger.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0017-stratified-operating-envelope.md
- Path
dev/adr/0017-stratified-operating-envelope.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0018-chorusmith-adapter-parity-boundary.md
- Path
dev/adr/0018-chorusmith-adapter-parity-boundary.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0019-qualified-natural-history-corpus.md
- Path
dev/adr/0019-qualified-natural-history-corpus.md- Review
- candidate
- Revision
5694080
Why this file is in scope
0020-practice-catalog-v2.10-reconciliation.md
- Path
dev/adr/0020-practice-catalog-v2.10-reconciliation.md- Review
- candidate
- Revision
5694080
Why this file is in scope
check-living-conspectus.mjs
- Path
dev/check-living-conspectus.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
README.md
- Path
dev/conspectus/README.md- Review
- candidate
- Revision
5694080
Why this file is in scope
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
baseline-report.json
- Path
dev/conspectus/baseline-report.json- Review
- candidate
- Revision
5694080
Why this file is in scope
detector-registry.json
- Path
dev/conspectus/detector-registry.json- Review
- candidate
- Revision
5694080
Why this file is in scope
self-baseline.json
- Path
dev/conspectus/self-baseline.json- Review
- candidate
- Revision
5694080
Why this file is in scope
pecia-dogfood.md
- Path
dev/pecia-dogfood.md- Review
- candidate
- Revision
5694080
Why this file is in scope
practice-catalog-v2.10.json
- Path
dev/practice-catalog-v2.10.json- Review
- candidate
- Revision
5694080
Why this file is in scope
test-living-conspectus.mjs
- Path
dev/test-living-conspectus.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-pecia-roadmap-red-gates.mjs
- Path
dev/test-pecia-roadmap-red-gates.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-pecia-roadmap.mjs
- Path
dev/test-pecia-roadmap.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
manifest.json
- Path
mcp-server/fixtures/change-impact/manifest.json- Review
- candidate
- Revision
5694080
Why this file is in scope
source-input.json
- Path
mcp-server/fixtures/codebase-brief/source-input.json- Review
- candidate
- Revision
5694080
Why this file is in scope
manifest.json
- Path
mcp-server/fixtures/composition/manifest.json- Review
- candidate
- Revision
5694080
Why this file is in scope
qualification-result.json
- Path
mcp-server/fixtures/crosswalk/qualification-result.json- Review
- candidate
- Revision
5694080
Why this file is in scope
program.json
- Path
mcp-server/fixtures/evaluation/program.json- Review
- candidate
- Revision
5694080
Why this file is in scope
method-qualification.json
- Path
mcp-server/fixtures/learning/method-qualification.json- Review
- candidate
- Revision
5694080
Why this file is in scope
claims.md
- Path
mcp-server/fixtures/research/scholiast/version-semantics/claims.md- Review
- candidate
- Revision
5694080
Why this file is in scope
sources.md
- Path
mcp-server/fixtures/research/scholiast/version-semantics/sources.md- Review
- candidate
- Revision
5694080
Why this file is in scope
manifest.json
- Path
mcp-server/fixtures/revalidation/manifest.json- Review
- candidate
- Revision
5694080
Why this file is in scope
manifest.json
- Path
mcp-server/fixtures/review-analysis/manifest.json- Review
- candidate
- Revision
5694080
Why this file is in scope
semantic-states.json
- Path
mcp-server/fixtures/review-session/semantic-states.json- Review
- candidate
- Revision
5694080
Why this file is in scope
historical-evaluation.mjs
- Path
mcp-server/scripts/historical-evaluation.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-change-impact.mjs
- Path
mcp-server/test-change-impact.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-chorusmith-adapter.mjs
- Path
mcp-server/test-chorusmith-adapter.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-codebase-brief.mjs
- Path
mcp-server/test-codebase-brief.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-composition.mjs
- Path
mcp-server/test-composition.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-crosswalk-qualification.mjs
- Path
mcp-server/test-crosswalk-qualification.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-decisions.mjs
- Path
mcp-server/test-decisions.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-design-session.mjs
- Path
mcp-server/test-design-session.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-historical-evaluation.mjs
- Path
mcp-server/test-historical-evaluation.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-learning-ledger.mjs
- Path
mcp-server/test-learning-ledger.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-mcp-compatibility.mjs
- Path
mcp-server/test-mcp-compatibility.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-package-artifact.mjs
- Path
mcp-server/test-package-artifact.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-projection-custody.mjs
- Path
mcp-server/test-projection-custody.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-refresh-recovery.mjs
- Path
mcp-server/test-refresh-recovery.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-research-broker.mjs
- Path
mcp-server/test-research-broker.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-resolution-proof.mjs
- Path
mcp-server/test-resolution-proof.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-revalidation-scheduler.mjs
- Path
mcp-server/test-revalidation-scheduler.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-review-analysis.mjs
- Path
mcp-server/test-review-analysis.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-review-brief.mjs
- Path
mcp-server/test-review-brief.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-review-session.mjs
- Path
mcp-server/test-review-session.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
test-temporal-claims.mjs
- Path
mcp-server/test-temporal-claims.mjs- Review
- candidate
- Revision
5694080
Why this file is in scope
published-smoke.yml
- Path
.github/workflows/published-smoke.yml- Review
- examined
- Revision
b8b566f
Why this file is in scope
test.yml
- Path
.github/workflows/test.yml- Review
- examined
- Revision
b8b566f
Why this file is in scope
.mcp.json
- Path
.mcp.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
CONTRIBUTING.md
- Path
CONTRIBUTING.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
INSTALLATION.md
- Path
INSTALLATION.md- Review
- examined
- Revision
5694080
Why this file is in scope
README.md
- Path
README.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
ROADMAP.md
- Path
ROADMAP.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
cross-domain-analysis.md
- Path
dev/cross-domain-analysis.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
render-roadmap.mjs
- Path
dev/render-roadmap.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
roadmap.json
- Path
dev/roadmap.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-roadmap.mjs
- Path
dev/test-roadmap.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
.gitignore
- Path
mcp-server/.gitignore- Review
- examined
- Revision
b8b566f
Why this file is in scope
DEVELOPMENT.md
- Path
mcp-server/DEVELOPMENT.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
README.md
- Path
mcp-server/README.md- Review
- examined
- Revision
b8b566f
Why this file is in scope
biome.json
- Path
mcp-server/biome.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
package-lock.json
- Path
mcp-server/package-lock.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
package.json
- Path
mcp-server/package.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
check-evidence-vocabulary.mjs
- Path
mcp-server/scripts/check-evidence-vocabulary.mjs- Review
- examined
- Revision
9c53be1
Why this file is in scope
check-sql-identifiers.mjs
- Path
mcp-server/scripts/check-sql-identifiers.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
check-tool-schemas.mjs
- Path
mcp-server/scripts/check-tool-schemas.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
gen-tool-inventory.mjs
- Path
mcp-server/scripts/gen-tool-inventory.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
prepack-bundle-assets.mjs
- Path
mcp-server/scripts/prepack-bundle-assets.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
cli.ts
- Path
mcp-server/src/cli.ts- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-adversarial-correctness.mjs
- Path
mcp-server/test-adversarial-correctness.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-adversarial-performance.mjs
- Path
mcp-server/test-adversarial-performance.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-adversarial-security.mjs
- Path
mcp-server/test-adversarial-security.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-autoprogress.mjs
- Path
mcp-server/test-autoprogress.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-cloud-e2e.mjs
- Path
mcp-server/test-cloud-e2e.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-cloud-storage.mjs
- Path
mcp-server/test-cloud-storage.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-compare.mjs
- Path
mcp-server/test-compare.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-derived-staleness.mjs
- Path
mcp-server/test-derived-staleness.mjs- Review
- examined
- Revision
9c53be1
test-installer.mjs
- Path
mcp-server/test-installer.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-invariants.mjs
- Path
mcp-server/test-invariants.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-perf-ceilings.mjs
- Path
mcp-server/test-perf-ceilings.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-perf-tier2.mjs
- Path
mcp-server/test-perf-tier2.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-perf.mjs
- Path
mcp-server/test-perf.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-priority.mjs
- Path
mcp-server/test-priority.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-smoke.mjs
- Path
mcp-server/test-smoke.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
test-storage-git.mjs
- Path
mcp-server/test-storage-git.mjs- Review
- examined
- Revision
b8b566f
Why this file is in scope
tsconfig.json
- Path
mcp-server/tsconfig.json- Review
- examined
- Revision
b8b566f
Why this file is in scope
config.yaml
- Path
.pecia/config.yaml- Review
- generated-ignore
- Revision
aba6d04
Why this file is in scope
snapshot.head
- Path
.pecia/snapshot.head- Review
- generated-ignore
- Revision
aba6d04
Why this file is in scope
snapshot.json
- Path
.pecia/snapshot.json- Review
- generated-ignore
- Revision
aba6d04
Why this file is in scope
work.jsonl
- Path
.pecia/work.jsonl- Review
- generated-ignore
- Revision
aba6d04
Why this file is in scope
FUNDING.yml
- Path
.github/FUNDING.yml- Review
- irrelevant
- Revision
b8b566f
Why this file is in scope
LICENSE
- Path
LICENSE- Review
- irrelevant
- Revision
b8b566f
Why this file is in scope
§Concern review
AT-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
AT-2
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
CC-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
CR-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
EP-1
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
EP-2
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
IF-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
RL-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
RL-2
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
SC-1
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
SC-2
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
SI-1
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
SI-2
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
TB-1
- Verdict
- Competing explanations
- Evidence
- Code verified
- Linchpin dependency
- 🔗
Rationale
TR-1
- Verdict
- Out of scope
- Evidence
- Code verified
Rationale
TR-2
- Verdict
- Accepted behavior
- Evidence
- Code verified
Rationale
VG-1
- Verdict
- Confirmed defect
- Evidence
- Code verified
Rationale
§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@5694080dev/activation-evidence/a26-release-readiness.json:decision@5694080dev/render-roadmap.mjs:validateEstablishedRelease@5694080
§Seams
§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.jsonandROADMAP.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
- Installer parses flags and existing JSON-with-comments, computes a dry-run-capable plan, backs up overwritten configuration, and applies agent/MCP changes.
- Prepack copies source assets into package-local generated mirrors before TypeScript compilation.
- CI installs pinned dependencies, builds, runs schema/tool/invariant/adversarial tests, verifies generated inventories, and runs Python materializer validation.
- 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
§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.