skills/git-workflow/SKILL.md
Use when running claudikins-kernel:execute, decomposing plans into tasks, setting up two-stage review, deciding batch sizes, or handling stuck agents — enforces isolation, verification, and human checkpoints; prevents runaway parallelization and context death
npx skillsauth add elb-pr/claudikins-kernel git-workflowInstall 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.
Use this skill when you need to:
claudikins-kernel:execute command"I'd use 5-7 agents per SESSION, not 30 per batch." - Boris
Execution is about isolation, verification, and human checkpoints. Not speed.
context: fork gives a clean slateWrong: 30 agents for 10 tasks (3 per task micro-management) Right: 5-7 agents total (feature-level batches)
| Scenario | Wrong | Right | | -------------------- | -------------------------- | ------------------ | | 10 tasks, 5 features | 30 micro-task agents | 5-7 feature agents | | Simple refactor | 10 agents for tiny changes | 1-2 feature agents |
Default --batch 1 is correct. Features are the unit of work.
From a plan, extract tasks that are:
| Quality | Definition | Example | | --------------- | ---------------------------------------------- | --------------------------------------------- | | Atomic | Completable in one agent session | "Add auth middleware" not "Build auth system" | | Testable | Has measurable acceptance criteria | "Returns 401 for invalid token" | | Independent | Minimal dependencies on other tasks | Can be reviewed in isolation | | Right-sized | Not too small (noise) or large (context death) | 50-200 lines of changes |
See task-decomposition.md for patterns.
Two reviewers with different jobs. Never skip either.
Question: "Did it do what was asked?"
Checks:
Output: PASS or FAIL with line references.
Question: "Is it well-written?"
Checks:
Output: PASS or CONCERNS with confidence scores.
See review-criteria.md for detailed checklists.
This is non-negotiable. Violations here break the entire workflow.
After EVERY task completes, you MUST spawn BOTH reviewer agents:
Task(spec-reviewer, {...})Task(code-reviewer, {...}) (if spec passes)| Allowed | NOT Allowed |
|---------|-------------|
| Task(spec-reviewer, { prompt: "...", context: "fork" }) | Inline spec check by orchestrator |
| Task(code-reviewer, { prompt: "...", context: "fork" }) | "I'll just verify the code looks good" |
| Waiting for agent output JSON | Making your own compliance table |
| Reading from .claude/reviews/spec/ | Skipping because "it's a simple task" |
If you find yourself doing ANY of these, you are VIOLATING the methodology:
The orchestrator does NOT review. The orchestrator SPAWNS reviewers.
Before ANY merge decision can be offered to the user:
□ .claude/reviews/spec/{task_id}.json EXISTS for each task
□ .claude/reviews/code/{task_id}.json EXISTS for each task
□ Both files contain valid JSON with "verdict" field
□ spec-reviewer verdict is PASS (or user override documented)
If ANY file is missing: DO NOT proceed to merge. You skipped the review.
What happens when reviewers return their verdicts:
| Spec Result | Code Result | Action | | ----------- | ----------- | ------------------------------------------------ | | PASS | PASS | Offer [Accept] [Revise anyway] | | PASS | CONCERNS | Offer [Accept with caveats] [Fix] [Klaus review] | | FAIL | * | Always [Revise] or [Retry] |
See review-conflict-matrix.md for edge cases.
All tasks in batch complete?
├── No → Wait for remaining
└── Yes →
All reviews pass?
├── No →
│ Retry count < 3?
│ ├── Yes → Retry failed tasks
│ └── No → Escalate to Klaus or human
└── Yes →
Present results to human
└── Human decides: [Accept] [Revise] [Retry]
See batch-patterns.md for decision trees.
Agents under pressure find excuses. These are all violations:
| Excuse | Reality |
| ------------------------------------------ | ------------------------------------------------------------------- |
| "30 agents is fine, tasks are independent" | More agents = more chaos. 5-7 per session, features as units. |
| "I'll just checkout main to compare" | Agents don't own git. Use git show main:file instead. |
| "Skip spec review, code looks correct" | Spec review catches scope creep. Never skip. |
| "I'll do the review myself, it's simple" | Spawn the reviewer agents. Inline reviews are VIOLATIONS. |
| "Both passed, auto-merge is safe" | Human checkpoint required. Always. |
| "Context is fine, I'll continue" | ACM at 60% = checkpoint offer. 75% = mandatory stop. |
| "This tiny task doesn't need a branch" | One task = one branch. No exceptions. Isolation prevents pollution. |
| "Retry limit is just a guideline" | 2 retries then escalate. Infinite retry = infinite waste. |
| "I'll merge my changes when done" | Commands own merge. You own implementation. Stay in your lane. |
All of these mean: Follow the methodology. Speed is not the goal.
If you're thinking any of these, you're about to violate the methodology:
All of these mean: STOP. Commands own git. Humans own checkpoints. Reviewers own reviews. You own orchestration.
Things go wrong. Here's how to handle them.
If the capture hook fails, agent output is lost.
Pattern: Write to backup location first, then move to primary.
# Always backup first
echo "$OUTPUT" > "$BACKUP_DIR/agent-$(date +%s).json"
# Then move to primary
mv "$BACKUP_DIR/..." "$PRIMARY"
Agents sometimes produce invalid JSON.
Pattern: Validate required fields before accepting.
REQUIRED='["task_id", "status"]'
jq -e "all($REQUIRED[]; has(.))" "$OUTPUT" || exit 2
Agents need to know where to work.
Pattern: Export directory as environment variable in SubagentStart hook.
export TASK_BRANCH_DIR="$PROJECT_DIR"
export TASK_BRANCH_NAME="execute/task-${TASK_ID}-${SLUG}"
Opus gets rate limited more than Sonnet.
Pattern: Offer fallback options to human.
Agent runs out of context before finishing.
Pattern: Output partial state and mark as resumable.
{
"status": "partial",
"files_changed": ["completed work..."],
"next_steps": ["what remains..."],
"checkpoint_hash": "sha256:..."
}
Task Y depends on Task X. Task X fails. What happens to Y?
See dependency-failure-chains.md.
Two tasks accidentally get the same branch name.
See branch-collision-detection.md.
The git-branch-guard hook blocks something it shouldn't.
See branch-guard-recovery.md.
Validating batch sizes before execution starts.
See batch-size-verification.md.
Recovering orphaned branches from crashed sessions.
See task-branch-recovery.md.
Preventing cascading failures when operations fail repeatedly.
Pattern: Track failure rate. If threshold exceeded, "open" the circuit - fail fast without attempting.
Circuit: agent_spawn
State: OPEN (3 failures in 60s)
Reset in: 30 seconds
[Wait for reset] [Force close] [Skip operation]
See circuit-breakers.md.
Debugging execution graphs and understanding what happened.
Pattern: Record spans for each operation. Visualise as waterfall or dependency graph.
Trace: exec-session-xyz
├── batch_1 (45s)
│ ├── task-1 (20s) ✓
│ └── task-2 (25s) ✓
└── batch_2 (60s)
└── task-3 (60s) ✓
Critical path: batch_1 → batch_2
See execution-tracing.md.
| Signal | Threshold | Response | | --------------------- | ----------------------------- | ------------------- | | Tool call flooding | 20 calls without file changes | Warning, then Klaus | | Time without progress | 10 minutes | Warning, then Klaus | | Repeated failures | Same error 3x | Pause, offer Klaus | | Context burn rate | ACM at 60% | Checkpoint offer | | Review timeout | 5 minutes per reviewer | Offer [Wait] [Skip] |
Don't do these:
Full documentation in this skill's references/ folder:
development
Use when running claudikins-kernel:verify, checking implementation quality, deciding pass/fail verdicts, or enforcing cross-command gates — requires actual evidence of code working, not just passing tests
development
Use when running claudikins-kernel:ship, preparing PRs, writing changelogs, deciding merge strategy, or handling CI failures — enforces GRFP-style iterative approval, code integrity validation, and human-gated merges
testing
Use when running claudikins-kernel:outline, brainstorming implementation approaches, gathering requirements iteratively, structuring complex technical plans, or facing analysis paralysis with too many options — provides iterative human-in-the-loop planning with explicit checkpoints and trade-off presentation
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".