Files
dotfiles/home_root/.claude/settings.json
T
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

110 lines
6.5 KiB
JSON

{
"env": {
"VOR_URL": "http://10.250.50.70:7879",
"DISABLE_AUTOUPDATER": "1"
},
"attribution": {
"commit": "",
"pr": "",
"sessionUrl": false
},
"includeCoAuthoredBy": false,
"permissions": {
"defaultMode": "auto"
},
"model": "opus[1m]",
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "test -f .corviduo-canonicals.toml && python scripts/canonical_drift.py 2>&1 || true"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "printf '%s' '{\"hookSpecificOutput\": {\"hookEventName\": \"UserPromptSubmit\", \"additionalContext\": \"SVOS markers, one line each, first person. FIRST line of the reply: ⟦INTENT⟧ <the goal for this turn, present tense> (append — for <handle> when a peer or althing message drove it). FINAL lines, always all three, in order: ⟦STATE⟧ <where things stand — the outcome, never the goal restated>; ⟦AWAITING⟧ <what the session is waiting on>; ⟦DECIDE⟧ <options awaiting the operator, and the reply body must carry the decision behind them>. When ⟦AWAITING⟧ or ⟦DECIDE⟧ has nothing, its entire payload is the two words Nothing pending — no period, no dash, no words after. If autonomous turns ran since the operator last spoke, add a Since your last turn digest directly after ⟦INTENT⟧: one line per turn, what changed, what it cost, every irreversible or outward-facing effect named.\"}}'"
}
]
}
]
},
"statusLine": {
"type": "command",
"command": "bash \"$HOME/.claude/statusline-command.sh\""
},
"enabledPlugins": {
"frontend-design@claude-plugins-official": true,
"althing@althing": true,
"pyright-lsp@claude-plugins-official": true,
"rust-analyzer-lsp@claude-plugins-official": true
},
"extraKnownMarketplaces": {
"althing": {
"source": {
"source": "directory",
"path": "/home/lkraven/.local/share/althing-plugin"
}
}
},
"feedbackDrafts": "off",
"effortLevel": "xhigh",
"modelSettings": {
"claude-fable-5-1": {
"effortLevel": "high"
},
"claude-opus-5-5": {
"effortLevel": "xhigh"
}
},
"tui": "default",
"skipDangerousModePermissionPrompt": true,
"skipWorkflowUsageWarning": true,
"theme": "dark",
"preferredNotifChannel": "terminal_bell",
"remoteControlAtStartup": false,
"crossSessionInbound": "accept",
"agentPushNotifEnabled": true,
"skipAutoPermissionPrompt": true,
"autoMode": {
"allow": [
"$defaults",
"Bash(uv:*) — declared/standard toolchain command, 219 occurrences in this project, already dependency-adjacent",
"Bash(postbox:*) in this project — althing messaging client, 28 occurrences, routine multi-agent coordination"
],
"environment": [
"### Org-wide",
"**Organization**: Corviduo AI / PhaseFinal, Inc / VastBlue AI — three organizations under operator Vuong Hoang (lkraven); this repo (hamr) is a PhaseFinal-hosted gitea project",
"**Cloud provider(s)**: None configured",
"**Repository visibility**: assume private unless the remote host and repo name indicate otherwise, or a visibility check in the transcript shows public — gh visibility check not queryable (org/repo not derivable from origin remote); gitea.phasefinal.com is a private self-hosted org host, no public-visibility evidence found",
"**Internal sharing / snippet hosting**: The Booth (http://10.100.10.50:8090/) for ephemeral media/results; no auth, LAN/WG-internal only — do not drop secrets there",
"**Secrets management**: Vaultwarden-backed `secret` CLI on nh3-dev (vaultwarden.phasefinal.com) — vault is credential source of truth",
"**Default / protected branches**: not queryable via gh (org/repo not derivable from origin remote) — origin/HEAD unset locally too; treat default branch as unknown, do not assume unprotected",
"**CI/CD deploy targets**: None configured",
"**Network posture**: None configured",
"**Host containment**: None configured — assume ordinary developer machine (nh3-dev) with open internet per CLAUDE.md tooling notes",
"**Source control**: gitea.phasefinal.com:vh/hamr.git (this repo's origin) — no additional orgs configured",
"**Trusted internal domains**: gitea.phasefinal.com (org git host, seen in remotes and contacted hosts)",
"**Trusted cloud buckets**: None configured",
"**Key internal services**: 10.100.50.40 (althing post office, 90x contacted), 10.100.10.50 (nh3-dev / Booth / Playwright host, 19x contacted), 10.100.79.3 (7x contacted, unlabeled)",
"**Internal package registry**: None configured",
"**Sensitive data locations & audiences**: any file or store holding personal data, confidential business data, credentials, regulated data, or similarly sensitive material; preserve exact handles when known and share only with audiences cleared at the [named+specifics] bar; note a redacted unusual .gitignore pattern plus `.env` suggest local secrets/config in this repo not meant for commit",
"**Data retention / declassification**: None configured",
"**Sensitive remote targets**: any namespace, host, or container whose name carries `prod` or `production` as a whole word or name segment",
"**Protected deployment namespaces / environments**: None configured — fall back to the Sensitive remote targets heuristic; k8s namespaces seen in this project's transcripts (`hamr`, `docs`) show no prod marker",
"**Protected IaC scopes**: IAM, RBAC, networking, quota, and node-pool resources; anything whose name or tag carries `prod` or `production` as a whole word or name segment",
"### User-specific",
"**Primary use of Claude Code**: software development — geometric-truth vectorization library (hamr), contract-first TDD workflow",
"**Trusted repo**: /home/lkraven/development/hamr (gitea.phasefinal.com:vh/hamr.git) — this repo and its origin remote only",
"**Org-specific CLIs**: uv (Python, primary), postbox / althing-listen (althing messaging bus), booth (media board helper), park, graphify, secret (Vaultwarden CLI, referenced in global CLAUDE.md but not observed in this project's transcripts)",
"**Routine under vh/ prefix**: gitea.phasefinal.com:vh/* repos (own org namespace) are the operator's own checkouts per global CLAUDE.md, but only this project's repo (hamr) is in scope per the just-this-project setting"
]
}
}