---
title: "colony by kartikkabadi · skilld"
canonical_url: "https://skilld.dev/gh/kartikkabadi/colony"
last_updated: "2026-08-24T08:21:09.169Z"
meta:
  description: "Delegation discipline for AI agents. Use when a task splits into multiple independent units; invoke as /colony, \"delegate\", \"fan out\". Core method: write the DELEGATION.md… From kartikkabadi/colony."
  "og:description": "Delegation discipline for AI agents. Use when a task splits into multiple independent units; invoke as /colony, \"delegate\", \"fan out\". Core method: write the DELEGATION.md… From kartikkabadi/colony."
  "og:title": "colony by kartikkabadi"
  "twitter:description": "Delegation discipline for AI agents. Use when a task splits into multiple independent units; invoke as /colony, \"delegate\", \"fan out\". Core method: write the DELEGATION.md… From kartikkabadi/colony."
  "twitter:title": "colony by kartikkabadi"
---

`

[All skills](https://skilld.dev/skills)

[![kartikkabadi avatar](https://github.com/kartikkabadi.png?size=96)kartikkabadi skill profile](https://skilld.dev/gh/kartikkabadi)

# **/colony**

by [Kartik](https://skilld.dev/gh/kartikkabadi)· [kartikkabadi](https://skilld.dev/gh/kartikkabadi)/ [colony](https://skilld.dev/gh/kartikkabadi/colony)·8 stars 1

Delegation discipline for AI agents. Use when a task splits into multiple independent units; invoke as /colony, "delegate", "fan out". Core method: write the DELEGATION.md ledger first, spawn one subagent per unit, verify each yourself, never report done on a partial ledger.

[GitHub](https://github.com/kartikkabadi/colony/blob/ef0b2a92994a689637a1f7a67626ba86bc8ed0d5/SKILL.md "View SKILL.md on GitHub") Updated 4 weeks ago  No alerts

## Skill content

[Raw](https://skilld.dev/api/skills-raw/kartikkabadi/colony/colony)

## Colony

You are the colony, not the ant. The failure this skill exists to kill is the lone agent that carries a whole job on its back, the agent that should fan out into ten workers and instead does ten jobs serially in one thread, losing time, focus, and parallelism.

This is the opposite problem from laziness. Laziness is doing less than the task asks. Colony is doing all of it, but alone, when the task is made of independent parts that a team would finish faster and better. A single thread cannot give ten independent files the attention a fresh worker gives each one.

You do not have to do the work. You have to make sure the work gets done.

### Rule zero: count the units before any work

Before touching an artifact, count the work units in the request. A unit is an independent piece of work: one module, one feature, one bug, one migration, one file group, one research thread. Units are independent when they do not need to see each other's in-progress state to make progress.

- **3 or more independent units, OR**
- **5 or more files will be touched, OR**
- **estimated over 30 minutes of work**

then the gate is open: you must split. Write it down: "gate open: N units" or "single-agent: N units, below threshold", in your report either way.

Below the threshold, do the work yourself and say so. Force-splitting a small task is the same disease in reverse: ceremony that costs more than the work. The gate has a floor and a ceiling.

### Step 1: Write DELEGATION.md before any artifact work

If the gate is open, the FIRST artifact you create is `DELEGATION.md`, before any code, before any edit, before any file that is part of the deliverable. Use [templates/DELEGATION.md](https://skilld.dev/gh/kartikkabadi/colony/colony/-/templates/DELEGATION.md). Required shape:

```
# Delegation plan
Units: N

| # | Unit | Files (mine) | Worker | Acceptance | Status |
|---|------|--------------|--------|------------|--------|
| 1 | <one line> | <paths> | worker-1 | <checkable> | pending |
```

- Every unit gets a row. Every row gets its own files, non-overlapping. No two workers touch the same file. File ownership is stated in the ledger before anyone starts.
- Every row gets a checkable acceptance line: a command, a test, a measurable criterion. Not a vibe.
- This file is your ledger. It lives on disk, not in your context. A ledger you wrote at minute 2 is still exactly as sharp at minute 90, when the pull toward wrapping up is strongest.

### Step 2: Spawn one subagent per unit

- Use the subagent / Task tool. One subagent per unit row, spawned in parallel where units are independent, never serially.
- Each worker brief is a written contract containing (see [templates/worker-brief.md](https://skilld.dev/gh/kartikkabadi/colony/colony/-/templates/worker-brief.md)):
  - **Goal.** One sentence. What done looks like.
  - **Scope.** Exact files the worker owns. Exact files it must not touch.
  - **Context.** Pointers to specs and upstream reports, pasted in full where they matter. Workers cannot see your thread.
  - **Acceptance.** The checkable criteria, one line each.
  - **Verify.** The exact commands the worker runs before reporting done.
  - **Isolation.** If the repo is shared, a branch or worktree per worker: `git worktree add -b agent/<slug> ../wt-<slug> main`. One writer per worktree.
- You are the coordinator. You do not do the workers' work. If you catch yourself implementing a unit you assigned, stop and either reassign it or mark yourself as the worker for that unit in the ledger.

### Step 3: Verify every unit yourself

A worker report is a self-report. It is a claim, not proof. After each worker reports:

1. Run its acceptance check yourself. Read the artifact, run the command, confirm the criterion.
2. Update the ledger row to `verified`, or fix the unit yourself (or spawn a follow-up worker) and then mark it verified. Never silently accept a claim.
3. Write what you ran and saw under `## Evidence` in `DELEGATION.md`. The ledger checker requires it; a ledger with all rows `verified` but no evidence in the file fails `node scripts/ledger-check.mjs`.

The integration pass is yours too: interfaces match, tests pass together, nothing outside the declared scope changed.

### Step 4: Report gate

Your final report must contain:

- The gate decision: units counted, threshold met or not.
- The ledger: N units, each with status ( `pending` / `done` / `verified`) and who did it.
- What you verified yourself, with evidence: commands run, tests passed, files read.
- What remains, if anything.

**No "done" until every unit is verified and the ledger says so.** A completion report without a complete ledger is a failed report. If you notice yourself composing a status summary while rows are still `pending`, that is the solo reflex firing. Open the ledger and spawn or finish the next unit.

### When not to split

- One unit, a quick fix, a tiny change: do it yourself. Say "single-agent: 1 unit."
- The ledger would have one row. There is no colony of one.
- If units are not actually independent, if every piece needs every other piece's result before it can start, the task is one unit, however large. Split at natural joints only.

### What this skill is not

Colony is not a mandate to parallelize everything, and it is not a license to trust subagents. It is a gate that opens on genuinely parallel work and a ledger that makes the coordination legible and the completion honest. Below the threshold it costs you one line in a report. Above it, it is the difference between one tired thread and ten fresh ones.

Source: [SKILL.md on GitHub](https://github.com/kartikkabadi/colony/blob/ef0b2a92994a689637a1f7a67626ba86bc8ed0d5/SKILL.md)

## Related skills

- [/link-to-skillkartikkabadi/skillsTurn any link — X/Twitter post or video, YouTube video, article, podcast, or other media — into a standalone agent skill. Extracts or transcribes the source, distills its actionable playbook, and authors a validated SKILL.md package in the user's skills directory. Use when the user wants a link's content converted into a reusable skill. Not for plain transcripts (transcript-to-markdown) or research digests (link-research).](https://skilld.dev/gh/kartikkabadi/skills/link-to-skill)
- [/transcript-to-markdownkartikkabadi/skillsConvert any transcript source — YouTube, audio or video files, VTT/SRT captions, or raw text — into a clean, readable markdown file. Use when the user asks for a transcript, clean transcript, full transcript in markdown, or wants captions, subtitles, or recordings converted to readable prose. Not for summaries.](https://skilld.dev/gh/kartikkabadi/skills/transcript-to-markdown)
- [/x-growthkartikkabadi/skillsGrow on X/Twitter as a small or non-technical account. Anti-gatekeeping, spicy hooks, build-in-public with AI, and reply-gated lead magnets. Use when drafting X posts or threads, planning X content strategy, or the user asks how to grow on X/Twitter.](https://skilld.dev/gh/kartikkabadi/skills/x-growth)
- [/youtube-transcript-to-markdownkartikkabadi/skillsFull YouTube transcript to polished markdown file.](https://skilld.dev/gh/kartikkabadi/skills/youtube-transcript-to-markdown)
- [/agent-councilkartikkabadi/skillsAssemble an agent council to decide a contested question. One subagent per skill lens loads its skill, votes on the candidate options from that lens, later waves see earlier findings, then you tally and report. Use when Kartik wants multiple perspectives on a decision, says "give agents each of these skills and get them to decide", "1 agent per skill", "spawn a subagent per skill", or asks for votes, recommendations, or a council on an architecture, design, or approach.](https://skilld.dev/gh/kartikkabadi/skills/agent-council)
- [/call-advisorskartikkabadi/skillsGet review and advice on a plan, a decision, or finished work from the fixed advisor roster in \~/.omp/agent/WATCHDOG.yml, either through the native background advisor loop or an on-demand council of one read-only subagent per advisor. Use when the user says "call the advisors", "ask the advisors", "ask the advisors for advice", "get advisor input", "run the advisor council", or "review this with the advisors", or wants multiple expert lenses on a plan or decision right now.](https://skilld.dev/gh/kartikkabadi/skills/call-advisors)