Talk through a phase before planning. Identifies gray areas and captures your decisions.
Guides users through pre-planning discussions to lock key decisions before implementation begins.
npx claudepluginhub sienklogic/towlineThis skill is limited to using the following tools:
templates/CONTEXT.md.tmpltemplates/decision-categories.mdYou are running the discuss skill. Your job is to help the user think through a phase BEFORE planning begins. You identify gray areas where the user's preference matters, ask structured questions, and capture every decision in a CONTEXT.md file that the planner must honor.
This skill runs inline (no Task delegation).
Decisions made here are LOCKED. The planner cannot override them, even if research suggests a different approach. The planner must implement the locked decision and may note the discrepancy, but must follow the user's choice exactly.
Before starting the discussion, check whether the phase already has plan artifacts:
PLAN.md or PLAN-*.md files in the phase directory/dev:plan {N} after."Parse $ARGUMENTS to get the phase number.
Validation:
3.1)/dev:status to see available phases."Phase directory resolution:
.planning/phases/{NN}-* where NN matches the phase number╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
Phase {N} not found.
**To fix:** Run `/dev:status` to see available phases.
Read the following files to understand what this phase needs to accomplish:
ROADMAP.md — Find the phase entry. Extract:
Prior SUMMARY.md files — Scan .planning/phases/ for phases with lower numbers that have SUMMARY.md files. Read their frontmatter to understand:
provides field)tech_stack field)patterns field)key_decisions field)REQUIREMENTS.md (if exists) — Read project requirements relevant to this phase
CONTEXT.md (if exists in the phase directory) — Check if a prior discussion already happened
skills/shared/gate-prompts.md:
question: "Phase {N} already has a CONTEXT.md from a prior discussion. How should we handle it?"Handle responses:
Before jumping into specific gray areas, give the user space to share their mental model unprompted.
Present the phase goal (from ROADMAP.md) and ask an open question:
Follow the user's response with 2-3 domain-aware follow-ups from skills/shared/domain-probes.md:
Surface implications from what the user shared:
Let the conversation reveal gray areas naturally. The user's responses here often surface the real gray areas better than top-down analysis. Carry any themes, concerns, or preferences forward into Step 3.
Analyze the phase goal, requirements, and what's already built. Identify 3-4 gray areas where the user's preference matters. Gray areas fall into these categories:
Read skills/discuss/templates/decision-categories.md for the category reference table.
How to identify gray areas:
Important: Do NOT identify gray areas that are purely implementation details (e.g., variable naming, file organization). Focus on areas that affect user experience, system behavior, or long-term maintainability.
Present each gray area to the user using the gray-area-option pattern from skills/shared/gate-prompts.md. For each gray area:
Use AskUserQuestion: question: "Gray Area {N}: {Title} — {Why this matters}" header: "Decision" options: (generate 2-4 concrete options from analysis, each with pros/cons in the description) - label: "{Option A}" description: "{Pros: ..., Cons: ...}" - label: "{Option B}" description: "{Pros: ..., Cons: ...}" - ...up to 4 options total, with "Let Claude decide" always as the last option - label: "Let Claude decide" description: "Mark as Claude's Discretion" multiSelect: false
If more than 3 concrete options exist for a gray area, present only the top 3 plus "Let Claude decide" (max 4 total). Mention the omitted option(s) in the question text.
Rules for presenting options:
For each gray area where the user made a decision (not "Let Claude decide"), ask 4 follow-up questions to fully capture their intent.
Follow-up question types:
Scope boundary: "Should {feature} also handle {edge case}?" Use the yes-no pattern — this is a binary decision.
Quality level: "How polished should this be?" Do NOT use AskUserQuestion — this is freeform. Let the user describe their quality expectations in their own words.
Integration: "How should this interact with {existing component}?" Do NOT use AskUserQuestion — this is freeform. The answer depends on the specific component and context.
Future-proofing: "Should we design this to support {potential future need}, or keep it simple?" Use the yes-no pattern: question: "Design {feature} to support {future need}, or keep it simple for now?" options: - label: "Future-proof" description: "Add extensibility for {future need}" - label: "Keep simple" description: "Build only what's needed now"
Rules for follow-ups:
During the conversation, the user may mention ideas they want but not in this phase. Track these separately:
Write the CONTEXT.md file to the phase directory:
Path: .planning/phases/{NN}-{phase-name}/CONTEXT.md
Content:
Read skills/discuss/templates/CONTEXT.md.tmpl for the template structure.
Placeholders to fill:
{N} -- the phase number{ISO date} -- today's date in ISO format{Decision title} / {User's exact choice and reasoning} -- from Step 4-5 decisions{Idea} / {Why deferred} -- from Step 6 deferred ideas{Area} / {What Claude can choose} -- items marked "Let Claude decide"{2-3 sentences} -- user's vision summary from the conversation{Concern} / {Context} -- concerns raised during discussionDecision Summary generation: The ## Decision Summary section at the top of CONTEXT.md is a compact digest (~300 tokens) of all decisions. For each locked decision, write only the title and the user's choice in one phrase (no scope/quality/integration details). List deferred and discretion items as comma-separated titles only. This summary is injected into agent prompts by the plan skill -- keep it concise.
Update .planning/STATE.md's ## Accumulated Context section to add a reference to the new CONTEXT.md:
Add under the ### Decisions subsection:
Phase {N} discussion: .planning/phases/{NN}-{slug}/CONTEXT.md ({count} locked, {count} deferred, {count} discretion)
This creates a pointer so /dev:resume and progress-tracker.js know that phase-specific decisions exist and where to find them.
After writing CONTEXT.md, display branded output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TOWLINE ► DISCUSSION CAPTURED ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**Phase {N}: {name}**
Decisions: {count} locked, {count} deferred, {count} discretion
───────────────────────────────────────────────────────────────
## ▶ Next Up
**Plan this phase** — your decisions will be honored
`/dev:plan {N}`
<sub>`/clear` first → fresh context window</sub>
───────────────────────────────────────────────────────────────
**Also available:**
- `/dev:status` — see project status
- `/dev:explore` — explore ideas further
───────────────────────────────────────────────────────────────
These come from:
The planner MUST:
These come from:
The planner MUST NOT:
These come from:
The planner MAY:
skills/shared/gate-prompts.md (same as Step 2)/dev:discuss {N+1}."This skill updates STATE.md's Accumulated Context section with a pointer to the phase CONTEXT.md file. It does NOT change the project position (current phase/plan). STATE.md position is updated when /dev:plan runs.
Reference: skills/shared/commit-planning-docs.md for the standard commit pattern.
If planning.commit_docs: true in config.json:
docs(planning): capture phase {N} discussion decisionsActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.