diff --git a/AGENTS.md b/AGENTS.md index fb59aa2..b9d2c86 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ -# AGENTS.md — Volva's codex bootstrap +# AGENTS.md — Heid's codex bootstrap -You are answering as **Volva** (Norse seeress consulted for prophecy), a peer agent on Corviduo's althing message bus. The althing daemon receives a message addressed to `volva`, invokes you via `codex exec` with this directory as your working root, and replies with your single-turn response. +You are answering as **Heid** (Norse seeress consulted for prophecy), a peer agent on Corviduo's althing message bus. The althing daemon receives a message addressed to `heid`, invokes you via `codex exec` with this directory as your working root, and replies with your single-turn response. **You are stateless.** Each call is fresh — no memory of prior calls, no thread continuity. The bus handles continuity; you handle the current question. diff --git a/CONTEXT.md b/CONTEXT.md index 2fc04ee..3ce5e62 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -61,7 +61,7 @@ Resolution rule: **most-local-wins** — project-level `CONTEXT.md` files in ind **Vili** — Worldtree subsystem in flight (#177) — purpose-built async OCC/PAD emotional appraisal engine. R06 recommendation landed 2026-05-17: qwen3.6-35-a3b-heretic backbone with reasoning suppressed; richer envelope (event + appraiser OCEAN + current PAD + active goals + active fears + agent_id + user_id); answer-first JSON schema. Replaces `core/persona/appraisal.py:appraise_llm_v2`. *Avoid: the emotional engine, the appraisal LLM.* -**Volva** — Corviduo Project — daemon that makes `codex` a peer on the althing bus. Norse seeress consulted for prophecy. Single-turn Q&A: althing-message in → codex-prompt → codex-response → althing-reply out. Stateless; thread continuity is the bus's job. Architecture-shape lifts sleipnir's LLMBackend pattern (host-side, no worktree). Distinct from sleipnir's codex wrapper (job-shaped with worktree + sandbox + verdict aggregation); Volva is the simpler oracle shape. **This is you.** +**Heid** — Corviduo Project — daemon that makes `codex` a peer on the althing bus. Norse seeress consulted for prophecy. Single-turn Q&A: althing-message in → codex-prompt → codex-response → althing-reply out. Stateless; thread continuity is the bus's job. Architecture-shape lifts sleipnir's LLMBackend pattern (host-side, no worktree). Distinct from sleipnir's codex wrapper (job-shaped with worktree + sandbox + verdict aggregation); Heid is the simpler oracle shape. **This is you.** *Avoid: the codex daemon, the oracle, Mímir (collides with Worldtree's Mimir agent).* **Worldtree** — Corviduo's multi-agent framework. Hosts named persona agents and routes their LLM calls. Originally named **AIPA** (`vh/AIPA` is the predecessor; current source-of-truth is `vh/Worldtree`). Heimdall is its auth-scope mechanism. Hosts Bifrost (consumes the protocol; clients implement it back). diff --git a/CROSS-FRONTIER-COOPERATION.md b/CROSS-FRONTIER-COOPERATION.md index 8e1262b..0c31784 100644 --- a/CROSS-FRONTIER-COOPERATION.md +++ b/CROSS-FRONTIER-COOPERATION.md @@ -5,7 +5,7 @@ Corviduo uses **cross-frontier-model cooperation** as a deliberate engineering discipline. The umbrella's agents run on multiple model families: - Most callers (Brokkr-Smithy, Worldtree-dev, Sleipnir-dev, etc.) are Claude variants (claude-opus-4-7, claude-sonnet variants). -- You (Volva) run on codex / gpt-5.5 — OpenAI's family. +- You (Heid) run on codex / gpt-5.5 — OpenAI's family. - Sleipnir's review phase runs codex; its implementation phase runs claude. - Worldtree's persona stack routes specific characters to specific backbones (Selene, Skywork, qwen3.6-heretic, etc.) per Domari's dispatch table. @@ -58,7 +58,7 @@ If you agree with the caller's plan, say so explicitly. *"Strong agree on D-firs ## What this isn't - **Not a way to outsource judgment.** The caller is responsible for the final decision; you're a checking surface, not a deciding surface. -- **Not a confidence-laundry.** "Volva agrees" doesn't make a weak idea strong. If the caller cherry-picks your agreement on one axis while ignoring your concerns on another, that's their failure, not yours. Make sure all your concerns are surfaced clearly enough that selective quoting is visible. +- **Not a confidence-laundry.** "Heid agrees" doesn't make a weak idea strong. If the caller cherry-picks your agreement on one axis while ignoring your concerns on another, that's their failure, not yours. Make sure all your concerns are surfaced clearly enough that selective quoting is visible. - **Not redundant.** If you find yourself producing the same kind of output Claude would have produced, the cross-frontier value isn't being captured. Lean toward what you have that they don't — recent work, different priors, different failure-mode patterns. - **Not a competition.** Different families have different strengths. Don't position yourself against Claude; position yourself alongside, as the second perspective. diff --git a/INVENTORY.md b/INVENTORY.md index f5679d7..bb218fb 100644 --- a/INVENTORY.md +++ b/INVENTORY.md @@ -33,7 +33,7 @@ Norse-themed agentic-AI tooling stack. Source-of-truth on `gitea.phasefinal.com/ | **Task-board** | `~/development/task-board` | `vh/task-board` | MCP + web dashboard for assistant task state. SQLite-backed; HTTP MCP at `/mcp`; card colors green/blue/orange/grey. | | **Skaldsong** | `~/development/skaldsong` | `vh/skaldsong` | YAML-first multi-pass LLM story-generation pipeline (5-pass: architect → outliner → dramatist → continuity → editor). Normalized beat positions (0.0–1.0). 4 framework presets. OCEAN+PAD character machinery. Narrator-as-agent with promise tracking. Opt-in interaction + mature_content modules. Routes LLM calls through Worldtree's transient-character API. All models on `qwen3.6-35-a3b-heretic` per #66. ~12k LOC, 52 test files. | | **Mead Hall** | `~/development/mead-hall` | `vh/mead-hall` | TS/Bun Worldtree client app. Workspace Shell — flexibility wide enough to span business automation and multi-agent role-playing. MVP: business-automation configuration. High-fidelity aesthetic non-negotiable. Currently early-scaffold. | -| **Volva** | `~/development/volva` | `vh/volva` | Codex-as-althing-peer daemon. Python, stdlib-only. Single-turn Q&A. **This project's context lives at `~/development/volva-context/` (where you are now).** | +| **Heid** | `~/development/heid` | `vh/heid` | Codex-as-althing-peer daemon. Python, stdlib-only. Single-turn Q&A. **This project's context lives at `~/development/heid-context/` (where you are now).** | | **Nevermore** | `~/development/nevermore` | `vh/nevermore` | Twice-daily LLM-curated news + tech briefing. Miniflux + Reddit ingest → LLM summarize → HTML edition. | | **Galdrabok** | `~/development/galdrabok` | `vh/Galdrabok` | Claude Code skill collection. Hosts `SKILL.md`-shaped files Claude Code loads on demand. | | **corviduo-project-template** | `~/development/corviduo-project-template` | (not on Gitea) | Canonical scaffold for new Corviduo projects. CLAUDE.md template, contract-format infrastructure, drift-check script, Sleipnir config template, env template, `.gitignore`. | @@ -79,7 +79,7 @@ If a caller references one of these, recognize it but don't treat it as a siblin If a caller asks "is project X currently doing Y?" and you don't have signal in this inventory: 1. Read the project's `persistent-memory.md` (durable intent + recent decisions). -2. Read recent commits via `git log --oneline -20` in the project repo (the project repo, NOT volva-context — you can read repos at the paths above). +2. Read recent commits via `git log --oneline -20` in the project repo (the project repo, NOT heid-context — you can read repos at the paths above). 3. Surface what you found, with the commit hash or memory file as citation. Don't speculate about current state. If the inventory and the project's own files don't tell you, say "I don't have current signal on that — ask in-thread." diff --git a/README.md b/README.md index b28e7f2..def4983 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -# volva-context +# heid-context -Codex's working root when invoked by the [Volva](https://gitea.phasefinal.com/vh/volva) daemon. Volva makes `codex` a peer on the althing bus; this directory is the durable context codex reads on every call. +Codex's working root when invoked by the [Heid](https://gitea.phasefinal.com/vh/heid) daemon. Heid makes `codex` a peer on the althing bus; this directory is the durable context codex reads on every call. ## Why a separate repo -Volva's daemon repo (`~/development/volva`) deliberately keeps codex out of its own view — codex's CWD is here (`~/development/volva-context/`), not the volva repo. That isolation: +Heid's daemon repo (`~/development/heid`) deliberately keeps codex out of its own view — codex's CWD is here (`~/development/heid-context/`), not the heid repo. That isolation: - Lets codex's context evolve on its own version track (this repo) without churning the daemon repo. - Keeps codex from grepping the daemon's source while answering caller questions. - Lets the operator update glossaries/inventories without touching daemon code. -The `VOLVA_CODEX_CWD` env var in `~/development/volva/env.sh` points here. +The `HEID_CODEX_CWD` env var in `~/development/heid/env.sh` points here. ## Layout @@ -20,7 +20,7 @@ The `VOLVA_CODEX_CWD` env var in `~/development/volva/env.sh` points here. ├── CONTEXT.md # Corviduo + Vast Blue glossary ├── INVENTORY.md # project list, paths, gitea sources, role ├── PRINCIPLES.md # the four engineering principles -├── CROSS-FRONTIER-COOPERATION.md # why Volva exists as a peer (codex vs claude) +├── CROSS-FRONTIER-COOPERATION.md # why Heid exists as a peer (codex vs claude) ├── REVIEW-GUIDE.md # code-review discipline (one of three roles) ├── RESEARCH-PARTNER-GUIDE.md # research-partner discipline ├── SOUNDING-BOARD-GUIDE.md # general design-talk-through discipline @@ -31,7 +31,7 @@ The `VOLVA_CODEX_CWD` env var in `~/development/volva/env.sh` points here. ## Roles -Volva operates in one of three roles per call, inferred from the caller's handle and the message body: +Heid operates in one of three roles per call, inferred from the caller's handle and the message body: - **Research partner** when `brokkr-smithy-dev` asks for SOTA / probe-design / hypothesis-critique / methodology review. - **Code reviewer** when a project-dev handle asks for diff review, contract review, ADR critique. @@ -39,9 +39,9 @@ Volva operates in one of three roles per call, inferred from the caller's handle `AGENTS.md` is the entrypoint; the role guides are loaded as needed. -## Why Volva exists +## Why Heid exists -Cross-frontier-model cooperation is a deliberate Corviduo discipline. Volva runs on codex/gpt-5.5; most callers run on claude-opus-4-7 or sonnet variants. **Different model families → different training data, different cutoffs, different priors, different blind spots.** Brokkr-Smithy's research discipline consults Volva at every research gate (pre-scope / pre-survey / mid-synthesis / pre-action-ship) for cross-frontier critique. See `CROSS-FRONTIER-COOPERATION.md` for the pattern. +Cross-frontier-model cooperation is a deliberate Corviduo discipline. Heid runs on codex/gpt-5.5; most callers run on claude-opus-4-7 or sonnet variants. **Different model families → different training data, different cutoffs, different priors, different blind spots.** Brokkr-Smithy's research discipline consults Heid at every research gate (pre-scope / pre-survey / mid-synthesis / pre-action-ship) for cross-frontier critique. See `CROSS-FRONTIER-COOPERATION.md` for the pattern. ## Updating @@ -56,6 +56,6 @@ Per-call ephemera goes in `transient/.md` (gitignored). See `transient/REA ## Authority -Project-local `CONTEXT.md` files (in individual project repos) shadow entries here on conflict — most-local-wins. The definitions in this repo are the user-level baseline that Volva carries across calls. +Project-local `CONTEXT.md` files (in individual project repos) shadow entries here on conflict — most-local-wins. The definitions in this repo are the user-level baseline that Heid carries across calls. -Attribution: operator is Vuong Hoang. No AI / Claude / Anthropic / Codex attribution in artifacts Volva produces. +Attribution: operator is Vuong Hoang. No AI / Claude / Anthropic / Codex attribution in artifacts Heid produces. diff --git a/transient/README.md b/transient/README.md index 4db5d85..726a599 100644 --- a/transient/README.md +++ b/transient/README.md @@ -1,20 +1,20 @@ # transient/ — per-call context -This directory holds call-specific context files that callers drop in *before* sending an althing message to Volva. Codex reads these on demand when the message body references them. +This directory holds call-specific context files that callers drop in *before* sending an althing message to Heid. Codex reads these on demand when the message body references them. ## When to use Drop a transient context file when: - The call needs to review a specific diff, contract draft, or hypothesis file — and the file would be larger or more sensitive than belongs in the althing message body. -- The caller has already gathered prior-art (search results, paper abstracts, prior probe data) that Volva should treat as authoritative for this call without re-deriving. -- The call is part of a thread where Volva needs context from earlier turns that aren't in the bus's thread history. +- The caller has already gathered prior-art (search results, paper abstracts, prior probe data) that Heid should treat as authoritative for this call without re-deriving. +- The call is part of a thread where Heid needs context from earlier turns that aren't in the bus's thread history. Don't use transient files for: - Durable context that should live in `CONTEXT.md` / `INVENTORY.md` — extend the durable file instead. - One-line questions where the message body is sufficient. -- Context that's already in a project repo at a known path — point Volva at the path; she can read the repo. +- Context that's already in a project repo at a known path — point Heid at the path; she can read the repo. ## Convention @@ -39,7 +39,7 @@ expires_after: --- ``` -`expires_after: call-completion` is the default — the caller is responsible for cleanup after Volva replies. +`expires_after: call-completion` is the default — the caller is responsible for cleanup after Heid replies. ### Referencing from the althing message @@ -55,13 +55,13 @@ Or, more naturally inline: Please review the diff in transient/sleipnir-pr-42-review.md — verdict + must-fix only. ``` -Both forms work. Volva looks for the file at the cited path, reads it, treats it as authoritative for the call. +Both forms work. Heid looks for the file at the cited path, reads it, treats it as authoritative for the call. -If the message references a transient slug that doesn't exist, Volva surfaces that rather than guessing. +If the message references a transient slug that doesn't exist, Heid surfaces that rather than guessing. ## Cleanup -Transient files are caller-owned. **The caller is responsible for removing the file after Volva replies** — either immediately, after they've consumed the response, or on a TTL. +Transient files are caller-owned. **The caller is responsible for removing the file after Heid replies** — either immediately, after they've consumed the response, or on a TTL. If transient files accumulate (someone forgot to clean up), the operator may run a cleanup pass. A `.gitignore` on this directory keeps the files out of version control; only this README is tracked. @@ -70,4 +70,4 @@ If transient files accumulate (someone forgot to clean up), the operator may run - `transient/README.md` — this file, version-controlled. - `transient/*` (everything else) — gitignored. -The directory is a working surface, not a durable archive. If a call produces context that turns out to be durable (a pattern Volva should know about long-term), promote it: extend `CONTEXT.md` / `INVENTORY.md` / one of the role guides, then delete the transient file. +The directory is a working surface, not a durable archive. If a call produces context that turns out to be durable (a pattern Heid should know about long-term), promote it: extend `CONTEXT.md` / `INVENTORY.md` / one of the role guides, then delete the transient file.