From codeforge
codeforge 프로젝트 전용 brainstorming — Requirements 에이전트 4종 병렬 컨텍스트 수집 후 강화된 설계 대화 진행. ADR-034 Amendment 1에 의해 Stage 0 공식 스킬로 지정. Amendment 2 (CFP-386) 에 의해 Phase 0 자동 실행.
How this skill is triggered — by the user, by Claude, or both
Slash command
/codeforge:codeforge-brainstormThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
codeforge 프로젝트 전용 강화 brainstorming 스킬 — 외부 brainstorming plugin 없이 자립(native)한다. why-first 대화 discipline 을 본 skill 본문이 직접 내재한다 (ADR-122 §결정 2).
codeforge 프로젝트 전용 강화 brainstorming 스킬 — 외부 brainstorming plugin 없이 자립(native)한다. why-first 대화 discipline 을 본 skill 본문이 직접 내재한다 (ADR-122 §결정 2).
.claude/_overlay/project.yaml 존재 (codeforge consumer 프로젝트)docs/adr/ 디렉터리 존재 (codeforge consumer 프로젝트)archive/adr/ 디렉터리 존재 (plugin-codeforge wrapper 자기 — prune 이후 이동)조건 불충족(미초기화) 시 처리는 아래 "게이트 분기 절차" 가 담당한다.
위 "적용 조건" 이 불충족 (= 미초기화) 인데 사용자가 codeforge 사용을 선언(설계/brainstorm/스토리 요청 등 codeforge 의도)한 경우, native brainstorm 진입 전에 다음 절차를 수행한다. 목적 = 미초기화 greenfield consumer 가 bootstrap 없이 곧장 brainstorm 으로 흘러가는 문제(Issue #2243) 방지.
미초기화 판정 = 다음 4 부재 모두 충족 (hook §13.B 술어와 byte-동일 — ADR-027 §결정 13.B SSOT):
.claude-plugin/plugin.json 부재 (plugin/mixed 아님).claude/_overlay/project.yaml 부재 (consumer 미초기화)docs/adr/ 부재archive/adr/ 부재술어 등가 (normative — L27 거짓 등가 교정):
.claude-plugin/plugin.json 존재 = plugin/mixed → 본 절차 대상 아님 (침묵). plugin.json 이 있으면 detect-repo-kind 가 plugin(exit 0) 또는 mixed(exit 2) 를 반환하며 절대 unknown 이 아니다. plugin.json 부재를 미초기화 판정에 포함하지 않으면, plugin.json 존재 + overlay 부재 + ADR dir 부재(scaffold 직후 plugin repo) 를 consumer bootstrap 으로 오유도한다 (술어 drift). 따라서 plugin.json 부재가 미초기화 판정의 1번째 조건..claude-plugin/plugin.json 부재 ∧ .claude/_overlay/project.yaml 부재 = detect-repo-kind unknown(exit 3). 거기에 docs/adr 부재 ∧ archive/adr 부재 를 더한 4 부재 = 본 게이트의 미초기화 술어 (= wrapper plugin hooks/bootstrap-first-gate 훅 §13.B 술어와 동일 — skill-side / hook-side 동일 repo-state 동일 분류).미초기화 + codeforge 의도 시 분기:
scripts/bootstrap-consumer.sh 실행을 권고. 단 전제 점검 의무:
gh auth status).git remote -v / .claude/_overlay/project.yaml org/repo). remote 부재 시 자동 gh repo create 금지 — gh repo create <org>/<repo> 명령 + 필요 상태를 surface 하고 사용자 확인 후 진행 (value judgment B — 사용자 GitHub 계정 부작용 방지).bootstrap-consumer.sh --resume 또는 --force 권고 (AC#6).D1 옵션성 보존 (ADR-034 D1): 본 절차는 brainstorm 진입 자체를 차단하지 않는다. 초기화를 먼저 "유도(권고)" 할 뿐이며, 사용자가 거부하면 그대로 진행한다. (mechanical mirror = wrapper plugin hooks/bootstrap-first-gate UserPromptSubmit 훅 — warning inject only, exit 0.)
스킬 발동 시 Phase 0 을 자동 실행 — 별도 사용자 확인 (AskUserQuestion) 없이 즉시 4 개 에이전트를 병렬 spawn.
근거: 매 호출마다 동일 비용 경고 = 학습된 reflex 가 되어 productivity 만 저해. 호출 시점에 이미 비용 발생 의사 표명됨. CFP-358 / CFP-374 의 Subagent-Driven 자동 선택 패턴 정합.
Phase 0 의 비용 (ResearcherAgent Opus tier 포함 4 에이전트 병렬 spawn) 을 원하지 않는 경우, 사용자는 "Phase 0 skip" 을 명시한다. 이 경우 4 agent 병렬 spawn 을 건너뛰고 Phase 1 native 대화로 바로 진입한다 — 컨텍스트 패킷 없이 why-first 대화를 직접 시작한다 (Phase 0 비용만 회피, brainstorming discipline 은 본 skill 본문이 그대로 수행). 컨텍스트 패킷 부재로 인한 사실 정보 공백은 Phase 1 대화 중 필요 시 Orchestrator 가 개별 Read/조회로 보충한다.
4개 에이전트를 동시에 spawn. Agent tool 4 calls in parallel.
템플릿 변수 주의:
{USER_IDEA},{OPEN_EPICS},{DESIGN_SUMMARY}는 Orchestrator가 에이전트 spawn 직전 실제 값으로 대체한다. 스킬 파일 내 이 변수들은 "여기에 해당 내용을 삽입하라"는 지시이며 실제 코드가 아니다.
당신은 codeforge DomainAgent입니다.
사용자의 아이디어: {USER_IDEA}
docs/domain-knowledge/ 디렉터리를 읽고 이 아이디어와 관련된
핵심 도메인 사실 5개 이내를 300자 이내로 요약하세요.
추론 없이 사실만. 존재하지 않으면 "관련 domain-knowledge 없음"으로 응답.
당신은 codeforge ResearcherAgent입니다.
사용자의 아이디어: {USER_IDEA}
이 아이디어의 unknown unknowns와 핵심 개념을 탐구하세요.
출력 형식 (500자 이내):
- 핵심 개념 3개: [개념명: 1줄 설명]
- Unknown unknowns 2개: [발견한 암묵적 가정 또는 위험]
추론 근거 생략. 결론만.
당신은 codeforge RequirementsAnalystAgent입니다.
사용자의 아이디어: {USER_IDEA}
**먼저 WHY를 추출하세요.** 사용자가 이것을 요구하는 근본 동기·필요·배경을 파악합니다.
지식 부족이나 선입견으로 인해 실제 필요와 다른 방향을 요청했을 가능성을 항상 고려하세요.
**WHY를 렌즈로 요구사항을 확장하세요.** 사용자가 명시한 것(what)이 아니라 파악한 동기(why)를 기준으로 AC를 도출합니다. why가 충족되려면 사용자가 미처 언급하지 않은 요구사항까지 포함해야 합니다.
출력 형식:
- 추정 동기 (why): [이 요청의 근본 필요 1~2줄]
- 명시된 요구 ↔ 실제 필요 일치 여부: 일치 / 불일치 가능성 있음 (사유 1줄)
- why 기반 확장 요구사항: [명시되지 않았지만 동기 충족에 필요한 항목 1~3개]
- AC 3~5개: [Given/When/Then 형식 — why 충족 기준으로 작성]
- Edge Case 2개: [예외 시나리오]
추론 과정 생략. 목록만.
당신은 codeforge PMOAgent입니다.
사용자의 아이디어: {USER_IDEA}
현재 open 에픽 목록: {OPEN_EPICS} ← gh issue list --label phase:설계 등으로 수집
이 아이디어의 예비 분해를 제안하세요.
출력 형식:
- 예상 Story 수: N개 (근거 1줄)
- 의존 가능 epic: [CFP-NNN] 또는 "없음"
- 주요 위험 요소: 1개
추론 과정 생략.
4개 에이전트 결과를 다음 형식으로 합성:
=== brainstorming 컨텍스트 패킷 ===
[DomainAgent] {도메인 사실 요약}
[Researcher] 핵심 개념: {목록} / Unknowns: {목록}
[Analyst] 추정 동기(why): {근본 필요} / 일치 여부: {일치|불일치 가능성+사유} / 예비 AC: {목록} / Edge Cases: {목록}
[PMO] 예상 Story: {N}개 / 의존: {에픽} / 위험: {1개}
================================
Phase 0 4 agent prompt 안 file path / cross-repo state 인용 시 의무 (ADR-073 §결정 6 source-of-truth):
cd <repo> && git fetch origin 선행 (working tree stale 우려)git show origin/main:<path> 또는 gh issue/pr view --json state direct verifyverified-via: <method> annotationpre_lookup_evidence[] PL 수동 declare 의무 (mechanical layer 부재 시)agent prompt template 의 default behavior — Orchestrator 가 prompt 작성 시 사전 명시. Sentinel #4 (strike #1 + strike #2) anti-pattern 차단 forcing function.
예시 (DomainAgent prompt 안):
docs/domain-knowledge/ 디렉터리를 읽고...
**verified-via 의무**: 인용 file path 옆 "verified-via: git show origin/main" 또는 "verified-via: gh issue view" annotation 의무.
Phase 1 brainstorming 대화는 본 skill 이 직접 수행한다 (외부 brainstorming plugin 위임 없음 — native). Phase 0 컨텍스트 패킷을 첫 메시지의 입력으로 삼아 why-first 대화를 시작한다.
native 대화 flow (단계적 탐색 후 설계 수렴): 아래 4 단계를 순차 진행한다. 1 단계(컨텍스트 탐색)는 Phase 0 의 4 agent 병렬 burst 로 이미 대체되었으므로 (컨텍스트 패킷이 그 산출물), Phase 1 은 2 단계부터 시작한다.
Priority precedence (CFP-637 / ADR-064 §결정 10, Amendment 3): 본 Phase 1 의 dialog format / AskUserQuestion / "사용자 confirm" 지시는 CLAUDE.md ADR-064 §결정 3 룰 1 (Derived default) + §결정 9 Question quality 3-check 보다 후순위. dialog 진입은 다음 모두 충족 시에만:
위 3 self-check 미통과 영역 = derived default declare + 진행 (사용자 정정 의무). dialog format / numbered list / "권장 = ..." 형식 발화 금지. CFP-358 / CFP-374 (Subagent-Driven 자동 선택) 의 generalized precedent — 본 skill 의 dialog reflex 차단이 §결정 10 의 first applied case.
본 precedence 는 본 skill 의 native 대화 전반(위 4 단계 flow 전체)에 동일 적용된다.
Why-first 원칙: brainstorming의 첫 질문은 반드시 "왜"를 향한다. 사용자가 요청한 내용(what)이 아니라 그 배경·동기·실제 필요(why)를 먼저 확립한다.
brainstorming 설계 확정 후 (spec 작성 직전):
PMOAgent를 다시 spawn (2nd pass — Phase 0의 예비 분해와 달리 설계 확정 후 정확한 분해):
당신은 codeforge PMOAgent입니다.
확정된 설계: {DESIGN_SUMMARY}
다음을 생성하세요:
1. Epic/Story 분해 초안 (Story 제목 + 1줄 설명)
2. scope_manifest 초안 (YAML):
planned_adrs: [예약 필요 ADR 수]
planned_files:
- 예상 변경 파일 경로들
planned_claude_md_sections:
- 예상 수정 섹션명들
PMOAgent 출력의 scope_manifest 초안을 spec 파일 끝에 추가.
Phase 2 PMOAgent 2nd pass spawn 직전 의무 — single-reader pattern. Phase 0 4 agent 영역 verify 의무 0건 (race / token cost / inconsistency 3 risk 차단 invariant) — PMOAgent 단독 reader 가 1회 actual state direct read.
4-item closed-enum hard cap verify:
git -C <worktree> show origin/main:docs/inter-plugin-contracts/label-registry-v2.md line 6 frontmatter version: vN.NNgit -C <worktree> show origin/main:docs/evidence-checks-registry.yaml content + grep -c '^- name:' direct countgit -C <worktree> show origin/main:plugin.json version field (또는 .claude-plugin/plugin.json actual path)git -C <marketplace-worktree> show origin/main:marketplace.json plugins[name=codeforge].version field5번째 item 확장 = 별 CFP carrier 의무 (ADR-064 §결정 5 CFP scope unitary carve-out).
Output: PMOAgent 가 verified 4-item + verified_via annotation + origin_main_sha + captured_at_kst 7-field tuple 합성 → spec 파일 execution_context: frontmatter field 에 기록 (template field 활성화). Phase 1 brainstorming dialog context packet 에 corrected facts injection (4 agent prompt 가 stale 정보 인용 시 정정).
예시 spec.md frontmatter (활성화 시):
execution_context:
label_registry_v2_version: "v2.74"
evidence_checks_registry_entry_count: 24
plugin_metadata_version: "v1.5.12"
marketplace_json_version: "v1.5.12"
verified_via: "git -C <worktree> fetch origin && git show origin/main:<path>"
origin_main_sha: "<40-char-hex>"
captured_at_kst: "YYYY-MM-DDTHH:MM:SS+09:00"
backward-compat: 미선언 시 default "not captured" — Wave 2 mechanical lint (별 sub-CFP carrier — CFP-1786-W2 reserved) 가 stale 영역 감지.
spec 파일 저장 완료 후 codeforge:writing-plans 스킬 호출.
(scope_manifest 초안은 spec 파일에 포함됨 — Phase 1 PR 시 Issue body에 붙여넣기)
npx claudepluginhub mclayer/marketplace --plugin codeforgeProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.