Linear Brasa — Plan (Implementation Plan Document → Planned)
Take an already-refined brasa Linear issue (one with a Design Document) and produce a
bite-sized implementation plan stored as an Implementation Plan Document on the same issue.
Announce at start: "I'm using the linear-brasa-plan skill to write the plan for WIL-X."
Always use the Linear MCP tools (mcp__plugin_linear_linear__*).
Workspace constants:
- Team:
Wilsonfreitas — 6c3534b0-9f98-476c-a1d6-3f99119e9f88
- Project:
brasa — 700095cc-dd63-405b-b285-1895aabce09d
Shared Convention A — Document upsert (never create duplicates)
MCP cannot delete a Document. Always upsert:
1. get_issue(id=WIL-X) → read documents: [{id, title}, ...]
2. Find the entry whose title EXACTLY equals "Implementation Plan".
3. If found: save_document(id=<that id>, content=<new content>) # update in place
If not found: save_document(issue=WIL-X, title="Implementation Plan", content=...) # create once
4. NEVER call save_document(issue=...) when "Implementation Plan" already exists.
Shared Convention B — Status transition (read-back verified, never on abort)
1. Only after the skill's main work succeeded:
save_issue(id=WIL-X, state="<Target>") # state, NOT status
2. Read the returned JSON; confirm "status":"<Target>" before announcing.
3. If the skill aborts/errs before completing, do NOT move the status.
Phase 1 — Preconditions
- Require
WIL-X. If missing, ask once: "Which issue? (e.g., WIL-42)".
- Fetch the issue via
mcp__plugin_linear_linear__get_issue. Read title and the documents array.
- Look in
documents for an entry with title exactly Design:
- If absent, stop: "Issue WIL-X has no Design Document. Run linear-brasa-brainstorm first."
- If found, note the id for Phase 2.
- Look in
documents for an entry with title exactly Implementation Plan:
- If found: call
get_document(id=<that id>), show its content verbatim, then ask:
"Issue already has an Implementation Plan Document. Re-plan and overwrite it? (y/n)". Exit on decline.
- If not found: proceed.
Phase 2 — Write the Plan
2a — Feed Design Document into writing-plans
- Call
mcp__plugin_linear_linear__get_document(id=<Design doc id>) to retrieve the full design.
- Invoke
superpowers:writing-plans, passing the Document content as the input spec. Follow its full flow:
- Scope check (decomposition if the spec is too broad).
- File-structure mapping.
- Bite-sized tasks (2–5 minute steps) with exact file paths, complete code, exact commands, and
the no-placeholders rule.
- Mandatory plan header (
# ... Implementation Plan with Goal, Architecture, Tech Stack).
- Override: no git steps.
superpowers:writing-plans emits git add / git commit steps and
preaches frequent commits. Strip them — the plan MUST NOT contain any git, commit, push, or
branch steps. Version control is owned entirely by linear-brasa-executor (branch-per-issue,
one commit per task, gated merge to main). Plans describe what code changes to make and how to
verify them; the executor decides how they land in git.
- Required header note. The plan header MUST include this exact line directly under the
Tech Stack line:
Version control (branch, commit, merge) is handled by linear-brasa-executor; this plan contains no git steps.
2b — Override the "Save plan" step
Do NOT write to docs/superpowers/plans/*.md or to the issue description. Instead, once the plan
is approved by the user, apply Convention A to write it to the Implementation Plan Document:
- Re-read the current
documents list via get_issue (in case it changed during planning).
- Apply Convention A with target title
Implementation Plan.
- The plan content must use
- [ ] checkbox syntax so the executor can tick steps off.
2c — Self-review
After saving the Plan Document:
- Call
get_document(id=<Design doc id>) — read the Design.
- Call
get_document(id=<Plan doc id>) — read the saved Plan.
- Verify:
- Spec coverage: every Design requirement maps to a plan task.
- Placeholder scan: no TBD / TODO / incomplete steps.
- Name consistency: function names, file paths, and types match across tasks.
- Fix any issues via
save_document(id=<Plan doc id>, content=<corrected>).
Nothing is written to disk. Nothing is modified in the issue description.
Phase 3 — Status Transition to Planned
Apply Convention B with state="Planned":
- Call
save_issue(id=WIL-X, state="Planned").
- Read the returned JSON; confirm
"status":"Planned" before announcing.
- If the call fails or returns a different status, report the error and do NOT announce Planned.
Close out with exactly:
✅ Plan finalized in WIL-X (status: Planned). When you're ready to execute, use linear-brasa-executor.
Share the issue URL.
General Notes
- Write plan content in English.
- Do NOT offer the "Subagent-Driven vs. Inline Execution" choice from
writing-plans, and do NOT
auto-invoke the executor.
- If the user interrupts mid-plan, pause and resume only on their confirmation.
- If the design turns out to require decomposition (multiple independent subsystems), stop and
tell the user rather than writing a multi-feature plan into a single issue.
1---2name: linear-brasa-plan3description: Read the Design Document from a brasa Linear issue and produce an implementation plan stored as an `Implementation Plan` Document on the same issue (not a description section). Moves the issue to `Planned` on success. Use whenever the user says "plan WIL-X", "write the plan for WIL-X", or wants to turn an already-refined issue into an actionable plan.4---56# Linear Brasa — Plan (Implementation Plan Document → Planned)78Take an already-refined brasa Linear issue (one with a `Design` Document) and produce a9bite-sized implementation plan stored as an **Implementation Plan** Document on the same issue.1011**Announce at start:** "I'm using the linear-brasa-plan skill to write the plan for WIL-X."1213**Always use the Linear MCP tools** (`mcp__plugin_linear_linear__*`).1415**Workspace constants:**16- Team: `Wilsonfreitas` — `6c3534b0-9f98-476c-a1d6-3f99119e9f88`17- Project: `brasa` — `700095cc-dd63-405b-b285-1895aabce09d`1819---2021## Shared Convention A — Document upsert (never create duplicates)2223MCP cannot delete a Document. Always upsert:2425```261. get_issue(id=WIL-X) → read documents: [{id, title}, ...]272. Find the entry whose title EXACTLY equals "Implementation Plan".283. If found: save_document(id=<that id>, content=<new content>) # update in place29 If not found: save_document(issue=WIL-X, title="Implementation Plan", content=...) # create once304. NEVER call save_document(issue=...) when "Implementation Plan" already exists.31```3233## Shared Convention B — Status transition (read-back verified, never on abort)3435```361. Only after the skill's main work succeeded:37 save_issue(id=WIL-X, state="<Target>") # state, NOT status382. Read the returned JSON; confirm "status":"<Target>" before announcing.393. If the skill aborts/errs before completing, do NOT move the status.40```4142---4344## Phase 1 — Preconditions45461. Require `WIL-X`. If missing, ask once: "Which issue? (e.g., WIL-42)".472. Fetch the issue via `mcp__plugin_linear_linear__get_issue`. Read title and the `documents` array.483. Look in `documents` for an entry with title exactly `Design`:49 - If absent, stop: "Issue WIL-X has no Design Document. Run linear-brasa-brainstorm first."50 - If found, note the id for Phase 2.514. Look in `documents` for an entry with title exactly `Implementation Plan`:52 - If found: call `get_document(id=<that id>)`, show its content verbatim, then ask:53 "Issue already has an Implementation Plan Document. Re-plan and overwrite it? (y/n)". Exit on decline.54 - If not found: proceed.5556---5758## Phase 2 — Write the Plan5960### 2a — Feed Design Document into writing-plans61621. Call `mcp__plugin_linear_linear__get_document(id=<Design doc id>)` to retrieve the full design.632. Invoke `superpowers:writing-plans`, passing the Document content as the input spec. Follow its full flow:64 - Scope check (decomposition if the spec is too broad).65 - File-structure mapping.66 - Bite-sized tasks (2–5 minute steps) with exact file paths, complete code, exact commands, and67 the no-placeholders rule.68 - Mandatory plan header (`# ... Implementation Plan` with `Goal`, `Architecture`, `Tech Stack`).693. **Override: no git steps.** `superpowers:writing-plans` emits `git add` / `git commit` steps and70 preaches frequent commits. Strip them — the plan MUST NOT contain any git, commit, push, or71 branch steps. Version control is owned entirely by `linear-brasa-executor` (branch-per-issue,72 one commit per task, gated merge to main). Plans describe what code changes to make and how to73 verify them; the executor decides how they land in git.744. **Required header note.** The plan header MUST include this exact line directly under the75 `Tech Stack` line:76 > Version control (branch, commit, merge) is handled by linear-brasa-executor; this plan contains no git steps.7778### 2b — Override the "Save plan" step7980**Do NOT write to `docs/superpowers/plans/*.md` or to the issue description.** Instead, once the plan81is approved by the user, apply Convention A to write it to the **Implementation Plan Document**:82831. Re-read the current `documents` list via `get_issue` (in case it changed during planning).842. Apply Convention A with target title `Implementation Plan`.853. The plan content must use `- [ ]` checkbox syntax so the executor can tick steps off.8687### 2c — Self-review8889After saving the Plan Document:90911. Call `get_document(id=<Design doc id>)` — read the Design.922. Call `get_document(id=<Plan doc id>)` — read the saved Plan.933. Verify:94 - Spec coverage: every Design requirement maps to a plan task.95 - Placeholder scan: no TBD / TODO / incomplete steps.96 - Name consistency: function names, file paths, and types match across tasks.974. Fix any issues via `save_document(id=<Plan doc id>, content=<corrected>)`.9899Nothing is written to disk. Nothing is modified in the issue description.100101---102103## Phase 3 — Status Transition to Planned104105Apply Convention B with `state="Planned"`:1061071. Call `save_issue(id=WIL-X, state="Planned")`.1082. Read the returned JSON; confirm `"status":"Planned"` before announcing.1093. If the call fails or returns a different status, report the error and do NOT announce Planned.110111Close out with exactly:112> ✅ Plan finalized in WIL-X (status: Planned). When you're ready to execute, use linear-brasa-executor.113114Share the issue URL.115116---117118## General Notes119120- Write plan content in **English**.121- Do NOT offer the "Subagent-Driven vs. Inline Execution" choice from `writing-plans`, and do NOT122 auto-invoke the executor.123- If the user interrupts mid-plan, pause and resume only on their confirmation.124- If the design turns out to require decomposition (multiple independent subsystems), stop and125 tell the user rather than writing a multi-feature plan into a single issue.