AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
可追溯性和策略門,用於 AI 代理編碼會話,存儲在您已有的 git 中。
AI 翻譯
Provenance and a policy gate for AI-agent coding sessions, stored in the git you already have.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Provenance and a policy gate for AI-agent coding sessions, stored in the git you already have.
Who made this change, what were they trying to do, and was it allowed? For code written with AI agents, git alone cannot answer. gitvow makes it answer.檢視完整 README ↗Provenance and a policy gate for AI-agent coding sessions, stored in the git you already have.
Who made this change, what were they trying to do, and was it allowed? For code written with AI agents, git alone cannot answer. gitvow makes it answer.
Standard-library Python and git. No runtime dependencies, no network calls, no telemetry.
pip install gitvow
gitvow install --user
gitvow selftest
Work in Claude Code as usual. When the agent commits:
$ git log -1 --format=%B
Fix week-start cache key
Gitvow-Session: 8f3d5c71-574a-4eec-8903-9425e3a8335b
Gitvow-Step: 4
$ gitvow show HEAD
...
gitvow-session
{
"step": 4,
"tools_used": ["Bash", "Edit", "Read"],
"last_stated_plan": "Change the cache key to include week start so per-org settings do not collide...",
"files_in_commit": ["query-engine/.../QueryCacheHelper.java | 4 +++-"],
"files_written_by_agent_this_session": ["query-engine/.../QueryCacheHelper.java"],
"attribution": {"files_in_commit": 1, "touched_by_agent": 1}
}
Try the gate by hand:
gitvow check -- git push --force # DENY: force push
gitvow check -- kubectl apply -f x.yaml # CONFIRM: cluster apply
gitvow check --path core/authz_rules.go # CONFIRM: edits an authorization or gate file
Remove everything:
gitvow uninstall --user
The docs site is the source of truth: https://wirevow.dev/gitvow (built from docs/).
Claude Code ──hook──▶ gitvow hook PreToolUse ──▶ policy ──▶ allow / confirm / deny (exit 0 / 2 / 2)
──hook──▶ gitvow hook PostToolUse ─▶ on `git commit`: read transcript → redact → git notes add
Claude Code ──hook──▶ gitvow hook UserPromptSubmit ▶ first line of the first message → redact → the session's intent
git commit ──prepare-commit-msg──▶ Gitvow-Session / Gitvow-Step / Gitvow-Intent trailers (from .git/gitvow-session.json)
Claude Code ──hook──▶ gitvow hook Stop ─────────▶ ~/.gitvow/ledger/<session>.json
| Data | Where | Enters git? |
|---|---|---|
| session id, step, intent (one redacted line in the person's words) | commit trailers | yes |
| session note (structure, redacted plan, attribution) | refs/notes/sessions | as a note; local until pushed |
| ledger, hook log, session state | ~/.gitvow/, <repo>/.git/ | no |
| transcript | untouched | never; gitvow sessions export, typed by a person, can hand it complete to a store your organisation runs |
0.1.0. Used in a small internal trial; the roadmap lists what comes next and what is deliberately not planned. Claude Code is the only agent supported today; the hook payload is documented so adapters are straightforward.
See CONTRIBUTING.md and SECURITY.md. Reproductions of redaction gaps must use synthetic secrets.
Apache-2.0.