feat(lab): mike_markdown_e2e_treatment_v1 - requirements echo + citation contract
Two independent, individually-flagged mechanisms on the e2e chassis:
- MIKE_REQUIREMENTS_ECHO=1: fetch_requirements tool re-serves the task's
own user message VERBATIM (harness-authored, never model paraphrase)
plus a read/unread document split from the turn read-state; one prompt
line instructs one echo before drafting; authoring backstop refuses
generate_docx/library_create_docx with a typed error until the echo has
served (before createLocalDocument, so no bytes, no mutation receipt,
no terminal-authoring exit). Outcome receipt benchmark_requirements_echo
{echo_call_count, documents_unread_at_echo} emitted post-turn.
- MIKE_CITATION_CONTRACT=1: prompt-only GROUNDING block; self-limiting
(drafted-instrument deliverables exempt from citation markers).
Composition order lives in ONE helper (withLabTreatmentPromptAdditions)
called by both chat.ts and the lab-beaver-arm reproducer, so the
prompt-sha gate holds by construction. Treatment arm env = e2e env +
the two flags; completeness floor deliberately OFF (echo supersedes it;
revival = ablation arm if the echo underperforms).
Own conformance block (family-strictness + echo/citation true +
echo_call_count>=1 hard failure); three delta tags at all receipt sites;
singleInvocationArms + deliverable matrix membership.
Probes: surface 16/16 (both-off byte-identical to e2e base; fixed
echo->GROUNDING order; no benchmark/rubric terms), behavior 22/22
(pre-echo refusal, byte-identical re-serve, real read/unread split,
post-echo authoring, flag-off catalog unchanged), gate probe passes
under the arm's exact merged env, zero-drift sweep across all 15
existing arms, tsc --noEmit clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011pfUVhNFTRvhYGXBwoKNj6
| Repository | eliziff/Beaver |
|---|---|
| Author | Eli Ziff <eliasziff@gmail.com> |
| Authored | |
| Parents | 75e7e671 |
| Stats | 4 files changed , +422 , -3 |
| Part of | Evaluation harness: Beaver-CAN and LegalBench-RAG adapters |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-40ec14de.md
from inside the repo you want the change in.