with one click
plan
// OPT-IN file-based planning for multi-session tasks. Only use when user explicitly requests it or work spans multiple sessions. For single-session work, prefer your platform's native planning features.
// OPT-IN file-based planning for multi-session tasks. Only use when user explicitly requests it or work spans multiple sessions. For single-session work, prefer your platform's native planning features.
Structured PR review for pygraphistry. Input: PR number/branch (default current branch PR). Output: findings and convergence artifacts under plans/<task>/. Method: multi-wave, evidence-first review across spec, correctness, tests, security, code quality, DRY, concurrency, performance, architecture, operability, and conventions.
Methodical bug-driven test amplification for pygraphistry features. Use when hardening a feature area via user-workflow exploration, 5-Whys retrospectives, bug-taxonomy derivation, concrete test planning, implementation, and safety-gated validation.
| name | plan |
| description | OPT-IN file-based planning for multi-session tasks. Only use when user explicitly requests it or work spans multiple sessions. For single-session work, prefer your platform's native planning features. |
Unless explicitly requested ("create a plan.md", "use the plan template"), prefer your AI platform's built-in planning. This file-based approach is only justified for multi-session or handoff work.
plans/[task_name]/plan.md[placeholders]🔄⚠️ gitignore: plans/ is local only — never commit unless user explicitly requests (git add -f).
Terse but recoverable — every token earns its place, but a cold-start agent with zero context must still understand and resume. Abbreviate, omit filler. Test: would a stranger understand this with no other context? If yes, cut further. If no, add the minimum needed.
Emoji: only use where it saves characters or adds clarity not already present in the text (e.g. status icons replace words, ⚠️ flags a genuine warning). Do not add emoji just to have them — if removing one loses nothing, remove it.
This plan MUST be:
⚠️ External memory is unreliable. This file — and files it points to — are your ONLY memory.
$ENV_VAR, <redacted>, or pointer to env file (e.g. source .env.local)🔄(🤖agent_<id>_step_<N>) and record subagent plan path. Subagents must NOT edit this file — main agent updates it from their output.plans/[task]/subagents/agent_<id>_step_<N>/plan.md, same protocol. Subordinate to this file.Per step:
cat plans/[task]/plan.md | head -200 — reload🔄 steptail -50 plans/[task]/plan.md — verifyOrder: write plan → run → write results → continue
STOP → reload plan → find last ✅ step → continue from there
# [Task] Plan
🔴 COLD START: reload skill first → `.agents/skills/plan/SKILL.md`
File: `plans/[task]/plan.md` | Date: [DATE TZ] | Branch: [branch] | PR#[N] → [target] | Base: [branch @ SHA]
## Context (read-only)
**Prompt**: [verbatim user request]
**Goal**: [what we're achieving]
**Done when**: [success criteria]
**Constraints**: [key limits]
**Branch**: `[name]` off `[parent]` @ `[SHA]`
## Strategy
**Approach**: [high-level plan]
**Decisions**: [decision → reason]
## Commands
Record ALL commands verbatim — exact flags, paths, env vars. No paraphrasing. No secrets (use `$VAR`, `<redacted>`, or `source .env.local`).
Preferred:
```bash
cat plans/[task]/plan.md | head -200 # reload plan
python -m pytest -q [test_path] # targeted tests
./bin/test-minimal-lite.sh # fast repo sentinel tests
./bin/ruff.sh && ./bin/typecheck.sh # lint + types
./bin/test.sh [optional_test_args] # broader test pass
gh pr checks [PR] --watch # CI
gh run view [RUN_ID] --json status,conclusion,jobs
git log --oneline -10
Add task-specific commands here as discovered.
⬜ TODO · 🔄 IN_PROGRESS · 🔄(🤖agent_step) subagent · ✅ DONE · ❌ FAILED · ⏭️ SKIPPED · 🚧 BLOCKED
Hierarchical numbering (1, 1.1, 1.1.a …) — insert substeps freely without renumbering siblings.
🔄 | Do: [action] | OK: [criteria]
$ [exact command]
[output]
Result: [decisions / errors / next]
⬜ | Do: [action] | OK: [criteria]
⬜ | Do: [action] | OK: [criteria]
## Compaction
Trigger when plan file exceeds ~500 lines. Target 200–300 lines after compaction.
1. Archive completed steps → `plans/[task]/history/steps<N>-<M>.md`
2. Replace with tight summary: what was done, key decisions, gotchas + pointer to archive
3. Continue numbering from where you left off
> 🔴 On context compaction/reset: **reload THIS SKILL FILE first** — before the plan, before code. It governs all execution. Skipping it causes silent drift.