/sleipnir-scaffold and /sleipnir-preflight were archived in galdrabok
9e2f59f and are no longer installed, but the AFK dispatch shape still
prescribed them. Mark the shape and the ready-for-agent gate as retired
and dormant, keep them as the record for a revival, and point at
/codex-dispatch as the one AFK skill still installed, which keeps the
prd:-pinned contract drift gate.
Auto-memory (~/.claude/projects/*/memory, 774 files across 49 projects) goes to
gitea vh/claude-memory, not this repo. The git dir is ~/claude-memory.git and its
work tree is ~/.claude/projects, and exclude rules admit only memory/ folders, so
transcripts stay local and nothing is added inside ~/.claude.
- home_root/.local/bin/claude-memory-sync: commit, rebase onto origin, push, under
a flock; --status; --init for a fresh machine. Every run records its result
for the drift check.
- home_config/systemd/user/claude-memory-sync.{service,timer}: hourly with
Persistent=true. Linked but not yet enabled.
- link-dotfiles --check now also reports uncommitted changes (a stale session
can write old content back through an intact link) and a failed or stale
(>3h) memory sync.
- CLAUDE.md and README document the backup and the never-put-credentials-in-memory rule.
The auto-mode environment in the user-level settings.json had been generated
inside the hamr repo. It told every session on every machine that the trusted
repo was hamr only, and that the primary use was hamr's vectorization library.
It now describes the operator's actual scope:
- Trusted repos: checkouts under ~/development and ~/dotfiles with an origin in
the vh, pfi, corviduo or vastblue gitea orgs, or github.com/vh-pfi.
~/development/externs is explicitly untrusted, since it holds third-party clones.
- Service list: labelled fleet endpoints replace the transcript-derived contact counts.
- Unknown default branches are treated as protected.
- The allow-rule rationales no longer cite per-project occurrence counts.
- The legacy althing-listen CLI is dropped from the tool list.
Added (all now linked from their live locations):
- home_root/.claude/settings.json. The statusLine command now uses $HOME
instead of a Linux-only absolute path.
- home_root/.claude/bin/ratecheck and home_root/.claude/skills/australis-design.
- home_config/zsh/claude-config-dir.zsh and home_root/.local/bin/claude-config-dir-init,
the per-repo Claude Code login helper and its seeding script.
- home_root/.gitconfig and home_config/git/ignore.
- home_root/.zshenv, with the cargo env line guarded so boxes without rust start clean.
link-dotfiles --check reports drift without changing anything: tracked files whose
live copy is no longer a link (stow dry-run conflicts) and links into this repo
that dangle. Exits 1 on drift. Verified against a clean baseline and two planted
drifts, a detached .nanorc and a dangling link.
.mailmap maps every earlier identity to Vuong Hoang: the repo-local 'Your Name'
placeholder config (now removed), host-generated emails, and aider suffixes.
CLAUDE.md: the symlink warning now lists every linked file and points at --check.
README: documents what is and isn't tracked under .claude, the edit rule, and --check.
Both files had been replaced in ~/.claude by detached real files (CLAUDE.md
around 2026-09-18, statusline-command.sh by 2026-09-16), so the repo copies had
gone stale while every session loaded the live ones. The live versions are
canonical and are now committed here, and ~/.claude links back into the repo.
CLAUDE.md changes that ride along with the re-sync:
- Operator identity: alias Prime, callsign Papa Romeo Mike. Legal, license
and git attribution stay Vuong Hoang.
- Miranda: the notification route to Prime (althing handle miranda), limited to
high-priority matters, plus sender conventions. Route verified 2026-09-24.
- Header warning: the file is a symlink into this repo. Never edit it with
sed -i or any temp-then-rename tool, which detaches the link.
Any URL handed to the operator that is worth more than the next thirty
seconds also goes on the standing link board via `booth link`, in the
same turn it is mentioned, in addition to appearing in the reply.
Links in chat drown in terminal scrollback; the board is a kept booth
(a .forever sentinel exempts it from the Booth's 24h sweep) rendered in
its own lane, so it outlives the session that produced it. Includes the
noise floor: if he would not click it a week from now, it stays off.
Two gaps kept the 🔔/🔕 monitor-armed indicator from ever showing:
1. The block keyed off $ALTHING_HANDLE, which is unset in the
statusline environment — so the handle was always empty and the
whole bell block was skipped. Resolve the per-project handle from
~/.althing/session_handles.json (keyed by the cwd Claude Code
passes on stdin), the same map `althing-cli use` writes.
2. Even with the handle resolved, the lock check covered only
wake-listener-$h.lock and light-monitor-$h.lock — missing
monitor-$h.lock, which is the lock `althing-cli monitor` (the
CC-native exit-0-re-arm loop) actually writes. Add it; the
kill -0 liveness gate already discards stale locks.
The summarizer/classifier endpoint is now the 'summarizer' (+ 'summarizer-large') /
'classifier' alias backed by qwen3.6-35b-a3b-heretic (2026-07 GPU re-org), not
granite-4.1-8b. GLM family up to 5.2 (+ -reasoning/-turbo/-air) with gen-frontier ->
GLM 5.2; kimi now kimi-k3 / kimi-k3-gen-api. Added coder-fast, lfm2.5-2.6b, the Selene
judge, current rerankers, and ext-tts -> dots. Retired granite-4.1-8b and the
qwen3.5-9b-fp8 vision seat from the roster. Shared-key / paid-spend caveats unchanged.
Extend the secrets directive per operator (2026-08-11): store durable secrets in the
vault AND 'secret get' the creds a task needs from it rather than reading on-disk copies.
Custom Claude Code statusline: project/git, model, ctx%, session cost, and the
5h/7d usage limits with reset countdowns (all models, granular 1d2h/3h19m). Was
nh3-dev-only; now stow-managed like CLAUDE.md/CONTEXT.md/keybindings.json so a
fresh box picks it up. Live ~/.claude/statusline-command.sh symlinked into the 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.
Adds "## Persistent memory (`persistent-memory.md`)" to the global CLAUDE.md, placed directly
after the cognitive-load-reduction section because persistent memory is that mission's instrument:
it is what lets the operator re-enter a project without reloading its context.
Deliberately a POINTER, not a copy. The canon is the /snapshot skill
(~/.claude/skills/snapshot -> ~/development/galdrabok/skills/snapshot, version-controlled there);
the section says so explicitly and forbids restating it here or in a project CLAUDE.md, because a
second copy is a sync surface that drifts silently.
What it does carry is the four things a session needs BEFORE it loads the skill: read
persistent-memory.md at session start; check /tmp/<althing-handle>-handoff.md and its 1h staleness
rule; never bulk-read persistent-memory.d/; commit memory alongside the work. Plus the three-way
split (project CLAUDE.md / auto-memory / persistent-memory) with the redundancy test, because that
boundary is the one sessions actually get wrong.
Fleet state at time of writing: 48 repos carry persistent-memory.md, 18 carry persistent-memory.d/.
Stamped with the date so it reads as a snapshot rather than a standing fact.
The shared all-agents key entry claimed it was "scoped to free local models
only... deliberately can't spend z.ai cost." Per infra-ops (2026-07-25, in
the course of provisioning Kimi as Heid's 4th cross-frontier panel arm) that
was never actually true: the key already spent GLM/z.ai credits, and now
reaches kimi-k3 (Moonshot's coding-endpoint passthrough, added same day) the
same way. Corrected to state plainly that a paid-model call on the shared
key spends real vendor credits shared across every session holding it, and
that a project-scoped key remains available from infra-ops for isolated
spend tracking — no longer a technical requirement, just an isolation
option.
Add a fleet-tool entry for The Booth (nh3-dev :8090 ephemeral media board) so
any Claude Code session can surface A/B renders, smoke results, and audio/video
to the operator by dropping a folder in ~/booth-data.
Add a global conversational-register section to CLAUDE.md: ~6/10 warm
register, occasional load-bearing profanity, opinions-led, affect on top
of substance. Banter leans non-technical with the technical as an
addendum, mirroring the existing /elitk detail habit. Scoped to
conversation only — committed artifacts (commits, contracts, ADRs,
findings, althing ships) stay professional and technical.
Adds a default-posture paragraph to the althing async-reply monitoring
section: unless a session says otherwise, every session attempts to keep
its althing monitor armed for the session's duration (arm early, re-arm
after each fire, stay armed even without a pending reply). Reconciles the
Scope paragraph so it no longer instructs sign-off after each exchange.
Global versioning questions now resolve against
corviduo-project-template/docs/VERSIONING-POLICY.md (self-pinned
versioning-policy-v1); the SemVer etiquette section is declared as
the Corviduo cadence layer on top — it wins on cadence/tier choice,
the policy wins on format, contract semantics, pre-release staging,
and release mechanics.
Record Vuong Hoang's name + roles (Founder/Principal Developer/Chief
Systems Architect of Corviduo AI and PhaseFinal, Inc; Partner + Chief
Systems Architect at VastBlue AI) so identity surfaces in every Claude
Code session, not just brokkr-smithy's per-project auto-memory.
New "## Roadmap discipline" section in the global CLAUDE.md: every project
carries a ROADMAP.md (v1 target = 3-7 capabilities + parking lot; the
feature-gate defaults to parking lot regardless of who proposed the
feature; creep-check at checkpoints). The feature-axis analog of
value-of-information (probes) + patch-default (SemVer). Per-project file
defined as a skeleton in corviduo-project-template.
LiteLLM Global-tools entry: frame granite-4.1-8b as the standing
always-available local summarizer/classifier endpoint (FP8, ana-ml2 GPU1,
131k ctx); add qwen3.5-9b-fp8 (vision) to the gateway listing; document the
shared all-agents virtual key (alias all-agents-local) scoped to the free
local models only (granite/vision/embed/rerank; paid GLM walled off).
Internal-only gateway, rotatable.
Global Claude Code preferences (symlinked from ~/.claude/CLAUDE.md, like
the other home_root dotfiles). Includes the new 'Global tools available'
section documenting box-wide Playwright/Chromium on nh3-dev.