plan-critique-skills: Skill for Claude Code

.gemini/skills/plan-execute/SKILL.md

plan-execute is a skill for Claude Code, Gemini CLI from serbanghita/plan-critique-skills. It costs 14 tokens per session (3,220 once invoked), scanned A, original, MIT.

A workflow for carrying out an implementation plan that has already been reviewed and refined.

In plain words
What is it for?
It helps execute planned code changes, create tests before implementation when possible, follow project agreements, and verify each step.
Why use it?
It requires tests or other evidence before reporting a step as complete, fixed, or working.

Skill for Claude CodeGemini CLI

Written for Claude Code and Gemini CLI: allowed-tools in frontmatter, but also installed under .gemini/. Also seen: mentions CLAUDE.md; names the AskUserQuestion tool; mentions AGENTS.md.

This is serbanghita/plan-critique-skills's own configuration. It tells Claude Code and Gemini CLI how to work on plan-critique-skills itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything plan-critique-skills configures →

Part of the plan plugin — 10 skills shipped together

Reuse

Borrowing it

Nothing to install: this file belongs to serbanghita/plan-critique-skills. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/serbanghita/plan-critique-skills/main/.gemini/skills/plan-execute/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/serbanghita/plan-critique-skills

Made for: Claude Code, Gemini CLI.

Or install plan, the plugin that ships this one along with the rest of its 10 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for plan-execute

README.md
[![agentmods](https://agentmods.dev/badge/skills/serbanghita/plan-critique-skills/plan-execute/github.svg)](https://agentmods.dev/skills/serbanghita/plan-critique-skills/plan-execute)
Your own site
<a href="https://agentmods.dev/skills/serbanghita/plan-critique-skills/plan-execute"><img src="https://agentmods.dev/badge/skills/serbanghita/plan-critique-skills/plan-execute/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for plan-execute

Your own site · 80×15
<a href="https://agentmods.dev/skills/serbanghita/plan-critique-skills/plan-execute"><img src="https://agentmods.dev/badge/skills/serbanghita/plan-critique-skills/plan-execute.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 14 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,220 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00014 $0.03220
Opus 5 $0.00007 $0.01610
Sonnet 5 $0.00003 $0.00644
Haiku 4.5 $0.00001 $0.00322

Measured 2d ago against content hash 1e93da006f5a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

plan-execute scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

  • execute — 97% identical, 30 lines differ
.gemini/skills/plan-execute/SKILL.md · 203 lines

How it starts

The opening of the file, as written. The whole thing — 203 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are executing the user's plan that has been iteratively refined.

Fixed rules:

Read the working agreement at working-agreement.md before step 1 and follow it for the whole run. If that path does not resolve, look for working-agreement.md in the project root, then in .gemini/. If it cannot be found anywhere, tell the user it is missing and apply the rules listed below.

These rules bind this phase and override any step below that conflicts with them:

  1. Never report a step as done, fixed or working until you have run the tests and shown the output. A step whose tests were not run is reported as unverified, never as COMPLETED.
  2. Where the project has test infrastructure, write the test for a step first, confirm it fails, then implement until it passes. Never modify an existing test to make it pass. Where there is no test infrastructure, say so at step 12 and continue without inventing one.
  3. Prove claims with evidence: command output, a file:line reference, or a diff. Never assert a plausible but unverified result.
  4. Re-read the working agreement, CLAUDE.md, and the relevant plan sections before touching a new area of the codebase, especially in a long run.
  5. Output complete file contents. Never truncate code with "... rest of code ..." placeholders.
  6. Never add yourself as a co-author and never append a Co-Authored-By or Generated-with trailer to a commit. Commit only when the user answers yes to the per-step commit prompt. Answering yes-to-all authorises the remaining steps of this run only, and nothing beyond it.
  7. Be brief. No filler, no preamble. No emojis, no em dashes in code, comments, docs or commit messages.

To do this, follow these steps precisely:

  1. Read .gemini/plan-critique-config.json and get plansFolder path from settings. If that file does not exist, read .claude/plan-critique-config.json instead. If neither file exists or plansFolder is not set or is an empty string: Respond with "No plans folder configured. Run /plan-create first to set up."
  2. Get the session process ID by running: echo $PPID. Store this as sessionPID.
  3. Clean up stale sessions: Scan [plansFolder]/.sessions/ for files. For each file named with a PID, check if that process is still running via kill -0 [PID] 2>/dev/null. If the command fails (process not running), delete that session file. This is non-blocking cleanup.
  4. Read the current session's plan from [plansFolder]/.sessions/[sessionPID] if it exists. Store as sessionPlan.
  5. Scan [plansFolder]/ for subdirectories (each subdirectory is a plan). Exclude archived/ and .sessions/ folders and any files, only list plan directories. If no plan folders exist: Respond with "No plans found. Create one with /plan-create".
  6. Select the plan to execute:
    • If sessionPlan exists and matches a plan folder, auto-select it. Inform the user: "Using current session plan: [sessionPlan]"
    • Else if only one plan exists, auto-select it and inform user.
    • Otherwise, ask the user to select a plan from the list. Example:
      Available plans:
      1. add-user-authentication
      2. refactor-database-layer
      3. implement-caching
      
      Which plan would you like to execute? [1-3]
      
  7. Update the session file [plansFolder]/.sessions/[sessionPID] with the selected plan slug (create if needed).
  8. Check prerequisites:
    • If [plansFolder]/[selected-plan]/plan.md does not exist: Respond with "No plan.md found."
    • If plan.md is empty: Respond with "Plan file is empty. Run /plan-critique first."
  9. Read GEMINI.md, AGENTS.md, or CLAUDE.md from the project root if it exists. Hold its standards as context and ensure compliance during each execution step. If none exist, note this but do not block execution.
  10. Read [plansFolder]/[selected-plan]/critique.md if it exists. Note the iteration number and summary. Inform the user: "Plan was critiqued (iteration N). Last critique summary: [brief]." Use the critique as supplementary context during execution: implementation hints, alternative approaches, and risk warnings from the critique are relevant when executing related steps. Do not treat the critique as authoritative since the user chose what to incorporate into plan.md. If critique.md does not exist, warn: "This plan has not been critiqued. Run /plan-critique first, or confirm you want to proceed without review." Wait for user confirmation before continuing.
  11. Check git status by running git status.
    • If git repo and clean: inform user "Git available. Per-step commits will be offered after each step."
    • If git repo and dirty: warn "Uncommitted changes detected. Recommend committing or stashing before execution to enable clean per-step rollback." Wait for user acknowledgement.
    • If not a git repo: inform "Not a git repository. Per-step commits are not available." Store whether git is available for later use.
  12. Detect test infrastructure. Look for a test runner and existing tests: a test script in package.json, pytest.ini or tox.ini, phpunit.xml, a go.mod alongside _test.go files, Cargo.toml, a tests/, test/ or __tests__/ directory, or a Makefile target named test.
    • If found, record the command that runs the suite and inform the user: "Test suite detected: [command]. Tests-first is binding for every step of this run."
    • If not found, inform the user: "No test infrastructure detected. Steps will be verified by diagnostics and diffs only, and results will be reported as unverified." Do not create a test harness the project does not already have. Store the test command and whether tests are available for later use.
  13. Check for existing execution state. If [plansFolder]/[selected-plan]/execution-state.json exists, read it and prompt: "Previous execution found at step [X] of [total]. Resume or restart?" Wait for user response before proceeding.
    • On resume: if git is available, check that the last committed step matches the state file by reviewing recent commits with the plan-execute: prefix. If they do not match, warn the user that the codebase may have diverged from the recorded state. Skip already-completed steps.
    • On restart: overwrite execution-log.md with a new header. Note the restart in the log: "Restarted execution (previous attempt reached step [X])."
  14. Review supporting files in the [plansFolder]/[selected-plan]/ folder. Classify each file by type and inferred purpose. Present to the user alongside the step list: "Supporting files found: schema.sql (SQL migration), mockup.png (UI reference)." Let the user confirm or clarify how each file should be used during execution.
  15. Parse the plan into discrete, executable steps using this ordering strategy:
    • Independent tasks first: changes with no dependencies on other changes
    • Small to large: within independent tasks, order from smallest to largest scope
    • Dependent tasks after: once all independent tasks are ordered, add tasks that depend on them
    • Same-level tiebreaker: for tasks at the same dependency level, order by logical grouping

Read the full file on GitHub · 203 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago Changed 1e93da006f5a
  2. 10d ago First seen · 203 lines · 14 tokens per session scan A 064111662cab

Subscribe to this mod's changes

plan-execute is a skill published in the GitHub repository serbanghita/plan-critique-skills (13 stars, last pushed 3d ago), licensed MIT. It adds 14 tokens to every session and 3,220 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

review-responder

Use when receiving feedback on code you implemented, responding to reviewer comments, deciding which review suggestions to implement, or pushing back on incorrect review feedback.

Joncik91/ucai · 33 tokens

pr-sweep

Use when you want to sweep all open pull requests across all repos, triage their status, run code reviews on unreviewed PRs, merge what's ready, fix quick blockers, and produce a full status report. Trigger when the user says "check my PRs", "close out open PRs", "what's the status of my PRs", "sweep my PRs", "PR…

harnessprotocol/harness-kit · 0 tokens

rubber-ducky

Use when you've planned a non-trivial change and are about to implement it, finished a complex or multi-file piece of work, just wrote tests, or are stuck on repeated failures — and any time the user says "rubber duck this", "rubber ducky", "get a second opinion", "sanity-check my plan", "poke holes in this", "what am…

harnessprotocol/harness-kit · 186 tokens

open-pr

Use when wrapping up a development task and getting a PR ready — runs local tests, creates a PR (if one doesn't exist) with a structured description template, conducts a code review via the review skill, and checks CI status with quick fixes. Trigger when the user says they're done with a feature, want to open a PR…

harnessprotocol/harness-kit · 111 tokens

review

Use when user invokes /review to review code changes. Also triggers on "review my code", "check this PR", "look at my changes". Accepts a PR number (e.g. /review 123), a path filter (e.g. /review src/auth/), or no argument (reviews current branch vs base). Produces structured per-file review with severity labels…

harnessprotocol/harness-kit · 103 tokens

code-reviewer

Use when reviewing pull requests, analyzing code quality, identifying issues, or generating review checklists. Covers TypeScript, JavaScript, Python, Go, Swift, and Kotlin.

Joncik91/ucai · 39 tokens