Agent skill

Planf3

by disler in disler/planf3

Creates a concise engineering implementation plan based on user requirements and saves it to specs directory

MITAuto-check passedAgent Workflows

Install Planf3

skills CLI
$ npx skills add disler/planf3 --skill planf3 -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install disler/planf3 planf3 --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/disler/planf3.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/planf3 .claude/skills/planf3 && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
planf3
GitHub stars
148
Token cost
~2.9k tokens
SKILL.md length
637 words
Files
8 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Creates a concise engineering implementation plan based on user requirements and saves it to specs directory

  • Tasks that involve Planning
  • SKILL.md covers Purpose, Variables, Instructions and Workflow, plus 1 more section
  • Runs Python scripts from its folder

What it does

Planf3 is an agent skill from disler/planf3. Creates a concise engineering implementation plan based on user requirements and saves it to specs directory

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts (for example `scripts/edit_gpt_image.py`, `scripts/generate_gpt_image.py` and `workflows/build-plan.md`).

It sits in Agent Workflows, covering Planning. The licence is MIT.

When your agent uses it

  • Tasks that involve Planning

Example prompts

  • “Use the planf3 skill to create a concise engineering implementation plan based on user requirements and saves it to specs directory”
  • “/planf3”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit f34b7ba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Planf3 loads about 2.9k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 637 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~29
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from disler/planf3 at commit f34b7ba, republished under its MIT licence (© disler). 637 words, ~2,863 tokens.

Download SKILL.mdSave it as .claude/skills/planf3/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
planf3
description
Creates a concise engineering implementation plan based on user requirements and saves it to specs directory
argument-hint
[user-prompt] [questionable]

Plan F3

Purpose

Create a detailed, HTML-first implementation plan based on the USER_PROMPT variable. The plan is authored as a single self-contained .html page so it can be opened in a browser, embed focused images with a synced visual identity, and be created/updated/consumed by the agent trifecta (engineer, team, AI agents). Analyze the request, think through the implementation approach, follow the ## Instructions, and work through the ## Workflow to produce the plan from the ## Plan Template.

Variables

USER_PROMPT: $1 QUESTIONABLE: $2 - default false PLAN_OUTPUT_DIRECTORY: specs/ PLAN_FILE: PLAN_OUTPUT_DIRECTORY/<descriptive-kebab-name>.html IMAGES_OUTPUT_DIR: PLAN_OUTPUT_DIRECTORY/<plan-name>/ AI_DOCS: AI_DOCS/ APP_DOCS: APP_DOCS/ IDE: code BROWSER: chrome

Instructions

  • IMPORTANT: If no USER_PROMPT is provided, stop and ask the user to provide it
  • Carefully analyze the user's requirements provided in the USER_PROMPT variable
  • Think deeply (ultrathink) about the best approach to implement the requested functionality or solve the problem
  • Explore the codebase to understand existing patterns, documentation, previous specs and architecture
  • The plan is HTML-first: produce a single self-contained .html document from the ## Plan Template below
  • The template uses {{PLACEHOLDER}} variables — replace EVERY {{...}} with real content. Do not leave any {{}} token in the final file
  • Blocks marked with <!-- repeat --> are repeatable: duplicate them as many times as the plan needs (e.g. one block per phase, task, file, or Q&A entry) and delete the comment markers
  • Keep the document self-contained: all CSS lives in the single <style> block; do not link external stylesheets or scripts
  • Maintain a synced visual identity between the html styling and the generated images. We want a professional, focused, minimal theme based on the original USER_PROMPT that created the plan. The CSS custom properties in :root define the palette/typography. Any embedded image must be generated to match this same identity.
  • For every image created keep them professional and focused on one or two primary ideas. Keep text bloat down by minimizing the total number of sets of words requested in the image prompt under 10. The goal is to build images that aid the plan and convey the core information throughout the plan given the section the image was created for.
  • Build images for professional software engineers to convey exactly what is going to be built. Be sure to center and space images properly.
  • Embed images via the {{...IMAGE}} slots. During Create, leave them as commented placeholders noting the intended subject; the Image Generation workflow fills them later
  • Populate the metadata header (created, modified, commits, agent, session, back/forward references) — these are updatable across the plan's lifecycle. Every metadata field except CREATED_ISO is a comma-separated list that must only ever be appended to — never overwrite or remove existing entries
  • If QUESTIONABLE is true, actively surface open questions/assumptions in the toggleable Q&A section rather than silently deciding
  • Ensure the plan is detailed enough that another developer (or agent) could follow it to implement the solution
  • Include code examples or pseudo-code where appropriate to clarify complex concepts
  • Consider edge cases, error handling, and scalability concerns
  • Save the complete plan to PLAN_FILE using a descriptive kebab-case filename
Show full SKILL.md (144 more words)Show less

Workflow

Based on the USER_PROMPT, select the single best-matching workflow below and read its file for the step-by-step instructions before acting.

WorkflowWhen to call itFile to read
Create PlanThe prompt asks to plan, spec, or design new work and no existing plan is referencedworkflows/create-plan.md
Update PlanThe prompt asks to change, extend, or revise the content of an existing planworkflows/update-plan.md
Update ReferencesThe prompt asks to refresh plan metadata or back/forward references (created, modified, commits, agent, session)workflows/update-references.md
Build PlanThe prompt asks to implement, execute, or carry out the work described in an existing planworkflows/build-plan.md
Subworkflow

Called by other workflows rather than selected directly from the USER_PROMPT.

SubworkflowWhen it's calledFile to read
Image GenerationInvoked by other workflows (e.g. Create Plan) to generate, fill, or regenerate the embedded images in a planworkflows/image-generation.md

Plan Template

html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Plan: {{PLAN_TITLE}}</title>
</head>
<body>
<main>

  <!-- ===== HEADER + UPDATABLE METADATA ===== -->
  <header>
    <h1>Plan: {{PLAN_TITLE}}</h1>
    <details class="meta">
      <summary>Metadata</summary>
      <dl>
        <dt>created</dt>      <dd>{{CREATED_ISO}}</dd>
        <dt>modified</dt>     <dd>{{MODIFIED_ISO_LIST}}</dd>
        <dt>commits</dt>      <dd>{{COMMIT_SHA_LIST}}</dd>
        <dt>agent name</dt>        <dd>{{AGENT_NAME_LIST}}</dd>
        <dt>session id</dt>      <dd>{{SESSION_ID_LIST}}</dd>
        <dt>back refs</dt>    <dd>{{BACK_REFERENCES}}</dd>
        <dt>forward refs</dt> <dd>{{FORWARD_REFERENCES}}</dd>
      </dl>
    </details>
  </header>

  <!-- Hero image — synced to the :root visual identity. Replace with <img> once generated. -->
  <figure>
    <!-- {{HERO_IMAGE: subject describing the plan at a glance}} -->
    <figcaption>{{HERO_IMAGE_CAPTION}}</figcaption>
  </figure>

  <!-- ===== PURPOSE / PROBLEM / SOLUTION ===== -->
  <section id="purpose">
    <h2>Purpose</h2>
    <p>{{PURPOSE}}</p>
  </section>

  <section id="problem">
    <h2>Problem</h2>
    <p>{{PROBLEM}}</p>
    <figure>
      <!-- {{PROBLEM_IMAGE: subject visualizing the problem this plan addresses}} -->
      <figcaption>{{PROBLEM_IMAGE_CAPTION}}</figcaption>
    </figure>
  </section>

  <section id="solution">
    <h2>Solution</h2>
    <p>{{SOLUTION}}</p>
    <figure>
      <!-- {{SOLUTION_IMAGE: subject visualizing the proposed solution}} -->
      <figcaption>{{SOLUTION_IMAGE_CAPTION}}</figcaption>
    </figure>
  </section>

  <!-- ===== RELEVANT FILES ===== -->
  <section id="files" class="files">
    <h2>Relevant Files</h2>

    <h3>Existing Files</h3>
    <ul>
      <!-- repeat -->
      <li><span class="tag existing">existing</span> <code>{{EXISTING_FILE_PATH}}</code> — {{WHY_RELEVANT}}</li>
    </ul>

    <h3>New Files</h3>
    <ul>
      <!-- repeat -->
      <li><span class="tag new">new</span> <code>{{NEW_FILE_PATH}}</code> — {{WHY_NEEDED}}</li>
    </ul>
  </section>

  <!-- ===== IMPLEMENTATION PHASES ===== -->
  <section id="phases">
    <h2>Implementation Phases</h2>
    <p><strong>IMPORTANT:</strong> Execute every phase and task step by step, in order, top to bottom.</p>
    <p>Status markers: <code>[]</code> idle · <code>[wip]</code> in progress · <code>[x]</code> complete · <code>[f]</code> failed. All start as <code>[]</code>; the Build Plan workflow updates them as it works.</p>

    <!-- repeat: one .phase block per phase -->
    <div class="phase">
      <h3><code class="status">[]</code> Phase {{PHASE_NUMBER}}: {{PHASE_NAME}}</h3>
      <p>{{PHASE_DESCRIPTION}}</p>

      <!-- Optional focused image for this phase, synced to :root identity -->
      <figure>
        <!-- {{PHASE_IMAGE: subject describing this phase's architecture/flow}} -->
        <figcaption>{{PHASE_IMAGE_CAPTION}}</figcaption>
      </figure>

      <!-- repeat: one <h4> + checklist per task -->
      <h4>{{TASK_NUMBER}}. {{TASK_NAME}}</h4>
      <ul class="checklist">
        <!-- repeat -->
        <li><code class="status">[]</code> {{SPECIFIC_ACTION}}</li>
      </ul>

      <!-- Final task of every phase: Testing Strategy + validation loop -->
      <h4>{{LAST_TASK_NUMBER}}. Testing Strategy</h4>
      <p>{{TESTING_APPROACH: technology used to test/validate, including edge cases}}</p>
      <ul class="checklist">
        <!-- repeat -->
        <li><code class="status">[]</code> <code>{{VALIDATION_COMMAND}}</code> — {{WHAT_IT_PROVES}}</li>
      </ul>
      <div class="loop">
        🔁 <strong>Do not exit this phase until every box above is checked.</strong>
        If any command fails, fix the cause and re-run — loop until all pass.
      </div>
    </div>
  </section>

  <!-- ===== GLOBAL VALIDATION ===== -->
  <section id="validation">
    <h2>Validation Commands</h2>
    <p>Execute these commands to validate the entire plan is complete:</p>
    <ul class="checklist">
      <!-- repeat -->
      <li><code class="status">[]</code> <code>{{VALIDATION_COMMAND}}</code> — {{WHAT_IT_PROVES}}</li>
    </ul>
    <div class="loop">
      🔁 <strong>The plan is not complete until every box is checked and every command passes. If for some reason a step is not possible to complete, mark it with [f] and move on if possible.</strong>
    </div>
  </section>

  <!-- ===== QUESTIONABLES (only include this section if QUESTIONABLE is true) ===== -->
  <section id="questionables">
    <h2>Questionables</h2>
    <!-- Optional image for this section, synced to :root identity -->
    <figure>
      <!-- {{QUESTIONABLES_IMAGE: subject visualizing the key open question/risk}} -->
      <figcaption>{{QUESTIONABLES_IMAGE_CAPTION}}</figcaption>
    </figure>
    <!-- repeat: one <details> per questionable decision / assumption / risk -->
    <details>
      <summary>{{QUESTIONABLE}}</summary>
      <p class="qa-answer">{{ASSUMPTION_OR_RATIONALE}}</p>
    </details>
  </section>

  <!-- ===== NOTES ===== -->
  <!-- Open canvas — the planning agent runs free here. There is no fixed shape:
       use whatever HTML best serves the plan (prose, lists, tables, code blocks,
       diagrams, callouts, decision logs, alternatives considered, open threads,
       links, anything). Embed as many image slots as the plan benefits from. -->
  <section id="notes">
    <h2>Notes</h2>
    {{NOTES: free-form. Capture anything that helps the trifecta understand, build,
      or extend this plan — context, dependencies (new libraries via `uv add`),
      tradeoffs, rejected approaches, risks, future work, references. Author rich,
      bespoke HTML as needed.}}
    <!-- repeat: add as many of these image slots as the notes warrant including the image block below -->
    <figure>
      <!-- {{NOTES_IMAGE: subject for a note worth visualizing}} -->
      <figcaption>{{NOTES_IMAGE_CAPTION}}</figcaption>
    </figure>
  </section>

  <!-- ===== AMENDMENTS ===== -->
  <!-- Running history of changes made AFTER the plan was first executed. Append-only.
       Populated by the Update Plan and Update References workflows — never edited during Create. -->
  <section id="amendments">
    <h2>Amendments</h2>
    <!-- repeat: one entry per amendment, newest at the bottom -->
    <details>
      <summary>{{AMEND_ISO}} — {{AMEND_SUMMARY}}</summary>
      <p>{{AMEND_DETAIL: what changed and why}}</p>
    </details>
  </section>

</main>
</body>
</html>

© disler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts) in .claude/skills/planf3 of disler/planf3.

  • SKILL.md
  • scripts/edit_gpt_image.py
  • scripts/generate_gpt_image.py
  • workflows/build-plan.md
  • workflows/create-plan.md
  • workflows/image-generation.md
  • workflows/update-plan.md
  • workflows/update-references.md

Open the folder on GitHubat commit f34b7ba

Compare with similar skills

Planf3 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Planf3 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Planf3 this skilldisler/planf3148—~2.9kAutomated safety check: PassMIT
Executing Plans Inlineobra/superpowers296k2 repos~5.1kAutomated safety check: PassMIT
Interview Meaddyosmani/agent-skills103k6 repos~3.8kAutomated safety check: PassMIT
OpenSpec Guided OnboardingFission-AI/OpenSpec71k1 repos~4.5kAutomated safety check: PassMIT
Writing Plansgeeksblabla/stateofdev.ma16357 repos~661Automated safety check: PassNone
Subagent Driven DevelopmentAsvarox/allkaraoke26138 repos~1.2kAutomated safety check: PassNone

Similar skills

  • Executing Plans Inline

    obra/superpowers

    Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.

    296k GitHub starsUsed in 2 repos~5.1k tokens
    Agent WorkflowsAuto-check passed
  • Interview Me

    addyosmani/agent-skills

    Asks one question at a time, each with a best guess attached, until the agent is about 95 percent sure what you really want, before any plan, spec or code.

    103k GitHub starsUsed in 6 repos~3.8k tokens
    Agent WorkflowsAuto-check passed
  • OpenSpec Guided Onboarding

    Fission-AI/OpenSpec

    Walks you through a complete OpenSpec workflow cycle with narration while doing real work in your codebase.

    71k GitHub starsUsed in 1 repo~4.5k tokens
    Agent WorkflowsAuto-check passed
  • Writing Plans

    geeksblabla/stateofdev.ma

    A skill your agent uses when design is complete and you need detailed implementation tasks for engineers with zero codebase context - creates comprehensive implementation plans with exact file…

    163 GitHub starsUsed in 57 repos~661 tokens
    Agent WorkflowsAuto-check passed
  • Subagent Driven Development

    Asvarox/allkaraoke

    A skill your agent uses when executing implementation plans with independent tasks in the current session

    261 GitHub starsUsed in 38 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Planning With Files

    jd-opensource/JoySafeter

    Implements Manus-style file-based planning for complex tasks.

    313 GitHub starsUsed in 19 repos~1.8k tokens
    Agent WorkflowsAuto-check: notes

Categories

Questions about Planf3

What does Planf3 do?

Creates a concise engineering implementation plan based on user requirements and saves it to specs directory. Planf3 is an agent skill from disler/planf3.

When should I use Planf3?

Planf3 fits situations like: tasks that involve Planning.

How do I install Planf3 in Claude Code?

Run `npx skills add disler/planf3 --skill planf3 -a claude-code`. Or copy the skill folder (.claude/skills/planf3 in disler/planf3) into .claude/skills/planf3 in your project. Claude Code loads it when a task matches its description.

How do I install Planf3 in Codex?

Run `npx skills add disler/planf3 --skill planf3 -a codex`. Or copy the skill folder (.claude/skills/planf3 in disler/planf3) into .agents/skills/planf3 in your project. Codex loads it when a task matches its description.

Can I use Planf3 in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add disler/planf3 --skill planf3 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/planf3, .gemini/skills/planf3, .github/skills/planf3 and .opencode/skills/planf3 in your project.

What does Planf3 need to run?

Going by SKILL.md and its folder, Planf3 needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Planf3 access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Planf3 safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Planf3 use?

Planf3 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Planf3 use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Planf3?

Skills that share tags, products or a category with Planf3: Executing Plans Inline (obra/superpowers, 296k stars), Interview Me (addyosmani/agent-skills, 103k stars), OpenSpec Guided Onboarding (Fission-AI/OpenSpec, 71k stars) and Writing Plans (geeksblabla/stateofdev.ma, 163 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Planf3?

disler (a GitHub user) maintains it in disler/planf3, which has 148 GitHub stars. The repository was last updated on June 21, 2026.

Source: disler/planf3 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.