agentleFS
akash-joshiakash-joshi/agent-skills/skills/discuss/SKILL.md

discuss

Skill8 starsChanged 3 months agoMITView on GitHub

Identify gray areas in proposed work and capture decisions before planning. Use at the start of a new feature or piece of work to clarify HOW (not what) to build — surface implementation choices the user cares about, walk through them with concrete options, and produce a context file that plan mode or downstream agents can consume. Lightweight extraction of gsd-discuss-phase, no .planning/ scaffold required.

31 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use quick, execute and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • codebycoreySkill

    quick

    Quick start a change with minimal interaction. Use when fast-tracking a straightforward change that needs proposal, design, and tasks in one step.

    Also in 4 projects that use this

  • sahinSkill

    execute

    Also in 4 projects that use this

  • BlockSkill

    plan

    Draft a TDD, PRD, or lightweight plan in the conversation without committing it.

    Also in 7 projects that use this

  • dubwoahSkill

    ask

    Answer questions about the codebase without generating or modifying any code. Use when the user wants to understand how something works, find where something is defined, or explore the project structure. Invoked with /ask.

    Also in 3 projects that use this

  • Hugging FaceSkill

    implement

    Make tests pass. Invoke after /write-tests produces failing tests.

    Also in 7 projects that use this

  • MicrosoftSkill

    report

    Turn an exploration (threads, findings, charts) into a single Markdown report — note, blog post, executive summary, KPI dashboard, slide brief, or multi-section analytical report, with embedded charts.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 9 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 28 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before plan mode on any non-trivial feature where multiple reasonable implementations exist.

    line 20
  2. Distinctive:

    NOT for trivial bug fixes, mechanical refactors, or work where the path is obvious — go straight to plan mode for those.

    line 21
  3. Distinctive:

    Use this to annotate gray-area options later ("Cards reuses the existing Card component" vs "Timeline would need a new component").

    line 40
  4. Distinctive:

    If the user picks "You decide" / "Other" with a free-text redirect, capture that as Claude's discretion or as a new decision in the context …

    line 65
  5. Distinctive:

    Only ask follow-up questions if the answers reveal new ambiguity.

    line 67
  6. Distinctive:

    If the user proposes a new capability that's not within the domain boundary:

    line 71
  7. Distinctive:

    Write to the output path. Structure:

    line 79
  8. Distinctive:

    After writing, tell the user where the file is and suggest the next step:

    line 127
  9. Distinctive:

    Writing scaffold the user didn't ask for: No phase numbers, no ROADMAP.md, no STATE.md.

    line 141

“Common” is measured: kept by at least 6 in 10 of the 28 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Discuss: Clarify Gray Areas Before Planning

You are a thinking partner. The user is the visionary, you are the builder. Your job is to extract the implementation decisions that would change the outcome — the gray areas — and capture them in a context file. You are NOT figuring out HOW to implement; that is for plan mode and downstream agents.

When to use

  • The user says "let's discuss this before planning", "I want to clarify the gray areas", "make sure we're building the right thing", or invokes /discuss <description> directly.
  • Before plan mode on any non-trivial feature where multiple reasonable implementations exist.
  • NOT for trivial bug fixes, mechanical refactors, or work where the path is obvious — go straight to plan mode for those.

Inputs

  • A free-text description of the work (from skill args, or ask the user if absent).
  • An output path for the context file (default: <work-slug>-CONTEXT.md in the project root or .claude/contexts/ if it exists; ask if ambiguous).

Process

1. Establish the domain boundary

Restate what is being built in one clear sentence — the scope anchor. State it inline alongside the scout/gray-area work; do NOT block on a separate "is this OK?" confirmation turn. The user can redirect via free text if they disagree. Example:

"Domain: surfacing parsed bank-statement transactions in the existing dashboard, scoped to read-only display. We'll clarify HOW to implement this — new capabilities go in a separate piece of work."

2. Scout the codebase (lightweight)

Extract 3-5 key terms from the description. Run grep -rl against the source tree to find relevant files. Read the 3-5 most relevant ones, looking for reusable assets (components, hooks, helpers), established patterns (state, styling, data fetching, errors), and integration points (routes, providers, models).

Use this to annotate gray-area options later ("Cards reuses the existing Card component" vs "Timeline would need a new component"). This is single-session context — do NOT write the scout results to a file.

3. Identify phase-specific gray areas

Generate 3-5 gray areas that are SPECIFIC to this work, not generic categories.

Bad (generic categories): UI, UX, Behavior, Empty States.

Good (specific decisions): for a transaction display feature — drill-in vs inline expansion, info density per row, what happens when amounts are zero or pending, how to handle uncategorised transactions.

The test for a good gray area: would different answers produce noticeably different implementations? If no, it's not a gray area worth discussing.

4. State the gray areas and your defaults

In a single plain-text message, list the 3-5 gray areas you've identified. Default the ones with an obvious answer (existing convention, codebase precedent, clear best practice) inline so the user can override. Flag the genuinely contested ones as decision-worthy and ask about those in step 5 — don't make the user triage a menu of categories before they've seen the substance.

5. Ask the decision-worthy questions

Batch the genuinely-contested gray areas into a single AskUserQuestion call (the tool accepts up to 4 questions per call). For each:

  • header: short area name (max 12 chars)
  • options: 2-3 concrete choices (NOT abstract — "Cards" not "Option A"), plus "You decide" when reasonable. The harness adds "Other" automatically for free-text.
  • Annotate options with code context when relevant: "Cards (reuses existing Card component)" vs "Timeline (no existing component)".
  • Mark the recommended option with "(Recommended)" and a brief why in the description.

If the user picks "You decide" / "Other" with a free-text redirect, capture that as Claude's discretion or as a new decision in the context file — plan mode is free to choose where the user defers.

Only ask follow-up questions if the answers reveal new ambiguity. Don't run "any more questions about [area]?" loops — the user can always raise more in their next message.

6. Handle scope creep

If the user proposes a new capability that's not within the domain boundary:

"[Feature] sounds like a new capability — that belongs in its own piece of work. I'll note it as a deferred idea. Back to [current area]: [resume question]."

Track these in a deferred-ideas list. Do NOT act on them.

7. Write the context file

Write to the output path. Structure:

# [Work title] - Context

**Gathered:** [today's ISO date]
**Status:** Ready for planning

## Domain Boundary

[One-sentence scope anchor from step 1]

## Implementation Decisions

### [Area 1 name]
- **D-01:** [Decision captured from discussion]
- **D-02:** [Another decision]

### [Area 2 name]
- **D-03:** [Decision captured]

### Claude's Discretion
[Areas where the user said "you decide" — plan mode has flexibility]

## Existing Code Insights

### Reusable Assets
- [Component / hook / utility]: [How it could be used]

### Established Patterns
- [Pattern]: [How it constrains or enables this work]

### Integration Points
- [Where new code connects to existing code]

## Specifics

[Particular references, "I want it like X" moments — or "No specifics — open to standard approaches"]

## Deferred Ideas

[Ideas raised during discussion that are out of scope for this work — preserved so they aren't lost]

[If none: "None — discussion stayed within scope"]

8. Hand off

After writing, tell the user where the file is and suggest the next step:

"Context written to <path>. Ready for plan mode — paste the context file path when you start planning, or say 'plan it' and I'll enter plan mode with this context loaded."

Philosophy

The user knows how they imagine it, what it should feel like, what's essential, and any specific references they have in mind. They don't know (and you shouldn't ask about) codebase patterns, technical risk, implementation approach, or success metrics — that's plan mode's job.

Anti-patterns to avoid

  • Asking what you should look up. Codebase patterns, existing components, framework conventions — read the code, don't quiz the user.
  • Implementation-level questions. "Should we use useState or useReducer?" — that's plan mode's call. Ask about behaviour and outcomes, not internals.
  • Acting on the discussion. This skill produces a context file. It does NOT write code, run tests, or modify the project. End with the file path; let plan mode take over.
  • Skipping the codebase scout. Without code context, options become abstract and the user has nothing to anchor on.
  • Writing scaffold the user didn't ask for. No phase numbers, no ROADMAP.md, no STATE.md. Just one CONTEXT file at the requested path.

Output

A single markdown file at the path the user chose (or the default) — consumable by plan mode, future sessions, or humans reviewing the decisions before implementation begins.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.