plan
Use when a spec is approved and implementation has not started: turns it into a task-by-task plan with exact paths and checkable verification.
Skill by rizukirr
Chalk Labs
Need help deploying plan?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rizukirr-plan
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/plan
What's inside
- Skill name
plan- Description
- Use when a spec is approved and implementation has not started: turns it into a task-by-task plan with exact paths and checkable verification. No code here.
- License
- MIT
- Instructions
- 105 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# plan Turn an approved spec into an implementation plan. No code is written here. ## HARD-GATE Do NOT implement anything until a plan file exists and the user has approved it. The gate has one precondition, and it is checkable rather than asserted: a spec file exists carrying `status: approved` in its frontmatter. If there is none, stop and invoke `brainstorm`. A plan built on a draft is a plan built on something the user may still change. ## The spec is settled Read it, do not re-litigate it. Questions it already answered are not asked again. A defect found in it goes back to the user as a question: never a silent edit, because the approved artefact is what the user signed. ## Refusals - **Spec spans independent subsystems.** Say so before writing any task. One plan per subsystem, each producing working software on its own. - **A requirement has no possible verify clause.** Not a licence to write a weak one. Either the task boundary is wrong and splits, or the requirement is unobservable and goes back to the user as a question. ## Plan document Write to `docs/plans/YYYY-MM-DD-<topic>.md`, then commit: that file alone. ``` # <topic>: Implementation Plan **Spec:** docs/specs/<file>.md **Goal:** one sentence **Architecture:** two or three sentences ## Global constraints - <one line each, values copied verbatim from the spec> ``` Global constraints are the spec's project-wide requirements: version floors, dependency limits, naming rules. Stated once, they are implicitly part of every task, so no task restates them and no task author has to remember them. ## Task shape ``` ### Task N: <name> → verify: <predicate> **Files:** - Create: `exact/path` - Modify: `exact/path:12-40` - [ ] Step 1: <one action> - [ ] Step 2: Run `<command>` - [ ] Step N: Commit ``` A task is the smallest unit worth a fresh reviewer's gate. Fold setup, config and documentation into the task whose deliverable needs them. Split only where a reviewer could reject one task while approving its neighbour. Each task ends with an independently testable deliverable and one commit. Steps that change code carry the actual code. A step that runs a command names the command and stops there. ## You may not write a value you have not observed Every value this plan states, a number, a path, a count, a cross-reference, must be one you observed. You read it, you ran it, or you chose it as a threshold. A value you recalled is a guess, and a guess in a plan is a defect a fresh implementer pays for: they follow the plan exactly, hit a contradiction, and stop. Two ways to satisfy it. Derive the value before writing it, usually one command and a few seconds. Or state the property instead of the value: "every new case passes" rather than "three cases pass". **A clause is the strictest case.** A `→ verify:` clause states a predicate: something checkable by a reader of the plan, before anything runs. Not a transcript. **Predicates:** exit status, pass or fail, a file exists, a match count at or above a threshold, an HTTP status. **Not predicates:** a quoted message, a specific count, a diff, a sample of output. Each is a claim about a future you have not seen. When one is wrong, the executing agent cannot tell whether the code failed or the plan lied, and it will assume the code. A number is not itself the tell. Three forms carry one legitimately: an exit status, an HTTP status, and a threshold in either direction (at least 1 match, under 120 lines). Any other number in a clause is a predicted value. A threshold is derivable because you chose it. A predicted value is not, because the runtime chooses it. Spelling a number out does not launder it. "The four cases pass" is a count, and the first plan written under this rule got that count wrong. Naming your command in a code span is not quoting. Backticks delimit what to run. Straight quotes are how a predicted transcript gets in. If a specific value is genuinely load-bearing, the task's first step **observes it**, and the clause refers to the observation instead of a guess. A clause must be satisfiable by the task it belongs to. If you cannot say what would make it true, the task boundary is wrong, not the clause. **Outside a clause the rule still holds, and there is no allowlist.** A line count in a task title, a path in a Files block, a version in Global constraints, a reference to another task by number: each is a value, so each was read, run, or chosen. None may be recalled. ## No placeholders `TBD`, `TODO`, "add error handling", "similar to Task N", and any reference to a function no task defines are plan failures, not shorthand. Repeat the code: tasks get read out of order. ## Self-review 1. **Spec coverage.** Every requirement maps to a task. Add any that is missing. 2. **Placeholders.** Scan for the patterns above. Fix them. 3. **Clauses.** Scan every `→ verify:` for a quoted string, or a number outside the three permitted forms. Both are predicted output. Fix them. 4. **Provenance.** For every number, path, count and cross-reference in the plan, name where it came from. "I ran it" and "I read it" pass. "I knew it" is a guess: derive it, or state a property instead. Fix inline. No re-review. ## User review gate Send exactly this, verbatim: > Plan written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start implementing. Wait. On requested changes, make them and re-run self-review. ## Handoff The only next skill is `exec`, once the user has approved the plan. Never invoke an implementation skill from here.
From rizukirr/vibekit, MIT.
More from rizukirr/vibekit
- 0.644score
quick
rizukirr
Use when the user types /vibekit:quick: writes the change immediately under lazy's ladder, no spec, no plan, no subagents.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
exec
rizukirr
Use when a plan is approved and implementation has not started: dispatches one fresh subagent per task, runs each task's verify clause, and routes failures…
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
using-vibekit
rizukirr
Use when starting any conversation: establishes the auto-trigger discipline so guardrail skills fire instead of being silently skipped.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
debug
rizukirr
Use when a check fails: a red test, a broken build, a failed clause, or a bug you can point at.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
plain
rizukirr
Use before writing any text, in chat or into a file.
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
brainstorm
rizukirr
Use before any creative or implementation work: features, components, behavior changes.
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
lazy
rizukirr
Use at the start of any coding work: writing, adding, refactoring, fixing, designing.
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
terse
rizukirr
Use at the start of every session.
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
verify
rizukirr
Use before claiming a change is done, fixed or passing: checks the whole change against its spec, runs the checks no single task could, hunts for the bugs the…
SkillAFreshness: A★ 20Claude Code +9 - 0.633score
vibe
rizukirr
Run a short intent through the pipeline.
SkillAFreshness: A★ 20Claude Code +9
Signals
- Stars
- 20
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 22, 2026 (8 days ago)
- Last release
- Oct 10, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/rizukirr/vibekit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from rizukirr
- 0.644score
quick
rizukirr
Use when the user types /vibekit:quick: writes the change immediately under lazy's ladder, no spec, no plan, no subagents.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
exec
rizukirr
Use when a plan is approved and implementation has not started: dispatches one fresh subagent per task, runs each task's verify clause, and routes failures…
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
using-vibekit
rizukirr
Use when starting any conversation: establishes the auto-trigger discipline so guardrail skills fire instead of being silently skipped.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
debug
rizukirr
Use when a check fails: a red test, a broken build, a failed clause, or a bug you can point at.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
plain
rizukirr
Use before writing any text, in chat or into a file.
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
brainstorm
rizukirr
Use before any creative or implementation work: features, components, behavior changes.
SkillAFreshness: A★ 20Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get plan running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
plan skill. Agent Mart. https://agentmart.dev/skills/rizukirr-plan (last updated 2026-10-24)