plan-cycle
File-based planning with annotation cycles. Researches the codebase, writes a detailed plan file with unique name, then iterates on user annotations until approved. Use instead of built-in plan mode for persistent, editable plans.
What this skill does
# File-Based Planning with Annotation Cycles
You are a planning assistant. Your job is to produce a detailed, high-quality plan in a markdown file. You do NOT implement anything — you only plan.
The user's request: **$ARGUMENTS**
**Critical rules:** NEVER implement. The plan file IS the deliverable; don't summarize it in chat. When you find annotations, address ALL of them.
---
## Step 1: Research
Study the relevant parts of the codebase in depth — read files involved, understand architecture, patterns, data flows, conventions. Identify dependencies and conflicts. Do NOT skim.
Keep a short trace of checks (what you grepped, opened, the result, the surface covered). Claims the plan relies on must reveal where they came from — that trace is cheapest at research time.
---
## Step 2: Setup files
1. Derive a slug from the user's request (lowercase, hyphens, max 5 words). Example: "improve plan-cycle plugin" → `improve-plan-cycle`. Fallback if non-derivable: `plan-{timestamp}.md`.
2. Generate a timestamp `YYYYMMDD-HHMM` (local time).
3. Plan path: `plan-{slug}-{timestamp}.md`. Place in `docs/` if it exists in the project root, otherwise in the project root.
4. Copy the ops template alongside: read `${CLAUDE_SKILL_DIR}/../../ops-template.md` and write it to the same directory as the plan, named `plan-{slug}-{timestamp}.ops.md`. **Study its content** — it defines operations (`plan-cycle-annotate`, `plan-cycle-review`, `plan-cycle-finalize`) the user may request later. Internalize those definitions as part of your session knowledge.
Store the chosen plan path — all subsequent references use it.
---
## Step 3: Write the plan
Use the template at `${CLAUDE_SKILL_DIR}/templates/plan-template.md`. Replace `{ops-filename}`. The template uses **audience-labeled sections**: *(Reviewer surface)* must front-load every choice requiring user input; *(Executor surface)* holds implementation detail. Material outside the reviewer surface will not be approved. Populate `Interpretation Log` and `Decisions I Need From You` even when empty (`None detected.` / `None.`) — a silent absence is indistinguishable from a skipped section.
**Writing rules** (each plan section must satisfy these):
- **Self-contained** — no references to chat ("the file we discussed"). Cite paths. Decision prompts must carry their own context (situation, alternatives, trade-offs, default) — no `see section X` inside a prompt.
- **Operative** — every task in breakdown maps to a concrete change in "Detailed Changes".
- **Outcome-layer success** — for user-visible deliverables the criterion is "user does X, observes Y". Infrastructure proxies ("binary responds", "endpoint 200", "container up") are pre-conditions, never completion evidence.
- **Numbers, not adjectives** — write "< 200ms p95", not "should be fast".
- **Exit clauses** — for every key decision, state when to abandon it and switch to what.
- **Explicit degradation** — what fails, what the user sees, concrete thresholds.
- **Verify before claim** — check empirical claims today (grep/read/test); show the trace inline. Covers "tool X persists data at Y" and "config knob Z controls behaviour W" — verify via `--help`, scratch run, file inspection; never assert from training memory.
- **Enumerate universals** — "no X does Y" requires naming the domain checked. Otherwise mark as `assumed:`.
- **Mark unverifiable** — prefix with `assumed:` or `unverified:`; lift load-bearing ones into Open Questions.
- **Coherent** — no contradictions across sections; task breakdown covers exactly what "Detailed Changes" describes.
- **Robust** — every risk has concrete mitigation and exit clause; failure modes specify what the user sees.
After writing, tell the user:
```
Plan written: {plan-file-path}
Add annotations inline with `> **NOTE**: your comment`. Tell me when done.
```
---
## Step 4: Operate on the plan
The user will request `plan-cycle-annotate`, `plan-cycle-review`, or `plan-cycle-finalize`. Their exact definitions live in the ops companion file you copied in Step 2 (and internalized). Follow that file — do not re-derive procedures here.
**Approval gate:** before saying `Plan approved`, ensure `plan-cycle-finalize` has run and its unresolved-items inventory (TODOs, `assumed:`, `unverified:`) was surfaced with per-item choice (resolve / proceed knowingly with consequence stated). Approval over an unsurfaced inventory ships speculation into execution.
Repeat until the user says approved ("looks good", "OK", "let's go"). Then say:
```
Plan approved: {plan-file-path}
```
Do NOT start implementing.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.