feat(person): make evidence acquisition an active shared obligation (#248) #249

Merged
coilysiren merged 2 commits from meld/248-evidence-acquisition into main 2026-08-08 16:22:33 +00:00
Member

Closes #248.

Role doctrine ranked the evidence a role already held and never told it to go get the decisive source. The 2026-08-07 strats session produced four instances of one failure: an artifact describing a thing accepted in place of the thing.

Diagnosis resolves to both causes named in the issue. The existing front-load rule triggers on "before the first edit", which a role writing an assessment never reaches, and it gives no test for whether enough was read. The meld body answers both. The trigger is any consequential claim rather than any edit, and delivery is gated on a checkable stopping condition: every consequential claim either names the source you opened or is marked as inference with the observation that would settle it.

meld-evidence binds engineer, exec, and ops, the roles whose diligence must reach past the context handed to them. A meld every role declares would be an AGENTS.md rule, and agent-compose does not own those. Each exclusion has its own reason:

  • qa - treats the presented context as ground truth by design, so acquisition would undercut the verifier's frame.
  • design - works from a preloaded personal style that acquisition would normalize away.
  • creator - acquisition in its domain means crawling human content on the internet.
  • director - assigns evidence gathering to the execution roles rather than performing it.
  • ai - already carries a stronger measured-evidence rule with its own stopping condition.

The body spends 357 words against its own 400-word ceiling and charges no role budget. It carries the acquisition trigger, thing-over-description, gap-as-task, the stopping condition, the one-modality rule, and the bounds: scoped to a pending claim, cost scaling with stakes, no new authority, and sending, publishing, and destructive actions still gated.

Strats residue. role-exec keeps the one sentence the shared body does not carry, that a portfolio claim rests on measured audience, reach, cost, and effort rather than assumed values. Its Prefer primary evidence clause moved to the meld. Exec grows 223 to 244 words by the loader's own counter. Every role body stays under 400 and no role budget regresses.

Evaluation. New evidence-acquisition scenario kind with a scored, non-hard-fail criterion and a coverage gate. Coverage derives from the roster: the scenario is required from exactly the roles that declare the meld and rejected from the roles that do not, so there is no second list of which roles owe the case.

Bound worth recording. stage_session hands the driver an empty cwd, so a case prompt is the only context a session receives. These cases score whether the response treats opening the authoritative source as required work, not whether a file was read. Staging real artifacts for the driver to open is a distinct methodology change and belongs with #240.

Evaluation records are not re-earned here, by request. TestLatestScoredResultsMatchCurrentPacks already failed for all eight packs on main at e5c3b939 for the #231 digest reason, verified against a clean clone before this change. This branch moves exactly three of those digests. The director, qa, design, creator, and ai packs are byte-identical to main, so #240 re-earns them once for #231 rather than twice.

Green: go build ./..., go vet ./..., the full go test ./... outside that gate, and pre-commit run --all-files. docs/FEATURES.md is unchanged, since one meld and a new scenario kind reshape no public boundary the inventory names.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

🤖 Generated with Claude Code

Closes #248. Role doctrine ranked the evidence a role already held and never told it to go get the decisive source. The 2026-08-07 strats session produced four instances of one failure: an artifact describing a thing accepted in place of the thing. **Diagnosis resolves to both causes named in the issue.** The existing front-load rule triggers on "before the first edit", which a role writing an assessment never reaches, and it gives no test for whether enough was read. The meld body answers both. The trigger is any consequential claim rather than any edit, and delivery is gated on a checkable stopping condition: every consequential claim either names the source you opened or is marked as inference with the observation that would settle it. **`meld-evidence` binds engineer, exec, and ops**, the roles whose diligence must reach past the context handed to them. A meld every role declares would be an AGENTS.md rule, and agent-compose does not own those. Each exclusion has its own reason: * qa - treats the presented context as ground truth by design, so acquisition would undercut the verifier's frame. * design - works from a preloaded personal style that acquisition would normalize away. * creator - acquisition in its domain means crawling human content on the internet. * director - assigns evidence gathering to the execution roles rather than performing it. * ai - already carries a stronger measured-evidence rule with its own stopping condition. The body spends 357 words against its own 400-word ceiling and charges no role budget. It carries the acquisition trigger, thing-over-description, gap-as-task, the stopping condition, the one-modality rule, and the bounds: scoped to a pending claim, cost scaling with stakes, no new authority, and sending, publishing, and destructive actions still gated. **Strats residue.** `role-exec` keeps the one sentence the shared body does not carry, that a portfolio claim rests on measured audience, reach, cost, and effort rather than assumed values. Its `Prefer primary evidence` clause moved to the meld. Exec grows 223 to 244 words by the loader's own counter. Every role body stays under 400 and no role budget regresses. **Evaluation.** New `evidence-acquisition` scenario kind with a scored, non-hard-fail criterion and a coverage gate. Coverage derives from the roster: the scenario is required from exactly the roles that declare the meld and rejected from the roles that do not, so there is no second list of which roles owe the case. **Bound worth recording.** `stage_session` hands the driver an empty cwd, so a case prompt is the only context a session receives. These cases score whether the response treats opening the authoritative source as required work, not whether a file was read. Staging real artifacts for the driver to open is a distinct methodology change and belongs with #240. **Evaluation records are not re-earned here, by request.** `TestLatestScoredResultsMatchCurrentPacks` already failed for all eight packs on `main` at `e5c3b939` for the #231 digest reason, verified against a clean clone before this change. This branch moves exactly three of those digests. The director, qa, design, creator, and ai packs are byte-identical to main, so #240 re-earns them once for #231 rather than twice. Green: `go build ./...`, `go vet ./...`, the full `go test ./...` outside that gate, and `pre-commit run --all-files`. `docs/FEATURES.md` is unchanged, since one meld and a new scenario kind reshape no public boundary the inventory names. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Role doctrine ranked the evidence a role already held and never told it to
go get the decisive source. The 2026-08-07 strats session produced four
instances of the same failure, where an artifact describing a thing was
accepted in place of the thing.

The diagnosis resolves to both causes named in the issue. The existing
front-load rule triggers on "before the first edit", which a role writing
an assessment never reaches, and it offers no test for whether enough was
read. The meld body fixes both: the trigger is any consequential claim
rather than an edit, and delivery is gated on a checkable stopping
condition that every claim either names an opened source or is marked as
inference.

meld-evidence binds all eight roles. The failure is not strats-specific,
and creator is not an exception, because its charter already rests on
audience evidence it must go and measure. The body spends 357 words of its
own 400-word ceiling and charges no role budget. Exec keeps the one
residue the shared body does not carry, that portfolio claims rest on
measured rather than assumed numbers, and grows 223 to 244 words.

Evaluation gains an evidence-acquisition scenario kind, one scenario per
role adapted from the real instances, and a scored non-hard-fail criterion.
A partially grounded claim is a quality deduction, not an authority breach.
Case prompts remain the only context a driver session receives, so these
cases score whether the response treats opening the source as required
work. Staging real artifacts for a driver to open is a separate
methodology change and stays with #240.

The recorded results in evaluations/latest were already retired by the
#231 meld change and stay retired. This change moves every pack digest
again. Re-earning them is #240's work and no evaluation was run here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
A meld every role declares is an AGENTS.md rule, and agent-compose does not
own those. The universal binding also ignored that acquisition means
different things per role, and corrupts the designated source for some.

The meld now binds engineer, exec, and ops, the roles whose diligence must
reach past the context handed to them. Excluded, each for its own reason:
QA treats the presented context as ground truth, Designer works from a
preloaded style that acquisition would normalize away, Content Creator
would be pulled toward crawling human content, Director assigns evidence
gathering rather than performing it, and AI Engineer already carries a
measured-evidence rule with its own stopping condition.

Evaluation coverage now derives from the roster rather than a second list.
An evidence-acquisition scenario is required from exactly the roles that
declare the meld, and rejected from the roles that do not.

This narrows the digest blast radius. Only engineer, exec, and ops packs
move. The director, qa, design, creator, and ai digests are byte-identical
to main, so #240 re-earns them once for #231 rather than twice.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agent-compose!249
No description provided.