Close remaining ward-eval gaps after infrastructure#534 #535
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#535
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
infrastructure#534landed atd5596ac, but the committed evaluator still cannot prove the fullinfrastructure#520chain. It is better than the previous echo-only harness, but it can still pass without several required #520 facts.Evidence from current
mainafter #534:scripts/ward-eval-executable.shstill writes"ward_outcome": "WARD-OUTCOME: done"intoevidence.jsonand printsWARD-OUTCOME: doneitself. The verifier checks Forgejo issue closure separately, but the Ward outcome evidence is still generated by the Job script rather than collected from the dispatched engineer issue thread or Ward audit.scripts/ward_eval.pyisward-eval-timestamp.txt, while #520 requires the engineer to create onlyruns/<run-id>.txt.goose bootstrap,ward install --cold,goose director <issue-url>, andward dispatch ci <issue-ref>. It does not use the required issue-scoped director invocation:collect_forgejo_evidenceinspects the latest default-branch commit, but does not prove the commit happened after the evaluation issue was created.runs/<run-id>.txt.ward dispatch ciandWARD-OUTCOME: donein the entrypoint, which lets the hard-coded outcome path stay green.This means
ward exec ward-evalcould still report a PASS with evidence that falls short of the #520 independent-verifier requirements.Do
runs/<run-id>.txt, notward-eval-timestamp.txt.--harness goose,--engineer-harness goose,--max-parallel 1,--no-triage, and--poll-interval 5s.runs/<run-id>.txtand the file contains exactly one RFC3339 UTC timestamp plus a newline.WARD-OUTCOME: done,ward dispatch ci, wrong timestamp path, wrong touched files, stale commit, or Claude/Codex evidence all fail.Acceptance
"ward_outcome": "WARD-OUTCOME: done"or an entrypoint echo that fabricates the engineer outcome.DEFAULT_TIMESTAMP_PATHand generated evaluation issue instructions useruns/<run-id>.txt.warded directorshape and rejects the oldward dispatch cishortcut in tests.runs/<run-id>.txt, lacks Goose attribution, contains Claude/Codex invocation evidence, or supplies a fabricated Ward outcome.ward-eval:<run-id>issue incoilysiren/inboxand applies a disposable k3s Job.infrastructure#520completion until a real run has produced independent verifier PASS.Related: coilyco-flight-deck/infrastructure#520 and coilyco-flight-deck/infrastructure#534.
WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-infrastructure-535on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T10:25:30Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h TTL).--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/infrastructure#535· branchissue-535· harnesscodex· workflowdirect-mainengineer-codex-infrastructure-535· wardv0.573.0· dispatched2026-07-10T10:25:30ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.573.0).
— Codex, via
ward agentWARD-OUTCOME: done
details
workflow: direct-to-main; review summary: skipped by ~/.ward/config.yaml default
felt: tighter than the previous harness. the outcome now comes from real logs and issue evidence
confidence: high
surprises: none
follow-ups: none