Receber por email
← Voltar para o catálogo

brainstorm-and-plan

Use before ANY creative work — creating features, building components, adding functionality, modifying behavior, or starting a new project. Also use when someone says 'build', 'create', 'add', 'implement', 'let's make', or describes something they want built. Do NOT write code until a design is approved and a plan is written.

11estrelas
Atualizado há 6 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add burhankhatri/e2e-testing

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/brainstorm-and-plan/svg)](https://www.skillteca.com.br/skills/brainstorm-and-plan)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Brainstorming and Planning

Part 1: Brainstorming — Design Before Code

<HARD-GATE> Do NOT write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity. </HARD-GATE>

Anti-Pattern: "This Is Too Simple To Need A Design"

Every project goes through this process. A todo list, a single utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short, but you MUST present it and get approval.

Process:

  1. Explore project context — check files, docs, recent commits
  2. Ask clarifying questions — one at a time, prefer multiple choice when possible
  3. Propose 2-3 approaches — with trade-offs and your recommendation. Lead with recommended option and explain why.
  4. Present design — in sections scaled to complexity, get user approval after each section. Cover: architecture, components, data flow, error handling, testing.
  5. Write design doc — save to docs/specs/YYYY-MM-DD-<topic>-design.md and commit
  6. Spec self-review:
  7. Placeholder scan: Any "TBD", "TODO", incomplete sections? Fix them.
  8. Internal consistency: Do sections contradict each other?
  9. Scope check: Focused enough for a single plan, or needs decomposition?
  10. Ambiguity check: Could any requirement be interpreted two ways? Pick one.
  11. User reviews written spec — wait for approval before proceeding
  12. Transition to Part 2 — write implementation plan

Design Principles:

  • One question at a time — don't overwhelm
  • YAGNI ruthlessly — remove unnecessary features
  • Design for isolation — smaller units, one purpose each, well-defined interfaces, testable independently
  • In existing codebases — explore first, follow existing patterns
  • If too large — decompose into sub-projects. Each gets its own spec → plan → implementation cycle.

Part 2: Writing Plans — Bite-Sized Executable Tasks

Write plans assuming the engineer executing has zero codebase context and questionable taste. Document everything: files to touch, code, testing, how to verify. DRY. YAGNI. TDD. Frequent commits.

Plan Document Header:

# [Feature Name] Implementation Plan

**Goal:** [One sentence]
**Architecture:** [2-3 sentences]
**Tech Stack:** [Key technologies]

---

Each Task — Bite-Sized (2-5 minutes):

### Task N: [Component Name]

**Files:**
- Create: `exact/path/to/file.ts`
- Modify: `exact/path/to/existing.ts`
- Test: `tests/exact/path/to/test.ts`

- [ ] **Step 1: Write the failing test**
  [actual test code]

- [ ] **Step 2: Run test to verify it fails**
  Run: `npm test path/to/test.ts`
  Expected: FAIL with "[specific message]"

- [ ] **Step 3: Write minimal implementation**
  [actual implementation code]

- [ ] **Step 4: Run test to verify it passes**
  Run: `npm test path/to/test.ts`
  Expected: PASS

- [ ] **Step 5: Commit**
  `git add ... && git commit -m "feat: add specific feature"`

No Placeholders — EVER:

These are plan failures — never write them:

  • "TBD", "TODO", "implement later"
  • "Add appropriate error handling"
  • "Write tests for the above" (without actual test code)
  • "Similar to Task N" (repeat the code — engineer may read out of order)
  • Steps describing what to do without showing how (code blocks required)
  • References to types/functions not defined in any task

Self-Review After Writing:

  1. Spec coverage: Skim each requirement. Can you point to a task? List gaps.
  2. Placeholder scan: Search for red flags. Fix them.
  3. Type consistency: Do names match across tasks? (clearLayers() in Task 3 but clearFullLayers() in Task 7 is a bug.)

Save plans to: docs/plans/YYYY-MM-DD-<feature-name>.md

Execution:

After saving the plan, execute tasks sequentially:

  • Follow each step exactly
  • Run verifications as specified
  • Use /tdd skill for each implementation step
  • Use /verify-done before marking anything complete

Git Worktrees:

For feature work, create an isolated worktree:

# Check for existing .worktrees/ directory, create if needed
# Verify .worktrees/ is in .gitignore (add + commit if not)
git worktree add .worktrees/<branch-name> -b <branch-name>
cd .worktrees/<branch-name>
npm install  # or appropriate setup
npm test     # verify clean baseline

When done: verify tests → merge/PR/keep/discard → clean up worktree.

Compartilhar X LinkedIn