Forces rigorous design interrogation BEFORE any code: explores approaches, surfaces ambiguity, gathers evidence, produces an approved spec that becomes the contract for /ai-plan. Trigger for 'lets add X', 'how should we handle Y', 'whats the best approach', 'I am thinking about', 'what should we build for'. Not for existing approved specs; use /ai-plan instead. Not for execution; use /ai-build instead.
Scanned 5/27/2026
Install via CLI
openskills install arcasilesgroup/ai-engineering---
name: ai-brainstorm
description: "Forces rigorous design interrogation BEFORE any code: explores approaches, surfaces ambiguity, gathers evidence, produces an approved spec that becomes the contract for /ai-plan. Trigger for 'lets add X', 'how should we handle Y', 'whats the best approach', 'I am thinking about', 'what should we build for'. Not for existing approved specs; use /ai-plan instead. Not for execution; use /ai-build instead."
effort: mid
argument-hint: "[feature or problem description] [work item ID] | --consolidate-spec <slug>"
model_tier: sonnet
mirror_family: antigravity-skills
generated_by: ai-eng sync
canonical_source: .claude/skills/ai-brainstorm/SKILL.md
edit_policy: generated-do-not-edit
---
# Brainstorm
## Purpose
Design interrogation skill. Forces rigorous thinking BEFORE any code is written. Produces an approved spec that becomes the contract for `/ai-plan`.
HARD GATE: this skill produces a spec. No implementation happens until the user explicitly approves it.
## When to Use
- User says "I want to build...", "how should we...", "let's design..."
- New feature, architecture change, or ambiguous requirement
- The spec depends on evidence scattered across multiple repo or governance surfaces
- Any work where jumping straight to code would be premature
## Process
0a. **Fast-path — `--consolidate-spec <slug>`**: when invoked with the
`--consolidate-spec` flag, read `.agents/skills/_shared/consolidate-spec.md`
and execute the shared handler (resolve record, append `_history.md` row
via `spec_lifecycle.py mark_shipped`, clear `spec.md`/`plan.md` to
placeholders). STOP after consolidation — no interrogation runs. Fail-open
on missing script.
0b. **Auto-spec gate** — follow `handlers/auto-spec-gate.md`. Classify the
working-tree diff via `ai_engineering.brainstorm.auto_spec_gate.classify_diff`
BEFORE interrogation begins. If any hard trigger fires, OR any threshold is
exceeded, route to full interrogation (continue to Step 1). Otherwise, take
the condensed-spec path: draft the minimum-viable spec from the diff,
present it for one-shot approval, STOP at Step 7. Honor
`manifest.brainstorm.auto_spec_gate.enabled: false` as a no-op (fail-open
to full interrogation).
0. **Spec lifecycle bootstrap** (before evidence sweep) — call
`python .ai-engineering/scripts/spec_lifecycle.py start_new <slug> <title>`
to mint (or no-op refresh) the DRAFT record under
`.ai-engineering/state/specs/<slug>.json`. **Fail-open**: if the script
exits non-zero (missing dependency, locked sidecar), log the failure and
continue — interrogation must not be blocked by lifecycle plumbing.
1. **Work item context** (only when a work item ID is provided, e.g., `AB#100` or `#45`):
a. Read `.ai-engineering/manifest.yml` `work_items` section for active provider and team config
b. Fetch work item and its hierarchy from the provider: - **GitHub**: `gh issue view <number> --json title,body,labels,milestone,assignees` - **Azure DevOps**: `az boards work-item show --id <number> --expand relations -o json`
c. Walk the hierarchy: Feature → User Story → Tasks (follow parent/child relations)
d. Use all standard and custom fields the platform provides
e. Pre-fill `refs` section in the generated spec frontmatter
f. Invoke `/ai-board sync refinement <work-item-ref>` to transition the work item to refinement state (fail-open: do not block brainstorm if this fails)
2. **Enhance input** -- follow `handlers/prompt-enhance.md` to evaluate and optimize user input for clarity and specificity before interrogation
3. **Evidence sweep** -- when the current state spans multiple repo or governance surfaces, dispatch parallel read-only `ai-explore` passes first, summarize the findings, and use that evidence to sharpen the next question or spec boundary
4. **Interrogate** -- follow `handlers/interrogate.md` for the questioning flow
5. **Propose approaches** -- present 2-3 options with trade-offs (never just one). Scope classification is already settled at Step 0b — there is no post-interrogation file-count heuristic.
6. **Draft spec** -- write spec to `.ai-engineering/specs/spec.md`. Then run the **Step 0.5 — Section pre-flight** (deterministic gate) **before** any LLM validation pass: invoke `ai-eng spec verify --sections .ai-engineering/specs/spec.md` (spec-139 M7). The CLI runs a regex/string-contains scan for the five required headers (`## Summary`, `## Goals`, `## Non-Goals`, `## Decisions`, `## Risks`) and emits JSON with `valid`, `missing_sections`, `present_sections`. Exit 1 short-circuits the LLM validation — patch the missing headers and re-run before continuing. Only when the script reports `valid=true` proceed to the LLM-driven schema validation against `.ai-engineering/reference/spec-schema.md`.
7. **Board sync (ready)** -- if a work item ID was provided in step 1, invoke `/ai-board sync ready <work-item-ref>` to transition the work item to ready state (fail-open: do not block brainstorm if this fails)
8. **Review spec** -- follow `handlers/spec-review.md` for the review loop (max 3 iterations)
9. **STOP** -- present approved spec. User runs `/ai-plan` to continue.
## Questioning Rules
- ONE question at a time. Never batch.
- Prefer multiple choice (A/B/C) over open-ended.
- Challenge vague language: "improve", "optimize", "clean up" are not requirements.
- Push back on scope creep. Ask: "Is this in scope for v1?"
- Explore edge cases the user has not mentioned.
- Max 10 questions per session. If you need more, the problem is too big -- split it.
- When the user's input requires research to understand the current state (e.g.,
audits, "is this working?", "how is X organized?"), gather data first, present
findings, THEN interrogate. Research is not interrogation -- it precedes it.
## Common Mistakes
- Skipping interrogation and jumping to the spec.
- Proposing only one approach (always propose 2-3).
- Writing implementation details in the spec (specs describe WHAT, not HOW).
- Not challenging the user's assumptions.
- Producing a spec without the review loop.
## Integration
- **Called by**: user directly, or `/ai-plan` when requirements are unclear
- **Calls**: `handlers/auto-spec-gate.md` (Step 0b trivial-vs-spec classifier via `ai_engineering.brainstorm.auto_spec_gate.classify_diff`), `handlers/prompt-enhance.md`, `handlers/interrogate.md`, `handlers/spec-review.md`, `/ai-board sync` (refinement + ready transitions), `.ai-engineering/scripts/spec_lifecycle.py start_new` (fail-open lifecycle bootstrap)
- **Transitions to**: `/ai-plan` (ONLY -- never directly to `ai-build` or `/ai-build`)
## Examples
### Example 1 — design a new feature from a vague request
User: "lets add multi-tenant support"
```
/ai-brainstorm "multi-tenant support"
```
Interrogates: what's the isolation model? per-row, per-schema, per-database? What about data residency? Existing user migration? Produces an approved spec at `.ai-engineering/specs/spec.md` with decisions recorded.
### Example 2 — resolve ambiguity in a work item
User: "AB#456 says 'improve search performance' — what does that even mean?"
```
/ai-brainstorm AB#456
```
Pulls the work item, surfaces ambiguity, drives the user to specific measurable acceptance criteria, links the spec to the work item.
$ARGUMENTS
No comments yet. Be the first to comment!