execute
Skill4 starsChanged 47 days agoMITView on GitHub
Use when the user asks to execute/do ONE backlog task identified by an id (or a handful that form a single deliverable) — takes it from the task doc to an open PR without pausing for plan approval, stopping only on a real blocker. Creates branch and worktree from the base, builds the blast radius, applies TDD on logic, runs the deterministic gates, records the decision and the why, and opens the PR. For several tasks at once, use `orchestrate` first.
- Commits and pushes
57 other projects use a version of this.
Adopted by
Most recently taken up by
- LeonardiFranco/skillstheir own version, first seen Nov 8, 2026
- pfangueiro/claude-code-agentstheir own version, first seen Nov 8, 2026
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 8, 2026
- crbnos/carbontheir own version, first seen Nov 7, 2026
- afaraha8403/balakittheir own version, first seen Nov 6, 2026
- chrislacey89/skillstheir own version, first seen Nov 4, 2026
Used with
Projects with it also use context-optimize, ralplan and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ibahgatSkillcontext-optimize
Improve context efficiency and cache stability for long or complex sessions.
Also in 3 projects that use this
ibahgatSkillralplan
Create a strict, quality-first execution plan with explicit gates and rollback-ready sequencing.
Also in 5 projects that use this
Yeachan-HeoSkillultragoal
Create and execute durable repo-native multi-goal plans over Codex goal mode artifacts.
Also in 4 projects that use this
buddyhSkilldeep-dive
Deep dive on any topic. Decomposes into subtopics, researches each in parallel with thorough source gathering, then synthesizes into a comprehensive report (4,000-10,000+ words, 40-100+ sources). Scales depth dynamically based on topic complexity. Use when asked for a deep dive, deep research, comprehensive analysis, or thorough investigation of a topic.
Also in 4 projects that use this
mukcoSkillprinciples
General software engineering principles — DRY, SOLID, YAGNI, KISS, naming, code smells, and refactoring. Language-agnostic. Use alongside language-specific skills.
Also in 3 projects that use this
team-attentionSkillcompound
This skill should be used when the user says "/compound", "compound this", "document learnings", "save what we learned", or after completing a PR. Extracts knowledge from PR context and saves to docs/learnings/.
Also in 3 projects that use this
- +1 more from ibahgat
Other versions57 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 57
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- crbnos/carbon★ 2.8ksame name
- zaxbysauce/opencode-swarm★ 519same name
- ZaxbyHub/opencode-swarm★ 518same name
- Joonghyun-Lee-Frieren/oh-my-antigravity★ 214same name
- Joonghyun-Lee-Frieren/oh-my-gemini-cli★ 214same name
- team-attention/hoyeon★ 173same name
- Adrian333Dev/flow★ 39same name
- shipshitdev/skills★ 39same name
47 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- dotaskSkill
- harvestSkill
- orchestrateSkill
- planSkill
- qaSkill
- resumeSkill
- saveSkill
- seguranca-agentesSkill
- seguranca-apiSkill
- seguranca-bots-webhooksSkill
- seguranca-dados-lgpdSkill
- seguranca-dependenciasSkill
- seguranca-infraSkill
- seguranca-segredosSkill
- seguranca-web-frontSkill
- syncSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 5 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 55 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Read the task doc and apply the four eligibility filters (CORE §1): status, layer, dependencies, and the reality check (was it already …
- Very specific: line 74
Write the order's status field = in progress.
- Distinctive: line 83
Only ask when the order is ambiguous in a way that reading the code does not resolve (CORE §10).
- Very specific: line 95
Write the plan to <vault.plans>/<ID>-<slug>.md (or next to the task doc if the adapter has no vault.plans).
- Very specific: line 106
If the unit is large (default L/XL): dispatch an independent subagent (here, yes, the in-session subagent tool — CORE §2, exception for the …
- Distinctive: line 119
Logic / data / infra: test-driven — a test that fails before and passes after.
- Very specific: line 141
Run gate_forbidden_in_diff (default ../orchestrate/scripts/gate_diff.py) pointing at the directory where the diff is (the worktree, not the …
- Very specific: line 156
If the route is [kitchen: stop before commit]: STOP HERE, without committing.
- Distinctive: line 195
Do not describe code structure in prose.
- Very specific: line 225
Update your manifest row if there is one (✅ PR + number) — never other units' rows (CORE §7, concurrent writes).
- Distinctive: line 242
If the unit must die midway: CORE §11, step by step.
“Common” is measured: kept by at least 6 in 10 of the 55 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/execute — task → open PR
/execute <id> [id2 …] one unit (several ids = a bundle, if they form one deliverable)
/execute <id> --inline force the inline route (main checkout, with the human)Read ../orchestrate/CORE.md before any step. This skill is the engine of one unit;
orchestrate decides what became a unit.
What it adds on top of a normal development flow: pre-flight, a reconciled blast radius, the three gates, a mandatory record, and the hard rule that plan approval does NOT pause for the human.
Step 0 — Pre-flight
- Load the adapter (CORE §1). No adapter → bootstrap (CORE §9), stop to confirm.
- Read the task doc and apply the four eligibility filters (CORE §1): status, layer, dependencies, and the reality check (was it already done?). Failing any → report the reason with the evidence and stop. Do not take over someone else's work, do not resume something under review, do not try an order from another layer, do not start an order with an open dependency, and never rebuild on top of something that already exists — order status drifts.
git status --porcelainon a dirty main checkout → stop and ask (commit, stash, or continue). The inline queue uses that same checkout.- local
base==origin/base? Diverged → show it and ask. - Several ids: are they one deliverable (same epic, one PR makes sense)? Yes → bundle,
carrier = first id. No → stop and say they are separate units; suggest
orchestrate.
Step 1 — Route
CORE §2. Announce the route in one line, with the reason.
inline→ works in the main checkout, on a new branch frombase. No worktree (a new worktree rebuilds from scratch; the main checkout has the cache).kitchen/kitchen: stop before commit→ worktree.
Kitchen route decided in the waiter (you are NOT inside a kitchen-<ID> tmux
session): run the full pre-flight (Step 0), prepare worktree and branch (Step 2), write
.kitchen/prompt.md and dispatch the tmux session (CORE §2). Your job ends there — report
how to follow it (tmux attach -t '=kitchen-<ID>').
Kitchen entry point (your prompt came from .kitchen/prompt.md): run only items 1–2 of
Step 0 (adapter + four filters) and skip 0.3–0.5 — the main checkout's pre-flight
belongs to whoever dispatched, and a dirty main checkout is normal during a batch (the
inline queue works there; not your problem). In Step 2, only confirm the branch. From
Step 3 on, everything is yours.
Step 2 — Branch and workplace
Branch: <type>/<ID>-<kebab-slug>, type derived from the order (feat for a task, fix
for a bug). Validate it against the adapter's branch_regex; without the field, use
^(feat|fix|perf|refactor|chore|docs)/[a-zA-Z0-9][a-zA-Z0-9._/-]*$ — the id format belongs
to the project's tracker, never assume one. An id that already IS a kebab slug (a task
born in plan, no tracker card): branch = <type>/<slug>, without repeating the slug.
Kitchen route: git worktree add <worktrees>/<ID> -b <branch> <base>, then the adapter's
prepare_worktree (absent = nothing to run; do not invent one — an install inside a
worktree whose dependencies are symlinked, for instance, pollutes the shared copy). If you
are the agent inside the tmux session, worktree and branch were created at dispatch —
confirm (git branch --show-current matches the branch in your prompt?) and go to Step 3.
Inline route: git switch -c <branch> <base> in the main checkout.
Step 3 — Status: in progress
Write the order's status field = in progress. Do not run status_push now — it runs
once per epic at the end of the batch (orchestrate Step 10).
Step 4 — Brainstorm, seeded from the order
Brainstorm the approach seeded by the description and acceptance criteria you already read. Do not ask the human to repeat what is written in the order. (If you use a brainstorming skill, invoke it here.)
Only ask when the order is ambiguous in a way that reading the code does not resolve (CORE §10). Preference, validating the obvious, or "confirm I understood?" do not count.
Inline route: the human is present, so conversation is natural — but still do not ask what the order already answers.
Kitchen session: mute brainstorming — zero questions to the human. An ambiguity that
reading the code does not resolve = a real stop: Step 9 protocol (⏳ + reason on your
manifest row), never a question left hanging in the conversation.
Step 5 — Plan, with blast radius
Write the plan to <vault.plans>/<ID>-<slug>.md (or next to the task doc if the adapter
has no vault.plans).
The plan must contain a ## Blast radius section in the adapter's layers vocabulary
(CORE §4). Build it from a code-graph query (if any) + actually reading the entry point,
never from the order's text. Validate that every path exists or is marked [new].
A plan without a valid blast radius does not go to Step 7.
Step 6 — Plan review gate (large units only)
If the unit is large (default L/XL): dispatch an independent subagent (here, yes,
the in-session subagent tool — CORE §2, exception for the plan gate; do not open another
tmux session) to review the plan, giving it plan + blast radius. It answers APPROVED
or objections. Iterate ≤4 rounds.
Do NOT pause for the human here. Not to notify, not out of habit. The independent reviewer is the approval; the human comes in at the PR. This step is why the kitchen exists.
Small/medium unit: no gate, straight to Step 7.
Step 7 — Implement
Logic / data / infra: test-driven — a test that fails before and passes after. A test written at the end does not count as TDD; do not claim it does.
Visual / UI: implement and exercise it on the scarce_resource. Do not pretend a
widget test covers layout (CORE §5).
Implement in this session, sequentially. Do not fan implementation out to sub-subagents — the kitchen's parallelism comes from several units, not from chopping one. (This does not affect Step 6: that is a review gate, not implementation.)
If you find you need tests.forbidden (the scarce resource) and you are a kitchen
session: do not run it. Set your manifest row to ⏳ waiting on human — reclassify
inline and stay idle in the conversation (Step 9 protocol). The waiter/human reclassifies
at reconciliation.
Step 8 — Gates, before the commit
In this order, none optional:
tests.allowedgreen. Red because of a real bug → CORE §10, stop. Red because of the environment → fix it and continue.forbidden_in_diff(CORE §3a): hit → fix it and rerun the gate, without asking. Rungate_forbidden_in_diff(default../orchestrate/scripts/gate_diff.py) pointing at the directory where the diff is (the worktree, not the repo root — pointing at the root reads the wrong index and answers "clean" without having looked at anything).- Blast radius reconciliation (CORE §4):
git diff --name-onlyagainst the declared list. Buckettouched − declared> ~30% → record the warning in Step 10. - DoD for the unit's type (CORE §5).
Honest gates — evidence before claims. Each gate's result enters the report and the PR
body as one line per check you ACTUALLY ran, with the real number/outcome from the
command output (174 tests, 0 failures; lint: 0 errors), never "should pass" or "ok". A
gate you did not run is ⚠️/❌ with a one-word reason — never a green ✅ you cannot
back with command output. Applies to the four above and to any extra check.
Step 9 — Stop point of the "stop before commit" route
If the route is [kitchen: stop before commit]: STOP HERE, without committing. Print
in the conversation:
- the
git diff(or--statif large); - the gate results;
- what specifically to look at (what is visual and may be wrong without breaking a test);
- what was left out.
Set your manifest row to ⏳ waiting on human and stay idle in the conversation —
the human will attach (tmux attach -t '=kitchen-<ID>'), review and approve or ask for
changes right there. Approved → Step 10. Changes requested → back to Step 7.
When resuming (approved OR changes), rewrite 🔄 running on your row before continuing
— a ⏳ row with a working agent raises a false alarm in whoever is watching (CORE §7,
⏳→🔄 transition). (Inline route: the human is already present; show the diff and talk.)
General stop protocol in a tmux session — applies to ANY real stop, not only this one:
a CORE §10 blocker, reclassification because of tests.forbidden, a plan gate without
APPROVED after 4 rounds. Always: ⏳ waiting on human + a one-line reason on your
manifest row, then stay idle in the conversation. Stopping without writing ⏳ leaves the
row at 🔄 forever — the blocker stays invisible until someone attaches by chance.
Other routes: go straight on.
Step 10 — Commit and record
- Commit with conventional commits (CORE §5). The message describes what changed and
why, not "implements
<ID>". - The adapter's
post_commit(e.g. regenerate a code graph), if any. ## Outcomein the task doc (CORE §6). The factual part is derived from git:- commits:
git log <base>..HEAD --oneline - files:
git diff --stat <base>..HEADAnd written by you: the decision and the why, what was left out, and the scope-leak warning if Step 8.3 fired.
- commits:
permanent/<area>.md— only if the decision constrains work outside this unit. One line + a link to the order. Cut: "will forgetting this break or re-litigate something in 3 months?"- Links in the task doc, if your notes tool uses links (CORE §6): the repo/integration touched and the permanent notes used or created.
Do not describe code structure in prose.
Step 11 — PR
git push -u origin <branch>
<gh> pr create --base <base> --title "<conventional>" --body "<body>"<gh> = the adapter's gh field if present; otherwise plain gh (CORE §1). In an
environment with a credential broken by an environment variable, plain gh returns HTTP 401
on every call and the PR never opens — the adapter knows the right prefix.
PR title: must pass the repo's commitlint, when there is one. Before opening, check
for config (.commitlintrc*, commitlint.config.*, or a commitlint block in
package.json) and obey it: restricted type-enum, required or forbidden scope,
imperative subject, length limit. A title that fails lint blocks the merge and burns a
round trip with the human just to rename. No config → conventional commits (CORE §5).
PR body: what changes and why, the final blast radius, and the gate results with real
numbers (Step 8). A ## Not verified section is mandatory, listing what was left
unchecked ("not exercised on mobile"; "browser check not run — needs a seeded backend").
Nothing to declare → write nothing. An unrun check is never presented as done, and a
missing section counts as a false claim. Link the order.
gh unavailable → stop at the push, hand over the compare URL, and say the PR is pending.
Step 12 — Close
- Order status field = in review.
- Update your manifest row if there is one (
✅ PR+ number) — never other units' rows (CORE §7, concurrent writes). - Kitchen session — hibernate: find your session id (the newest conversation file of
this directory under Claude Code's projects folder — the file name without
.jsonl), write it into thesession (resume)column of your manifest row and into.kitchen/done. From then on your session may be killed at any time (dispatcher,harvestor the waiter) and revived withclaude --resume(CORE §2). Do not kill your own session — the supervisor reaps. - Final report in ~6 lines: what was done, route, commits, gates, PR, what was left out.
Step 13 — Do not clean up
execute does not merge, close the order, or remove the worktree. That is the human's,
after reviewing the PR. End with the reminder: /harvest after merging.
Aborting
If the unit must die midway: CORE §11, step by step. Do not improvise, and do not leave an orphan worktree.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

