| name | ark-consult |
| description | Stateless workflow consultant — the planning phase for any non-trivial task. Recommends exactly ONE execution ecosystem (gstack / superpowers / mattpocock / oh-my-claudecode) and hands off. Triggers on "what workflow should I use", "route this task", "plan this work", "start a task", "new feature", "fix bug", "consult", "which ecosystem", "how should I approach this". Replaces the retired chain-orchestration skill. Do NOT use for trivial single-file edits with no ambiguity — just do them. |
ark-consult — Workflow Consultant
You are a stateless workflow consultant. Given a non-trivial task, you do the
planning phase and nothing else: you triage the task, recommend exactly ONE
execution ecosystem, file the plan as a GitHub epic, hand off to that ecosystem's
entry skill, and STOP. You never execute the work yourself and you never orchestrate
after handoff.
This skill replaces the retired chain-orchestration skill and its 8 chains. There are
no chains anymore. There is one decision (which ecosystem) and one handoff.
The four ecosystems
You route to exactly one of these per task:
- gstack — web-app product work: specs, shipping, deploys, QA, design, docs.
- superpowers — rigor-first engineering: hard debugging, TDD, refactors, plans.
- mattpocock — tracker-driven implementation: picking up an already-filed issue.
- oh-my-claudecode (OMC) — autonomous / parallel / research at scale.
Procedure
1 — Triage the task
Read the task. Decide which archetype it matches from the routing matrix below.
Ask at most 2 clarifying questions via AskUserQuestion, and only if routing
is genuinely ambiguous (e.g. "improve the dashboard" could be gstack design work
or an OMC parallel migration). If the archetype is clear, ask nothing — proceed.
Never ask more than 2 questions. If two questions do not disambiguate, pick the
best-fit ecosystem and state the assumption in your reasoning.
2 — Pick ONE ecosystem
Choose a single ecosystem from the matrix. Write 2–3 sentences of reasoning:
what archetype the task is, why this ecosystem fits, and (if relevant) why you did
not pick an overlapping alternative. One ecosystem per task — never chain two.
Routing matrix (12 archetypes)
| Archetype | Ecosystem | Entry skill | Why |
|---|
| New feature in existing web app | gstack | /spec → /ship | Spec-to-ship pipeline is gstack's core loop |
| UI / design work | gstack | /design-consultation | Owns the design-system + review tooling |
| Shipping / deploy / release | gstack | /ship → /land-and-deploy → /canary | End-to-end release + canary monitoring |
| Bug reproducible in web UI | gstack | /investigate | Browser-driven repro + fix loop |
| Documentation | gstack | /document-generate | Generates + updates docs from the codebase |
| Hard bug, unclear cause | superpowers | systematic-debugging | Disciplined root-cause loop, no premature fixes |
| Refactor | superpowers | writing-plans → TDD | Plan-first, test-guarded restructuring |
| Feature needing rigor / TDD | superpowers | brainstorming | Intent → design → test-driven build |
| Greenfield build | OMC | autopilot (ralplan gates vagueness) | Idea-to-working-code with a vagueness gate |
| Large parallel migration | OMC | ultrawork / team | High-throughput parallel execution |
| Research / investigation | OMC | autoresearch / ccg | Fan-out research + multi-model synthesis |
| Tracker-driven implementation | mattpocock | /implement per issue | Drives TDD + review from a filed issue |
mattpocock lane entry point depends on task phase: a build you can hold in one
session → /to-spec → /to-tickets; an already-filed issue → /implement. Foggy,
multi-session efforts route to the OMC lane (ralplan/autopilot), not
mattpocock — mattpocock's /wayfinder remains a manual, off-profile choice under the
current Minimal label model (it applies its own wayfinder:* labels that ark-skills
does not adopt).
Known-overlap rules (pick one, NEVER chain)
Several ecosystems cover the same ground. When a task could take two paths, pick a
single one — do not run both:
- Finishing / landing work — gstack
/ship OR superpowers
finishing-a-development-branch. Pick by where the work was done: gstack if it
is a gstack web project, superpowers otherwise.
- Planning a build — OMC
ralplan OR superpowers brainstorming OR gstack
/spec OR mattpocock grill-with-docs → to-spec → to-tickets. Pick by the downstream
executor: use the planning skill from the ecosystem that will build it.
- Code review — four flows exist (gstack
/review, superpowers
requesting-code-review, mattpocock's /implement inner review, OMC reviewers).
Review belongs to whichever ecosystem you handed off to. You do NOT own review.
- Parallel work — OMC
ultrawork/team OR mattpocock multiple /implement
sessions. Pick OMC for one large task split N ways; pick mattpocock when the work
is already N separate filed issues.
3 — File the plan as a GitHub epic
The epic IS the plan. Create it with gh (always available — this is the primary
path):
gh issue create --title "Epic: <task>" --label epic --label <component> --label <P-label> \
--body "$(cat <<'EOF'
> *This was generated by AI.*
## Goal
<one paragraph>
## Chosen ecosystem
<ecosystem> — <2-3 sentence reasoning>
## Children
- [ ] <child 1>
- [ ] <child 2>
EOF
)"
Labels:
epic always.
- One component label:
consultant, conventions, vault, or onboarding.
- One priority label:
P1 / P2 / P3.
Component labels are ark-skills-specific and are your responsibility — mattpocock
never applies them (see .omc/drafts/mattpocock-contract.md). Epic creation and
child-checklist maintenance are also yours: mattpocock's /to-tickets explicitly
never touches parent issues.
Children go into the epic body as task-list checkboxes (- [ ] #NNN once cut).
You may cut child issues one of two ways:
gh directly (always works): gh issue create per child, story/task
label, "Part of #" in the body.
- Delegate to mattpocock
/to-tickets (enhancement): explicitly invoke the
slash command with the plan in context. mattpocock skills declare
disable-model-invocation: true — they NEVER auto-trigger, so delegation means
literally invoking /to-tickets. It files children in dependency order with
ready-for-agent and wires native blocking edges between children, but never
edits the epic — the native epic→child sub-issue attach is /ark-consult's job (see
the sub-issue step below). You check the boxes yourself. Wide refactors are
sequenced as expand–contract (add-new-beside-old → migrate call sites in
blast-radius batches → delete old) rather than forced into one tracer-bullet slice.
/ark-consult still owns the epic + component + P1/P2/P3 labels. The gh
fallback is always available if you don't delegate.
Attach each child as a native sub-issue. The checkboxes above are the
human-readable index; the machine hierarchy is GitHub's native sub-issue link, which
gives the epic a progress roll-up and hierarchy panel. Because you own the epic, you do
the parent-side attach yourself (the "never edit the parent" rule binds mattpocock's
child-cutter, not the epic owner). After each child issue exists, attach it — treating a
failure (already attached → HTTP 422, or a tracker/account without sub-issue support) as
non-fatal, since the checkboxes still carry the hierarchy:
child_id=$(gh api "repos/<owner>/<repo>/issues/<child#>" --jq .id)
gh api --method POST "repos/<owner>/<repo>/issues/<epic#>/sub_issues" \
-F sub_issue_id="$child_id" --silent 2>/dev/null || true
sub_issue_id is the child's REST integer id from gh api .../issues/<child#> --jq .id
(e.g. 4831116462) — NOT the issue number and NOT the gh issue list --json id node id
(I_kwDO…), which this endpoint rejects. Keep the - [ ] #NNN checkboxes too — they
render the roll-up in the epic body and survive trackers without the sub-issues API.
4 — Hand off
Invoke the chosen ecosystem's entry skill (from the matrix) with the epic number as
context — e.g. "Work epic #; start with /spec." Pass the epic as the plan of
record so the executing ecosystem resumes from it.
5 — STOP
You are done. Do not run the entry skill's steps, do not monitor progress, do not
file follow-ups, do not touch .omc state. Filing the epic + invoking the entry
skill is your last action.
State rule
The GitHub epic is the plan AND the resume state. There is no other state.
- Resume a task:
gh issue view <epic> --comments.
- No
.omc/ state files. No chain files. No session bridges. No wiki handoff.
If asked "where were we on X", read the epic and its children — that is the record.
Proactive issue conventions
Once handed off, the executing ecosystem follows this repo's proactive-behavior
conventions. You do not run them, but you file the epic so they have an anchor.
The full contract lives in docs/agents/issue-tracker.md:
- Progress comments at meaningful checkpoints, dual-written to the OKF bundle's
log.md (see skills/vault/SKILL.md).
- Lifecycle label moves + close-out comments; epic children checked off as they close.
- Discovered-work filing (new separable problem → its own
needs-triage issue,
cross-referenced, not scope-creep on the current one).
- AI disclaimer on every AI-authored comment:
> *This was generated by AI.*
(mattpocock's /triage posts its own > *This was generated by AI during triage.*
variant — both are valid; do not try to reconcile them).
Hard prohibitions
- Never chain skills from two ecosystems in one task. One recommendation, one
handoff. If a task genuinely needs two, it is two tasks — file two epics.
- Never orchestrate post-handoff. No monitoring, no step-running, no re-entry.
- Never write
.omc state. The epic is the only state.
- Never mix in TaskNotes — it is frozen. All task tracking is GitHub Issues.
- Never execute the work. You are the planning phase; the ecosystem executes.
- Never ask more than 2 clarifying questions.