28 Commits
Author SHA1 Message Date
vh 454b0c0e8e claude.md: mark the Sleipnir AFK dispatch shape retired (2026-07-22)
/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.
2026-09-25 07:17:07 -07:00
vh 59458f40ce feat: claude-memory-sync — back up Claude Code auto-memory to its own private repo
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.
2026-09-24 10:56:09 -07:00
vh fe63a67672 claude.md: standing convention — clock times are military 24-hour, operator's local time (0946) 2026-09-24 09:58:49 -07:00
vh bccaea38ef claude: make the user-level autoMode environment generic instead of hamr-scoped
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.
2026-09-24 09:10:04 -07:00
vh 7b16be02bf feat: fold in the portable Claude Code, zsh and git config; add a drift check
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.
2026-09-24 09:07:16 -07:00
Your Name 0b409689b7 claude: re-sync CLAUDE.md and statusline-command.sh from live and restore the symlinks
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.
2026-09-24 08:56:51 -07:00
Your Name 1c88b07da0 claude.md: Miranda (chief of staff) may relay operator directives 2026-09-24 08:56:51 -07:00
Your Name 5223190bcb claude: standing convention — post operator-facing links to the Booth link board
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.
2026-09-24 08:56:51 -07:00
Your Name 7166e01c2e CLAUDE.md: gen/summarizer seat is now qwen3.8-27b-uncensored (gen-seat/vllm-gen) 2026-09-24 08:56:51 -07:00
Your Name da763fc889 fix(statusline): render the althing monitor bell reliably
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.
2026-09-24 08:56:51 -07:00
Your Name f9ccfda7c3 docs(claude.md): refresh LiteLLM gateway LLM roster to the live gateway
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.
2026-08-13 22:43:56 -07:00
Your Name 9db703b7da claude: vault is the credential source of truth — pull creds FROM it too, not just store
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.
2026-08-11 21:43:41 -07:00
Your Name 18853bff77 claude: track statusline-command.sh in the stow tree
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.
2026-08-11 17:24:16 -07:00
Your Name bdf42bbbcf claude: add secret/Vaultwarden credential-store tool + store-durable-creds directive 2026-08-11 16:44:51 -07:00
Your Name 917aaae6cc 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.
2026-08-06 18:17:52 -07:00
Your Name c7a3ecea33 claude: add the Persistent memory section — point at the /snapshot canon, don't restate it
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.
2026-08-06 18:17:37 -07:00
Your Name 3d742fb56b chore(claude): SemVer section → release-only tagging (retire per-commit bump+tag; align with canonical VERSIONING-POLICY) 2026-07-31 21:55:01 -07:00
Your Name 6d28be6220 claude/tools: correct shared LiteLLM key scope + add kimi-k3 gateway model
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.
2026-07-31 21:55:01 -07:00
Your Name 45845a353e docs(claude): add legality & fair-use judgment section 2026-07-31 21:55:01 -07:00
Your Name 8a14d20d92 docs(claude): register The Booth under Global tools available
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.
2026-07-31 21:55:01 -07:00
Your Name af701c05cf claude: add conversational register / personality directive
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.
2026-07-17 21:35:30 -07:00
Your Name 482305224b claude: keep althing monitor armed by default per session
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.
2026-07-17 21:35:30 -07:00
Your Name 1a2aa4f444 claude: record operator ruling — pre-1.0 milestone minors stay legal
The tier-bar's non-breaking milestone-minor examples override
VERSIONING-POLICY.md § 4's strict reading (pre-1.0 minor = breaking
only). Ruled 2026-07-02; settled.
2026-07-02 13:48:04 -07:00
Your Name 26143c4a74 claude: point SemVer etiquette at canonical VERSIONING-POLICY.md
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.
2026-07-02 13:48:04 -07:00
Your Name 9883a7c11d claude: add Operator identity section to global CLAUDE.md
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.
2026-06-21 10:52:24 -07:00
Your Name c2eafe08d8 claude: add roadmap discipline (v1 target + parking lot, anti-creep)
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.
2026-06-15 13:18:56 -07:00
Your Name 1045fdf9ad claude/tools: granite-4.1-8b always-available summarizer/classifier + shared gateway key
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.
2026-06-15 13:18:56 -07:00
Your Name afb8552d37 add ~/.claude/CLAUDE.md as a managed dotfile
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.
2026-06-15 13:18:56 -07:00