Repository object · documentation

EM-0037 — Human-readable cases and agent research kit

Polish the human projection of Cases 002–004 without changing accepted evidence meaning, and make the same bounded research method recoverable by a cold-start coding agent through static files, local REST, read-only MCP, and CLI.

Source path
docs/execution-plans/EM-0037.md
Media type
text/markdown
Object ID
em:documentation:sha256:ed8994f47f1274d52821fffac9e350fa2ffb5b6763defac24429b34922c55308
Content digest
c7232509e7c45e274e59189db2d7eb12a5298c6d5751ffdaa8b63307ef796de9

Source content

EM-0037 — Human-readable cases and agent research kit

Objective

Polish the human projection of Cases 002–004 without changing accepted evidence meaning, and make

the same bounded research method recoverable by a cold-start coding agent through static files,

local REST, read-only MCP, and CLI.

Implementation

1. Add projection-only editorial framing for false independence, missing comparison class, and

scope inflation: familiar claim, why it matters, finding, practical reading, and a three-step

evidence map before technical ledgers.

2. Normalize every Case 002 human ledger member to a typed identity, show count-card ledgers first,

and place additional audit groups behind one native disclosure.

3. Collapse repeated human-display source spans by exact accepted span ID and digest while

retaining all occurrences and relations in JSON, Markdown, calculations, and machine ledgers.

4. Publish one public research protocol, per-case briefs, a draft proposal template, fail-closed

validation, local CLI commands, and read-only MCP/REST discovery.

5. State the queue boundary precisely: EM-0037 does not submit or store bundles; EM-0038 separately

governs a future authenticated coordination queue with zero automatic evidential credit.

Preservation boundary

All accepted dossier, review-receipt, and selection-manifest inputs remain byte-identical. Case 001

is unchanged except for shared discovery of its research brief. No accepted count, evaluation,

relation, uncertainty, license, calculation, or review conclusion changes.

Validation

  • Recompute every case count from accepted typed members and reject missing human ledger identity.
  • Prove repeated-span collapse affects HTML display only.
  • Exercise cold-start static/REST/MCP/CLI parity and draft/ready validation behavior.
  • Reject traversal, local/private URLs, secret-shaped data, oversized bundles, unsupported fields,
  • duplicate identities, missing source/span closure, and admission-like top-level status.

  • Run Ruff, focused tests, full deterministic make check, desktop/mobile no-JavaScript browser QA,
  • and fresh-clone exact-head independent review before protected merge.

Deployment boundary

This task does not deploy Pages or a hosted API/MCP, activate credentials, accept a proposal, or

implement the EM-0038 queue. Live-route and provider read-back require a separately authorized

accepted deployment.

Author validation

  • Focused Case 001–004, interface, and agent-kit suite: 84 tests passed.
  • New research-kit suite: 27 tests passed, including adversarial bundles and static/REST/MCP/CLI
  • parity.

  • Full make check PYTHON=.venv/bin/python: 134 tests passed; public audit clean; independent
  • deterministic rebuild identical; tracked source state unchanged.

  • Browser QA at 1280×720 and 390×844: one H1, zero scripts, no horizontal page overflow, compact
  • case hierarchy, collapsed technical disclosures, and visible 3px focus outline. Mouse/click

    activation of native disclosures passed. The browser driver focused a native summary but did not

    dispatch Enter, so keystroke activation remains an explicit post-merge/live-readback item rather

    than an inferred pass.

Build receipt

Reproduce this projection

Reproducible projection
Catalog
em:catalog:sha256:9bfc972213cba2cde167386103dc2c011ee74639fb7f0794c54120fbbdef1a5d
Frontier
em:frontier:sha256:f33be3eae4c75232d56750ef9a1aa79d96274ece3417d65a75c1391bf61a81bf
Accepted commit
f92846570180dfa4511263f8ba98ecd18f7772c9
Epistemic policy
commons-balanced-v0.1
Disclosure policy
public-noninterference-v0.1
Compiler
epistemedia/0.2.0