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.
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'.
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/ijfw ijfw-plan --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .claude/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-planType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/ijfw ijfw-plan --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/claude/skills/ijfw-plan .agents/skills/ijfw-plan && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .agents/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/ijfw ijfw-plan --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/claude/skills/ijfw-plan .cursor/skills/ijfw-plan && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .cursor/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FerroxLabs/ijfw.git --path claude/skills/ijfw-plan--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/ijfw ijfw-plan --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/claude/skills/ijfw-plan .gemini/skills/ijfw-plan && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .gemini/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FerroxLabs/ijfw ijfw-planInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .github/skills && cp -r skills-src/claude/skills/ijfw-plan .github/skills/ijfw-plan && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .github/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/ijfw --skill ijfw-plan -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/ijfw ijfw-plan --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/ijfw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/claude/skills/ijfw-plan .opencode/skills/ijfw-plan && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ijfw-plan" agent skill from https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-plan into .opencode/skills/ijfw-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ijfw-plan", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ijfw-planA 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'. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit eda62f3. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGrepGlobAskUserQuestionAgentFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, AgentAutomated 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.
The full file from FerroxLabs/ijfw at commit eda62f3, republished under its MIT licence (© FerroxLabs). 804 words, ~2,227 tokens.
.claude/skills/ijfw-plan/SKILL.md (or your agent's skills folder).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.
/ijfw-plan slash command is invoked.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.
.ijfw/memory/brief.md — original ask + success criteria..ijfw/memory/research.md — anything Discovery / Research surfaced..planning/<milestone>/<phase>/SPEC.md — locked acceptance criteria..planning/<milestone>/<phase>/CONTEXT.md — decisions resolved in discuss..planning/ROADMAP.md — where this slice sits in the bigger arc..planning/PROJECT.md — non-negotiables.Detect domain from brief language and project layout:
package.json, pyproject.toml, Cargo.toml, source dirs.manuscript/, chapters/, outline.md, prose-heavy brief.campaign/, assets/, calendar / channel language.tokens/, components/, design-ops language.notes/, papers/, "review the literature" framing.Domain choice changes vocabulary, NOT the output shape.
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.
---
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):
src/auth/login.ts + test file. Acceptance
= npm test -- login exit 0. Touches = src/auth/, tests/auth/.chapters/04-draft.md. Acceptance = beats 1-7
from outline covered, POV consistent, word count ±10% of target. Touches =
chapters/04-*, outline.md.campaign/launch-week/email-1.html.
Acceptance = subject line + preview text + body locked, links tracked.
Touches = campaign/launch-week/, analytics/utm-plan.md.tokens/color.v2.json. Acceptance =
contrast ratios meet WCAG AA, dark-mode pair validated. Touches = tokens/,
docs/migration.md.Before drafting, ask one AskUserQuestion to lock the time budget:
{
"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.
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):
// 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):
TBD, FIXME, XXX, [fill me in],
<placeholder>, ??? (WARN; BLOCK in strict).## Task / ### Task / task_id: block
(BLOCK if zero).acceptance / done when /
criteria / expected (WARN if missing).depends: references must resolve to a declared
task_id: (BLOCK on dangling).If blocked === true, surface findings and STOP. Do not dispatch.
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.
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).
If user says resume, resume plan, /ijfw-plan resume, or continue plan:
.ijfw/state/plan-hold.md. If missing: reply No plan on hold. Start a fresh plan with /ijfw-plan. and stop.Has this changed? Unblock and continue, or keep on hold?.ijfw/state/plan-hold.md with resolved_at: <now>
(or delete), re-run pre-dispatch gate.depends: must point
somewhere real.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
Just SKILL.md in claude/skills/ijfw-plan of FerroxLabs/ijfw.
Open the folder on GitHubat commit eda62f3
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ijfw Plan this skillFerroxLabs/ijfw | 212 | — | ~2.2k | Automated safety check: Notes | MIT | |
| MemPalace Task HandoffMemPalace/mempalace | 59k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Planning And Task Breakdownabashev/vfs-s3 | 106 | 8 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Incremental Implementationaddyosmani/agent-skills | 103k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| ULW Plan Workflowcode-yeongyu/oh-my-openagent | 70k | — | ~3.9k | Automated safety check: Pass | Custom licence | |
| Ask NavigatorYeachan-Heo/oh-my-claudecode | 40k | — | ~4.1k | Automated safety check: Pass | MIT |
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.
abashev/vfs-s3
Breaks work into ordered tasks. An agent skill from abashev/vfs-s3.
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.
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.
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.
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.
FerroxLabs/ijfw
Maintain canonical AGENTS.md (open spec). An agent skill from FerroxLabs/ijfw.
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'…
FerroxLabs/ijfw
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.
FerroxLabs/ijfw
Challenge decisions, surface counter-arguments, flag assumptions.
FerroxLabs/ijfw
Generate a cross-platform multi-model audit (Trident) on a diff, brief, or artifact.
FerroxLabs/ijfw
Root-cause analysis with hypothesis tracking. An agent skill from FerroxLabs/ijfw.
Categories
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'.
Ijfw Plan fits situations like: the user says plan this; how should we tackle this; break this down; invokes /ijfw-plan.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.