brainstorming
rein-native brainstorming. 기존 코드베이스/아키텍처 제약 하에서 아이디어를 spec 초안으로 구체화한다. brownfield (기존 시스템 변경) 에서는 feasibility·compatibility 를 먼저 검증한 뒤 선택지를 수렴하고, greenfield 에서는 얇은 질문 세트로 의도를 빠르게 수렴한다. 산출물은 docs/brainstorms/ 에 기록되고 spec 이 brainstorm ref: 로 가리킨다. superpowers:brainstorming 과 달리 호환성·구현 가능성을 일급 시민으로 다룬다.
- License 许可
- MIT
- 最近更新
- 2026-10-15
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- brainstorming
- triggers
- [ "신규 기능/변경 아이디어가 들어왔을 때 (구현 착수 전)", "기존 시스템에 기능을 추가할 때 (brownfield)", "설계 결정이 여러 선택지 사이에서 고민될 때" ]
- description
- rein-native brainstorming. 기존 코드베이스/아키텍처 제약 하에서 아이디어를 spec 초안으로 구체화한다. brownfield (기존 시스템 변경) 에서는 feasibility·compatibility 를 먼저 검증한 뒤 선택지를 수렴하고, greenfield 에서는 얇은 질문 세트로 의도를 빠르게 수렴한다. 산출물은 docs/brainstorms/ 에 기록되고 spec 이 brainstorm ref: 로 가리킨다. superpowers:brainstorming 과 달리 호환성·구현 가능성을 일급 시민으로 다룬다.
03 SKILL.md 正文
brainstorming
왜 이 스킬이 필요한가
superpowers:brainstorming 은 사용자 의도를 질문으로 구체화하는 데 탁월하다. 하지만:
- 기존 시스템 제약을 고려하지 않는다 — 사용자가 선택한 방향이 기존 훅/규칙과 충돌해도 인지하지 못함
- 구현 가능성을 검증하지 않는다 — 선택이 "실제로 돌아가는가" 를 묻지 않음
- 결론이 설계 문서로 옮겨질 때 일부 항목이 조용히 누락된다
rein 은 이미 design→plan→DoD 구간에 coverage 강제 장치를 갖지만, brainstorm→spec 구간은 비어 있었다. 이 스킬이 그 공백을 메운다.
언제 쓰는가
| 상황 | 적용 |
|---|---|
| 기존 시스템에 기능 추가/변경 (brownfield) | MUST — Step 0~6 전부 실행 (Step 0 = pre-question sanity gate) |
| 완전 신규 시스템 설계 (greenfield) | SHOULD — Step 1, 3, 5, 6 중심으로 얇게 (Step 0 불필요) |
| 단순 버그 수정 | SKIP — /codex-review 체인으로 충분 |
| docs-only 변경 | SKIP |
애매하면 brownfield 로 간주하고 전체 실행.
실행 순서
Brownfield 전용 — Step 0: Pre-question sanity check
brownfield 에서는 사용자에게 질문을 던지기 전에 질문 자체가 현재 코드베이스 구조에서 유효한지 codex-ask 로 검증한다. 이 단계를 생략하면 잘못된 전제를 담은 질문이 사용자의 답변으로 굳어 spec/plan/DoD 전 구간을 오염시킨다.
- 0.1 최소 탐색 —
Grep/Glob로 변경이 닿을 표면 1차 스캔. 이 시점에는 전수 조사 불필요. "어느 훅·규칙·파일이 관련되어 있는가" 만 식별 (상세는 Step 2 에서). - 0.2 질문 초안 작성 — 사용자에게 던질 질문 3~5 개를 미리 작성한다. 각 질문 옆에 암묵적 전제 (assumption) 를 한 줄로 명시한다. 예:
Q1: 훅을 분리할까? (전제: 현재는 단일 훅) - 0.3
/codex-ask호출 — fresh session 으로 아래 prompt 를 던진다:- "다음 질문 초안이 현재 코드베이스 구조에서 유효한가? 각 질문의 전제 (assumption) 를 읽고 구조적으로 불가능하거나, 이미 결정된 사안이거나, 잘못된 이분법이면 지적해 줘."
- 입력: Step 0.1 의 표면 스캔 결과 + Step 0.2 의 질문/전제 쌍
- codex-ask 는 리뷰 게이트가 아니므로 stamp 생성 안 됨. 결과는 Claude 주 세션에 돌아와 반영.
- 0.4 질문 재작성 / 통과 — codex 가 invalid assumption 을 지적하면 해당 질문 제거 또는 재작성 후 Step 0.3 재호출. 통과하면 Step 1 로 진행.
Step 0 에서 검증된 질문 세트가 Step 1 의 "사용자 의도 탐색" 에 입력된다. Step 0 없이 Step 1 로 바로 들어가는 것은 brownfield 에서 금지.
전체 공통
Step 1 — 사용자 의도 탐색
- 문제 진술을 한 문장으로 정리 ("왜 이것을 하려는가")
- 성공 기준을 구체적으로 ("끝났다고 할 수 있는 상태는 무엇인가")
- 2~3 개 질문으로 의도의 모서리를 깎아낸다 (brownfield 에서는 Step 0 에서 검증된 질문 세트를 사용)
- 사용자 질문 강제 (필수): brownfield 에서 Step 0.4 통과 후 교정된 질문 세트, greenfield 에서 위에서 도출한 2~3 개 질문은 반드시
AskUserQuestion으로 사용자에게 제시 한다. 이 단계를 건너뛰고 Step 2~6 을 Claude 단독으로 합성하는 것은 금지. 사용자 답변 없이 만들어진 brainstorm 은 사용자 의도가 아니라 Claude 의 추측을 담게 되어 후속 spec/plan/DoD 전 구간을 오염시킨다 (회귀 사례:need-to-confirm.md그룹 8 item 1).
Brownfield (필수 4단계 추가)
Step 2 — 관련 기존 시스템 탐색
Grep/Glob으로 영향 범위 식별- 관련 훅, 규칙(rules/), 스킬, 에이전트, 테스트, 문서 목록화
- "이 변경이 닿는 surface" 를 문서에 구체적으로 기록
Step 3 — Constraint 확인
- 기존 훅 중 이 변경을 차단할 수 있는 것 (pre-edit-dod-gate, pre-bash-safety-guard, pre-bash-test-commit-gate 등)
- 기존 규칙/커버리지 매트릭스에서 강제되는 불변식
- main/dev 브랜치 전략상 제약 (rein 프로젝트의 경우
branch-strategy.md) - 정책/라이선스/보안 레벨 제약
Step 4 — Feasibility 평가 (각 Option 별)
- 각 선택지를 기존 시스템 위에 얹을 때의 구현 비용 (파일 수, 리팩토링 범위)
- 운영 비용 (추가 훅, 추가 CI 시간, 문서 동기화 부담)
- 리스크 (기존 동작 깨질 가능성, migration 필요성)
Step 5 — Compatibility 검증
- Breaking 여부 — 기존 사용자의 워크플로우/파일/인터페이스가 깨지는가?
- Migration 필요성 — 있다면 1회용인가 반복인가?
- 하위 호환 유지 전략 (default 값, deprecation 경로, feature flag 등)
모든 경우 공통
Step 6 — 선택지 수렴 + Open Questions
- 선택한 방향(Chosen Direction) 과 근거 를 명시
- 기각한 옵션(Rejected Options) 과 기각 이유 를 기록 (나중에 재검토 가능하도록)
- Open Questions 는 spec 단계에서 풀어야 할 질문으로 이관
산출물 포맷
저장 위치: docs/brainstorms/YYYY-MM-DD-<slug>.md
작성 시점 (필수): docs/brainstorms/<slug>.md 파일은 Step 6 converge 이후에만 작성한다. Step 1~5 진행 중 사용자 답변이 모이기 전에 미리 작성하는 것은 금지 — 그 시점의 문서는 사용자 의도가 아니라 Claude 의 추측을 동결한 결과물이 되어 후속 단계를 오염시킨다. Step 6 의 Chosen Direction + Rejected Options + Open Questions 가 모두 결정된 시점에 한 번만 작성한다.
- 날짜 = 작업 시작일
- slug = 영문 kebab-case, spec slug 와 일치시킨다 (추적 용이)
- 파일 구조:
# [Feature/Change Name] — brainstorm
- 날짜: YYYY-MM-DD
- 유형: greenfield | brownfield
- 다음 산출물: docs/specs/<slug>.md (예정)
## Problem Statement
[1~3 문장. 왜 이것을 하려는가. 성공 기준이 무엇인가.]
## Question Sanity Check (codex-ask)
[brownfield 에서 **필수**. greenfield 는 생략 가능. Step 0 의 산출물.]
- 초기 질문 초안 (전제 포함):
- Q1: [질문] — 전제: [assumption 한 줄]
- Q2: [질문] — 전제: [assumption]
- ...
- codex-ask 세션: [실행 일시 + 모델 + effort]
- codex 판정 요약: [invalid 지적 / 통과 / 재작성 round 수]
- 최종 질문 세트 (Step 1 에 입력):
- Q1': [재작성된 질문 또는 유지]
- ...
## Constraints
[brownfield 에서 필수. 기존 훅/규칙/브랜치 전략/정책 제약.]
- 기존 훅: [이름과 역할]
- 기존 규칙: [파일 경로와 해당 절]
- 브랜치 전략: [main 포함/제외, 하위 호환 요구]
- 기타 정책: [보안 레벨, 라이선스 등]
## Options Considered
### Option A: [이름]
- 구현 스케치: [2~3 줄]
- 구현 비용: [파일 수, 복잡도]
- 운영 비용: [추가 훅/CI/문서 부담]
- 리스크: [깨질 수 있는 지점]
- Breaking: yes/no. [yes 면 마이그레이션 요지]
### Option B: [이름]
[동일 포맷]
### Option C: [이름]
[필요 시]
## Chosen Direction
**Option [X]** 를 선택한다.
- 근거: [왜 이 옵션이 다른 옵션보다 나은가]
- Trade-off 인정: [포기한 것이 무엇인가]
## Rejected Options
- **Option [Y]**: 기각 이유 — [구체적 근거. 재검토 가능하도록]
- **Option [Z]**: 기각 이유 — [...]
## Open Questions
spec 단계에서 해결할 질문들:
- [ ] [질문 1]
- [ ] [질문 2]
→ Next: `docs/specs/<slug>.md`
Handoff
완료 후 다음 형식으로 보고한다:
## Brainstorm 완료
- 파일: docs/brainstorms/YYYY-MM-DD-<slug>.md
- 유형: brownfield | greenfield
- Chosen Direction: [요약 1줄]
- Open Questions: [개수]
다음 단계: spec 초안 작성 (`docs/specs/<slug>.md`)
spec 에 다음 줄을 포함하세요:
brainstorm ref: docs/brainstorms/<slug>.md
Second opinion 체인 (선택)
Step 6 의 Chosen Direction 확정 후에도 결론이 의심스러우면 /codex-ask 를 한 번 더 호출해 독립 관점으로 반박받을 수 있다. Step 0 의 mandatory pre-question sanity check 와는 역할이 다르다:
| 단계 | 위치 | 대상 | 강제 여부 |
|---|---|---|---|
| Step 0 (brownfield 필수) | Step 1 이전 | 사용자에게 던질 질문 초안의 전제 | mandatory (brownfield) |
| Second opinion 체인 (선택) | Step 6 이후 | 확정된 Chosen Direction | advisory |
두 호출은 목적이 다르므로 각각 fresh codex-ask 세션으로 수행한다 (resume 금지 — codex-ask 원칙).
호출 예시
Good prompt
사용자: "AGENTS.md 규칙이 너무 길어지는데, 섹션별로 분리하고 싶어"
→ brownfield. Step 0~6 실행:
- Step 0.1: Grep 으로 AGENTS.md 참조처 1차 스캔 (CLAUDE.md, 훅 스크립트, 스킬)
- Step 0.2: 질문 초안 +전제
- Q1: 전체 분리 vs 일부 분리? (전제: 분리가 기술적으로 가능)
- Q2: 파일명 규칙은? (전제: 여러 파일로 쪼갤 때 naming 충돌 없음)
- Step 0.3: /codex-ask 로 "이 질문 전제가 현재 @import 체인에서 유효한가?" 검증
→ 예시 invalid 지적: "CLAUDE.md 는 단일 AGENTS.md path 를 하드코딩한 훅이 있음. Q1 의 '분리 가능' 전제가 훅 수정 없이는 불가"
- Step 0.4: 질문 재작성 후 통과
- Step 1: 검증된 질문 세트로 사용자 의도 탐색
- Step 2: 상세 surface 목록화
- Step 3: 기존 @import 체인 제약 구체화
- Step 4: 옵션 A (전체 분리 + 훅 수정), B (일부만 분리), C (toc 페이지)
- Step 5: Breaking 여부 — 기존 사용자의 AGENTS.md path 가 깨지는가?
- Step 6: 근거 + 기각 이유 기록
Bad prompt
사용자: "새 에이전트 만들자"
→ greenfield 처럼 보이지만 rein 저장소의 에이전트 layout 이 고정돼 있어 사실상 brownfield.
Step 2 를 건너뛰면 기존 에이전트 naming/role 과 충돌 가능.
superpowers:brainstorming 과의 차이
| 항목 | superpowers:brainstorming | rein brainstorming |
|---|---|---|
| Pre-question sanity check | 없음 | brownfield 필수 (Step 0, codex-ask fresh session) |
| 기존 시스템 탐색 | 선택사항 | brownfield 에서 필수 |
| Feasibility 검증 | 암묵적 | 명시 Step 4 |
| Compatibility 확인 | 거의 없음 | 명시 Step 5 |
| 산출물 포맷 강제 | 느슨 | 7개 섹션 (brownfield) / 6개 (greenfield, Question Sanity Check 생략) |
| handoff 체인 | 자유 | spec ref 권고 |
두 스킬은 배타적이지 않다. greenfield 에서는 superpowers 를 호출해도 무방하지만, 산출물은 이 스킬 포맷으로 정리해 docs/brainstorms/ 에 저장한다.
사용자 안내
이 SKILL 의 결과를 사용자에게 보고할 때 다음 짧은 형식을 먼저 출력한다 (운영자/디테일 메타데이터인 ## Brainstorm 완료 블록은 그 다음에 그대로 이어 붙인다). 형식은 한 문장 또는 두 문장 — 결과 1줄 + 다음 액션 1줄.
성공 (Step 6 converge 후 산출물 작성):
brainstorm 마쳤습니다. [Chosen Direction 한 줄] 을 선택했어요. 이제 [다음 산출물 — 보통 spec 또는 DoD] 를 만들면 됩니다.
Step 0 codex-ask 가 invalid 지적 (재작성 필요):
codex 가 질문 초안에서 [지적 핵심 1-2건] 을 짚어줬어요. 질문을 재작성한 뒤 Step 0 을 다시 호출하세요.
Step 1 사용자 결정 대기:
brainstorm 진행 중 — Step 1 의 사용자 결정 N건이 필요해요. AskUserQuestion 답변을 받으면 Step 2 로 진행합니다.
04 同仓库更多 Skills
sample-skill
暂无简介
repo-audit
저장소 전체 상태 점검. 오래된 규칙, 누락 테스트, 비활성 에이전트, trail 일관성 확인.
promote-agent
에이전트 후보를 정식 에이전트로 승격. 사람 승인 이후에만 실행.
pr-review-fixer
PR 리뷰 코멘트를 읽고 수정 사항을 자동으로 적용한다
persona
페르소나 프리셋 선택·해제 + 질문-답변 커스텀 프리셋 생성. "페르소나 골라줘/만들어줘/바꿔줘/꺼줘" 류 요청에서 호출.
parallel-execute
활성 plan 의 `## 실행 전략`(depends_on/mode/scope v2) 을 읽어 의존 위상정렬로 웨이브를 유도하고, 각 웨이브의 독립 edit_only 태스크를 같은 작업 트리에서 서브에이전트로 병렬 실행, mutating·의존 태스크는 순차 실행한다. 부모(메인 세션)가 웨이브 단위로 검증·테스트·커밋. 호스트가 병렬 dispatch 불가 시 순차 fallback 으로 degrade.