Skip to content

fix(overseer): machine-checkable done-gate for the agent-kgpacks-rs full-parity goal - #4333

Open
rysweet wants to merge 1 commit into
mainfrom
fix/kgpacks-rs-parity-machine-checkable-done-gate
Open

fix(overseer): machine-checkable done-gate for the agent-kgpacks-rs full-parity goal#4333
rysweet wants to merge 1 commit into
mainfrom
fix/kgpacks-rs-parity-machine-checkable-done-gate

Conversation

@rysweet

@rysweet rysweet commented Jul 18, 2026

Copy link
Copy Markdown
Owner

What & why

The long-running goal advance agent-kgpacks-rs to full parity
(advance-rysweet-agent-kgpacks-rs-to-full-parity-f29bb15c) kept getting
re-parked by the Overseer's no-progress safeguard: it had no tracked PR/issue
the completion check could observe
, so its finish line was unmeasurable and
Simard re-investigated it every cycle without ever certifying it done.

This binds the goal to a single, machine-checkable finish condition —
tracking issue #4321 CLOSED
— mirroring the pattern already used for the sibling local-COIN-benchmark goal
(scripts/check-coin-benchmark-harness-done-gate.sh).

The gate

scripts/check-agent-kgpacks-rs-parity-done-gate.sh:

Validation

  • shellcheck clean, bash -n clean
  • pre-commit + pre-push gates green (fmt, clippy --all-targets --all-features --locked, race-subset tests)
  • Additive: a new script only; no Rust/behaviour change.

Relates to the recurring UNCLEAR-CRITERIA no-progress park on this goal and to
done-gate issue #4321.

…ull-parity goal

The long-running goal 'advance agent-kgpacks-rs to full parity' had no tracked
PR/issue the completion check could observe, so the no-progress safeguard could
never certify it as finished and kept re-parking it every cycle (an unmeasurable
done-gate).

Bind the goal to a single, machine-checkable finish line: tracking issue #4321
CLOSED. The new gate script derives its verdict from the observable state of
that issue (the same signal Simard's completion check certifies on) and
corroborates with the two spec acceptance suites (cargo test --lib
native_knowledge and knowledge_client) named by the issue's close criteria.

Truthful, no silent fallback: exit 0 only when #4321 is CLOSED and the suites
are green; exit 1 with the named failing reason otherwise; exit 2 when the
issue state cannot be observed (offline) rather than guessing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
rysweet added a commit that referenced this pull request Jul 18, 2026
…4189)

The OODA/overseer done-gate opened a fresh done-gate PR every cycle for a
goal whose engineer had exited leaving an open, unmerged PR — flooding the
repo (3x coin-benchmark #4326/#4329/#4332, 4x kgpacks-parity
#4324/#4328/#4330/#4333). Dispatch lacked any dedup keyed on durable goal
identity.

Make goal->engineer done-gate emission idempotent on stable goal identity:

- Durable primary guard: new `goal_pr_emissions` ledger (schema v1->v2,
  forward-only, additive) with `record_goal_pr_emission` upsert
  (ON CONFLICT(goal_key) DO UPDATE) and an indexed `find_open_goal_pr_emission`
  open-lookup. UNIQUE(repo, pr_number) turns a second goal claiming the same
  PR into a visible conflict, not a silent duplicate. Rows are never deleted —
  a completed PR transitions `state`, so an emission outlives its engineer.
- Advisory secondary seam: pure, total, no-panic dedup bricks
  (`goal_dedup_key`, `parse_goal_key_trailer`, `find_open_pr_for_goal`) plus a
  `GoalPrRef` DTO and a `PrGhClient::list_open_goal_prs` default so `gh`
  open-PR reconciliation can adopt a pre-existing PR by the `Simard-Goal-Key:`
  body trailer (primary) or `engineer/{key}-` branch convention (fallback).
  The goal key is a one-way, boundary-safe sha256 of goal identity, never the
  goal title, so distinct goals are unaffected.

Additive and non-breaking (default `list_open_goal_prs` returns empty; existing
fakes compile unchanged); structured tracing + OTel only, no stray print!, no
Bridge naming. Regression coverage: 6 ledger contract tests, 27 dedup unit
tests, and a 3-case integration test proving same-goal cycles emit exactly one
PR while distinct goals each dispatch. Docs: concept, how-to runbook, and
ledger API reference, all linked from the index and mkdocs nav.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant