geode-context · diff
git:20260703.7e9ba6c to git:20260824.231f8ba
2 added, 2 removed. Audit A to A.
---
name: geode-context
visibility: public
triggers: geode, harness, agent, runtime, release, packaging, docs, plugin, architecture
description: GEODE runtime architecture and repo-shape context. Use for architecture, packaging, release, docs, CI, AgenticLoop, async runtime, and plugin boundary questions.
---
# GEODE Context
Version-agnostic runtime context. For current version and metrics always read
`CLAUDE.md` or `site/src/data/geode/sot.ts` — never trust numbers remembered
from this skill.
## Current Shape
- GEODE is a general-purpose autonomous-agent harness whose runtime is `AgenticLoop(while tool_use)`.
- The agent loop, sub-agents, plans, and batches are all instances of the same tool-use loop.
- Core runtime is domain-agnostic. Main packages:
- `core/` — agent loop, tools, MCP, memory, hooks, wiring, CLI, server, gateway.
- - `plugins/` — first-party auxiliary plugins (`petri_audit`, `seed_generation`, `benchmark_harness`).
+ - `geode_product/` — first-party composition and bundled product features.
- `site/` — public Next.js docs/site.
## Runtime Boundaries
- Canonical execution path is async-first: `AgenticLoop.arun()`, tool `aexecute()`, async provider clients.
- `core/agent/loop/agent_loop.py` is the implementation. `DEFAULT_MAX_ROUNDS = 0` means unlimited rounds; time budget and model-emitted termination signals (`model_action_required`, `user_clarification_needed`) control completion.
- Sub-agents: `core/agent/sub_agent.py` (`SubAgentManager`) — max depth 1 (no recursion), session-wide cap 15, global Lane concurrency 50 (`core/wiring/container.py`).
- Headless modes (DAEMON / SCHEDULER) deny `run_bash` / `delegate_task` / `computer` outright (`HEADLESS_DENIED_TOOLS`, `core/agent/safety.py`).
## Prompt And Context Injection
- `core/llm/prompt_assembler.py` owns prompt assembly and emits `PROMPT_ASSEMBLED`.
- `core/agent/system_prompt.py` inserts `__GEODE_PROMPT_CACHE_BOUNDARY__` between STATIC and DYNAMIC blocks; dynamic context is wrapped in `<dynamic_context>`.
- Skill metadata is injected as `<available_skills>` (metadata only); full skill bodies load on demand via the `use_skill` tool.
- Do not inject old Game IP pipeline facts, fixed DAG claims, analyst/evaluator topology, or confidence-threshold loop claims into the system prompt.
## Release Pipeline
- Functional commits update `CHANGELOG.md`.
- - Quality gates: `ruff check` / `ruff format --check` (core, tests, plugins, scripts), `mypy core/ plugins/`, `lint-imports`, `pytest -m "not live"`, `geode version` smoke.
+ - Quality gates: `ruff check` / `ruff format --check` (core, geode_product, tests, scripts), `mypy core/ geode_product/`, `lint-imports`, `pytest -m "not live"`, `geode version` smoke.
- Publishing is manual/approval-gated, not automatic on every main push.
## Guardrails
- Do not reintroduce `plugins.game_ip` imports into `core/`; Game IP is not the default domain.
- Do not describe GEODE as a fixed Plan-and-Execute DAG, fixed StateGraph, or confidence-threshold pipeline.
- Do not cite LangSmith as current observability; GEODE uses its own hooks, audit diagnostics, run logs, and site/docs gates.
- Do not hard-code deprecated model names. Use the provider registries and token/cost tables.