Navigation Help
Answers "What should I do next?" by scanning project state and mapping to the 7-phase pipeline.
How It Works
mk:help is the FORWARD-looking navigator (what to do next). Backward-looking delivery
analysis stays with /mk:status (project-manager) — this skill never reproduces it.
Collect candidates from ALL scan sources below, then RANK them and emit the top 3 — do
NOT stop at the first hit. The rank-1 candidate equals what the old "stop at first
actionable hit" behavior would have returned (back-compat); ranks 2–3 are alternates with
one-line rationale. This skill is read-only: it reads state, never writes it.
1. Paused Step-File Workflows
Check session-state/*-progress.json for any in-progress step-file workflow.
- Found → "Resume [skill] at step [N]. Run
/mk:[skill] to continue."
2. In-Progress Plans
Check tasks/plans/ for plan files without matching review verdicts.
- Plan exists, no tests → "Plan approved. Next: run tester agent (Phase 2 — RED)"
- Plan exists, tests failing → "Tests failing. Next: run developer agent (Phase 3 — GREEN)"
- Plan exists, tests passing, no review → "Tests green. Next: run reviewer agent (Phase 4 — Review)"
3. Pending Reviews
Check tasks/reviews/ for verdict files with WARN or action items.
- WARN verdict → "Review has warnings. Acknowledge and approve for Gate 2, or fix findings."
- FAIL verdict → "Review failed. Fix required changes, then re-run reviewer."
4. Uncommitted Changes
Check git status for staged/unstaged changes.
- Changes exist + review approved → "Ready to ship. Run
/mk:ship (Phase 5)"
- Changes exist, no review → "Changes detected but no review. Run reviewer first."
5. Clean State
No plans, no reviews, no changes.
- "Everything clean. Options: start a new task with planner, run
/mk:retro, or ask me anything."
Additional Scan Sources (read after sources 1–5)
ALL four may be absent at rest (e.g. session-state/checkpoints/ does not exist until
runtime). Absent file → skip silently; note the skip only under --verbose. Never error
on a missing source.
| # |
Source |
Fields to read |
Absent-case |
| 6 |
session-state/checkpoints/checkpoint-latest.json |
state.model_tier, progress.plan_path, environment.{git_branch,working_dir_clean,uncommitted_changes}, budget.{estimated_spent_usd,turn_count}, created_at |
skip; no checkpoint context |
| 7 |
session-state/budget-state.json |
estimated_cost_usd, turn_count, warnings_emitted (advisory only) |
skip; no budget caution |
| 8 |
session-state/detected-model.json |
tier (authoritative current-session tier) |
skip; tier unknown |
| 9 |
tasks/reviews/<slug>-verdict.json |
decision, dimensions[].verdict, created_at; .md is prose fallback |
use git/plan scan only |
| 10 |
docs/development-roadmap.md (when present; Type-1 allowlisted) |
current phase / milestone progress |
skip; tag (CF-C5) if relied on |
Model tier: source the current tier from session-state/detected-model.json (written
fresh at SessionStart). Do NOT source model_tier from budget-state.json — it has no
created_at/session marker and may carry a prior session's tier. Treat budget figures as
advisory unless a current-session signal corroborates them.
Staleness: if checkpoint-latest.json created_at is older than 24h, demote its
evidence and note the staleness in the rationale.
Ranking Heuristic (deterministic, evidence-cited — no vibes ranking)
Collect candidates from all sources, then rank:
- Blocked phase or BLOCKED verdict → rank-1 unblock/fix action. A review verdict is
blocked when
decision === "BLOCKED" — the verdict enum is PASS | PASS_WITH_RISK | BLOCKED; there is NO top-level "FAIL" value. FAIL exists only per-dimension in
dimensions[].verdict. Cite the failing dimension(s) in the rationale.
- In-progress phase (plan phase
status: in-progress, or GFM - [ ] checkboxes
remaining) → continue action, rationale cites checkbox % (count - [x] vs - [ ]).
- Approved plan, nothing built → cook action.
- Budget caution: if
warnings_emitted > 0 OR spent ≥ $30, fold a budget caution into
the rank-1 rationale (does not by itself create a rank).
- Clean state → the existing fallback table (start a task / retro / ask).
Each candidate's rationale MUST cite the source file(s) it came from.
For skill suggestions based on task type, see mk:agent-detector (its ../agent-detector/references/lifecycle-routing.md maps task patterns to skills).
State-to-Recommendation Map
Alias: /mk:plan routes to mk:plan-creator (slash-command wrapper at .claude/commands/mk/plan.md). Subcommands red-team, validate, archive are handled by the same skill.
| State |
Pipeline Phase |
Recommendation |
| No plan |
Phase 0 → 1 |
"Start with /mk:plan or describe your task" |
| Existing plan — stress-test |
Standalone subcommand |
"/mk:plan red-team {path} — adversarial review of existing plan" |
| Existing plan — interview |
Standalone subcommand |
"/mk:plan validate {path} — critical question interview on existing plan" |
| Completed/cancelled plans |
Housekeeping |
"/mk:plan archive — archive completed or cancelled plans" |
| Plan approved, no tests |
Phase 2 (TDD mode only) |
"In TDD mode (--tdd / MEOWKIT_TDD=1): run tester agent — write failing tests (RED phase). In default mode: skip Phase 2; run developer directly" |
| Tests written, failing |
Phase 3 |
"Run developer agent — implement to pass tests (GREEN)" |
| Tests passing, no review |
Phase 4 |
"Run /mk:review — adversarial code review" |
| Review PASS/WARN |
Phase 5 |
"Run /mk:ship — commit, PR, deploy" |
| Shipped |
Phase 6 |
"Run documenter — update docs, then /mk:retro" |
| Paused workflow |
Resume |
"Resume [skill] at step [N]" |
| Mixed state |
Clarify |
"Multiple items in progress. Which to focus on?" |
Specialist Skills (surface when domain matches)
| Situation |
Skill |
When to suggest |
| Operations, triage, case management, escalation protocols, billing workflows |
/mk:decision-framework |
User asks "how should we handle X cases" or is designing any case-routing system |
| "Is everything green?", pre-review check, post-implementation validation |
/mk:verify |
After implementation completes, before review, or when user wants a quick health check |
| API contract design or review — interface shape, error semantics, compatibility, pagination |
/mk:api-design-principles |
User is authoring or reviewing what an API promises, not how it runs |
| Backend change end to end — handler, service, integration, webhook, job |
/mk:backend-development |
User is changing backend behavior and needs contract, data, and auth owners coordinated |
| Schema, migration, query, index, or ORM data-access boundary |
/mk:database |
User is modelling, evolving, or querying data |
| Infrastructure, containers, CI/CD, deployment safety, rollback |
/mk:devops |
User is changing how the system is built, configured, or delivered |
Fast Paths (surface these prominently)
Not every task needs the full 7-phase pipeline. Mention these when relevant:
| Situation |
Fast Path |
What it bypasses |
| Simple bug fix, typo, rename, config tweak |
/mk:fix |
Gate 1 (plan approval) — scope is the plan |
Task flagged as one-shot by scale-routing |
Auto Gate 1 bypass |
Gate 1 — zero blast radius confirmed |
| Rapid iteration / spike work |
MEOWKIT_HOOK_PROFILE=fast |
post-write scan, pre-ship, pre-task-check, TDD check |
Quick fix? Use /mk:fix — bypasses Gate 1 for simple changes.
Small config change? Scale-routing may auto-bypass Gate 1 when blast radius is zero.
Hook profiles: Set MEOWKIT_HOOK_PROFILE=fast for rapid iteration (skips non-critical hooks).
Set MEOWKIT_HOOK_PROFILE=strict to enable ALL hooks including post-session capture.
Gotchas
- Multiple in-progress plans create ambiguity — ask user which to focus on, don't guess
session-state/ files from previous sessions may be stale — check timestamps, warn if >24h old
- Git status can be noisy (untracked IDE files) — focus on files in
src/, lib/, app/, tests/
- Don't recommend skipping phases — even if the user seems impatient, show the full path
- Fast paths are not loopholes — Gate 2 (review) is NEVER bypassed; security hooks are NEVER skipped
session-state/checkpoints/ does not exist until runtime — its absence is normal, not an error; skip silently
budget-state.json is missing at session start — treat budget figures as advisory; never source model tier from it (use detected-model.json)
- Prefer the machine-readable
*-verdict.json over the .md prose verdict; a verdict is blocked when decision === "BLOCKED" (never a top-level "FAIL")
- This is the forward-looking navigator — backward-looking delivery status stays with
/mk:status; do not duplicate it here
Output Format
The ranked next-steps are a JSON-compatible shape (documented here for downstream tooling),
rendered as a concise human summary. This skill does NOT emit machine JSON itself — there is
no scanner script; the shape documents what the ranking reasons about.
{
"next_steps": [
{
"rank": 1,
"action": "/mk:cook tasks/plans/260610-x/plan.md",
"priority": "high",
"rationale": "Plan approved (Gate 1), phase-02 in-progress at 3/7 checkboxes; budget $4.20 of $30",
"source": ["tasks/plans/260610-x/phase-02-*.md", "session-state/budget-state.json"]
}
],
"progress": { "plan": "260610-x", "phases_done": 1, "phases_total": 6, "checkbox_pct": 43 }
}
Human rendering (same headings as before — rank-1 is "Recommended Next Step"):
## Status
**Current phase:** [Phase N — Name]
**State:** [brief description]
### Recommended Next Step
[rank-1 action] — [rationale]
### Other Options
- [rank-2 action] — [one-line rationale]
- [rank-3 action] — [one-line rationale]
If --verbose flag: also show full state scan results (plan files, review files, test
status, git status) AND which additional sources (6–10) were present vs skipped.
1---2name: mk-help3description: Workflow navigation assistant. Scans project state (plans, reviews, tests, git) and recommends the next step in the 7-phase pipeline. Use when asked "what should I do next?", "where am I?", "help", or at session start. NOT for domain complexity routing (see mk:scale-routing); NOT for skill discovery (descriptions handle that automatically).4---56# Navigation Help78Answers "What should I do next?" by scanning project state and mapping to the 7-phase pipeline.910## How It Works1112`mk:help` is the FORWARD-looking navigator (what to do next). Backward-looking delivery13analysis stays with `/mk:status` (project-manager) — this skill never reproduces it.1415Collect candidates from ALL scan sources below, then RANK them and emit the top 3 — do16NOT stop at the first hit. The rank-1 candidate equals what the old "stop at first17actionable hit" behavior would have returned (back-compat); ranks 2–3 are alternates with18one-line rationale. This skill is read-only: it reads state, never writes it.1920### 1. Paused Step-File Workflows21Check `session-state/*-progress.json` for any in-progress step-file workflow.22- Found → "Resume [skill] at step [N]. Run `/mk:[skill]` to continue."2324### 2. In-Progress Plans25Check `tasks/plans/` for plan files without matching review verdicts.26- Plan exists, no tests → "Plan approved. Next: run tester agent (Phase 2 — RED)"27- Plan exists, tests failing → "Tests failing. Next: run developer agent (Phase 3 — GREEN)"28- Plan exists, tests passing, no review → "Tests green. Next: run reviewer agent (Phase 4 — Review)"2930### 3. Pending Reviews31Check `tasks/reviews/` for verdict files with WARN or action items.32- WARN verdict → "Review has warnings. Acknowledge and approve for Gate 2, or fix findings."33- FAIL verdict → "Review failed. Fix required changes, then re-run reviewer."3435### 4. Uncommitted Changes36Check `git status` for staged/unstaged changes.37- Changes exist + review approved → "Ready to ship. Run `/mk:ship` (Phase 5)"38- Changes exist, no review → "Changes detected but no review. Run reviewer first."3940### 5. Clean State41No plans, no reviews, no changes.42- "Everything clean. Options: start a new task with planner, run `/mk:retro`, or ask me anything."4344## Additional Scan Sources (read after sources 1–5)4546ALL four may be absent at rest (e.g. `session-state/checkpoints/` does not exist until47runtime). Absent file → skip silently; note the skip only under `--verbose`. Never error48on a missing source.4950| # | Source | Fields to read | Absent-case |51|---|--------|----------------|-------------|52| 6 | `session-state/checkpoints/checkpoint-latest.json` | `state.model_tier`, `progress.plan_path`, `environment.{git_branch,working_dir_clean,uncommitted_changes}`, `budget.{estimated_spent_usd,turn_count}`, `created_at` | skip; no checkpoint context |53| 7 | `session-state/budget-state.json` | `estimated_cost_usd`, `turn_count`, `warnings_emitted` (advisory only) | skip; no budget caution |54| 8 | `session-state/detected-model.json` | `tier` (authoritative current-session tier) | skip; tier unknown |55| 9 | `tasks/reviews/<slug>-verdict.json` | `decision`, `dimensions[].verdict`, `created_at`; `.md` is prose fallback | use git/plan scan only |56| 10 | `docs/development-roadmap.md` (when present; Type-1 allowlisted) | current phase / milestone progress | skip; tag `(CF-C5)` if relied on |5758**Model tier:** source the current tier from `session-state/detected-model.json` (written59fresh at SessionStart). Do NOT source `model_tier` from `budget-state.json` — it has no60`created_at`/session marker and may carry a prior session's tier. Treat budget figures as61advisory unless a current-session signal corroborates them.6263**Staleness:** if `checkpoint-latest.json` `created_at` is older than 24h, demote its64evidence and note the staleness in the rationale.6566## Ranking Heuristic (deterministic, evidence-cited — no vibes ranking)6768Collect candidates from all sources, then rank:69701. **Blocked phase or BLOCKED verdict** → rank-1 unblock/fix action. A review verdict is71 blocked when `decision === "BLOCKED"` — the verdict enum is `PASS | PASS_WITH_RISK |72 BLOCKED`; there is NO top-level `"FAIL"` value. `FAIL` exists only per-dimension in73 `dimensions[].verdict`. Cite the failing dimension(s) in the rationale.742. **In-progress phase** (plan phase `status: in-progress`, or GFM `- [ ]` checkboxes75 remaining) → continue action, rationale cites checkbox % (count `- [x]` vs `- [ ]`).763. **Approved plan, nothing built** → cook action.774. **Budget caution:** if `warnings_emitted > 0` OR spent ≥ $30, fold a budget caution into78 the rank-1 rationale (does not by itself create a rank).795. **Clean state** → the existing fallback table (start a task / retro / ask).8081Each candidate's rationale MUST cite the source file(s) it came from.8283For skill suggestions based on task type, see `mk:agent-detector` (its `../agent-detector/references/lifecycle-routing.md` maps task patterns to skills).8485## State-to-Recommendation Map8687> Alias: `/mk:plan` routes to `mk:plan-creator` (slash-command wrapper at `.claude/commands/mk/plan.md`). Subcommands `red-team`, `validate`, `archive` are handled by the same skill.8889| State | Pipeline Phase | Recommendation |90|-------|---------------|----------------|91| No plan | Phase 0 → 1 | "Start with `/mk:plan` or describe your task" |92| Existing plan — stress-test | Standalone subcommand | "`/mk:plan red-team {path}` — adversarial review of existing plan" |93| Existing plan — interview | Standalone subcommand | "`/mk:plan validate {path}` — critical question interview on existing plan" |94| Completed/cancelled plans | Housekeeping | "`/mk:plan archive` — archive completed or cancelled plans" |95| Plan approved, no tests | Phase 2 (TDD mode only) | "In TDD mode (`--tdd` / `MEOWKIT_TDD=1`): run tester agent — write failing tests (RED phase). In default mode: skip Phase 2; run developer directly" |96| Tests written, failing | Phase 3 | "Run developer agent — implement to pass tests (GREEN)" |97| Tests passing, no review | Phase 4 | "Run `/mk:review` — adversarial code review" |98| Review PASS/WARN | Phase 5 | "Run `/mk:ship` — commit, PR, deploy" |99| Shipped | Phase 6 | "Run documenter — update docs, then `/mk:retro`" |100| Paused workflow | Resume | "Resume [skill] at step [N]" |101| Mixed state | Clarify | "Multiple items in progress. Which to focus on?" |102103## Specialist Skills (surface when domain matches)104105| Situation | Skill | When to suggest |106|-----------|-------|----------------|107| Operations, triage, case management, escalation protocols, billing workflows | `/mk:decision-framework` | User asks "how should we handle X cases" or is designing any case-routing system |108| "Is everything green?", pre-review check, post-implementation validation | `/mk:verify` | After implementation completes, before review, or when user wants a quick health check |109| API contract design or review — interface shape, error semantics, compatibility, pagination | `/mk:api-design-principles` | User is authoring or reviewing what an API promises, not how it runs |110| Backend change end to end — handler, service, integration, webhook, job | `/mk:backend-development` | User is changing backend behavior and needs contract, data, and auth owners coordinated |111| Schema, migration, query, index, or ORM data-access boundary | `/mk:database` | User is modelling, evolving, or querying data |112| Infrastructure, containers, CI/CD, deployment safety, rollback | `/mk:devops` | User is changing how the system is built, configured, or delivered |113114## Fast Paths (surface these prominently)115116Not every task needs the full 7-phase pipeline. Mention these when relevant:117118| Situation | Fast Path | What it bypasses |119|-----------|-----------|-----------------|120| Simple bug fix, typo, rename, config tweak | `/mk:fix` | Gate 1 (plan approval) — scope is the plan |121| Task flagged as `one-shot` by scale-routing | Auto Gate 1 bypass | Gate 1 — zero blast radius confirmed |122| Rapid iteration / spike work | `MEOWKIT_HOOK_PROFILE=fast` | post-write scan, pre-ship, pre-task-check, TDD check |123124**Quick fix?** Use `/mk:fix` — bypasses Gate 1 for simple changes.125126**Small config change?** Scale-routing may auto-bypass Gate 1 when blast radius is zero.127128**Hook profiles:** Set `MEOWKIT_HOOK_PROFILE=fast` for rapid iteration (skips non-critical hooks).129Set `MEOWKIT_HOOK_PROFILE=strict` to enable ALL hooks including post-session capture.130131## Gotchas132133- Multiple in-progress plans create ambiguity — ask user which to focus on, don't guess134- `session-state/` files from previous sessions may be stale — check timestamps, warn if >24h old135- Git status can be noisy (untracked IDE files) — focus on files in `src/`, `lib/`, `app/`, `tests/`136- Don't recommend skipping phases — even if the user seems impatient, show the full path137- Fast paths are not loopholes — Gate 2 (review) is NEVER bypassed; security hooks are NEVER skipped138- `session-state/checkpoints/` does not exist until runtime — its absence is normal, not an error; skip silently139- `budget-state.json` is missing at session start — treat budget figures as advisory; never source model tier from it (use `detected-model.json`)140- Prefer the machine-readable `*-verdict.json` over the `.md` prose verdict; a verdict is blocked when `decision === "BLOCKED"` (never a top-level `"FAIL"`)141- This is the forward-looking navigator — backward-looking delivery status stays with `/mk:status`; do not duplicate it here142143## Output Format144145The ranked next-steps are a JSON-compatible shape (documented here for downstream tooling),146rendered as a concise human summary. This skill does NOT emit machine JSON itself — there is147no scanner script; the shape documents what the ranking reasons about.148149```json150{151 "next_steps": [152 {153 "rank": 1,154 "action": "/mk:cook tasks/plans/260610-x/plan.md",155 "priority": "high",156 "rationale": "Plan approved (Gate 1), phase-02 in-progress at 3/7 checkboxes; budget $4.20 of $30",157 "source": ["tasks/plans/260610-x/phase-02-*.md", "session-state/budget-state.json"]158 }159 ],160 "progress": { "plan": "260610-x", "phases_done": 1, "phases_total": 6, "checkbox_pct": 43 }161}162```163164Human rendering (same headings as before — rank-1 is "Recommended Next Step"):165166```167## Status168169**Current phase:** [Phase N — Name]170**State:** [brief description]171172### Recommended Next Step173[rank-1 action] — [rationale]174175### Other Options176- [rank-2 action] — [one-line rationale]177- [rank-3 action] — [one-line rationale]178```179180If `--verbose` flag: also show full state scan results (plan files, review files, test181status, git status) AND which additional sources (6–10) were present vs skipped.