GEODE GEO scaffold
Use this scaffold for repository work on /geo, generative discovery, AI-search
visibility, citations, or the GEO benchmark.
- Read
.geode/skills/geo/SKILL.md for the runtime behavior contract.
- Read
docs/eval/geo-visibility.md before defining a metric or run. Freeze a
prospective run spec before any score-bearing commercial-engine call.
- Read
docs/plans/2026-08-22-slash-control-enforcement.md for typed state,
then docs/plans/2026-08-20-slash-goal-geo.md before changing slash routing,
planning authority, or Goal coupling.
- Diagnose the exact stage and preserve its denominator:
F fetch/index eligibility, R retrieval inclusion/rank, C citation
selection, P visible placement/rank, A answer absorption, Q
support/credibility/answer quality, and O first-party outcome. Preserve
not_measured; never collapse the vector into one GEO score.
- Run deterministic site preflight and relevant unit/E2E checks before asking
for live-test approval. Never infer organic lift from a fixed-context test.
Model tool calls cannot mint approval or preregistration receipts; exercise
the operator-owned
/geo approve-live <receipt> and /geo preregister <receipt> boundaries in state-machine tests. Require phase-bound evidence
before each transition. Permit diagnostic completion from live_observe;
require experiment only for a preregistered treatment claim.
- Confirm
.geode/skills/geo/SKILL.md is the runtime source selected by
SkillLoader; use get_geo/update_geo as the state authority. Record
primary sources, facts, inferences, unobserved stages, repetitions,
locale, account state, and timestamps in the result.
Long-running execution
For broad or explicitly long-running work, represent progress as a verifiable
evidence frontier: questions, dependencies, source locators, contradictions,
failed attempts, uncertainty, and unvisited leads. Do not store or expose hidden
chain-of-thought.
- Keep deterministic preflight, prerequisites, synthesis, verification, and
every write in the parent AgenticLoop.
- Send at most three independent read-only branches through the existing
delegate_task batch. Use durable spawn_agent only when a branch must be
steered across waits. Keep prerequisite branches serial and children depth
one. Built-in role workers inherit the parent's active model and credential
source unless an explicit binding is part of the run contract.
- Join all branches before synthesis. Bound each result to claims, evidence
locators, contradictions, confidence, and unresolved gaps; do not copy raw
logs into the parent context.
- At each wave boundary, checkpoint evidence, uncertainty, failures, and
unvisited leads. Treat the checkpoint as revisable, not as authority.
- Permit one focused follow-up wave for a material gap or contradiction. Stop
when required coverage, new primary evidence, and contradiction resolution
cease improving.
- Gate URL reachability, file facts, counts, hashes, citation locators, and
benchmark invariants with deterministic checks. Same-model critique is not
a truth oracle.
Reuse SkillRegistry → AgenticLoop plus the existing collaboration tools. Do
not add a GEO-only executor, natural-language subcommand parser, coordinator,
generic Tree-of-Thought/MCTS engine, or TaskGraph coupling without benchmarked
need.
For execution-strategy changes, compare the frozen A/B/C profiles in
docs/eval/geo-visibility.md with repeated runs; a single smoke cannot establish
that longer or parallel execution is better.
Trajectory and publication
Keep the native result, verifier receipt, attempt lineage, normalized behavior,
and publication decision as separate authorities. Do not manufacture an
Inspect .eval archive from a GEODE slash transcript: bind .eval only when
Inspect produced it. For ordinary /geo runs, export the parent and every child
from canonical sessions.db as geode.trajectory@1 with digested content.
Treat terminal transcripts, messages, evidence JSONL, worker results,
SQLite/WAL, profiles, usage, diagnostics, provider bodies, and hidden reasoning
as withheld-private by default. After an exact-byte privacy review, stage only
scope-complete normalized trajectories with
geode session stage-trajectory-release; use the explicit
--allow-replay-incomplete gate for reviewed content-digested releases. Copy
only the allowlisted release and reviewed aggregate sidecars into a fresh
geode-eval-artifacts PR, then bind the remote merge commit and manifest digest
back into the GEODE eval ledger after independent read-back. Never recursively
mirror a runtime home or artifact root.
1---2name: geo-23description: Design, implement, or evaluate GEODE's GEO capability with source-grounded stage diagnosis, frozen measurement contracts, and no-model preflight before live engine runs.4---56# GEODE GEO scaffold78Use this scaffold for repository work on `/geo`, generative discovery, AI-search9visibility, citations, or the GEO benchmark.10111. Read `.geode/skills/geo/SKILL.md` for the runtime behavior contract.122. Read `docs/eval/geo-visibility.md` before defining a metric or run. Freeze a13 prospective run spec before any score-bearing commercial-engine call.143. Read `docs/plans/2026-08-22-slash-control-enforcement.md` for typed state,15 then `docs/plans/2026-08-20-slash-goal-geo.md` before changing slash routing,16 planning authority, or Goal coupling.174. Diagnose the exact stage and preserve its denominator:18 `F` fetch/index eligibility, `R` retrieval inclusion/rank, `C` citation19 selection, `P` visible placement/rank, `A` answer absorption, `Q`20 support/credibility/answer quality, and `O` first-party outcome. Preserve21 `not_measured`; never collapse the vector into one GEO score.225. Run deterministic site preflight and relevant unit/E2E checks before asking23 for live-test approval. Never infer organic lift from a fixed-context test.24 Model tool calls cannot mint approval or preregistration receipts; exercise25 the operator-owned `/geo approve-live <receipt>` and `/geo preregister26 <receipt>` boundaries in state-machine tests. Require phase-bound evidence27 before each transition. Permit diagnostic completion from `live_observe`;28 require `experiment` only for a preregistered treatment claim.296. Confirm `.geode/skills/geo/SKILL.md` is the runtime source selected by30 `SkillLoader`; use `get_geo`/`update_geo` as the state authority. Record31 primary sources, facts, inferences, unobserved stages, repetitions,32 locale, account state, and timestamps in the result.3334## Long-running execution3536For broad or explicitly long-running work, represent progress as a verifiable37evidence frontier: questions, dependencies, source locators, contradictions,38failed attempts, uncertainty, and unvisited leads. Do not store or expose hidden39chain-of-thought.40411. Keep deterministic preflight, prerequisites, synthesis, verification, and42 every write in the parent AgenticLoop.432. Send at most three independent read-only branches through the existing44 `delegate_task` batch. Use durable `spawn_agent` only when a branch must be45 steered across waits. Keep prerequisite branches serial and children depth46 one. Built-in role workers inherit the parent's active model and credential47 source unless an explicit binding is part of the run contract.483. Join all branches before synthesis. Bound each result to claims, evidence49 locators, contradictions, confidence, and unresolved gaps; do not copy raw50 logs into the parent context.514. At each wave boundary, checkpoint evidence, uncertainty, failures, and52 unvisited leads. Treat the checkpoint as revisable, not as authority.535. Permit one focused follow-up wave for a material gap or contradiction. Stop54 when required coverage, new primary evidence, and contradiction resolution55 cease improving.566. Gate URL reachability, file facts, counts, hashes, citation locators, and57 benchmark invariants with deterministic checks. Same-model critique is not58 a truth oracle.5960Reuse `SkillRegistry → AgenticLoop` plus the existing collaboration tools. Do61not add a GEO-only executor, natural-language subcommand parser, coordinator,62generic Tree-of-Thought/MCTS engine, or TaskGraph coupling without benchmarked63need.6465For execution-strategy changes, compare the frozen A/B/C profiles in66`docs/eval/geo-visibility.md` with repeated runs; a single smoke cannot establish67that longer or parallel execution is better.6869## Trajectory and publication7071Keep the native result, verifier receipt, attempt lineage, normalized behavior,72and publication decision as separate authorities. Do not manufacture an73Inspect `.eval` archive from a GEODE slash transcript: bind `.eval` only when74Inspect produced it. For ordinary `/geo` runs, export the parent and every child75from canonical `sessions.db` as `geode.trajectory@1` with digested content.7677Treat terminal transcripts, messages, evidence JSONL, worker results,78SQLite/WAL, profiles, usage, diagnostics, provider bodies, and hidden reasoning79as `withheld-private` by default. After an exact-byte privacy review, stage only80scope-complete normalized trajectories with81`geode session stage-trajectory-release`; use the explicit82`--allow-replay-incomplete` gate for reviewed content-digested releases. Copy83only the allowlisted release and reviewed aggregate sidecars into a fresh84`geode-eval-artifacts` PR, then bind the remote merge commit and manifest digest85back into the GEODE eval ledger after independent read-back. Never recursively86mirror a runtime home or artifact root.