skills/golem-powers/git-guardian/SKILL.md
Safety gate for destructive git operations. Invoke before force-push, reset --hard, branch -D/delete, checkout ., restore ., clean -f, or any commit/push while on main/master. NOT for: normal git add, commit on feature branches, log, diff, status, stash.
npx skillsauth add etanhey/golems git-guardianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Prevents git footguns by checking blast radius, uncommitted state, and branch safety before any destructive operation.
Invoke this skill when about to run ANY of these:
| Operation | Risk |
|-----------|------|
| git push --force / git push -f | Overwrites upstream history |
| git reset --hard | Destroys local changes permanently |
| git branch -D / git branch -d | May lose unmerged commits |
| git checkout . / git restore . | Destroys uncommitted local changes |
| git clean -f / git clean -fd | Permanently deletes untracked files |
| git rebase on a shared branch | Rewrites shared history |
| Commit or push while on main/master | Pollutes main branch history |
| --no-verify on any command | Bypasses safety hooks |
For every destructive operation, run these checks in order:
git branch --show-current
main or master: STOP. Do not proceed with force-push, reset --hard, or unprotected commits. Redirect to a feature branch.git pull --rebase and git merge are safe on main.git status --short
git stash list
Before executing, show:
⚠️ Git Guardian — [OPERATION] on [BRANCH]
Commits to be lost: [N commits, with short hashes + messages]
Files to be lost: [list of modified/untracked files]
Branch status: [merged | UNMERGED — N commits only here]
Upstream: [N commits ahead/behind origin/branch]
Proceed? [y/N]
Only proceed after explicit user confirmation — or if user explicitly says "yes, proceed", "force it", "I know".
--force / -f)main/master unconditionally.git log origin/<branch>..HEAD --oneline to show what will be overwritten.--force-with-lease as a workaround to silently bypass this check.reset --hard)git log HEAD~<N>..HEAD --oneline to list commits being dropped.git status --short to show uncommitted work that will be lost.-D / -d)git branch --merged to check if the branch is merged.git reflog.". or path)-f)git clean -n (dry run) to list files that would be deleted..env* or secret-looking files prominently.main/mastermain or master.git checkout -b feat/<name>"--no-verify--no-verify.main/master under any circumstances.--no-verify to bypass hooks./pr-loop step 5 — git-guardian's branch check is a prerequisite to commit; pr-loop handles CodeRabbit review./pr-loop — calls git-guardian before any force-push during rebase/fixup cycle.git worktree — worktrees always operate on non-main branches; git-guardian still applies for reset/clean inside worktrees.tools
The human-eval UX contract for Phoenix views: turn-by-turn scrollable replay (not a scorecard), hide-but-copyable IDs, collapsed thinking, identity chips, tool filters, tiny frozen starter datasets, mark-wrong-in-thread, mobile-first. Use when: building or reviewing ANY Phoenix/eval view, annotation UI, session replay, or human-grading surface. Triggers: phoenix view, eval UI, annotation view, session replay, human eval UX, grading interface. NOT for: Phoenix data pipelines/ingest (capture scripts have their own specs).
tools
macOS systems specialist — AppKit NSPanel architecture, launchd services, socket activation, MCP bridge resilience, syspolicyd, and high-frequency SwiftUI dashboards. Use when building menu-bar apps, LaunchAgents, debugging syspolicyd/Gatekeeper/TCC, resilient UDS/MCP bridges, or SwiftUI dashboards at 10Hz+.
development
Bulk LLM-judging protocol for fleet-dispatched verdict runs (KG cluster, eval harness). Use when: dispatching or running judge workers (J1/J2/RT), planning bulk-apply from verdict JSONL, or triaging evidence_degraded outputs. Triggers: judge fleet, bulk judge, R3 verdicts, kg-judge, RT gate, evidence_degraded. NOT for: single-item code review, Phoenix view UX (use phoenix-human-view), or non-judge eval pipelines.
development
Quiet-down protocol for sprint close: when the fleet wraps, delete ALL polling crons and monitors, send ONE final dashboard + ONE message, then go SILENT. Use when: fleet wraps, all workers done, overnight queue exhausted, sprint close, Etan asleep/away with nothing approved left. Triggers: fleet wrap, wrap the fleet, stand down, going quiet, sprint close. NOT for: mid-sprint monitoring (keep your loops), spawning a successor (use /session-handoff first).