# Cursor IDE Setup

How to use planning-with-files with Cursor IDE — now with full hook support.

---

## Installation

### Option 1: Copy .cursor directory (Recommended)

```bash
git clone https://github.com/OthmanAdi/planning-with-files.git
cp -r planning-with-files/.cursor .cursor
```

This copies the skill files, hooks config, and hook scripts to your project.

### Option 2: Manual setup

1. Copy `.cursor/skills/planning-with-files/` to your project
2. Copy `.cursor/hooks.json` to your project
3. Copy `.cursor/hooks/` directory to your project

---

## Hooks Support

Cursor now supports hooks natively via `.cursor/hooks.json`. This skill includes three hooks that mirror the Claude Code experience:

| Hook | Purpose | Cursor Feature |
|------|---------|----------------|
| `preToolUse` | Re-reads task_plan.md before tool operations | Keeps goals in context |
| `postToolUse` | Reminds to update plan after file edits | Prevents forgetting updates |
| `stop` | Checks if all phases are complete | **Auto-continues** if incomplete |

### How the Stop Hook Works

The stop hook is the most powerful feature. When the agent tries to stop:

1. It checks `task_plan.md` for phase completion status
2. If all phases are complete → allows the agent to stop
3. If phases are incomplete → sends a `followup_message` that auto-prompts the agent to keep working

This means the agent **cannot stop until all phases are done** (up to `loop_limit` of 3 retries).

### Hook Files

```
your-project/
├── .cursor/
│   ├── hooks.json                  ← Hook configuration
│   ├── hooks/
│   │   ├── pre-tool-use.sh         ← Pre-tool-use script
│   │   ├── post-tool-use.sh        ← Post-tool-use script
│   │   ├── stop.sh                 ← Completion check script
│   │   ├── pre-tool-use.ps1        ← PowerShell versions
│   │   ├── post-tool-use.ps1
│   │   └── stop.ps1
│   └── skills/
│       └── planning-with-files/
│           ├── SKILL.md
│           ├── examples.md
│           ├── reference.md
│           └── templates/
├── task_plan.md                     ← Your planning files (created per task)
├── findings.md
├── progress.md
└── ...
```

---

## Windows Setup

The default `hooks.json` uses bash scripts (works on macOS, Linux, and Windows with Git Bash).

**If you need native PowerShell**, rename the config files:

```powershell
# Back up the default config
Rename-Item .cursor\hooks.json hooks.unix.json

# Use the PowerShell config
Rename-Item .cursor\hooks.windows.json hooks.json
```

The `.cursor/hooks.windows.json` file uses PowerShell to execute the `.ps1` hook scripts directly.

---

## What Each Hook Does

### PreToolUse Hook

**Triggers:** Before Write, Edit, Shell, or Read operations

**What it does:** Reads the first 30 lines of `task_plan.md` and logs them to stderr for context. Always returns `{"decision": "allow"}` — it never blocks tools.

**Claude Code equivalent:** `cat task_plan.md 2>/dev/null | head -30 || true`

### PostToolUse Hook

**Triggers:** After Write or Edit operations

**What it does:** Outputs a reminder to update `task_plan.md` if a phase was completed.

**Claude Code equivalent:** `echo '[planning-with-files] File updated...'`

### Stop Hook

**Triggers:** When the agent tries to stop working

**What it does:**
1. Counts total phases (`### Phase` headers) in `task_plan.md`
2. Counts completed phases (supports both `**Status:** complete` and `[complete]` formats)
3. If incomplete, returns `followup_message` to auto-continue
4. Capped at 3 retries via `loop_limit` to prevent infinite loops

**Claude Code equivalent:** `scripts/check-complete.sh` — but Cursor's version is **more powerful** because it can auto-continue the agent instead of just reporting status.

---

## Skill Files

The `.cursor/skills/planning-with-files/SKILL.md` file contains all the planning guidelines:

- Core 3-file planning pattern
- Templates (task_plan.md, findings.md, progress.md)
- The 2-Action Rule
- The 3-Strike Error Protocol
- Read vs Write Decision Matrix

Cursor automatically loads skills from `.cursor/skills/` when you open a project.

---

## Templates

The templates in `.cursor/skills/planning-with-files/templates/` are used when starting a new task:

- `task_plan.md` - Phase tracking template
- `findings.md` - Research storage template
- `progress.md` - Session logging template

The agent copies these to your project root when starting a new planning session.

---

## Tips for Cursor Users

1. **Pin the planning files:** Keep task_plan.md open in a split view for easy reference.

2. **Trust the hooks:** The stop hook will prevent premature completion — you don't need to manually verify phase status.

3. **Use explicit prompts for complex tasks:**
   ```
   This is a complex task. Let's use the planning-with-files pattern.
   Start by creating task_plan.md with the goal and phases.
   ```

4. **Check hook logs:** If hooks aren't working, check Cursor's output panel for hook execution logs.

---

## Compatibility with Claude Code

Your planning files (task_plan.md, findings.md, progress.md) are fully compatible between Cursor and Claude Code. You can switch between them without any changes to your planning files.

---

## Need Help?

Open an issue at [github.com/OthmanAdi/planning-with-files/issues](https://github.com/OthmanAdi/planning-with-files/issues).
