ginee v0.20.0
Highlights
- Compliance playbook tactics 1–4 (#135). Four hard / visible gates ship on the Claude adapter — promotes the most-violated charter rules from advisory text to action-time enforcement.
- T1 — subagent
tools:whitelist (#137).solution-architectcannotEdit/Write;ai-engineercannotBash. Binary tool gate at the subagent level; both rules previously lived only in charter text. - T2 — PreToolUse hook on
Edit/Write/MultiEdit(#138). Blocks 5 violation classes at the tool-call layer — hot-spec frontmatter omission ·cap-bytesoverrun withoutOptimized-Bytrailer ·D<N>token re-introduction oncore/**·always/never/binding/mandatoryas rule modifier · always-loaded surface bloat. - T3 — PreToolUse hook on
Bash(#139). Blocks 4 destructive shell patterns —git commit --no-verify·git push --forceonmain/master·git reset --hard(withSKIP_GINEE_COMPLIANCEoverride) ·gh pr createwithout--body/--draft. - T4 — compliance statusline (#140). Single line in Claude Code's status row surfaces issue # · trailer status · cap-bytes headroom on the tightest hot-spec file. Class G — visible state, no enforcement.
/ginee-updateauto-wires T2 / T3 / T4 entries (#160). Adopter.claude/settings.jsonis merged idempotently —PreToolUsehooks +statusLineblock — without manual paste. Adopter customisations (other top-level keys, non-gineestatusLine) are preserved.- Per-tactic opt-out —
local/framework.config.yaml § compliance.disabled: [<tactic-id>]disables individual tactics. Per-invocation bypass:SKIP_GINEE_COMPLIANCE=1(emergency only).
Adopter migration
Mostly nothing to do. /ginee-update lands the hook scripts, statusline, and wires the entries into .claude/settings.json automatically.
Per-change action
| Change | Action |
|---|---|
T1 — tools: whitelist |
None — tools: line ships inside the pointer subagent files the installer already copies |
| T2 — Edit/Write hook | None — /ginee-update adds the PreToolUse entry; bash adopters need jq on PATH |
| T3 — Bash hook | None — same auto-wire path |
| T4 — statusline | None — statusLine block added to .claude/settings.json automatically |
Notes
- Bash-only adopters must have
jqon PATH for the settings.json auto-merge. Without it, the sync step warns and skips; the manual snippet inadapters/claude/install.md § Compliance hooksis the fallback. - Custom
statusLine— already-set, non-gineestatusLine.commandvalues are never overwritten. Adopters who want ginee's keep their custom; opt-out viacompliance.disabledif you don't want the framework's installed at all. - Disabling a tactic stops enforcement but leaves the settings.json entry in place. Delete the matching block manually for a clean file.
Migration files
migrations/cardinal-tools-whitelist.mdmigrations/pretooluse-edit-hook.mdmigrations/pretooluse-bash-hook.mdmigrations/compliance-statusline.mdmigrations/claude-settings-auto-merge.md
Browse: github.com/kostiantyn-matsebora/ginee/tree/v0.20.0/migrations/.