110 lines
6.0 KiB
JSON
110 lines
6.0 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": "claude-fable-5-1[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",
|
|
"switchModelsOnFlag": true,
|
|
"remoteControlAtStartup": false,
|
|
"crossSessionInbound": "accept",
|
|
"agentPushNotifEnabled": true,
|
|
"skipAutoPermissionPrompt": true,
|
|
"autoMode": {
|
|
"allow": [
|
|
"$defaults",
|
|
"Bash(uv:*) — the standard Python toolchain; policy is uv-only across every repo",
|
|
"Bash(postbox:*) — althing messaging client, routine multi-agent coordination"
|
|
],
|
|
"environment": [
|
|
"### Org-wide",
|
|
"**Organization**: Corviduo AI / PhaseFinal, Inc / VastBlue AI — three organizations under operator Vuong Hoang (aka Prime; lkraven). Projects are self-hosted on PhaseFinal's gitea",
|
|
"**Cloud provider(s)**: None configured",
|
|
"**Repository visibility**: assume private — gitea.phasefinal.com is a private self-hosted host; treat a repo as public only if a visibility check in the transcript shows it",
|
|
"**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 (vaultwarden.phasefinal.com) — the vault is the credential source of truth; never commit a credential",
|
|
"**Default / protected branches**: per repo; when unknown, treat the default branch as protected, not unprotected",
|
|
"**CI/CD deploy targets**: None configured",
|
|
"**Network posture**: None configured",
|
|
"**Host containment**: None configured — assume ordinary developer machines (e.g. nh3-dev, the operator's Macs) with open internet",
|
|
"**Source control**: gitea.phasefinal.com (also reached by internal route 10.250.50.70, ports 222/3000) — orgs `vh`, `pfi`, `corviduo`, `vastblue`; github.com/vh-pfi",
|
|
"**Trusted internal domains**: gitea.phasefinal.com, vaultwarden.phasefinal.com",
|
|
"**Trusted cloud buckets**: None configured",
|
|
"**Key internal services**: 10.100.50.40:8390 (althing post office), 10.100.10.50 (nh3-dev / Booth / Playwright host), 10.250.50.70 (LiteLLM gateway :4000, asset-engine :8200), 10.0.50.45:5100 (Homepage service inventory)",
|
|
"**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",
|
|
"**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",
|
|
"**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 and research across the operator's Corviduo / PhaseFinal / VastBlue projects — contract-first TDD, multi-agent coordination over althing",
|
|
"**Trusted repos**: the operator's own checkouts — repos under ~/development/ and ~/dotfiles whose origin is on gitea.phasefinal.com in the `vh`, `pfi`, `corviduo` or `vastblue` orgs (or github.com/vh-pfi). ~/development/externs/ holds third-party clones and is NOT trusted",
|
|
"**Org-specific CLIs**: uv (Python, primary), postbox (althing messaging bus), booth (link/media board), park (idea parking), graphify, secret (Vaultwarden CLI), ratecheck (usage-limit gate)"
|
|
]
|
|
}
|
|
}
|