{"id":"a4953a38-f0b3-4008-af4c-c0aedfb7206a","shortId":"3e2bx5","kind":"skill","title":"git-workflow","tagline":"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","description":"# Git Workflow Methodology\n\n## When to use this skill\n\nUse this skill when you need to:\n\n- Run the `claudikins-kernel:execute` command\n- Decompose plans into executable tasks\n- Set up two-stage code review\n- Decide batch sizes and checkpoints\n- Handle stuck agents or failed tasks\n\n## Core Philosophy\n\n> \"I'd use 5-7 agents per SESSION, not 30 per batch.\" - Boris\n\nExecution is about isolation, verification, and human checkpoints. Not speed.\n\n### The Six Principles\n\n1. **One task = one branch** - Isolation prevents pollution\n2. **Fresh context per task** - `context: fork` gives a clean slate\n3. **Two-stage review** - Spec compliance first, then code quality\n4. **Human checkpoints between batches** - Not between individual tasks\n5. **Commands own git** - Agents never checkout/merge/push\n6. **Features are the unit** - Batch at feature level, not task level\n\n### Batch Size Guidance (GOSPEL)\n\n**Wrong:** 30 agents for 10 tasks (3 per task micro-management)\n**Right:** 5-7 agents total (feature-level batches)\n\n| Scenario             | Wrong                      | Right              |\n| -------------------- | -------------------------- | ------------------ |\n| 10 tasks, 5 features | 30 micro-task agents       | 5-7 feature agents |\n| Simple refactor      | 10 agents for tiny changes | 1-2 feature agents |\n\nDefault `--batch 1` is correct. Features are the unit of work.\n\n## Task Decomposition\n\nFrom a plan, extract tasks that are:\n\n| Quality         | Definition                                     | Example                                       |\n| --------------- | ---------------------------------------------- | --------------------------------------------- |\n| **Atomic**      | Completable in one agent session               | \"Add auth middleware\" not \"Build auth system\" |\n| **Testable**    | Has measurable acceptance criteria             | \"Returns 401 for invalid token\"               |\n| **Independent** | Minimal dependencies on other tasks            | Can be reviewed in isolation                  |\n| **Right-sized** | Not too small (noise) or large (context death) | 50-200 lines of changes                       |\n\nSee [task-decomposition.md](references/task-decomposition.md) for patterns.\n\n## Review Stages\n\nTwo reviewers with different jobs. Never skip either.\n\n### Stage 1: Spec Compliance (spec-reviewer, opus)\n\n**Question:** \"Did it do what was asked?\"\n\nChecks:\n\n- All acceptance criteria addressed?\n- Any scope creep (features not in spec)?\n- Any missing requirements?\n\nOutput: `PASS` or `FAIL` with line references.\n\n### Stage 2: Code Quality (code-reviewer, opus)\n\n**Question:** \"Is it well-written?\"\n\nChecks:\n\n- Consistency with codebase style\n- Error handling\n- Edge cases\n- Naming clarity\n- Unnecessary complexity\n\nOutput: `PASS` or `CONCERNS` with confidence scores.\n\nSee [review-criteria.md](references/review-criteria.md) for detailed checklists.\n\n## Review Enforcement (MANDATORY)\n\n**This is non-negotiable. Violations here break the entire workflow.**\n\n### The Iron Rule\n\nAfter EVERY task completes, you MUST spawn BOTH reviewer agents:\n\n1. **spec-reviewer** - Spawned via `Task(spec-reviewer, {...})`\n2. **code-reviewer** - Spawned via `Task(code-reviewer, {...})` (if spec passes)\n\n### What \"MUST spawn\" Means\n\n| Allowed | NOT Allowed |\n|---------|-------------|\n| `Task(spec-reviewer, { prompt: \"...\", context: \"fork\" })` | Inline spec check by orchestrator |\n| `Task(code-reviewer, { prompt: \"...\", context: \"fork\" })` | \"I'll just verify the code looks good\" |\n| Waiting for agent output JSON | Making your own compliance table |\n| Reading from `.claude/reviews/spec/` | Skipping because \"it's a simple task\" |\n\n### Inline Reviews Are VIOLATIONS\n\nIf you find yourself doing ANY of these, you are VIOLATING the methodology:\n\n- Creating a \"Spec Compliance Check\" table yourself\n- Writing \"Verdict: PASS\" without spawning an agent\n- Saying \"Let me verify the implementation meets criteria\"\n- Checking acceptance criteria in a loop instead of delegating\n\n**The orchestrator does NOT review. The orchestrator SPAWNS reviewers.**\n\n### Pre-Merge Checklist (HARD GATE)\n\nBefore ANY merge decision can be offered to the user:\n\n```\n□ .claude/reviews/spec/{task_id}.json EXISTS for each task\n□ .claude/reviews/code/{task_id}.json EXISTS for each task\n□ Both files contain valid JSON with \"verdict\" field\n□ spec-reviewer verdict is PASS (or user override documented)\n```\n\nIf ANY file is missing: **DO NOT proceed to merge. You skipped the review.**\n\n### Why This Matters\n\n1. **Consistency** - Every task gets the same rigor, not \"looks simple, I'll check it\"\n2. **Auditability** - Review outputs are artifacts, not orchestrator judgments\n3. **Separation of concerns** - Orchestrator orchestrates, reviewers review\n4. **No rationalization** - You can't convince yourself your inline check is \"good enough\"\n\n## Verdict Matrix\n\nWhat happens when reviewers return their verdicts:\n\n| Spec Result | Code Result | Action                                           |\n| ----------- | ----------- | ------------------------------------------------ |\n| PASS        | PASS        | Offer [Accept] [Revise anyway]                   |\n| PASS        | CONCERNS    | Offer [Accept with caveats] [Fix] [Klaus review] |\n| FAIL        | \\*          | Always [Revise] or [Retry]                       |\n\nSee [review-conflict-matrix.md](references/review-conflict-matrix.md) for edge cases.\n\n## Batch Checkpoint Flow\n\n```\nAll tasks in batch complete?\n├── No → Wait for remaining\n└── Yes →\n    All reviews pass?\n    ├── No →\n    │   Retry count < 3?\n    │   ├── Yes → Retry failed tasks\n    │   └── No → Escalate to Klaus or human\n    └── Yes →\n        Present results to human\n        └── Human decides: [Accept] [Revise] [Retry]\n```\n\nSee [batch-patterns.md](references/batch-patterns.md) for decision trees.\n\n## Rationalizations to Resist\n\nAgents under pressure find excuses. These are all violations:\n\n| Excuse                                     | Reality                                                             |\n| ------------------------------------------ | ------------------------------------------------------------------- |\n| \"30 agents is fine, tasks are independent\" | More agents = more chaos. 5-7 per session, features as units.       |\n| \"I'll just checkout main to compare\"       | Agents don't own git. Use `git show main:file` instead.             |\n| \"Skip spec review, code looks correct\"     | Spec review catches scope creep. Never skip.                        |\n| \"I'll do the review myself, it's simple\"   | Spawn the reviewer agents. Inline reviews are VIOLATIONS.           |\n| \"Both passed, auto-merge is safe\"          | Human checkpoint required. Always.                                  |\n| \"Context is fine, I'll continue\"           | ACM at 60% = checkpoint offer. 75% = mandatory stop.                |\n| \"This tiny task doesn't need a branch\"     | One task = one branch. No exceptions. Isolation prevents pollution. |\n| \"Retry limit is just a guideline\"          | 2 retries then escalate. Infinite retry = infinite waste.           |\n| \"I'll merge my changes when done\"          | Commands own merge. You own implementation. Stay in your lane.      |\n\n**All of these mean: Follow the methodology. Speed is not the goal.**\n\n## Red Flags — STOP and Reassess\n\nIf you're thinking any of these, you're about to violate the methodology:\n\n- \"Let me just run git checkout...\"\n- \"30 tasks, 30 agents, maximum parallelism\"\n- \"Review passed, no need for human checkpoint\"\n- \"Context is getting tight but I can finish\"\n- \"This is simple, don't need isolation\"\n- \"I'll merge it myself\"\n- \"Retry limit doesn't apply here\"\n- \"Spec review is redundant if code review passes\"\n- \"Let me verify the implementation meets criteria\" (SPAWN THE AGENT)\n- \"I'll create a quick compliance table\" (SPAWN THE AGENT)\n\n**All of these mean: STOP. Commands own git. Humans own checkpoints. Reviewers own reviews. You own orchestration.**\n\n## Robustness Patterns\n\nThings go wrong. Here's how to handle them.\n\n### SubagentStop Hook Failure (A-6)\n\nIf the capture hook fails, agent output is lost.\n\n**Pattern:** Write to backup location first, then move to primary.\n\n```bash\n# Always backup first\necho \"$OUTPUT\" > \"$BACKUP_DIR/agent-$(date +%s).json\"\n# Then move to primary\nmv \"$BACKUP_DIR/...\" \"$PRIMARY\"\n```\n\n### Malformed JSON Output (A-7)\n\nAgents sometimes produce invalid JSON.\n\n**Pattern:** Validate required fields before accepting.\n\n```bash\nREQUIRED='[\"task_id\", \"status\"]'\njq -e \"all($REQUIRED[]; has(.))\" \"$OUTPUT\" || exit 2\n```\n\n### Task Branch Directory Export (A-8)\n\nAgents need to know where to work.\n\n**Pattern:** Export directory as environment variable in SubagentStart hook.\n\n```bash\nexport TASK_BRANCH_DIR=\"$PROJECT_DIR\"\nexport TASK_BRANCH_NAME=\"execute/task-${TASK_ID}-${SLUG}\"\n```\n\n### Model Rate Limiting (A-10)\n\nOpus gets rate limited more than Sonnet.\n\n**Pattern:** Offer fallback options to human.\n\n1. Notify: \"Opus rate limited. Options:\"\n2. Offer: [Wait 60s] [Use Sonnet fallback] [Abort]\n3. If fallback, add caveat to review output\n\n### Context Exhaustion Mid-Task (A-11)\n\nAgent runs out of context before finishing.\n\n**Pattern:** Output partial state and mark as resumable.\n\n```json\n{\n  \"status\": \"partial\",\n  \"files_changed\": [\"completed work...\"],\n  \"next_steps\": [\"what remains...\"],\n  \"checkpoint_hash\": \"sha256:...\"\n}\n```\n\n### Dependency Failure Chains (S-7)\n\nTask Y depends on Task X. Task X fails. What happens to Y?\n\nSee [dependency-failure-chains.md](references/dependency-failure-chains.md).\n\n### Branch Collision (S-8)\n\nTwo tasks accidentally get the same branch name.\n\nSee [branch-collision-detection.md](references/branch-collision-detection.md).\n\n### Branch Guard Recovery (S-9)\n\nThe git-branch-guard hook blocks something it shouldn't.\n\nSee [branch-guard-recovery.md](references/branch-guard-recovery.md).\n\n### Batch Size Verification (S-10)\n\nValidating batch sizes before execution starts.\n\nSee [batch-size-verification.md](references/batch-size-verification.md).\n\n### Task Branch Recovery (S-12)\n\nRecovering orphaned branches from crashed sessions.\n\nSee [task-branch-recovery.md](references/task-branch-recovery.md).\n\n### Circuit Breakers (S-13)\n\nPreventing cascading failures when operations fail repeatedly.\n\n**Pattern:** Track failure rate. If threshold exceeded, \"open\" the circuit - fail fast without attempting.\n\n```\nCircuit: agent_spawn\nState: OPEN (3 failures in 60s)\nReset in: 30 seconds\n\n[Wait for reset] [Force close] [Skip operation]\n```\n\nSee [circuit-breakers.md](references/circuit-breakers.md).\n\n### Execution Tracing (S-14)\n\nDebugging execution graphs and understanding what happened.\n\n**Pattern:** Record spans for each operation. Visualise as waterfall or dependency graph.\n\n```\nTrace: exec-session-xyz\n├── batch_1 (45s)\n│   ├── task-1 (20s) ✓\n│   └── task-2 (25s) ✓\n└── batch_2 (60s)\n    └── task-3 (60s) ✓\n\nCritical path: batch_1 → batch_2\n```\n\nSee [execution-tracing.md](references/execution-tracing.md).\n\n## Stuck Detection\n\n| Signal                | Threshold                     | Response            |\n| --------------------- | ----------------------------- | ------------------- |\n| Tool call flooding    | 20 calls without file changes | Warning, then Klaus |\n| Time without progress | 10 minutes                    | Warning, then Klaus |\n| Repeated failures     | Same error 3x                 | Pause, offer Klaus  |\n| Context burn rate     | ACM at 60%                    | Checkpoint offer    |\n| Review timeout        | 5 minutes per reviewer        | Offer [Wait] [Skip] |\n\n## Anti-Patterns\n\n**Don't do these:**\n\n- Running git checkout/merge/push from agents\n- Batching 30+ tasks in parallel\n- Skipping spec review because \"code looks fine\"\n- Auto-merging without human checkpoint\n- Ignoring stuck signals\n- Continuing after context warnings\n\n## References\n\nFull documentation in this skill's references/ folder:\n\n- [task-decomposition.md](references/task-decomposition.md) - How to break down plans\n- [review-criteria.md](references/review-criteria.md) - What reviewers check (400 LOC threshold, attack surface tracing)\n- [batch-patterns.md](references/batch-patterns.md) - Checkpoint decision patterns (coordinated checkpoints, load shedding, deadline propagation)\n- [dependency-failure-chains.md](references/dependency-failure-chains.md) - When dependent tasks fail\n- [branch-collision-detection.md](references/branch-collision-detection.md) - Preventing duplicate branches\n- [branch-guard-recovery.md](references/branch-guard-recovery.md) - Recovering from guard failures\n- [batch-size-verification.md](references/batch-size-verification.md) - Validating batch sizes\n- [review-conflict-matrix.md](references/review-conflict-matrix.md) - Handling reviewer disagreements (RESOLVE framework)\n- [task-branch-recovery.md](references/task-branch-recovery.md) - Recovering orphaned branches\n- [circuit-breakers.md](references/circuit-breakers.md) - Preventing cascading failures (circuit breaker pattern, timeout strategies)\n- [execution-tracing.md](references/execution-tracing.md) - Debugging execution graphs (spans, traces, critical path analysis)","tags":["git","workflow","claudikins","kernel","elb-pr","agent-skills","claude","claude-ai","claude-code","claude-code-plugin","claude-skills","claudecode"],"capabilities":["skill","source-elb-pr","skill-git-workflow","topic-agent-skills","topic-claude","topic-claude-ai","topic-claude-code","topic-claude-code-plugin","topic-claude-skills","topic-claudecode","topic-sre"],"categories":["claudikins-kernel"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/elb-pr/claudikins-kernel/git-workflow","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add elb-pr/claudikins-kernel","source_repo":"https://github.com/elb-pr/claudikins-kernel","install_from":"skills.sh"}},"qualityScore":"0.508","qualityRationale":"deterministic score 0.51 from registry signals: · indexed on github topic:agent-skills · 117 github stars · SKILL.md body (13,149 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:55:19.174Z","embedding":null,"createdAt":"2026-04-20T07:27:59.991Z","updatedAt":"2026-04-22T06:55:19.174Z","lastSeenAt":"2026-04-22T06:55:19.174Z","tsv":"'-1':1381 '-10':1146,1277 '-11':1188 '-12':1291 '-13':1304 '-14':1352 '-2':220,1384 '-200':292 '-3':1390 '-6':1037 '-7':91,189,209,774,1080,1222 '-8':1110,1242 '-9':1258 '1':113,219,225,312,415,616,1160,1378,1395 '10':179,199,214,1420 '2':121,349,425,631,876,1104,1166,1387,1397 '20':1409 '20s':1382 '25s':1385 '3':132,181,640,721,1174,1331 '30':96,176,203,762,938,940,1337,1463 '3x':1429 '4':143,648 '400':1508 '401':265 '45s':1379 '5':90,152,188,201,208,773,1443 '50':291 '6':159 '60':847,1438 '60s':1169,1334,1388,1391 '75':850 'abort':1173 'accept':262,328,532,679,685,739,1091 'accident':1245 'acm':845,1436 'action':675 'add':252,1177 'address':330 'agent':27,81,92,156,177,190,207,211,215,222,250,414,474,522,751,763,770,787,823,941,994,1004,1043,1081,1111,1189,1327,1461 'allow':442,444 'alway':692,838,1058 'analysi':1578 'anti':1451 'anti-pattern':1450 'anyway':681 'appli':975 'artifact':636 'ask':325 'atom':246 'attack':1511 'attempt':1325 'audit':632 'auth':253,257 'auto':831,1475 'auto-merg':830,1474 'backup':1050,1059,1063,1073 'bash':1057,1092,1127 'batch':22,75,98,147,164,171,195,224,702,708,1273,1279,1377,1386,1394,1396,1462,1545 'batch-patterns.md':743,1514 'batch-size-verification.md':1285,1542 'block':1265 'bori':99 'branch':117,860,864,1106,1130,1136,1239,1249,1254,1262,1288,1294,1535,1558 'branch-collision-detection.md':1252,1531 'branch-guard-recovery.md':1271,1536 'break':398,1500 'breaker':1302,1565 'build':256 'burn':1434 'call':1407,1410 'captur':1040 'cascad':1306,1562 'case':370,701 'catch':806 'caveat':687,1178 'chain':1220 'chang':218,295,888,1208,1413 'chao':772 'check':326,362,454,513,531,629,658,1507 'checklist':387,552 'checkout':783,937 'checkout/merge/push':158,1459 'checkpoint':33,78,107,145,703,836,848,950,1015,1215,1439,1479,1516,1520 'circuit':1301,1321,1326,1564 'circuit-breakers.md':1347,1559 'clariti':372 'claude/reviews/code':573 'claude/reviews/spec':484,565 'claudikin':8,58 'claudikins-kernel':7,57 'clean':130 'close':1343 'code':72,141,350,353,427,433,459,469,673,801,982,1471 'code-review':352,426,432,458 'codebas':365 'collis':1240 'command':61,153,891,1010 'compar':786 'complet':247,408,709,1209 'complex':374 'complianc':138,314,480,512,1000 'concern':378,643,683 'confid':380 'consist':363,617 'contain':583 'context':38,123,126,289,450,462,839,951,1182,1193,1433,1485 'continu':844,1483 'convinc':654 'coordin':1519 'core':85 'correct':227,803 'count':720 'crash':1296 'creat':509,997 'creep':333,808 'criteria':263,329,530,533,991 'critic':1392,1576 'd':88 'date':1065 'deadlin':1523 'death':39,290 'debug':1353,1571 'decid':21,74,738 'decis':558,746,1517 'decompos':11,62 'decomposit':235 'default':223 'definit':244 'deleg':539 'depend':271,1218,1225,1370,1528 'dependency-failure-chains.md':1237,1525 'detail':386 'detect':1402 'differ':306 'dir':1074,1131,1133 'dir/agent-':1064 'directori':1107,1120 'disagr':1551 'document':598,1489 'doesn':856,973 'done':890 'duplic':1534 'e':1098 'echo':1061 'edg':369,700 'either':310 'enforc':28,389 'enough':661 'entir':400 'environ':1122 'error':367,1428 'escal':727,879 'everi':406,618 'exampl':245 'exceed':1318 'except':866 'excus':755,760 'exec':1374 'exec-session-xyz':1373 'execut':10,60,65,100,1282,1349,1354,1572 'execute/task-':1138 'execution-tracing.md':1399,1569 'exhaust':1183 'exist':569,577 'exit':1103 'export':1108,1119,1128,1134 'extract':239 'fail':83,344,691,724,1042,1231,1310,1322,1530 'failur':1035,1219,1307,1314,1332,1426,1541,1563 'fallback':1156,1172,1176 'fast':1323 'featur':160,166,193,202,210,221,228,334,777 'feature-level':192 'field':588,1089 'file':582,601,796,1207,1412 'find':498,754 'fine':765,841,1473 'finish':958,1195 'first':139,1052,1060 'fix':688 'flag':914 'flood':1408 'flow':704 'folder':1495 'follow':905 'forc':1342 'fork':127,451,463 'framework':1553 'fresh':122 'full':1488 'gate':554 'get':620,953,1148,1246 'git':2,40,155,791,793,936,1012,1261,1458 'git-branch-guard':1260 'git-workflow':1 'give':128 'go':1025 'goal':912 'good':471,660 'gospel':174 'graph':1355,1371,1573 'guard':1255,1263,1540 'guidanc':173 'guidelin':875 'handl':25,79,368,1031,1549 'happen':665,1233,1359 'hard':553 'hash':1216 'hook':1034,1041,1126,1264 'human':32,106,144,731,736,737,835,949,1013,1159,1478 'id':567,575,1095,1140 'ignor':1480 'implement':528,896,989 'independ':269,768 'individu':150 'infinit':880,882 'inlin':452,492,657,824 'instead':537,797 'invalid':267,1084 'iron':403 'isol':29,103,118,279,867,965 'job':307 'jq':1097 'json':476,568,576,585,1067,1077,1085,1204 'judgment':639 'kernel':9,59 'klaus':689,729,1416,1424,1432 'know':1114 'lane':900 'larg':288 'let':524,932,985 'level':167,170,194 'limit':871,972,1144,1150,1164 'line':293,346 'll':465,628,781,812,843,885,967,996 'load':1521 'loc':1509 'locat':1051 'look':470,625,802,1472 'loop':536 'lost':1046 'main':784,795 'make':477 'malform':1076 'manag':186 'mandatori':390,851 'mark':1201 'matrix':663 'matter':615 'maximum':942 'mean':441,904,1008 'measur':261 'meet':529,990 'merg':551,557,608,832,886,893,968,1476 'methodolog':42,508,907,931 'micro':185,205 'micro-manag':184 'micro-task':204 'mid':1185 'mid-task':1184 'middlewar':254 'minim':270 'minut':1421,1444 'miss':339,603 'model':1142 'move':1054,1069 'must':410,439 'mv':1072 'name':371,1137,1250 'need':53,858,947,964,1112 'negoti':395 'never':157,308,809 'next':1211 'nois':286 'non':394 'non-negoti':393 'notifi':1161 'offer':561,678,684,849,1155,1167,1431,1440,1447 'one':114,116,249,861,863 'open':1319,1330 'oper':1309,1345,1365 'option':1157,1165 'opus':318,355,1147,1162 'orchestr':456,541,546,638,644,645,1021 'orphan':1293,1557 'output':341,375,475,634,1044,1062,1078,1102,1181,1197 'overrid':597 'parallel':36,943,1466 'partial':1198,1206 'pass':342,376,437,518,594,676,677,682,717,829,945,984 'path':1393,1577 'pattern':300,1023,1047,1086,1118,1154,1196,1312,1360,1452,1518,1566 'paus':1430 'per':93,97,124,182,775,1445 'philosophi':86 'plan':12,63,238,1502 'pollut':120,869 'pre':550 'pre-merg':549 'present':733 'pressur':753 'prevent':34,119,868,1305,1533,1561 'primari':1056,1071,1075 'principl':112 'proceed':606 'produc':1083 'progress':1419 'project':1132 'prompt':449,461 'propag':1524 'qualiti':142,243,351 'question':319,356 'quick':999 'rate':1143,1149,1163,1315,1435 'ration':650,748 're':920,926 'read':482 'realiti':761 'reassess':917 'record':1361 'recov':1292,1538,1556 'recoveri':1256,1289 'red':913 'redund':980 'refactor':213 'refer':347,1487,1494 'references/batch-patterns.md':744,1515 'references/batch-size-verification.md':1286,1543 'references/branch-collision-detection.md':1253,1532 'references/branch-guard-recovery.md':1272,1537 'references/circuit-breakers.md':1348,1560 'references/dependency-failure-chains.md':1238,1526 'references/execution-tracing.md':1400,1570 'references/review-conflict-matrix.md':698,1548 'references/review-criteria.md':384,1504 'references/task-branch-recovery.md':1300,1555 'references/task-decomposition.md':298,1497 'remain':713,1214 'repeat':1311,1425 'requir':340,837,1088,1093,1100 'reset':1335,1341 'resist':750 'resolv':1552 'respons':1405 'result':672,674,734 'resum':1203 'retri':695,719,723,741,870,877,881,971 'return':264,668 'review':20,73,136,277,301,304,317,354,388,413,418,424,428,434,448,460,493,544,548,591,612,633,646,647,667,690,716,800,805,815,822,825,944,978,983,1016,1018,1180,1441,1446,1469,1506,1550 'review-conflict-matrix.md':697,1547 'review-criteria.md':383,1503 'revis':680,693,740 'right':187,198,281 'right-siz':280 'rigor':623 'robust':1022 'rule':404 'run':6,55,935,1190,1457 'runaway':35 'safe':834 'say':523 'scenario':196 'scope':332,807 'score':381 'second':1338 'see':296,382,696,742,1236,1251,1270,1284,1298,1346,1398 'separ':641 'session':94,251,776,1297,1375 'set':15,67 'sha256':1217 'shed':1522 'shouldn':1268 'show':794 'signal':1403,1482 'simpl':212,490,626,819,961 'six':111 'size':23,76,172,282,1274,1280,1546 'skill':47,50,1492 'skill-git-workflow' 'skip':309,485,610,798,810,1344,1449,1467 'slate':131 'slug':1141 'small':285 'someth':1266 'sometim':1082 'sonnet':1153,1171 'source-elb-pr' 'span':1362,1574 'spawn':411,419,429,440,520,547,820,992,1002,1328 'spec':137,313,316,337,417,423,436,447,453,511,590,671,799,804,977,1468 'spec-review':315,416,422,446,589 'speed':109,908 'stage':19,71,135,302,311,348 'start':1283 'state':1199,1329 'status':1096,1205 'stay':897 'step':1212 'stop':852,915,1009 'strategi':1568 'stuck':26,80,1401,1481 'style':366 'subagentstart':1125 'subagentstop':1033 'surfac':1512 'system':258 'tabl':481,514,1001 'task':14,66,84,115,125,151,169,180,183,200,206,234,240,274,407,421,431,445,457,491,566,572,574,580,619,706,725,766,855,862,939,1094,1105,1129,1135,1139,1186,1223,1227,1229,1244,1287,1380,1383,1389,1464,1529 'task-branch-recovery.md':1299,1554 'task-decomposition.md':297,1496 'testabl':259 'thing':1024 'think':921 'threshold':1317,1404,1510 'tight':954 'time':1417 'timeout':1442,1567 'tini':217,854 'token':268 'tool':1406 'topic-agent-skills' 'topic-claude' 'topic-claude-ai' 'topic-claude-code' 'topic-claude-code-plugin' 'topic-claude-skills' 'topic-claudecode' 'topic-sre' 'total':191 'trace':1350,1372,1513,1575 'track':1313 'tree':747 'two':18,70,134,303,1243 'two-stag':17,69,133 'understand':1357 'unit':163,231,779 'unnecessari':373 'use':4,45,48,89,792,1170 'user':564,596 'valid':584,1087,1278,1544 'variabl':1123 'verdict':517,587,592,662,670 'verif':30,104,1275 'verifi':467,526,987 'via':420,430 'violat':396,495,506,759,827,929 'visualis':1366 'wait':472,711,1168,1339,1448 'warn':1414,1422,1486 'wast':883 'waterfal':1368 'well':360 'well-written':359 'without':519,1324,1411,1418,1477 'work':233,1117,1210 'workflow':3,41,401 'write':516,1048 'written':361 'wrong':175,197,1026 'x':1228,1230 'xyz':1376 'y':1224,1235 'yes':714,722,732","prices":[{"id":"17665dd5-9402-416e-bdcc-1efe4bfe7f21","listingId":"a4953a38-f0b3-4008-af4c-c0aedfb7206a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"elb-pr","category":"claudikins-kernel","install_from":"skills.sh"},"createdAt":"2026-04-20T07:27:59.991Z"}],"sources":[{"listingId":"a4953a38-f0b3-4008-af4c-c0aedfb7206a","source":"github","sourceId":"elb-pr/claudikins-kernel/git-workflow","sourceUrl":"https://github.com/elb-pr/claudikins-kernel/tree/main/skills/git-workflow","isPrimary":false,"firstSeenAt":"2026-04-20T07:27:59.991Z","lastSeenAt":"2026-04-22T06:55:19.174Z"}],"details":{"listingId":"a4953a38-f0b3-4008-af4c-c0aedfb7206a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"elb-pr","slug":"git-workflow","github":{"repo":"elb-pr/claudikins-kernel","stars":117,"topics":["agent-skills","claude","claude-ai","claude-code","claude-code-plugin","claude-skills","claudecode","sre"],"license":"mit","html_url":"https://github.com/elb-pr/claudikins-kernel","pushed_at":"2026-04-21T15:23:37Z","description":"SRE thinking applied to Claude Code, based on Boris Cherny's Q&A. It enforces a strict 4-stage pipeline with gates between each step. You literally cannot skip verification. You cannot ship without approval.","skill_md_sha":"7ffaca21205978951bcf061ce48316f2143bc07f","skill_md_path":"skills/git-workflow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/elb-pr/claudikins-kernel/tree/main/skills/git-workflow"},"layout":"multi","source":"github","category":"claudikins-kernel","frontmatter":{"name":"git-workflow","description":"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"},"skills_sh_url":"https://skills.sh/elb-pr/claudikins-kernel/git-workflow"},"updatedAt":"2026-04-22T06:55:19.174Z"}}