Skip to content
Development
Skill

/planning-with-files

Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls. Now with automatic session recovery after /clear and optional Git

From plugin
plan-cascade
1323 skills30 commands

Claude Code

$ npx -y skills add Taoidle/plan-cascade --skill planning-with-files --agent claude-code

SKILL.md

planning-with-files.SKILL.md
name: planning-with-files
version: "3.2.0"
description: Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls. Now with automatic session recovery after /clear and optional Git worktree mode.
user-invocable: true
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
  - WebFetch
  - WebSearch
hooks:
  PreToolUse:
    # Location verification for worktree mode (Write/Edit operations only)
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: |
            SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts"
            # Check for worktree config and verify location
            if [ -f ".planning-config.json" ]; then
              # Determine which verification script to use
              if command -v pwsh &> /dev/null && [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" || "$OS" == "Windows_NT" ]]; then
                pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/verify-location.ps1" 2>/dev/null || powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/verify-location.ps1" 2>/dev/null || bash "$SCRIPT_DIR/verify-location.sh"
              else
                bash "$SCRIPT_DIR/verify-location.sh"
              fi
              # Exit code 1 means wrong location - block the operation
              if [ $? -eq 1 ]; then
                exit 1
              fi
            fi
    # Show task_plan context for all operations (except in worktree mode for read/grep/glob)
    - matcher: "Write|Edit|Bash|Read|Glob|Grep"
      hooks:
        - type: command
          command: |
            # In worktree mode, silence read/grep/glob operations
            if [ -f ".planning-config.json" ]; then
              MODE=$(jq -r '.mode' .planning-config.json 2>/dev/null || echo "")
              if [ "$MODE" = "worktree" ]; then
                # Silent for read/grep/glob in worktree mode
                case "$CLAUDE_TOOL_NAME" in
                  Read|Glob|Grep) exit 0 ;;
                esac
              fi
            fi
            # Show task_plan for write/edit/bash or standard mode
            cat task_plan.md 2>/dev/null | head -30 || true
  PostToolUse:
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: "echo '[planning-with-files] File updated. If this completes a phase, update task_plan.md status.'"
  Stop:
    - hooks:
        - type: command
          command: |
            SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts"
            if command -v pwsh &> /dev/null && [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" || "$OS" == "Windows_NT" ]]; then
              pwsh -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null || powershell -ExecutionPolicy Bypass -File "$SCRIPT_DIR/check-complete.ps1" 2>/dev/null || bash "$SCRIPT_DIR/check-complete.sh"
            else
              bash "$SCRIPT_DIR/check-complete.sh"
            fi

Planning with Files

Work like Manus: Use persistent markdown files as your "working memory on disk."

FIRST: Check for Previous Session (v2.2.0)

**Before starting work**, check for unsynced context from a previous session:

# Linux/macOS
uv run python ${CLAUDE_PLUGIN_ROOT}/scripts/session-catchup.py "$(pwd)"
# Windows PowerShell
& (Get-Command python -ErrorAction SilentlyContinue).Source "$env:USERPROFILE\.claude\skills\planning-with-files\scripts\session-catchup.py" (Get-Location)

If catchup report shows unsynced context: 1. Run `git diff --stat` to see actual code changes 2. Read current planning files 3. Update planning files based on catchup + git diff 4. Then proceed with task

Important: Where Files Go

  • **Templates** are in `${CLAUDE_PLUGIN_ROOT}/templates/`
  • **Your planning files** go in **your project directory**

| Location | What Goes There | |----------|-----------------| | Skill directory (`${CLAUDE_PLUGIN_ROOT}/`) | Templates, scripts, reference docs | | Your project directory | `task_plan.md`, `findings.md`, `progress.md` |

Quick Start

Standard Mode

Before ANY complex task:

1. **Create `task_plan.md`** — Use [templates/task_plan.md](templates/task_plan.md) as reference 2. **Create `findings.md`** — Use [templates/findings.md](templates/findings.md) as reference 3. **Create `progress.md`** — Use [templates/progress.md](templates/progress.md) as reference 4. **Re-read plan before decisions** — Refreshes goals in attention window 5. **Update after each phase** — Mark complete, log errors

Worktree Mode (Multi-Task Parallel Development)

For **parallel multi-task development** with isolated Git worktrees:

1. **Start worktree mode** — Use `/planning-with-files:worktree [task-name] [target-branch]`

  • Example: `/planning-with-files:worktree feature-auth main`
  • Creates a new Git worktree directory (`.worktree/feature-auth/`)
  • Creates a task branch with planning files inside the worktree
  • **Main directory stays on original branch** (no switching!)
  • **Multiple worktrees can exist simultaneously** for parallel tasks

2. **Navigate to worktree** — `cd .worktree/feature-auth`

  • Work on your task in this isolated environment
  • Follow standard planning workflow

3. **Complete and merge** — Use `/planning-with-files:complete [target-branch]` from **inside the worktree**

  • Deletes planning files from worktree
  • Navigates to root directory
  • Merges task branch to target
  • Removes the worktree directory
  • Deletes the task branch

**Multi-Task Example:**

# Start task 1
/planning-with-files:worktree fix-auth-bug
cd .worktree/fix-auth-bug

# In another terminal, start task 2 (parallel!)
/planning-with-files:worktree refactor-api
cd .worktree/refactor-api

# Each task has its own directory and branch
# No conflicts, no branch switching need
Read more
@taoidle
Ships withplan-cascade

AI-Powered Cascading Development Framework Transform complex projects into parallel executable tasks with intelligent decomposition and multi-provider execution Why Plan Cascade? • Product Editions • Quick Start • Architecture

Stars on GitHub

Momentum

stars in total
132
Star history of Taoidle/plan-cascade on GitHub, a chart by star-history.com

Other skills on plan-cascade.

hybrid-ralph

hybrid-ralph

Hybrid architecture combining Ralph's PRD format with Planning-with-Files' structured approach. Auto-generates PRDs from task…

mega-plan

mega-plan

Project-level multi-task orchestration system. Manages multiple hybrid:worktree features in parallel with dependency resolution,…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about planning-with-files.

Which coding agents can use planning-with-files?
planning-with-files installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.