Auditable Playbook Designer
cursor/plugins
Designs a step-by-step playbook for large or unfamiliar work, runs it as a loop of hypotheses and measurements, and logs decisions so a human can review them later.
Delivery pipeline from mission brief to verified change: writes a spec, splits it into tickets, runs them in parallel, verifies and reports a decision log after a repo audit gate.
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Yeachan-Heo/oh-my-claudecode launch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/launch .claude/skills/launch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .claude/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Yeachan-Heo/oh-my-claudecode launch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/launch .agents/skills/launch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .agents/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Yeachan-Heo/oh-my-claudecode launch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/launch .cursor/skills/launch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .cursor/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Yeachan-Heo/oh-my-claudecode.git --path skills/launch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Yeachan-Heo/oh-my-claudecode launch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/launch .gemini/skills/launch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .gemini/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Yeachan-Heo/oh-my-claudecode launchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/launch .github/skills/launch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .github/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Yeachan-Heo/oh-my-claudecode launch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/launch .opencode/skills/launch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "launch" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/launch into .opencode/skills/launch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "launch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
launchDelivery pipeline from mission brief to verified change: writes a spec, splits it into tickets, runs them in parallel, verifies and reports a decision log after a repo audit gate.
Launch is a governed run from a mission brief to a shipped, verified change. It converges on the mission, writes a durable spec, breaks the work into vertical-slice tickets with blocking edges, runs the ready tickets in parallel through the `team` skill, closes with verification and reports with a full decision log. Its rule is to hand agents everything that can be checked and redone automatically, and to keep humans on decisions with no unique answer or a costly error.
Two gates come first. The yard gate runs the full `drydock --check` audit, and actionable or high-confidence findings stop the run before any artifact is produced, with only narrow, explicit per-run overrides for low-confidence findings, known false positives or a declared throwaway repository. The fog gate sends an effort whose destination is unclear to `/ask-navigator`. The excerpt is cut off after the yard gate details.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 454bae0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Launch Delivery Pipeline loads about 7.3k tokens when it runs. Until then it costs about 144 tokens; SKILL.md has 4,033 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Yeachan-Heo/oh-my-claudecode at commit 454bae0, republished under its MIT licence (© Yeachan-Heo). 4,033 words, ~7,329 tokens.
.claude/skills/launch/SKILL.md (or your agent's skills folder).Launch is the shipyard's delivery run: from mission brief to shipped, verified change. It stands on the verifiability boundary — agents continuously run everything repeatable and acceptable-by-evidence; humans decide what cannot be judged by the system or what fails expensively. The goal is not maximum automation — it is maximum delegation of verifiable work, so the human's time is spent only on the decisions only a human can make.
The verifiability test, applied to every step: if this is done wrong, can the system detect it? Can it redo or roll back automatically? Both yes → agent. No unique answer, system cannot judge, or expensive to get wrong → human.
Launch assumes the shipyard exists — and refuses to run if it does not. The yard gate is the first action of every invocation, before document-language resolution and before reading any supplied spec:
--check audit — missing surfaces, a missing or invalid CONTEXT.md frontmatter documentLanguage, dead paths, glossary terms unused in code, standards never referenced. This is the single criterion: Launch performs no separate facility inventory of its own./oh-my-claudecode:drydock, state that the run never started and no artifacts were produced, and stop. Without an explicit override, treat any finding as blocking.--check is executable — node scripts/shipyard-audit.mjs [repoRoot] checks the high-confidence classes (missing surfaces, a missing/invalid documentLanguage tag, dead paths in CLAUDE.md, project-skill triggers present, and intent statuses within the documented vocabulary) and emits JSON findings in the shared severity/confidence/actionable vocabulary; exit 0 = clean, 1 = high-confidence actionable findings present. The gate consumes that exit: 0 admits the run, 1 lists the findings verbatim and blocks. The heuristic classes (glossary terms unused in code, standards never referenced) stay in the drydock prose audit — low-confidence by construction, override rules unchanged.CONTEXT.md, docs/adr/, docs/business/) and facility surface already exists at that point; Launch fills the paper trail as decisions settle but never creates the slots.CLAUDE.md — the shipyard map recognizes no substitute.| Human checkpoints (the critical 20%) | Agent continuous run (the mechanical 80%) |
|---|---|
| C1 author the mission brief (objective + scope) | fact-finding and repo exploration, self-served |
| C2 approve acceptance criteria + test seam list | interview preparation: frontier questions batched with recommended answers |
| C3 approve ticket decomposition (granularity, blocking edges) | spec and ticket drafting, mechanical validation (independence, demonstrability, fits-one-context) |
| C4 answer irreversible decisions that emerge mid-run (batched, async) | tdd implementation at agreed seams, builds, tests, regressions |
| C5 accept the completion report; veto via Open Assumptions and the per-line sediment list | code-review, verify across the change, team frontier scheduling, the whole paper trail |
Between checkpoints the pipeline never idles: agents keep working every frontier ticket that does not depend on a pending human answer.
Launch is a stateless composition over OMC's existing lifecycle — it owns no runtime state machine:
plan → execute → review → verify surfaces own their existing lifecycle behavior. Launch-authored artifacts are limited to .omc/specs/<feature-slug>/, CONTEXT.md, docs/adr/, and docs/business/ — plus, only after C5 approval, the sediment slots named in the Phase 5 table.in_progress task./oh-my-claudecode:ask-navigator, the run never started — no artifacts, no partial state. The navigator's map is the only carrier across sessions; launch resumes only from the mission brief it hands back.Any durability claim in this skill is a claim about the files on disk, not about a hidden runtime.
A run reaches this phase only through a clean yard gate. Before reading a supplied spec or entering Phase 1, resolve the document language per the drydock document-language contract — the shipyard-document-language-contract block in /oh-my-claudecode:drydock is the single authority for the resolution order (explicit human choice wins; otherwise the CONTEXT.md frontmatter documentLanguage tag; otherwise unanimous high-confidence inference from CLAUDE.md then README.md), the Chinese script-qualification rule (zh-Hans / zh-Hant), and the ask-once conditions (missing, mixed, conflicting, low-confidence, invalid-explicit, or script-ambiguous evidence asks one batched question; never guess). Launch-specific requirements: persist the resolved normalized tag back to CONTEXT.md before any Launch-authored artifact so a fresh explicit invocation can read it without hidden conversation state. The human reads and maintains these artifacts; agents are language-agnostic.
Localize prose and human-facing labels/localizable scalar values only. Paths, slash commands, flags, code fences, placeholders, frontmatter keys and machine-semantic values, YAML/JSON keys, lifecycle tokens (plan, execute, review, verify), status enums (pending, in_progress, completed, failed, ready-for-agent), IDs, ticket blockedBy, public Team blocked_by, and all parser/control tokens remain byte-for-byte stable. Reference language companions are mutually exclusive: emit exactly one selected rendering, never bilingual duplicate headings or labels.
/oh-my-claudecode:ask-navigator (the shipyard's navigator charts fog as a map of decision tickets and hands back a mission brief), and stop. Hand over the residual questions and any vocabulary already settled, so the navigator's W1 does not re-ask them.navigator:map (tracker label, or under .omc/wayfinder/). One exists and this invocation supplies no new brief → recommend /oh-my-claudecode:ask-navigator to work the next decision on that map, and stop. One exists and a new brief is supplied → ask one question — continue the open map, or start a new effort — before proceeding.docs/intents/<slug>/intent.md, status: accepted, latest round — see /oh-my-claudecode:intent) is a valid mission brief: its five sections carry the objective, scope, and open questions.Run the interview with the design-tree protocol: map decisions and their dependencies, then work in frontier rounds — batch every currently-askable question into one round, numbered, each with a recommended answer. The human answers; the tree reshapes; recompute the frontier. Facts are always self-served by sub-agents from repo evidence — the human is asked only what no amount of exploration can settle.
Comprehension reset. Before a settled decision is presented for signature, restate it back in one short paragraph of plain technical prose, using the yard's own vocabulary — the terms as CONTEXT.md defines them, no borrowed jargon. A restatement the captain cannot follow sends the decision back to the frontier, not forward on a guess: signing what was understood, not what was said, is how misreads become load-bearing. The same discipline repairs a message that did not land mid-flight: when the captain's reply shows a misunderstanding of what was sent, re-send it shorter and plainer in the CONTEXT.md vocabulary, one misunderstanding at a time, before the conversation continues — compounding a misread is how two different conversations end up sharing one thread.
Paper trail, written the moment each item settles:
CONTEXT.md at repo root (one entry per term)docs/adr/NNNN-<slug>.mddocs/business/ (one article per business question, opening paragraph states why it matters)Before surfacing a proposal, check the paper trail (ADRs, docs/business/) for a prior rejection of the same concept: a concept-similar re-proposal must state what changed, or it is declined — a new name for a rejected idea is not a new idea.
The glossary is policed during the interview, not after it: a term that collides with CONTEXT.md is challenged on the spot; a fuzzy term is pressed until it holds one exclusive name; business relationships are stress-tested against a concrete scenario; claims about system behavior are checked against the code, and a contradiction goes on the table instead of passing. A term the interview needs but the glossary lacks is itself a finding — either the word is being invented for this ship (withdraw it) or the glossary has a real gap (write the entry now).
Non-convergence here is normal work, not a failure: if the frontier will not empty, present the residual questions ranked — this is C2's input, not an error. If the residual questions themselves cannot be stated precisely (fog test Q2 fails), the destination itself is unsettled and that is beyond C2's authority: stop, note what already settled (vocabulary in CONTEXT.md, answered questions), recommend /oh-my-claudecode:ask-navigator, and exit — the pipeline never invents a destination.
Loft detour. A residual question that is precise but cannot settle in prose — it needs to be seen or clicked, not described (how the UI should look, whether a state model feels right) — is answered with an artifact, not more questions: call the Skill tool with "loft", let the captain react, and fold that reaction back into the interview. The lofted artifact is C2's input; the captain signs what they saw, not what they were told.
Harbor briefs. A mission brief handed over by /oh-my-claudecode:harbor carries signed decisions with links and applicable conditions: consume them as already-made — do not re-ask unchanged business goals. If the code has moved since the evidence was gathered (new head, changed base), re-verify the affected technical evidence; new implementation scope beyond the signed brief still gets its own approval.
Settled-consensus exit. When this invocation arrives from a conversation whose decision tree is already worked — every frontier question answered, vocabulary and decisions already settled (by a live interview, a decision questionnaire, or a handoff artifact) — Phase 1 collapses to a consensus audit: read what the session settled, verify each settled decision against the evidence it names, restate the whole set once (the comprehension reset above), and draft the spec directly. No questions are re-asked; the fog gate and C2 still gate the run — skipping the interview never skips a signature. Consensus quality is verified, never assumed: any settled decision that fails its restatement re-opens, and the interview resumes from there.
Synthesize .omc/specs/<feature-slug>/spec.md. When the mission is an accepted intent, follow the four-step contract from the intent skill: read the accepted intent (latest round), combine with the existing codebase, follow the Rules pillar (CLAUDE.md + docs/standards/ + docs/business/), and list every doubt and rule conflict — graded into the spec's pending-confirmation section; intent open questions carry into the spec verbatim, keeping their pending status:
# <Feature> Spec
## Problem
## Solution
## User Stories (numbered, each with testable acceptance criteria)
## Implementation Decisions
## Testing Decisions (external behavior only)
## Out of ScopeDraft all of it, then stop at C2: present the acceptance criteria and the test seam list for human approval. When the mission is an accepted intent, the C2 presentation also carries the intent-flavor checklist: does the spec still solve the intent's original problem, are the carried open questions accounted for, and do high-risk items get a tech-lead consult before approval. Seams are selected by repo evidence and the deep-module discipline (public interfaces, existing test seams, depth analysis; the vocabulary is seeded in docs/standards/architecture.md); the human confirms or corrects the list — a seam the human has not approved gets no tests. Each seam entry declares its boundary class — in-process, locally substitutable, owned-remote (a port with a production and a test adapter), or true-external (an injected substitute) — because the class decides how the seam is tested.
Tender rule. When the interface's shape is itself contested — two plausible designs, neither settleable by talk — C2 signs between alternatives, never on the only proposal on the table: draft the candidate shapes in parallel sub-agents, each under a different emphasis (smallest interface surface · widest future fit · smoothest default path for the most common caller · cleanest cross-boundary adapter), present them side by side compared on depth, locality, and seam placement, and let the captain pick one or fold a hybrid.
Durability gate (agent-enforced, no approval needed): spec and tickets carry contracts, never coordinates — no file paths, no line numbers. Fragments encoding a decision better than prose (state machines, reducers, schemas) are the exception and state their origin (usually a loft).
Testing decisions retire orphans: when a seam is deepened or replaced, the tests pinned to the old interface retire with it — new tests write to the new interface only. The testing rules themselves are seeded in docs/standards/process.md.
Split into vertical slices under .omc/specs/<feature-slug>/tickets/:
NN-slug.md, one file per ticket, dependency-ordered, each declaring blockedBy: [ids]Agent-side mechanical validation runs first (independence, demonstrability, context fit). Then C3: present granularity, blocking edges, and proposed merges/splits for human approval. Iterate until approved. Mark every ticket ready-for-agent. The C3 bar: a fresh worker can start any ticket without a question back — a ticket that must ask sends the flaw up to the spec, not to the worker.
Integration-wiring rule: every vertical slice includes its own wiring and a smoke assertion — a slice whose output nothing mounts, serves, or imports is not done. Cross-slice seams that no single slice owns (route mounting, static serving, entry-point wiring) get an explicit integration ticket as the last frontier item.
The frontier is every ticket whose blockers are all complete.
Scout pass. Exploration shared by two or more tickets runs once, before dispatch: an explore subagent resolves the shared questions and writes notes under .omc/specs/<feature-slug>/notes/. Tickets reference notes by pointer; workers consume pointers and never re-explore what a note already settles. A question only one ticket needs stays in that ticket.
Integration topology. Worker output converges on one surface that outlives the workers: an integration branch created at Phase 4 start — on a PR platform, opened as a draft PR referencing the spec and every ticket. A worker branch merges through team's merge coordination (checkMergeConflicts → mergeWorkerBranch) only after the two-axis review gate passes for that ticket, and C5 verify runs against the integration surface. This stays inside Team's contract: the branch is topology, not a new launch state machine.
Repair rule. Two-axis review findings are repaired by a single repair worker and re-passed through the same gate. The reviewer judges and never repairs; the implementer never self-approves.
Parallel (default, 2+ tickets). Hand tickets to team: each ticket becomes a team task, blockedBy edges carry over — team's claim mechanics pick only frontier tasks. Spawn N workers. Each worker implements with the tdd discipline at the seams approved in C2, applying /oh-my-claudecode:minimal-code-discipline as the writing-time discipline (it stays opt-in); a ticket closes only after code-review passes on the diff, declared by the reviewer — the implementer never self-approves.
Serial (single ticket, or --serial). Delegate one ticket at a time to an executor subagent; same review gate.
Two-axis review gate. The closing review runs along two axes, in parallel, reported separately — never merged or cross-ranked, because a change can pass one axis and fail the other (standards-conforming but wrong behavior; faithful but convention-breaking). The reviewer fails the ticket when either axis fails:
docs/standards/ volume, plus a judgement-call-only smell baseline (a documented repo standard overrides the baseline; anything tooling already enforces is skipped). This is the standing consumer that keeps the standards surfaces referenced.C4 — decisions that emerge mid-run. When a parallel Team worker hits a decision passing the ADR test, it stops before decision-dependent mutation, records the question (options, recommendation, reversibility note) in the failed transition's error field and .omc/specs/<feature-slug>/decisions-pending.md, and exits through Team's supported in_progress → failed transition. This is a terminal Launch outcome: do not reopen the task, create an in-run successor, force cleanup, or start another Team from this invocation. Surface the blocker with pointers to the failed task and decision artifact.
On a later explicit Launch invocation, first require the owning Team lifecycle to be terminal and cleaned up through its supported owner. Then batch every pending C4 question for the human, record the answers in the decision log/ADRs, and rebuild the ticket frontier before starting execution. All ticket dependencies are declared before dispatch: ticket blockedBy metadata maps to the public Team blocked_by field with numeric task IDs when tasks are created through the Team task API. Team's existing task-ID dependency resolution rejects early claims and makes dependents eligible only after their predecessors complete. The team lead never claims a task unless it is explicitly registered as a Team worker. Launch never dynamically mutates a claimed task's dependencies and never promises automatic re-dispatch after C4.
Serial C4 (--serial). The executor stops before decision-dependent mutation and returns the question without claiming completion. Record and resolve the human question at the batch boundary, then start a fresh executor successor with the recorded answer and remaining acceptance criteria. Do not replay or resume the interrupted executor context, and do not manufacture Team tasks when Team is not active.
Repeated failure stop. The same verification failure surviving three repair attempts halts that lane with a root-cause hypothesis for the human. This is the one condition that interrupts C4's batching immediately.
all tickets terminal with evidence → run verify across the whole change
reconcile the paper trail: CONTEXT.md accurate, ADRs complete, spec updated where implementation taught it something
yard re-check: re-run the drydock --check audit; any new findings since entry are reported as yard drift, with a pointer to /oh-my-claudecode:drydock
sediment pass — answer: what did this ship teach the yard? Consume a structured retro first — what was built (the shipped scope in one line per slice), what broke (every failure that surfaced: three-strike root causes, verify findings), what taught (C4 answers, review rejections, and any map resolutions or deferred-sediment lines from a source map this run followed), and where the environment dragged (wayfinding friction, checks that ran too slow or too late, standards gaps that forced guesswork, tools that no-op'd, information that was harder to reach than it should have been) — then answer. Propose every lesson as lesson → slot → intended change against the slot table below, or decline it explicitly with a reason; a ship with nothing to teach must say so verbatim as "no new lessons". This requirement blocks non-answers, never empty answers — inventing lessons to have one is the same violation as skipping the question. The lesson list rides in the completion report next to the Open Assumptions, each line individually vetoable; approved lessons are written to their slots only after acceptance, and the report records each landing's file location. Before writing any lesson into a slot, call the Skill tool with agent-doc-discipline and apply its rules; the sediment pass is complete only after the skill's verification checklist passes.
| Lesson kind | Slot |
|---|---|
| terms and boundaries settled mid-run | CONTEXT.md glossary |
| checkable behavior rules (carry a why) | docs/standards/ matching volume (architecture / data / process) |
| most-violated conventions (thin-entry grade) | CLAUDE.md body — propose only |
| hard-to-reverse decisions | docs/adr/ (C4 answers already land here) |
| ruled-out directions (concept + why rejected) | docs/adr/ (a rejection is a decision too; the why is the load-bearing part) |
| business rules / background | docs/business/ |
| UI patterns / component contracts | design-system/ |
| reusable craft | .omc/skills/ (through the skillify gate) |
| repeatedly needed automation / integrations | scripts/ or .mcp.json |
| no slot fits | decline explicitly with the reason |
thin-entry budget: the CLAUDE.md body carries at most five hot entries. A lesson is thin-entry grade only when the source checklist evidences the same violation at least twice in this run, or the captain marks it load-bearing. Entries are listed most-recently-promoted first; the coldest entry is deterministically the last one listed, and a promotion over budget must demote exactly that entry in the same proposal, moving its full text back to docs/standards/ — nothing is deleted, only re-tiered. Bloat is rebalanced ship by ship and is deliberately not a --check finding.
state the run numbers in the completion report: tickets completed, C4 decisions surfaced, three-strike halts, and sediment lines proposed — plain facts in the report text, no telemetry system, no state files
emit the completion report: shipped scope, verification evidence, paper-trail locations, yard-drift findings (if any), the sediment list (each line vetoable), and Open Assumptions ranked by how much a human would likely want to veto them
when the platform reviews through PRs and Phase 4 opened a draft PR, draft the PR body per /oh-my-claudecode:pr from the report's evidence and linked ADRs, and mark the PR ready only after C5 acceptance
--output-format stream-json (or periodic progress markers) so the orchestrator sees liveness — plain text mode emits nothing until the turn ends.All tickets terminal with evidence, verify clean on the whole change, paper trail reconciled, report emitted — and every decision the agents made on the human's behalf is answerable with one pointer to where it was recorded.
© Yeachan-Heo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/launch of Yeachan-Heo/oh-my-claudecode.
Open the folder on GitHubat commit 454bae0
Launch Delivery Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Launch Delivery Pipeline this skillYeachan-Heo/oh-my-claudecode | 40k | — | ~7.3k | Automated safety check: Pass | MIT | |
| Auditable Playbook Designercursor/plugins | 10k | 8 repos | ~1k | Automated safety check: Pass | None | |
| Blueprint Construction Planneraffaan-m/ECC | 276k | 5 repos | ~1.3k | Automated safety check: Pass | MIT | |
| AK Plansaltbo/agent-kanban | 488 | — | ~903 | Automated safety check: Pass | Custom licence | |
| Agent Goal Brief WriterKKKKhazix/khazix-skills | 21k | — | ~723 | Automated safety check: Pass | MIT | |
| Paseo Committeegetpaseo/paseo | 20k | 1 repos | ~496 | Automated safety check: Pass | Custom licence |
cursor/plugins
Designs a step-by-step playbook for large or unfamiliar work, runs it as a loop of hypotheses and measurements, and logs decisions so a human can review them later.
affaan-m/ECC
Turns a one-line objective into a multi-step plan file with PR-sized steps, context briefs, a dependency graph, parallel-step detection and an adversarial review.
saltbo/agent-kanban
Breaks a project into dependency-aware Tasks on an Agent Kanban board through Realmroot Toolbox, previews them for approval, then follows each Task through review.
KKKKhazix/khazix-skills
Turns a one-line idea into a task brief of up to 4000 characters that an autonomous agent can run through /goal, with measured baselines and cheat-resistant acceptance checks.
getpaseo/paseo
Forms a two-agent committee with contrasting profiles to analyze a stuck problem in parallel, reconcile their views and return a consensus plan without editing files.
addyosmani/agent-skills
Delivers a change in thin vertical slices, each implemented, tested, verified and committed before the next, using vertical, contract-first or risk-first slicing.
Yeachan-Heo/oh-my-claudecode
Sends a question or task to another locally installed agent CLI, such as Codex or Gemini, through omc ask and saves the answer as a file.
Yeachan-Heo/oh-my-claudecode
Charts a foggy effort into a map of decision tickets on the repo's issue tracker and works through them one per session, producing decisions rather than deliverables.
Yeachan-Heo/oh-my-claudecode
Runs an autonomous improvement loop on a repository: agents propose and execute plans, a tournament picks the winner by benchmark, and each round is recorded and plotted.
Yeachan-Heo/oh-my-claudecode
Takes a short product idea through requirements, design, planning, parallel implementation, QA cycles and multi-reviewer validation to produce working code.
Yeachan-Heo/oh-my-claudecode
Detects and gracefully cancels whichever OMC mode, autopilot, ralph, swarm, pipeline, or team, is currently active, then clears its state.
Yeachan-Heo/oh-my-claudecode
Maps a codebase directory by directory and writes linked AGENTS.md files, each pointing to its parent, to document what each area contains.
Categories
Delivery pipeline from mission brief to verified change: writes a spec, splits it into tickets, runs them in parallel, verifies and reports a decision log after a repo audit gate. Launch is a governed run from a mission brief to a shipped, verified change. It converges on the mission, writes a durable spec, breaks the work into vertical-slice tickets with blocking edges, runs the ready tickets in parallel through the `team` skill, closes with verification and reports with a full decision log.
Launch Delivery Pipeline fits situations like: delivering a well-defined mission as a verified change with a decision log; breaking a spec into tickets and running independent ones in parallel; auditing a repository's shared setup before a delivery run; deciding which steps a human must sign off on and which agents can run.
Run `npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a claude-code`. Or copy the skill folder (skills/launch in Yeachan-Heo/oh-my-claudecode) into .claude/skills/launch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a codex`. Or copy the skill folder (skills/launch in Yeachan-Heo/oh-my-claudecode) into .agents/skills/launch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Yeachan-Heo/oh-my-claudecode --skill launch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/launch, .gemini/skills/launch, .github/skills/launch and .opencode/skills/launch in your project.
Going by SKILL.md and its folder, Launch Delivery Pipeline needs the command-line tools its instructions call (node). Our summary lists: A repository already set up with the drydock skill.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Launch Delivery Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.3k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Launch Delivery Pipeline: Auditable Playbook Designer (cursor/plugins, 10k stars), Blueprint Construction Planner (affaan-m/ECC, 276k stars), AK Plan (saltbo/agent-kanban, 488 stars) and Agent Goal Brief Writer (KKKKhazix/khazix-skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Yeachan-Heo (a GitHub user) maintains it in Yeachan-Heo/oh-my-claudecode, which has 39,720 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on October 8, 2026.
Source: Yeachan-Heo/oh-my-claudecode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.