Geodi, GEODE's official pixel character
Back to the hall

GEODE

Autonomous Agent Harness

From observation to the next action.

A local autonomous-agent harness you can hand research, file work and scheduled tasks.

2026.02.21 — present

Design, judgment, verification: Author · implementation: Claude · review: Codex

  • CLIPublished · PyPI
  • MCP serverImplemented

Implementations review sent back, research figures recomputed

Two cases where review sent an implementation back, and one where research figures were recomputed with the originals kept. Each role is only what that case’s record shows.

Full legend

How to read · one grammar for every case

  • Columns are who acted; top to bottom is time
  • Solid: a recorded handoff or next step
  • Heavy lapis ↩: a finding that sent work back
  • Dashed: not a recorded execution (a written rule, advice without authority, an unverified boundary)
  • Rectangle: an action
  • Rounded: an observed state or finding
  • Folded corner: an artifact or evidence
  • Hatched column: parts of the product under development (not the agents used to build it)

Case 1 / 3 · An implementation that passed the normal path was sent back twice by review, on the error paths

June 13, 2026

An implementation that passed the normal path was sent back twice by review, on the error paths

  1. PersonAuthor

    ActionMissing telemetry · silent fallback to be checked

    • handoffFailures that must be visible→ Typed activity row · fallback marked (Claude Fable 5)
  2. Coding agentClaude Fable 5

    ActionTyped activity row · fallback marked

    • handoff→ commit 64bd223 (Public commits)
    • handoffDiff · failure paths→ BLOCKER: generic fallback stores raw details=data (Codex)
  3. ArtifactsPublic commits

    Artifactcommit 64bd223

  4. Review · verificationCodex

    Observation · findingBLOCKER: generic fallback stores raw details=data

  5. Coding agentClaude Fable 5

    ActionStrip sensitive fields on fallback too

    • handoff→ c808e78 · K4 reproduction check (Public commits)
    • handoffFix re-reviewed→ BLOCKER #2: ValidationError text re-exposes values (Codex)
  6. ArtifactsPublic commits

    Artifactc808e78 · K4 reproduction check

  7. Review · verificationCodex

    Observation · findingBLOCKER #2: ValidationError text re-exposes values

  8. Coding agentClaude Fable 5

    ActionKeep only error type · field path; drop args_preview

    • handoff→ 8dcb386 · K5 reproduction check (Public commits)
  9. ArtifactsPublic commits

    Artifact8dcb386 · K5 reproduction check

    • not a recorded executionScope checked→ Full CI and a final review PASS at the time not re-read (Public commits)
  10. ArtifactsPublic commits

    Rule · unverifiedFull CI and a final review PASS at the time not re-read

Context
The change turned observability events into typed activity rows and stopped fallbacks from being silent. Codex review left two BLOCKERs, and each fix came with a check that reproduces the bypass it found.
Outcome
K4 forces a real fallback with a wrong type and checks that no raw field survives; K5 checks that the error description holds only field names and error types, never input values. These checks reproduce the bypasses review found; they do not copy implementation constants.
Limit
The original MCP review conversation was not opened; the review role is established from the commits and the CHANGELOG written at the time. This case does not guarantee that no GEODE log ever keeps sensitive data.
Sources and remaining limits
  • All three commits credit Claude Fable 5, and c808e78 and 8dcb386 record the Codex BLOCKER and BLOCKER #2 respectively.
  • The current (October 2026) contributor policy is not read back as the instruction for this case.

May 26, 2026

A change that would delete a score was narrowed to a check on where the score may be used

  1. Coding agentImplementation

    Observation · findingNeed: do not use this value as a fitness axis

    • handoffFirst hypothesis→ First draft: drop the value in the baseline writer (Implementation)
  2. Under developmentConsumers in the product

    Observation · findingOn first generation, baseline is the only source of scenario_realism

    • handoffActual consumer traced→ Finding: breaks the initial critic input (Codex)
  3. Coding agentImplementation

    ActionFirst draft: drop the value in the baseline writer

    • handoffChange reviewed→ Finding: breaks the initial critic input (Codex)
  4. Review · verificationCodex

    Observation · findingFinding: breaks the initial critic input

  5. Coding agentImplementation

    ActionWriter change withdrawn · data kept

    • handoffDone criterion moved→ 4 invariants: absent from fitness surfaces only (Public commit · PR)
  6. ArtifactsPublic commit · PR

    Artifact4 invariants: absent from fitness surfaces only

    • handoffFinal diff→ 0792e81 → PR #1690 merged (Public commit · PR)
  7. ArtifactsPublic commit · PR

    Artifact0792e81 → PR #1690 merged

Context
The change was meant to keep scenario_realism from serving as a fitness axis in the external Scaffold Search. When review traced the first reader of the value, the change was made smaller, not larger.
Outcome
The baseline value stays; four checks pin that this dimension is absent from the external search’s AXIS_TIERS, DIM_WEIGHTS and tier lists.
Limit
The session behind the withdrawn writer change was not viewed; it is established from the commit and the test descriptions written at the time. These checks are no evidence of search performance or SIL improvement.
Sources and remaining limits
  • The critic and evolver are data consumers inside the product under development, not the coding agent or the Codex reviewer used to build it.
  • The PR #1690 title still says “filter”; the final diff and commit are the actual change.

September 27, 2026 to September 28, 2026

After a boundary-value fix, the original results were reproduced first, then recomputed

  1. Work sessionAnalysis implementer

    Observation · findingValues exactly on the tolerance boundary rejected

    • handoffAn admission error, not model ability→ Compare as decimals · tolerances unchanged (Analysis implementer)
  2. Work sessionAnalysis implementer

    ActionCompare as decimals · tolerances unchanged

    • handoff→ 4be7a17 · inside / outside boundary checks (Artifacts)
  3. ArtifactsArtifacts

    Artifact4be7a17 · inside / outside boundary checks

  4. PersonAuthor

    ActionDelegated: offline correction of all saved U4 · X2 only

    • handoffPermitted scope→ contract.json: inputs · rules fixed, no model calls (Artifacts)
  5. ArtifactsArtifacts

    Artifactcontract.json: inputs · rules fixed, no model calls

    • handoffFixed conditions→ Reproduce prior results · denominators · CIs first (Analysis implementer)
  6. Work sessionAnalysis implementer

    ActionReproduce prior results · denominators · CIs first

    • handoffAfter reproduction→ Compute the correction separately from the same inputs (Analysis implementer)
  7. Work sessionAnalysis implementer

    ActionCompute the correction separately from the same inputs

    • handoff→ receipt: 24 originals kept · 0 model calls (Artifacts)
    • handoffCell vectors, not summaries→ Recompute winners · CIs from cell vectors · match hashes (Independent verifier)
  8. ArtifactsArtifacts

    Artifactreceipt: 24 originals kept · 0 model calls

  9. Review · verificationIndependent verifier

    ActionRecompute winners · CIs from cell vectors · match hashes

    • handoff→ independent-review: verdicts hold, limits stated (Artifacts)
  10. ArtifactsArtifacts

    Artifactindependent-review: verdicts hold, limits stated

Context
In the Jev research tool, typed numeric answers lying exactly on the tolerance boundary were rejected. After the fix, every saved result was recomputed without new model runs, and the computing and verifying sides were kept apart.
Outcome
The verdicts held after the correction (U4 not-supported, X2 mixed). Fixing a numeric error and supporting a research hypothesis were kept apart.
Limit
A post-hoc correction, not a new model experiment. The 640 Astra listwise cells with no original response keep their saved winner, and the independent review did not re-parse private response bodies either.
Sources and remaining limits
  • The score tolerance of 0.03 and the distribution-sum tolerance of 0.025 were not changed. The corrected figures are U4 58/80 → 59/80 and X2 194/240 → 196/240.
  • The public correction record names no model for the writing or verifying side, and 4be7a17 carries no Claude or Codex credit, so neither column is given a model name.