rename: volva → heid across bootstrap context

Mirrors the Volva → Heid rename that's already landed in the daemon
repo (vh/heid, was vh/volva). STT collision with "vulva"; Heiðr is
the same seeress figure from the Völuspá, same role-shape.

Swept across all tracked bootstrap files (AGENTS.md, CONTEXT.md,
CROSS-FRONTIER-COOPERATION.md, INVENTORY.md, README.md,
transient/README.md). Working-dir transient/*.md (gitignored)
swept locally for grep consistency. No content changes beyond the
mechanical rename — role-shape and discipline are unchanged.
This commit is contained in:
2026-05-24 13:29:41 -07:00
parent 42983e876f
commit 8ad3e02ee4
6 changed files with 26 additions and 26 deletions
+2 -2
View File
@@ -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.
+1 -1
View File
@@ -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).
+2 -2
View File
@@ -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.
+2 -2
View File
@@ -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.01.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."
+10 -10
View File
@@ -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/<slug>.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.
+9 -9
View File
@@ -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: <call-completion | YYYY-MM-DD | never>
---
```
`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.