Skip to content

feat!: ship-check Gate 5 re-executes via the oracle; remove self-grantable override#21

Merged
anombyte93 merged 5 commits into
mainfrom
feat/atlas-coin-oracle-gate-cutover
Jun 17, 2026
Merged

feat!: ship-check Gate 5 re-executes via the oracle; remove self-grantable override#21
anombyte93 merged 5 commits into
mainfrom
feat/atlas-coin-oracle-gate-cutover

Conversation

@anombyte93

Copy link
Copy Markdown
Owner

ship-check Gate 5 → unfakable oracle; remove self-grantable override

⚠️ Breaking: replaces the fakable Gate 5 and deletes the self-grantable SHIP_CHECK_OVERRIDE_ADMIN override.

Background (the hole this closes)

skel/ship-check.py Gate 5 previously grepped the submitter's own .atlas-ai/evidence/ files for Exit status N, silently passed when that dir was absent, and had a self-grantable static override token. It never re-executed anything — an agent passed the "hard gate" by simply not writing a failing log.

Changes

  • skel/ship-check.py (standalone, stdlib-only): gate_exit_codesgate_oracle, which shells atlas oracle grade per done task and is fail-closed (missing card / no grading block / CLI crash / unparseable output / non-PASS all block; only a real oracle PASS ships). OVERRIDE_TOKEN / --override / log_override deleted. Gates 1–4 unchanged.
  • prd_taskmaster/oracle_bridge.py (new): in-process CDD-card → atlas oracle grade bridge, fail-closed (the binding gate is the inline gate_oracle; this is the in-process path).
  • prd_taskmaster/shipcheck.py + render.py: removed the override from the importable (display-only) module and the [OVERRIDE] status panel — so the override exists nowhere.
  • Dogfood (tests/core/test_oracle_dogfood.py): real cross-repo e2e — genuine pass ships, reward-hack blocked, ledger verifies. Portable: reads ATLAS_ORACLE_CMD from the environment, skips when unset.

Integration

The gate shells the atlas oracle CLI from the atlas-protocol spine (companion PR). Point ATLAS_ORACLE_CMD at the built CLI; default is atlas on PATH.

Tests

python3 -m pytest -q349 passing (incl. the 3 real-podman dogfood tests when ATLAS_ORACLE_CMD is set; they skip cleanly otherwise).

Note

The spine's gradeSubmission does not yet re-verify card.contentHash against the card body; cards are operator-authored today, so this is fine for now — must land before cards are submitter/network-sourced.

🤖 Generated with Claude Code

claude and others added 5 commits June 16, 2026 17:03
…osed)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…grantable override

Gate 5 was a FAKABLE deterministic grep over .atlas-ai/evidence/ that SILENTLY
PASSED when no evidence existed, and was bypassable via the self-grantable
--override SHIP_CHECK_OVERRIDE_ADMIN token. Both are removed.

skel/ship-check.py (standalone, stdlib-only — shells `atlas oracle grade`):
- Delete OVERRIDE_TOKEN, log_override, --override arg, override_active, and the
  [OVERRIDE] suffix. run_all_gates loses the override_active param.
- Replace gate_exit_codes with gate_oracle(repo_root, tasks, head_commit): for
  every DONE task, re-grade its CDD card via the oracle CLI. FAIL-CLOSED on a
  missing card, a card with no grading block, a CLI crash, unparseable output,
  or any verdict != "PASS". Add _head_commit() (git rev-parse HEAD; fail-closed
  to "UNKNOWN").
- Gates 1-4 and --dry-run/--cwd unchanged. Stdout contract unchanged: exactly
  "SHIP_CHECK_OK" on success, nothing on failure.

tests/core/test_ship_check_oracle.py (new): oracle PASS ships; oracle FAIL
blocks; non-JSON fail-closed; missing-card fail-closed; override token removed;
Gates 1-4 regression.

tests/core/test_ship_check.py (updated to new contract): green-tree CDD cards
carry a grading block + a fake ATLAS_ORACLE_CMD; the old Gate-5 grep + override
test replaced with an oracle-FAIL-blocks + override-is-gone test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ps, reward-hack blocked)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
….py + render panel

OVERRIDE_TOKEN, log_override, override_active param, override kwarg, and
[OVERRIDE] suffix rendering are all gone. shipcheck.py is now a non-binding
display heuristic only; skel/ship-check.py (oracle-backed) is the binding gate.
@anombyte93 anombyte93 merged commit dece4ce into main Jun 17, 2026
6 of 7 checks passed
@anombyte93 anombyte93 deleted the feat/atlas-coin-oracle-gate-cutover branch June 17, 2026 07:06
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.

2 participants