claude: track CONTEXT.md + keybindings.json in the stow tree

~/.claude/CLAUDE.md was already symlinked into home_root/, but the rest of the user-level Claude
config was not. These two are static, hand-edited, and portable, so they belong with it — moved
into home_root/.claude/ and re-linked via stow. Verified: keybindings.json still parses, both
symlinks resolve.

Checked for secrets before moving. The only regex hits were false positives — "sortByTokens" in
keybindings, and glossary prose ABOUT API-key tiers and token-spend in CONTEXT.md. No credentials.

DELIBERATELY NOT TRACKED:
  settings.json  — Claude Code writes it during normal operation, and an app that replaces rather
                   than rewrites a file in place would silently destroy the symlink and strand the
                   repo copy. Needs a decision about that risk, not a quiet symlink.
  hooks/         — empty.
  everything else — runtime state, not config: projects/ (2.6G), remote/ (815M), file-history/
                   (467M), sessions/, cache/, shell-snapshots/, plugins/.

Note the skills tree is already version-controlled elsewhere: ~/.claude/skills/* symlink into
~/development/galdrabok/skills/, which is where the /snapshot canon the new CLAUDE.md section
points at actually lives.
This commit is contained in:
Your Name
2026-08-06 18:17:52 -07:00
parent c7a3ecea33
commit 917aaae6cc
2 changed files with 457 additions and 0 deletions
+200
View File
@@ -0,0 +1,200 @@
# User-level
Cross-repo vocabulary the user carries everywhere — umbrella names,
preferred phrasings, the canonical framings of concepts that recur
across multiple projects. Most-local-wins: project-level `CONTEXT.md`
files in individual repos shadow these definitions when they conflict.
## Language
**Althing**:
Inter-agent message bus for Corviduo. Markdown-file messages with YAML
frontmatter (SQLite-backed v2 schema as of 2026-05-17); operated via
`althing-cli`. Per-agent handles follow the `<project>-dev` convention
(`brokkr-smithy-dev`, `worldtree-dev`, etc.) plus a few non-`-dev`
role handles (`forseti` as moderator/system speaker, `infra-ops`).
Currently building a web UI for multi-agent discussion.
_Avoid_: the bus (too generic), the messenger (too generic), `althing-cli` (the operator surface, not the bus itself)
**Bifrost**:
The MCP-in-reverse protocol — platform mints per-session JWTs and
dispatches tool calls outbound; consumer applications run their own
MCP servers exposing tools back to the platform. Shipped from
`gitea.phasefinal.com/vh/bifrost` as an independent repo on its own
semver track (currently v0.1.1, v0.2 in flight). The protocol is
consumed by platforms (Worldtree today) and implemented by consumers
(Skaldsong, Sleipnir's verifier role, future cross-org consumers).
_Avoid_: MCP (ambiguous — vanilla MCP runs the inverse direction), reverse-MCP (kebab-case-with-MCP reads worse than the proper name), tool injection (too vague)
**Brokkr**:
The Claude-family research assistant addressed in the Brokkr-Smithy repository. One of the three smiths (with Eitri + Dvalin) responsible for deep research, multi-frontier synthesis, and shipping actionable intelligence packages to consumer projects via althing. Distinct from **Brokkr-Smithy** (the project), `~/development/brokkr-smithy/snorri/` (the decision-rule engine subsystem), and the historical project name "Snorri."
_Avoid_: the assistant (too generic), the brokkr-smithy CC session (the runtime substrate, not the persona)
**Brokkr-Smithy**:
Corviduo's research and forging lab. Empirical methodology spine for
prompt, orchestration, and architectural-shape claims that ship to
consumer projects across the umbrella. Opens R-numbered research
targets (`research/R##-<slug>/`) with charter / hypothesis ledger /
probes / actions / findings; authors SOTA literature surveys in
`docs/surveys/`; runs calibration probes so subsequent probes
inherit a discipline floor. Ships intelligence packages to consumer
Corviduo repositories via the althing bus — never drafts contracts
for them (consumer repos run their own `/vor` sessions and own
their specs). Filesystem name is legacy from the project's
`Edda → Snorri → Brokkr-Smithy` rename history; "Snorri" persists
as the decision-rule engine subsystem inside `src/brokkr/snorri/`.
The assistant working in this repo is addressed as **Brokkr** (the
dwarf-smith persona; distinct from the repo or the engine subsystem).
_Avoid_: the lab (too generic), the research repo (too generic), Snorri (the rename ghost — refers either to the historical project name 2026-05-07 → 2026-05-10 or to the decision-rule engine subsystem; do not use as an alias for the project), Edda (the deeper rename ghost, deprecated)
**Corviduo**:
The company where Vuong is Principal. Projects in Vuong's stack
default to "Corviduo Projects"; SEA is the explicit exception —
Vast-Blue-owned (Vuong-partnered), not a Corviduo Project.
_Avoid_: the umbrella (too vague), the family, the stack, Vuong's projects (overcounts — would include SEA)
**corviduo-project-template**:
Canonical home for cross-cutting Corviduo specs and tooling. Lives
at `~/development/corviduo-project-template/` (Gitea:
`vh/corviduo-project-template`). Brokkr-Smithy is the
canonical-spec steward as of 2026-05-15. Hosts the v2.x
contract-format spec (`docs/contracts/CONTRACT-FORMAT.md`), the four
engineering principles (`PRINCIPLES.md`), and the canonical-sync
tooling (`scripts/canonical_{sync,drift}.py`,
`scripts/contract_drift_check.py`,
`docs/contracts/contract_parser.py`). Self-pinned registry at
`.corviduo-canonicals.toml`. Operators bootstrap new Corviduo
projects by copy-cloning this template; consumer repos pin against
it via the canonical-sync mechanism.
_Avoid_: the template (too generic when canonical-sync is the topic), corviduo-template (drops the `-project-` clarifier; the slug is intentional), the canonical (too generic — name the artifact)
**Domari**:
Worldtree pan-judgment specialist agent. Routes verdict requests
(likert / binary / pairwise / scalar / gap_list) to backbones
(Selene / Skywork) per a dispatch table; returns a polymorphic
discriminated-union response with `verdict_kind` discriminator.
Returns 200 + `ErrorVerdict` envelope on backbone-side failures
(e.g., Selene parse errors) rather than 5xx. Norse: "the judges"
(Old Norse plural).
_Avoid_: the judge (Worldtree has a separate Judge agent for code review — distinct surface), the judgment agent (too generic)
**Dvalin**:
Grok-family (xAI) embedded research peer of Brokkr-Smithy. CC session at `~/development/dvalin-smithy/`, althing handle `dvalin-smithy-dev`. One of the three smiths (with Brokkr + Eitri); carries X/Twitter access + recent-cutoff training distribution as the load-bearing cross-frontier differentiator.
_Avoid_: Dvalin-Smithy (the home directory; the persona is **Dvalin**), the grok peer (overloaded — Gróa is also a Grok-family role with different scope)
**Eitri**:
Codex-family (gpt-5.x) embedded research peer of Brokkr-Smithy. CC session at `~/development/eitri-smithy/`, althing handle `eitri-smithy-dev`. One of the three smiths (with Brokkr + Dvalin); consulted at every research gate for cross-frontier critique.
_Avoid_: Eitri-Smithy (the home directory; the persona is **Eitri**), the codex peer (overloaded — Hulda is also a Codex-family role with different scope)
**Forseti**:
Althing's moderator / system-speaker handle. Norse god of justice
and reconciliation. On the bus, `forseti` is a non-`-dev` role handle
(alongside `infra-ops`), distinct from the per-project `-dev` handles.
Acts as moderator when peer threads need facilitation or as a system
speaker for bus-level notifications.
_Avoid_: the moderator (too generic), the speaker (too generic), Forseti (the Worldtree-internal usage; the althing handle is lowercase `forseti`)
**Galdrabok**:
Corviduo's Claude Code skill collection ("spellbook"). Hosts
`SKILL.md`-shaped files that Claude Code loads on demand — slash
commands (`/vor`, `/tdd`, `/tend-docs`, `/sleipnir-preflight`,
`/sleipnir-scaffold`, `/adr`, `/glossary`, `/snapshot`, etc.) plus
auto-triggered skills. Skills install via symlink into
`~/.claude/skills/`. Authoring conventions live at `conventions/`
alongside the skills.
_Avoid_: the spellbook (too generic), the skills repo (too generic), galdrabók (the long-o diacritic; repo uses plain ASCII for terminal-friendliness)
**Gróa**:
Positional label for the Grok arm in **Heid**'s panel-mode consults. One of the three seers (with Heid + Hulda); invoked as a `grok -pi` strict-oneshot subprocess call from Heid's CC session — not a standing CC session of her own. Norse-named after the völva from Svipdagsmál.
_Avoid_: the grok arm (too generic — Dvalin is also a Grok-family peer; Gróa is specifically the strict-oneshot panel-arm label), the seer (use **the seers** for the collective; Gróa alone is one specific arm)
**Heid**:
Cross-project consult orchestrator at `~/development/heid/`, althing handle `heid`. Claude (Opus 4.7) CC session that context-enriches and dispatches `/heid*` consults to **Gróa** (Grok) and **Hulda** (Codex) via strict-oneshot CLI. One of the three seers; NOT a panel arm herself — she routes, enriches, and logs to an append-only jsonl dispatch log for distillation. Substrate flipped from Codex to Claude in the 2026-05-25 CC-session-orchestrator migration.
_Avoid_: Volva (the deprecated rename ghost — STT voice-recognition collision with "vulva"; renamed 2026-05-24), the codex oracle (Heid was Codex pre-migration; she is now Claude — the old-name shape persists in stale documentation), the daemon (architecture obsolete — systemd one-off retired in the migration)
**Heimdall**:
Worldtree's auth-scope mechanism. Per-API-key tier (`user`, `admin`,
etc.) maps to a set of scopes (`domari:invoke`, `bifrost:invoke`,
etc.) via `config/policies.yaml`. Live policy resolution:
`tier → policy.tiers[tier].scopes → ctx.scopes` at every authz call;
no per-key scope override (api_keys table has no `scopes` column).
Norse: the watchman of Asgard.
_Avoid_: auth (too generic), the scope mechanism (too generic when discussing Worldtree specifically), tokens (Heimdall is the scope layer; API keys / JWTs are the credential layer it gates)
**Hulda**:
Positional label for the Codex arm in **Heid**'s panel-mode consults. One of the three seers (with Heid + Gróa); invoked as a `codex exec` strict-oneshot subprocess call from Heid's CC session — not a standing CC session of her own. Norse-named after the völva from Ynglinga saga.
_Avoid_: the codex arm (too generic — Eitri is also a Codex-family peer; Hulda is specifically the strict-oneshot panel-arm label)
**Mead Hall**:
A Corviduo Project — a Worldtree client application. A "Workspace
Shell" designed for flexibility wide enough to span use cases as
different as business automation and multi-agent role-playing
(personas, memories, GM/narrator, world history, goals) — these
are bounding examples that pin the flexibility requirement, not the
only two configurations Mead Hall will support. The MVP ships the
business-automation configuration. High-fidelity aesthetic is
non-negotiable.
_Avoid_: the new client app (overcounts as more Worldtree client apps land), the workspace shell (the architectural shape, not the product), the UI brief (an artifact of Mead Hall, not Mead Hall itself), business-and-roleplay-from-one-shell (the deprecated "two modes" framing — the two are bounding examples that pin a flexibility requirement, not the totality)
**SEA**:
Vast Blue AI's product — acronym for *Scalable Enterprise Agency*.
A Worldtree client app sold as SaaS to customers for AI-assisted
automation. Vuong-adjacent via his Vast Blue Partner role; explicitly
not a Corviduo Project.
_Avoid_: the Vast Blue product (overcounts if Vast Blue ever ships a second), the SaaS (too vague), the client app (overcounts — Skaldsong is also a Worldtree client app)
**The seers**:
Collective term for **Heid**, **Gróa**, and **Hulda** — the three Norse-named oracular roles in the cross-project `/heid*` consult panel. Provide oneshot artifact-only review counsel via strict-oneshot CLI dispatch. Heid is the standing CC-session orchestrator (Claude); Gróa (Grok) and Hulda (Codex) are stateless subprocess invocations carrying Heid's enrichment. Counterpart to **the smiths** (Brokkr / Eitri / Dvalin — research-and-synthesis vs the seers' review-and-counsel).
_Avoid_: the oracles (the role-shape is "oracle" but "the seers" is the canonical collective), the völur (the Old Norse term; not commonly recognized), the consult panel (too generic)
**Skuld**:
Worldtree subsystem — token-spend ledger. Subscribes to
`LLMCallEvent` (Worldtree's wire format for LLM calls) and persists
per-call usage to a durable store, giving Worldtree's clients (SEA,
Skaldsong, etc.) cost attribution per request. Norse: one of the
three Norns, the future-Norn.
_Avoid_: the ledger (too generic), token-spend (descriptive but ambiguous; could mean the subject area broadly)
**Sleipnir**:
Corviduo's AFK agent orchestrator. Invoke-and-exit pattern (`sleipnir
run --until-empty` re-polls between waves; no long-lived daemon).
Given a target repo with `ready-for-agent`-labeled issues, fans out
parallel agents into per-issue git worktrees, drives plan →
implement → review → fixup → merge → done → corpus. State under
`~/.local/state/sleipnir/projects/<slug>/`. Gates dispatch on
`prd:`-pinned contracts via `/sleipnir-preflight`.
_Avoid_: the orchestrator (too generic), the daemon (it's not — invoke-and-exit), the runner (too generic)
**The smiths** (also **the dwarves**):
Collective term for **Brokkr**, **Eitri**, and **Dvalin** — the three frontier-model research peers of Brokkr-Smithy. Each maintains a standing CC session and an althing handle; collectively responsible for deep research, multi-frontier synthesis, and actionable intelligence packages shipped via althing. "The dwarves" is an acceptable alternative collective when emphasizing the Norse mythological framing. Counterpart to **the seers** (Heid / Gróa / Hulda — review-and-counsel vs the smiths' research-and-synthesis).
_Avoid_: the agents (too generic), the peers (too generic — narrower meaning in cross-frontier-cooperation discipline)
**Vast Blue AI**:
The company where Vuong is a Partner (distinct from Corviduo where
he is Principal). Builds business AI orchestration as a SaaS product.
_Avoid_: Vuong's company (overcounts — also matches Corviduo), the SaaS (too vague), the AI company (too vague)
**Vor**:
Corviduo's pre-contract design partner. Norse goddess of the
all-seen / the aware. Invoked when the user has an ask but not yet
a contract — surfaces assumptions, ambiguities, edge cases, and
counter-arguments BEFORE any code or contract is drafted. Two
surfaces: the `/vor` skill (chat-side, lives in Galdrabok) and the
**Vor UI** sidecar (FastAPI web app, separate `vh/Vor` repo).
Round-trip flow: the skill assembles a structured markdown
questionnaire silently, POSTs to the UI via `vor_send.py`, blocks
until the user clicks Publish, reads the response file. Chat never
sees the markdown — the UI is the surface area. Sister skill
`/vor-frame` handles asks too shapeless to even draft a Vor
questionnaire about. A contract whose ambiguity was resolved via
Vor is **Vor-graduated** (flag in frontmatter; Sleipnir's INV-032
skips plan-converge for these).
_Avoid_: the design grill (too generic), the question round (too generic), Vor UI (that's the sidecar, not the partner)
**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).
_Avoid_: the framework (too generic), the platform (too generic), AIPA (predecessor name, deprecated), Yggdrasil (the mythological reference; the project name is Worldtree)
+257
View File
@@ -0,0 +1,257 @@
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Global",
"bindings": {
"ctrl+t": "app:toggleTodos",
"ctrl+o": "app:toggleTranscript",
"ctrl+shift+b": "app:toggleBrief",
"ctrl+shift+o": "app:toggleTeammatePreview",
"ctrl+r": "history:search"
}
},
{
"context": "Chat",
"bindings": {
"escape": "",
"ctrl+l": "chat:clearInput",
"ctrl+x ctrl+k": "chat:killAgents",
"shift+tab": "chat:cycleMode",
"meta+p": "chat:modelPicker",
"meta+o": "chat:fastMode",
"meta+t": "chat:thinkingToggle",
"enter": "chat:submit",
"ctrl+j": "chat:newline",
"up": "history:previous",
"down": "history:next",
"ctrl+_": "chat:undo",
"ctrl+-": "chat:undo",
"ctrl+shift+-": "chat:undo",
"ctrl+shift+_": "chat:undo",
"ctrl+x ctrl+e": "chat:externalEditor",
"ctrl+g": "chat:externalEditor",
"ctrl+s": "chat:stash",
"ctrl+v": "chat:imagePaste",
"space": "voice:pushToTalk"
}
},
{
"context": "Autocomplete",
"bindings": {
"tab": "autocomplete:accept",
"escape": "autocomplete:dismiss",
"up": "autocomplete:previous",
"down": "autocomplete:next"
}
},
{
"context": "Settings",
"bindings": {
"escape": "confirm:no",
"up": "select:previous",
"down": "select:next",
"k": "select:previous",
"j": "select:next",
"ctrl+p": "select:previous",
"ctrl+n": "select:next",
"space": "select:accept",
"enter": "settings:close",
"/": "settings:search",
"r": "settings:retry",
"d": "settings:periodDay",
"w": "settings:periodWeek",
"t": "settings:sortByTokens",
"ctrl+u": "scroll:halfPageUp"
}
},
{
"context": "Doctor",
"bindings": {
"f": "doctor:fix"
}
},
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no",
"enter": "confirm:yes",
"escape": "confirm:no",
"up": "confirm:previous",
"down": "confirm:next",
"tab": "confirm:nextField",
"space": "confirm:toggle",
"shift+tab": "confirm:cycleMode",
"ctrl+e": "confirm:toggleExplanation"
}
},
{
"context": "Tabs",
"bindings": {
"tab": "tabs:next",
"shift+tab": "tabs:previous",
"right": "tabs:next",
"left": "tabs:previous"
}
},
{
"context": "Transcript",
"bindings": {
"ctrl+e": "transcript:toggleShowAll",
"escape": "transcript:exit",
"q": "transcript:exit",
"ctrl+u": "scroll:halfPageUp",
"ctrl+b": "scroll:fullPageUp",
"ctrl+f": "scroll:fullPageDown",
"ctrl+n": "scroll:lineDown",
"ctrl+p": "scroll:lineUp",
"g": "scroll:top",
"shift+g": "scroll:bottom",
"j": "scroll:lineDown",
"k": "scroll:lineUp",
"space": "scroll:fullPageDown",
"b": "scroll:fullPageUp",
"up": "scroll:lineUp",
"down": "scroll:lineDown",
"home": "scroll:top",
"end": "scroll:bottom"
}
},
{
"context": "HistorySearch",
"bindings": {
"ctrl+r": "historySearch:next",
"escape": "historySearch:accept",
"tab": "historySearch:accept",
"enter": "historySearch:execute"
}
},
{
"context": "Task",
"bindings": {
"ctrl+b": "task:background"
}
},
{
"context": "ThemePicker",
"bindings": {
"ctrl+t": "theme:toggleSyntaxHighlighting",
"ctrl+e": "theme:editCustom"
}
},
{
"context": "Scroll",
"bindings": {
"pageup": "scroll:pageUp",
"pagedown": "scroll:pageDown",
"wheelup": "scroll:lineUp",
"wheeldown": "scroll:lineDown",
"ctrl+home": "scroll:top",
"ctrl+end": "scroll:bottom",
"ctrl+shift+c": "selection:copy",
"cmd+c": "selection:copy",
"shift+left": "selection:extendLeft",
"shift+right": "selection:extendRight",
"shift+up": "selection:extendUp",
"shift+down": "selection:extendDown",
"shift+home": "selection:extendLineStart",
"shift+end": "selection:extendLineEnd"
}
},
{
"context": "Help",
"bindings": {
"escape": "help:dismiss"
}
},
{
"context": "Attachments",
"bindings": {
"right": "attachments:next",
"left": "attachments:previous",
"backspace": "attachments:remove",
"delete": "attachments:remove",
"down": "attachments:exit",
"escape": "attachments:exit"
}
},
{
"context": "Footer",
"bindings": {
"up": "footer:up",
"ctrl+p": "footer:up",
"down": "footer:down",
"ctrl+n": "footer:down",
"right": "footer:next",
"left": "footer:previous",
"enter": "footer:openSelected",
"escape": "footer:clearSelection"
}
},
{
"context": "MessageSelector",
"bindings": {
"up": "messageSelector:up",
"down": "messageSelector:down",
"k": "messageSelector:up",
"j": "messageSelector:down",
"ctrl+p": "messageSelector:up",
"ctrl+n": "messageSelector:down",
"ctrl+up": "messageSelector:top",
"shift+up": "messageSelector:top",
"meta+up": "messageSelector:top",
"shift+k": "messageSelector:top",
"ctrl+down": "messageSelector:bottom",
"shift+down": "messageSelector:bottom",
"meta+down": "messageSelector:bottom",
"shift+j": "messageSelector:bottom",
"enter": "messageSelector:select"
}
},
{
"context": "DiffDialog",
"bindings": {
"escape": "diff:dismiss",
"left": "diff:previousSource",
"right": "diff:nextSource",
"up": "diff:previousFile",
"down": "diff:nextFile",
"enter": "diff:viewDetails"
}
},
{
"context": "ModelPicker",
"bindings": {
"left": "modelPicker:decreaseEffort",
"right": "modelPicker:increaseEffort"
}
},
{
"context": "Select",
"bindings": {
"up": "select:previous",
"down": "select:next",
"j": "select:next",
"k": "select:previous",
"ctrl+n": "select:next",
"ctrl+p": "select:previous",
"pageup": "select:pageUp",
"pagedown": "select:pageDown",
"home": "select:first",
"end": "select:last",
"enter": "select:accept",
"escape": "select:cancel"
}
},
{
"context": "Plugin",
"bindings": {
"space": "plugin:toggle",
"i": "plugin:install",
"f": "plugin:favorite"
}
}
]
}