agentleFS
withpiperwithpiper/pipekit/skills/brainstorm/SKILL.md

brainstorm

Skill6 starsChanged 2 months agoMITView on GitHub

Analyze a feature idea, assess feasibility, file Linear issue. Use when the user shares a raw idea mid-session. Use when scoping a feature before /light-spec. Produces a triaged Linear ticket, not a full spec.

189 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use playtest-report, team-polish 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.
  • CoralGameSkill

    playtest-report

    Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.

    Also in 9 projects that use this

  • CoralGameSkill

    team-polish

    Orchestrate the polish team: coordinates performance-analyst, technical-artist, sound-designer, and qa-tester to optimize, polish, and harden a feature or area for release quality.

    Also in 11 projects that use this

  • lilangMaxSkill

    soak-test

    Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.

    Also in 6 projects that use this

  • lilangMaxSkill

    team-live-ops

    Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.

    Also in 6 projects that use this

  • +8 more from CoralGame

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 156 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask which stage/phase this belongs to

    line 52
  2. Very specific:

    Ask for a trigger type from the grammar below (parsable triggers are what let /roadmap-review auto-surface this later — prose triggers get …

    line 59
  3. Distinctive:

    Ask for a target initiative/stage

    line 60
  4. Very specific:

    Add the Parked label — pk issue update {issue} --add-label Parked (one pk issue update can carry both the --state and the --add-label).

    line 62
  5. Distinctive:

    If the user describes a trigger that doesn't match the grammar, coach them toward the nearest match (e.g., "revisit when auth is solid" → …

    line 78
  6. Distinctive:

    Ask for rationale (one sentence)

    line 81
  7. Distinctive:

    If the disposition is Now and the brainstorm is broad, cut to v1 scope:

    line 87
  8. Distinctive:

    Ask: _"What's the smallest useful version of this?

    line 90
  9. Very specific:

    Update the issue description with a ## v1 Scope section that trims to essentials — append it to the description you filed and pk issue …

    line 91
  10. Distinctive:

    When you encounter these situations, take the safer path:

    line 147

“Common” is measured: kept by at least 6 in 10 of the 156 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

Brainstorm Skill

You are a brainstorm processor. Read method.config.md for project context. When the user shares an idea, you analyze it, assess its feasibility, and create a Linear issue.

Triggers

This skill is invoked when the user says:

  • /brainstorm
  • "brainstorm"
  • "new brainstorm"
  • "I have an idea"

Purpose

Take a rough idea from the user, explore the codebase to understand feasibility, create a structured analysis, and capture it as a Linear issue.

Run from the parent project root, not from inside a pk branch worktree. Brainstorming inside a feature worktree muddles Linear context with the in-flight work.

Execution Steps

Phase 1 — EXPAND (Brainstorm)

  1. Capture the idea from the user
  2. Explore the codebase to assess feasibility
  3. Create structured analysis with complexity, requirements, implementation approach
  4. Present to user for approval
  5. Create the Linear issue via the project's Linear route, with title, description, state, priority and label in one call — pk issue create --title "…" --description-file <F> --state Triage --priority 0 --label "Area: <area>" --label "Repo: <repo>" (verb table: sop/Linear_SOP.md § Linear transport; the mcp route's equivalent is listed there; the team comes from method.config.md and pk reads it itself):
    • --title: concise feature title
    • --description-file: the full brainstorm analysis (feasibility, complexity, approach, requirements), written to a file first (or - to pipe it on stdin)
    • --priority 0 (None) — triage sets real priority later
    • no --project — a newly filed idea is uncut work, and no project is its correct home. Apply an Area: label instead (--label "Area: <area>", per method.config.md § Initiative Surface → Area Labels); /linear-hygiene fills it in later if you can't infer one. File into a lane (--project <I{N}.P{N}>) only when the idea is explicitly part of that lane's completable scope — filing for the sake of filing is what grows pools. On a board with no § Area Labels config, keep the old behavior: ask which project to assign, or leave unassigned.
    • --state Triage — but note a Triage-state issue is invisible in project views and excluded from project scope counts, so if you do file it into a lane it won't render there until it's triaged out.
    • --label "Repo: <repo>" where method.config.md § Repo Labels is populated (a board shared by more than one codebase): which repo the deliverable lands in, orthogonal to Area and to lane. Skip on a single-repo board.
  6. Output: issue identifier and Linear URL

Phase 2 — HOLD (Disposition)

Immediately after creating the issue, force a disposition decision:

What should happen with this idea?

  1. Now → Route to pipeline. Assign to an initiative/stage, move to Needs Spec.
  2. Later → Park with a trigger condition and target initiative.
  3. Kill → Archive with rationale.

If Now:

  • Ask which stage/phase this belongs to
  • Route by complexity tier (see Complexity Guidelines for tier mapping):
    • Quick (Low) → move to "Approved" (pk issue update {issue} --state Approved). Inform: "Ready for pk branch {issue} then /work {issue} — no spec needed."
    • Standard (Medium) → move to "Needs Spec" (pk issue update {issue} --state "Needs Spec"). Inform: "Ready for /light-spec {issue}, then pk branch {issue} + /work {issue}."
    • Heavy (High) → move to "Needs Spec" (same call). Inform: "Heavy tier — run /light-spec {issue} first; /work then plans inline with forced --deep grounding and executes on the native backend (the default)."

If Later:

  • Ask for a trigger type from the grammar below (parsable triggers are what let /roadmap-review auto-surface this later — prose triggers get flagged as manual-review)
  • Ask for a target initiative/stage
  • Move issue to "Ideas" or "Future Phases" based on target — pk issue update {issue} --state Ideas / --state "Future Phases"
  • Add the Parked label — pk issue update {issue} --add-label Parked (one pk issue update can carry both the --state and the --add-label). If the label doesn't exist in the Linear workspace, create it first with name Parked, color #EAB308 (amber): pk gql 'mutation($in: IssueLabelCreateInput!) { issueLabelCreate(input:$in) { success issueLabel { id name } } }' '{"in":{"teamId":"<TEAM>","name":"Parked","color":"#EAB308"}}' (team id from pk config "Team ID").
  • Post a Linear comment — pk issue comment {issue} "<body>" — using the exact parseable format below (do not paraphrase — /roadmap-review greps for it):
    **Parked:** Revisit when {trigger}. Target: {phase/stage}.

Trigger grammar (pick one):

Trigger formMeaningExample
{ISSUE-ID} shipsFires when the referenced issue is in Done stateParked: Revisit when PROJ-56 ships. Target: Phase 4.
Stage {N} UAT passesFires when all Stage N issues are past UATParked: Revisit when Stage 1 UAT passes. Target: Stage 2.
Initiative {N} shipsFires when all Initiative N issues are DoneParked: Revisit when Initiative 3 ships. Target: Initiative 4.
date: YYYY-MM-DDFires on a calendar dateParked: Revisit when date: 2026-06-01. Target: Initiative 5.
manualNo auto-trigger; surfaced only on explicit /brainstorm-reviewParked: Revisit manual. Target: icebox.

If the user describes a trigger that doesn't match the grammar, coach them toward the nearest match (e.g., "revisit when auth is solid" → propose "Revisit when {auth-epic-issue} ships") rather than saving a prose trigger that won't parse.

If Kill:

  • Ask for rationale (one sentence)
  • Move issue to "Canceled" — pk issue update {issue} --state Canceled
  • Post a Linear comment — pk issue comment {issue} "Killed: {rationale}"

Phase 3 — REDUCE (for "Now" items only)

If the disposition is Now and the brainstorm is broad, cut to v1 scope:

  1. Review the brainstorm analysis
  2. Ask: "What's the smallest useful version of this? What can wait for v2?"
  3. Update the issue description with a ## v1 Scope section that trims to essentials — append it to the description you filed and pk issue update {issue} --description-file <F> (the write replaces the whole description, so send existing + new section)
  4. This reduced scope is what /light-spec will work from

Complexity Guidelines

Each complexity level maps to a /work tier. The tier determines whether a spec is required and which execution path runs.

Complexity/work TierEffortExamplesSpec?
LowQuick~2-4hUI-only, simple CRUD, existing infrastructureNo — straight to pk branch + /work
MediumStandard~6-10hNew API endpoint, combines existing systemsYes — /light-spec first
HighHeavy~12-20+hNew infrastructure, complex logic, multiple integrationsYes — /light-spec, then /work with forced --deep grounding

Description Template

Format the Linear issue description as:

## Brainstorm Analysis

**Complexity:** Low / Medium / High
**Estimated Effort:** X-Y hours

### Summary
[1-2 sentence description]

### Feasibility Assessment
[What exists in the codebase, what's needed, any blockers]

### Implementation Approach
[High-level steps]

### Requirements
- [requirement 1]
- [requirement 2]

### Notes
[Any caveats, dependencies, or open questions]

Red Flags

Thoughts that indicate brainstorm backlog rot is about to start. Paired with .claude/rules/pipekit-discipline.md.

FlagWhat it actually means
"This is a good idea, just add it to Linear"Filing without disposition = idea rots in Ideas forever. The HOLD phase (Now/Later/Kill) is not optional.
"More captured ideas is better"No — more items without disposition = more backlog noise that crowds out real work. Selectivity is the feature.
"Later means we'll get to it eventually"Not without a trigger condition. "Later" requires a concrete revisit signal (e.g., "when PROJ-56 ships") or it becomes "never."
"The feasibility is obvious"Feasibility claims made without exploring the codebase are wrong a third of the time. Explore, then estimate.
"This idea is too rough to file"That's what EXPAND is for. Unfiled ideas exist only in the current session; filed-as-rough-with-disposition is always better than lost.

Common Drifts to Avoid

When you encounter these situations, take the safer path:

  • Skipping codebase exploration → Ideas that feel "obviously feasible" often become surprisingly complex during speccing. Explore first, then assess.
  • Estimating without exploring → Low means 2-4 hours of implementation. Accurate estimates require understanding the existing codebase.
  • Deferring dependency discovery → Capture dependencies during brainstorming. Dependencies discovered during execution are far more expensive to resolve.
  • Skipping the Linear issue → Every idea gets an issue. Ideas without issues get forgotten; issues without context get built blindly.

Related

  • /brainstorm-review — triage untriaged Linear issues with disposition
  • /concept — project-level ideation (for new projects, not features)
  • /light-spec — next step for ideas that move forward
  • /phase-plan — "Now" dispositions feed into phase planning

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.