Build ONE scoped phase of an existing multi-phase plan in a fresh session — re-verify the plan against the live code, interview the user sharply on real forks, then implement only that phase behind plan-mode approval with runnable verification and a fresh-eyes review. Invoke explicitly when starting a phase (the cross-platform form of /tale-mode:kickoff-phase; on Codex, name the plan-file + phase in your prompt). On Claude Code, use the /tale-mode:kickoff-phase command instead of this skill.
Scanned 8/30/2026
Install to Claude Code
npx -y skills add alicicek/tale-mode --skill kickoff-phase --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Kickoff Phase?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/alicicek-kickoff-phase)More formats (shields.io, HTML) on the badges page.
---
name: kickoff-phase
description: Build ONE scoped phase of an existing multi-phase plan in a fresh session — re-verify the plan against the live code, interview the user sharply on real forks, then implement only that phase behind plan-mode approval with runnable verification and a fresh-eyes review. Invoke explicitly when starting a phase (the cross-platform form of /tale-mode:kickoff-phase; on Codex, name the plan-file + phase in your prompt). On Claude Code, use the /tale-mode:kickoff-phase command instead of this skill.
---
# Kick off a phase
> **Cross-platform note.** This is the skill form of the `/tale-mode:kickoff-phase` Claude Code
> command, for hosts where slash commands don't exist (e.g. Codex). The two are kept in sync — if
> you edit one, mirror the other. On Codex there is no `$ARGUMENTS`: take **the plan-file path and
> the phase/chunk id from the user's prompt**.
>
> **Arm the phase loop (skill-invoked hosts only).** When this runs as a *skill*, the phase-marker
> hook may never see the kickoff (it matches the prompt text, which a prose invocation may not
> carry), so write the pending marker yourself — your first action once you're allowed to write
> (immediately, or right after plan approval if your host blocks writes in plan mode), **run from
> the project root** (the Stop hook only looks for it there):
>
> ```bash
> [ -f .claude/tale-mode.phase.pending.json ] || printf '%s\n' \
> '{"session":"pending","rounds":0,"max_rounds":50,"needs_user":null}' \
> > .claude/tale-mode.phase.pending.json
> ```
>
> The Stop hook claims that file for your session at the first turn-end and then enforces the
> committed `.claude/tale-mode.json` gates while the tree is dirty — IF the user has trusted that
> config's content-hash (inert otherwise; the `trust` skill has the commands — surface them, never
> run them). For a goal the committed gates don't cover, additionally write
> `.claude/active-goal.json` (the ad-hoc loop). On Claude Code the `/tale-mode:kickoff-phase`
> command arms this automatically — don't double-arm there.
**If your host has a plan mode, enter it now** and stay in it through the investigate-and-confirm
steps below — no edits until the user approves. **Recon prompt-hygiene (plan mode prompts on any
shell it can't prove read-only):** prefer the host's dedicated read tools over shell; keep shell
recon to plain single-purpose read-only commands (on Claude Code, `ls`/`cat`/`grep`/`git log` and
simple chains of them auto-approve via the bundled plan-mode hook); route loop-heavy sweeps through
read-only sub-agents, so the user isn't walled with permission prompts. Read the named plan file
(and any roadmap/README it points to) in full. Implement only the named chunk.
**Before writing any code, interview the user — but interview SHARP.** Re-verify the plan's claims
for this chunk against the actual code (the code is ground truth; the plan is a snapshot), and
confirm any external framework/SDK/CLI setup against current docs (Context7/web), not memory. Then
split the open decisions and handle them differently:
- **Engineering calls → DECIDE and proceed (don't ask).** Anything settle-able from the code + best
practice: file/module placement, data shape, library choice, error handling, naming, API surface.
Make the call a senior engineer shipping production would make — never an MVP/temp-workaround unless
explicitly asked. State the decision + a one-line rationale and move on. When two options trade off,
first check whether the *best* answer combines them. Escalate to a question only if it's genuinely
hard to reverse and you're torn, or it secretly carries a product/cost choice.
- **Judgment calls → ASK (batched, one round).** Only what needs the user's preference, priorities, or
authority: product/UX behaviour, scope/priority trade-offs, cost/vendor choices, and steps only they
can do (credentials, dashboards, go/no-go). Phrase every option **outcome-first** (the real-world
result), then a one-line technical note in parens. Label each option's authority — **"In plan"** /
**"Engineering alternative"** / **"Out of scope"** — and flag any shortcut *as a shortcut*.
**Follow the plan; auto-defer (and record in the plan) any in-plan item that won't fit the session
budget and regresses nothing — don't ask, just log it.** Don't re-decide what the plan settled. If
the plan's approach is wrong, say **"recommend changing the plan"** and cite the exact line. Batch
every real question into one round.
Once the user answers: present the concrete approach — **with an executor named per workstream**
(builder/codex/runner/main-loop, per the owner's CLAUDE.md roles table) — and **get approval to start
editing** (exit plan mode). Only then implement, on a dedicated branch, **routing each workstream to
its named executor: the main loop DRIVES, delegates TYPE. Keep on the main loop only taste-carrying
(UI/copy) or genuinely interdependent pieces, one-line justification each; announce every offload as
you dispatch it. Not delegating a workstream the plan routed away is a plan deviation — say so out
loud. The brief always feels more expensive than it is; typed code is re-read every turn forever.**
**Approval authorizes EDITING, not committing — get
explicit sign-off before EVERY commit and EVERY push** (pause and summarize what you'd commit each
time).
Then **prove it by running it, not by reading the diff** (Claude Code: `/verify` to confirm behavior,
`/run` to boot/drive the live app, whenever runnable — Codex: run the test / drive the app yourself and
observe). Review per the owner's CLAUDE.md review ladder — default ONE fresh-eyes pass; the full
battery only for dangerous diffs.
A **cross-model metered** reviewer (Greptile / the CodeRabbit `code-review` skill) is the strongest §5
pass — **but it is OWNER-TRIGGERED and credit-metered: do NOT auto-run it, comment `@…`, or push-loop
it (every push to an open PR re-triggers it = real money).** Surface that it's available; let the user
decide. If they run it, fix every P0/P1, then ask before pushing (batch fixes into one push).
Before declaring done, emit a short DONE/MISSING line-up only for the checks the review ladder
actually required. **If a behavioral
check can't run yet** (needs external provisioning), record it as a named, owned deferral in the plan's
progress and treat the chunk as not-done until discharged. Merge only on the user's go-ahead. When done,
update the plan file's progress with a one-line outcome (commit hash + any drift). Don't start any later
chunk. If new questions arise mid-build, pause and ask rather than guess.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!