Agent skill

Ijfw Plan

by FerroxLabs in FerroxLabs/ijfw

A skill your agent uses when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'.

MITAuto-check: notesAgent Workflows

Install Ijfw Plan

skills CLI
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a claude-code

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

GitHub CLI
$ gh skill install FerroxLabs/ijfw ijfw-plan --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/FerroxLabs/ijfw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/skills/ijfw-plan .claude/skills/ijfw-plan && 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
ijfw-plan
GitHub stars
212
Token cost
~2.2k tokens
SKILL.md length
804 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'.

  • Works in 4 steps: User explicitly asks: "plan this", "plan… → /ijfw-plan slash command is invoked. → ijfw-workflow Deep path enters the Plan… → …
  • The user says plan this
  • SKILL.md covers When to fire, Inputs (read in order, skip…, Output location and PLAN.md shape (same for every…, plus 7 more sections
  • Calls npm

What it does

Ijfw Plan is an agent skill from FerroxLabs/ijfw. Use when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'. Produces a falsifiable PLAN.md (software, book, campaign, design, research) with task breakdown, dependency wave-table, and success criteria — gated by validatePlan() + ijfw-plan-checker before dispatch.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Task breakdown. The repository describes itself as: IJFW — It Just Fcking Works. Ferrox Labs' local-first infrastructure for AI coding agents: shared memory, smart routing, multi-AI cross-audits, disciplined workflow. The licence is MIT.

When your agent uses it

  • The user says plan this
  • How should we tackle this
  • Break this down
  • Invokes /ijfw-plan

Example prompts

  • “plan this”
  • “plan it”
  • “make a plan”
  • “/ijfw-plan”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, Agent

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. User explicitly asks: "plan this", "plan it", "make a plan", "let's plan",
  2. /ijfw-plan slash command is invoked.
  3. ijfw-workflow Deep path enters the Plan gate after Discovery + Research.
  4. ijfw-spec-phase has emitted SPEC.md and the user wants HOW next.

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • Grep
    • Glob
    • AskUserQuestion
    • Agent

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

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

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    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

Ijfw Plan loads about 2.2k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 804 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, Agent

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from FerroxLabs/ijfw at commit eda62f3, republished under its MIT licence (© FerroxLabs). 804 words, ~2,227 tokens.

Download SKILL.mdSave it as .claude/skills/ijfw-plan/SKILL.md (or your agent's skills folder).
name
ijfw-plan
description
Use when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'. Produces a falsifiable PLAN.md (software, book, campaign, design, research) with task breakdown, dependency wave-table, and success criteria — gated by validatePlan() + ijfw-plan-checker before dispatch.
allowed-tools
Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, Agent
since
1.5.0

IJFW Plan — domain-agnostic plan authoring

You are the orchestrator-facing trigger that turns a brief (and optionally a SPEC.md / research notes) into an executable PLAN.md. Plan output is the same shape across domains: software slice, book chapter, marketing campaign, design system release, research milestone. The deliverables differ; the structure doesn't.

This skill is the body for the /ijfw-plan slash command. Both paths land here. Slash invocation may pass [brief description] as $1.

When to fire

  1. User explicitly asks: "plan this", "plan it", "make a plan", "let's plan", "draft a plan", "break this down".
  2. /ijfw-plan slash command is invoked.
  3. ijfw-workflow Deep path enters the Plan gate after Discovery + Research.
  4. ijfw-spec-phase has emitted SPEC.md and the user wants HOW next.

If .ijfw/memory/brief.md is missing AND no SPEC.md exists for the active slice, ask one clarifying question first: What are we planning? (one sentence). Never guess.

Inputs (read in order, skip missing)

  1. .ijfw/memory/brief.md — original ask + success criteria.
  2. .ijfw/memory/research.md — anything Discovery / Research surfaced.
  3. .planning/<milestone>/<phase>/SPEC.md — locked acceptance criteria.
  4. .planning/<milestone>/<phase>/CONTEXT.md — decisions resolved in discuss.
  5. .planning/ROADMAP.md — where this slice sits in the bigger arc.
  6. .planning/PROJECT.md — non-negotiables.

Detect domain from brief language and project layout:

  • Software: package.json, pyproject.toml, Cargo.toml, source dirs.
  • Book / chapter: manuscript/, chapters/, outline.md, prose-heavy brief.
  • Campaign / launch: campaign/, assets/, calendar / channel language.
  • Design system: tokens/, components/, design-ops language.
  • Research: notes/, papers/, "review the literature" framing.

Domain choice changes vocabulary, NOT the output shape.

Output location

If a phase is active (.ijfw/state/active-milestone + .ijfw/state/active-phase both exist), write to .planning/<milestone>/<phase>/PLAN.md and also mirror the task list to .ijfw/memory/plan.md for the runtime gate to read.

Otherwise write the primary plan to .ijfw/memory/plan.md.

PLAN.md shape (same for every domain)

markdown
---
domain: software | book | campaign | design-system | research
time_budget: HOUR_1 | HOUR_2_3 | HOUR_4_5 | HOUR_6_PLUS
brief_ref: .ijfw/memory/brief.md
spec_ref: .planning/<milestone>/<phase>/SPEC.md  # optional
created_at: <ISO-8601>
---

# PLAN — <slice name>

## Goal
<One-sentence outcome — what ships when this plan completes.>

## Success Criteria
1. <Falsifiable, binary pass/fail.>
2. <...>

## Tasks

### Task task_id: T01 — <verb-noun title>
- **Deliverable:** <file path / chapter draft / asset / dataset>
- **Acceptance:** <done when ...>
- **Touches:** <file paths / chapter sections / channels>
- **Depends:** <task_id> | none
- **Risk:** low | medium | high — <one-line reason>

### Task task_id: T02 — ...

## Dependency Wave Table

| Wave | Tasks (parallel within wave) | Gates between waves |
|------|------------------------------|---------------------|
| W1   | T01, T02                     | none                |
| W2   | T03 (depends T01)            | T01 acceptance met  |
| W3   | T04, T05 (depends T02, T03)  | T03 acceptance met  |

## Out of Scope (Deferred to backlog)
- <Mentioned in brief but cut from this slice; reason.>

Multi-domain examples (substitute deliverables, keep the shape):

  • Software task: Deliverable = src/auth/login.ts + test file. Acceptance = npm test -- login exit 0. Touches = src/auth/, tests/auth/.
  • Book task: Deliverable = chapters/04-draft.md. Acceptance = beats 1-7 from outline covered, POV consistent, word count ±10% of target. Touches = chapters/04-*, outline.md.
  • Campaign task: Deliverable = campaign/launch-week/email-1.html. Acceptance = subject line + preview text + body locked, links tracked. Touches = campaign/launch-week/, analytics/utm-plan.md.
  • Design system task: Deliverable = tokens/color.v2.json. Acceptance = contrast ratios meet WCAG AA, dark-mode pair validated. Touches = tokens/, docs/migration.md.

Time-budget question (Deep only)

Before drafting, ask one AskUserQuestion to lock the time budget:

json
{
  "question": "How much focused time do we have for this slice?",
  "header": "Time budget",
  "options": [
    { "label": "≤ 1 hour",  "description": "Up to 3 tasks; smallest viable slice" },
    { "label": "2-3 hours", "description": "Up to 7 tasks; one feature end-to-end" },
    { "label": "4-5 hours", "description": "Up to 12 tasks; meaningful slice with polish" },
    { "label": "6+ hours",  "description": "Unlimited tasks; full milestone scope" }
  ]
}

Record the choice in PLAN.md frontmatter as time_budget. The pre-dispatch gate uses it to detect budget overrun.

Pre-dispatch gate (mechanical, MUST RUN)

Before handing the plan to execute, run the deterministic gate that's wired into the existing ijfw_state MCP tool's subagent.post-done verb routing (v1.5.0 T13 — single state-SDK face, cap stays 12/12):

js
// Library — no new MCP tool needed (cap is 12/12).
const { validatePlan } = require('./mcp-server/src/orchestrator/plan-checker.js');
const planText = fs.readFileSync('.ijfw/memory/plan.md', 'utf8');
const { findings, blocked } = validatePlan(planText, { strict: false });

The gate checks (all defined in plan-checker.js):

  1. No placeholder tokens — TBD, FIXME, XXX, [fill me in], <placeholder>, ??? (WARN; BLOCK in strict).
  2. Completeness — at least one ## Task / ### Task / task_id: block (BLOCK if zero).
  3. Acceptance criteria — each task mentions acceptance / done when / criteria / expected (WARN if missing).
  4. No empty steps — list items under 20 chars of substantive content WARN.
  5. Dependency sanity — depends: references must resolve to a declared task_id: (BLOCK on dangling).
  6. No test-skip contradiction — "add tests" + "skip tests" in the same block is a BLOCK.

If blocked === true, surface findings and STOP. Do not dispatch.

Show full SKILL.md (286 more words)Show less

Pre-dispatch reality check (agent)

Dispatch ijfw-plan-checker against the live codebase / manuscript / asset tree to catch re-spec of work that already exists:

Task: ijfw-plan-checker
Args:
  plan_path: .ijfw/memory/plan.md
  repo_root: .

Agent flags "NEW file" / "MODIFY <symbol>" claims that already exist. Reduces the v1.4.4-era pain of subagents discovering duplication mid-stream.

Output contract

After both gates pass (or with WARN-only findings explicitly acknowledged), emit a gate-result block as the LAST content of your output. Use gate="plan". Statuses: PASS | CONDITIONAL | WARN | FLAG | FAIL.

Format follows the v1.5.0 gate-result schema (see ijfw-plan-check for the canonical example).

Resume intent

If user says resume, resume plan, /ijfw-plan resume, or continue plan:

  1. Load .ijfw/state/plan-hold.md. If missing: reply No plan on hold. Start a fresh plan with /ijfw-plan. and stop.
  2. Echo the recorded reason + unresolved gaps so the user knows what blocked.
  3. AskUserQuestion: Has this changed? Unblock and continue, or keep on hold?
    • Unblock + continue → re-run pre-dispatch gate, re-offer review.
    • Keep on hold → no-op, close.
  4. On unblock: annotate .ijfw/state/plan-hold.md with resolved_at: <now> (or delete), re-run pre-dispatch gate.

Anti-patterns (do not do)

  • Do NOT skip the pre-dispatch gate — that's the whole point of having it.
  • Do NOT write implementation code inside PLAN.md — that's execute's job.
  • Do NOT silently absorb scope from the brief that wasn't in SPEC.md — surface it as a scope leak, ask the user, then either expand SPEC.md or defer.
  • Do NOT exceed the time-budget ceiling without flagging budget_overrun.
  • Do NOT invent task_ids that don't resolve — every depends: must point somewhere real.

Success criteria for this skill

  • PLAN.md exists at the correct path for the domain.
  • Every task has a deliverable, acceptance criterion, and touched-artifact list.
  • Dependency wave-table is consistent (no inversions).
  • validatePlan() returns blocked: false.
  • ijfw-plan-checker agent has run and findings are addressed.
  • gate-result block emitted last.

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

Files

Just SKILL.md in claude/skills/ijfw-plan of FerroxLabs/ijfw.

Open the folder on GitHubat commit eda62f3

Compare with similar skills

Ijfw Plan 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.

Ijfw Plan compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ijfw Plan this skillFerroxLabs/ijfw212—~2.2kAutomated safety check: NotesMIT
MemPalace Task HandoffMemPalace/mempalace59k—~1.9kAutomated safety check: PassMIT
Planning And Task Breakdownabashev/vfs-s31068 repos~1.9kAutomated safety check: PassApache-2.0
Incremental Implementationaddyosmani/agent-skills103k1 repos~2.3kAutomated safety check: PassMIT
ULW Plan Workflowcode-yeongyu/oh-my-openagent70k—~3.9kAutomated safety check: PassCustom licence
Ask NavigatorYeachan-Heo/oh-my-claudecode40k—~4.1kAutomated safety check: PassMIT

Similar skills

  • MemPalace Task Handoff

    MemPalace/mempalace

    Creates, hands off, claims, executes and closes agent tasks through the MemPalace logstream, with approval of the exact task before it is recorded.

    59k GitHub stars~1.9k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Breaks work into ordered tasks. An agent skill from abashev/vfs-s3.

    106 GitHub starsUsed in 8 repos~1.9k tokens
    Agent WorkflowsAuto-check passed
  • Incremental Implementation

    addyosmani/agent-skills

    Delivers a change in thin vertical slices, each implemented, tested, verified and committed before the next, using vertical, contract-first or risk-first slicing.

    103k GitHub starsUsed in 1 repo~2.3k tokens
    Agent WorkflowsAuto-check passed
  • ULW Plan Workflow

    code-yeongyu/oh-my-openagent

    Explore-first planning that turns a vague or large request into one decision-complete work plan, written only after your approval and executed by a separate worker.

    70k GitHub stars~3.9k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Ask Navigator

    Yeachan-Heo/oh-my-claudecode

    Charts a foggy effort into a map of decision tickets on the repo's issue tracker and works through them one per session, producing decisions rather than deliverables.

    40k GitHub stars~4.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Implementation Plan Creator

    tailcallhq/forgecode

    Writes a structured Markdown implementation plan with checkbox tasks, verification criteria and risks, then checks it with a validation script; no code changes.

    7.6k GitHub starsUsed in 1 repo~1.1k tokens
    Agent WorkflowsAuto-check passed

More from FerroxLabs/ijfw

All 38 skills in this repo
  • Ijfw Agents Md

    FerroxLabs/ijfw

    Maintain canonical AGENTS.md (open spec). An agent skill from FerroxLabs/ijfw.

    212 GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check passed
  • Ijfw Design

    FerroxLabs/ijfw

    A skill your agent uses when the user says: 'design', 'redesign', 'UI', 'UX', 'dashboard', 'page', 'component', 'make it look better', 'polish', 'pretty', 'professional', 'user experience'…

    212 GitHub stars~2.2k tokensUpdated 4 days ago
    Auto-check passed
  • A skill your agent uses when a milestone is shipping and you need to archive its artifacts, generate a summary, and seed the next milestone.

    212 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Ijfw Critique

    FerroxLabs/ijfw

    Challenge decisions, surface counter-arguments, flag assumptions.

    212 GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Ijfw Cross Audit

    FerroxLabs/ijfw

    Generate a cross-platform multi-model audit (Trident) on a diff, brief, or artifact.

    212 GitHub stars~594 tokensUpdated 4 days ago
    Auto-check passed
  • Ijfw Debug

    FerroxLabs/ijfw

    Root-cause analysis with hypothesis tracking. An agent skill from FerroxLabs/ijfw.

    212 GitHub stars~578 tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Ijfw Plan

What does Ijfw Plan do?

A skill your agent uses when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'. Ijfw Plan is an agent skill from FerroxLabs/ijfw. Use when the user says 'plan this', 'plan it', 'make a plan', 'let's plan', 'draft a plan', 'how should we tackle this', 'break this down', or invokes '/ijfw-plan'.

When should I use Ijfw Plan?

Ijfw Plan fits situations like: the user says plan this; how should we tackle this; break this down; invokes /ijfw-plan.

How do I install Ijfw Plan in Claude Code?

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

How do I install Ijfw Plan in Codex?

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

Can I use Ijfw Plan 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 FerroxLabs/ijfw --skill ijfw-plan -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ijfw-plan, .gemini/skills/ijfw-plan, .github/skills/ijfw-plan and .opencode/skills/ijfw-plan in your project.

What does Ijfw Plan need to run?

Going by SKILL.md and its folder, Ijfw Plan needs the command-line tools its instructions call (npm). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, Agent.

Does Ijfw Plan access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ijfw Plan safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ijfw Plan use?

Ijfw Plan 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 Ijfw Plan use?

About 2.2k tokens (SKILL.md is roughly 8.9k 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 Ijfw Plan?

Skills that share tags, products or a category with Ijfw Plan: MemPalace Task Handoff (MemPalace/mempalace, 59k stars), Planning And Task Breakdown (abashev/vfs-s3, 106 stars), Incremental Implementation (addyosmani/agent-skills, 103k stars) and ULW Plan Workflow (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ijfw Plan?

FerroxLabs (a GitHub user) maintains it in FerroxLabs/ijfw, which has 212 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 5, 2026.

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