Delphi Oracle · Release v1.0.0 · completed foundation

Evidence over claims.

The Delphi Oracle is a deterministic evidence-gate oracle: it judges a proposed consequential action against an evidence set and returns ALLOW_RECOMMENDATION, ABSTAIN, or ESCALATE — with a versioned receipt for every decision. It fails closed: no material evidence → ABSTAIN; consequential action classes → ESCALATE before evidence is ever weighed.

The one new tool: fetch_evidence

The starting oracle could only judge evidence it was handed — and handed evidence is usually just someone's claim about the world. fetch_evidence removes that limit: the agent stops grading asserted evidence and starts grading fetched evidence.

🔎

Read-only retrieval

Given a decision request naming an artifact — a pull request, a file, a workflow run — the tool retrieves the artifact's current state, read-only, and assembles a material evidence set.

🧾

Provenance on every item

Every item carries its source, the exact API path it came from, and the time it was observed — so the judged set can be traced back to where it was fetched.

⏳

Freshness + content hash

Each item carries a fresh_until stamp (assembly + 15 min) and a content hash — so the judged set is provably the set that was fetched.

STEP 1

Judge the claim

Asked on asserted evidence only, the oracle abstains — claims aren't evidence.

STEP 2

Fetch the proof

fetch_evidence retrieves the artifact's real state and assembles the stamped evidence set.

STEP 3

Judge again, with a receipt

The same question is judged on the fetched set, and the decision ships with its versioned receipt.

The receipts

Completion-verified 2026-10-30, from the captured real run in evidence/demo-run.json — the demo's evidence is real: PR #1620's actual state and check runs, fetched at run time.

ScenarioDecisionEvidence calls
A merge-readiness question, asserted evidence onlyABSTAIN0 calls
The same question, PR #1620 fetched by the toolALLOW_RECOMMENDATION2 calls · 103 items
A credential-mutation request, with fetched material evidenceESCALATE1 call · 3 items — the class rule runs before evidence is weighed
pytest 5/5 — offline test suite passes Lambda smoke 200 · ABSTAIN — handler runs locally Pinned — delphi-oracle @ 393e1f4b · Release v1.0.0

Run it yourself — no credentials needed (public repo reads):

Demo
cd apps/weekend-challenge-delphi-oracle && python3 demo.py
Tests
python3 -m pytest tests/
Lambda smoke
python3 lambda_handler.py (in the app directory)

What's in the package

FileRole
agent.pyThe entry agent: the Delphi Oracle as starting agent + the tool loop, emitting a receipt per decision
fetch_evidence.pyThe one new tool — read-only artifact retrieval → provenance/freshness-stamped evidence sets
lambda_handler.pyAWS Lambda packaging (the Strands Decider pattern's deployable unit); runs locally unchanged
demo.pyScripted 3-scenario walkthrough (<3 min); writes evidence/demo-run.json
ENTRY.mdThe entry text as it would have been submitted
scripts/delphi/strands_oracle_mvp.pyThe deterministic oracle kernel the package loads
tests/The offline test suite (5 tests)

The foundation StudySprint stands on

Delphi Oracle is the prerequisite the fleet's D1 entry consumes: fetch_evidence and the oracle kernel are vendored into StudySprint's foundation/ with identical blobs, and StudySprint extends the pattern with study evidence of its own. Evidence visible, one tap away — that rule started here.

Claims Aren't Evidence

The write-up, as published by the marketing lane.

Ask an agent whether a pull request is safe to merge and it will happily tell you — based on whatever someone told it about the pull request. The summary said the tests pass. The summary said the checks are green. Agents are very good at grading homework they never actually saw.

The Delphi Oracle exists to be the killjoy in that room.

A gate, not a vibe

The Oracle is a deterministic evidence gate. You bring it a proposed action and an evidence set; it returns exactly one of three verdicts, each with a versioned receipt:

It fails closed. "No evidence" isn't a soft probably-fine — it's an abstention. And the receipt means every verdict is auditable after the fact: what was judged, on what evidence, under which version of the rules.

The one tool: fetch_evidence

The Oracle's original limit was that it could only judge evidence it was handed — and handed evidence is usually just someone's claim about the world, with better formatting.

So this build adds exactly one tool. fetch_evidence takes a named artifact — a pull request, a file, a workflow run — and retrieves it read-only. What comes back isn't a summary. It's an evidence set where every item carries:

The loop writes itself: judge on asserted evidence → ABSTAIN, because claims aren't evidence → call the tool → judge again on the fetched set. The agent stops grading asserted evidence and starts grading fetched evidence.

The demo, in three beats

This runs live, against a real repository — demo.py, with the full run captured in evidence/demo-run.json.

Beat one. A merge-readiness question arrives with asserted evidence only: somebody's say-so. Verdict: ABSTAIN. Tool calls made: zero. The Oracle doesn't fetch on a hunch; it refuses first.

Beat two. The same question, now naming PR #1620. The tool fetches the pull request's real state and its check runs — two calls, 103 evidence items, each one stamped and hashed. Verdict: ALLOW_RECOMMENDATION, receipt attached.

Beat three. A credential-mutation action comes in. Verdict: ESCALATE — before evidence is weighed at all. Some doors don't open on evidence alone.

The test suite passes 5/5, a Lambda smoke test confirms the handler abstains correctly, and the whole thing is packaged as an AWS Lambda handler behind a Strands agent; the handler runs locally, unchanged.

Why a gate is a foundation

This isn't a standalone toy. The Oracle is the evidence gate StudySprint — the fleet's study-planning build — runs on: fetch_evidence and the oracle kernel are vendored into StudySprint's foundation with identical blobs, a prerequisite for everything StudySprint builds on top. The same Decider pattern backs the fleet's other Decider-gated agents.

That's the point of building the boring part first. Any agent can be confident. Fewer can show their working — and refuse to act when the working isn't there. Receipts over claims, every time.

Built for AWS Weekend Challenge "Give your Agent a Tool" (Oct 23–26, closed); completed post-window as a completion record — submissions 0, ¬ a submission.

Repo — the package also lives in the monorepo at apps/weekend-challenge-delphi-oracle/ Fleet landing StudySprint Downstream in action — StudySprint demo

The Upgrade: A Package Becomes a Release

The Delphi Oracle started as a folder inside a monorepo — a finished entry package for a challenge window that had already closed. Version 1.0.0 is what it became next: a standalone public repository, a tagged release, and a foundation other work builds on.

What v1.0.0 ships: the oracle kernel (strands_oracle_mvp, vendored verbatim), the agent with its tool loop, the one new tool — fetch_evidence, read-only retrieval that returns provenance- and freshness-stamped evidence sets — the Lambda packaging unit, the entry text, an offline test suite (5 tests), and the captured run evidence. Nothing in the release is a rewrite; every file is byte-identical to the verified package, and the whole tree is pinned at commit 393e1f4b.

Why the receipts matter: most agent demos ask you to trust the narration. This one publishes its evidence. On a fresh clone, independent verification reproduced the demo's three verdicts exactly — asserted claim, no evidence: ABSTAIN, zero calls. PR #1620 fetched: ALLOW_RECOMMENDATION, 2 calls, 103 evidence items. Credential-mutation request: ESCALATE, the class rule ahead of the evidence. The test suite passes 5/5 and the Lambda handler, run locally, abstains on the smoke request exactly as its receipt says. Claims you can re-run beat claims you have to believe — that is the product, and it is also the standard the release is held to.

The foundation is already load-bearing: D1's StudySprint vendors fetch_evidence and the kernel into its own foundation/ — identical blobs — and builds its study-evidence gate on top.

The honest lines ship in the release notes themselves: submissions = 0 — this has not been submitted anywhere; no live-AWS, win, or model-ballot claims. The handler is packaged as a Lambda unit and runs locally; the kernel is a deterministic baseline, not a model panel. A completion record, held to its own rule: evidence over claims.

Release v1.0.0 — delphi-oracle @ 393e1f4b Kernel — strands_oracle_mvp

The honest record

This package is the completion record for the AWS Builder Center Weekend Challenge “Give your Agent a Tool” (Oct 23–26, 2026). The window closed with no submission; the entry was completed anyway by owner ruling (2026-10-27) because the fleet entered it. A post-window completion is not a submission, and nothing here claims one.

Submissions: 0 — no submitted / win / prize claims No live AWS deployment — no AWS account exists; the Lambda handler is packaged and runs locally, and no Bedrock invocation is claimed Deterministic MVP kernel — no model or provider ballots are represented anywhere in the receipts