|
1 | 1 | --- |
2 | | -description: Open Gate H1 — Claude Design main or built-in Design Studio fallback |
| 2 | +description: Gate H1 — Preview selection + Design tweak (unified AskUserQuestion) |
3 | 3 | --- |
4 | 4 |
|
5 | | -# /pf:design — Open Gate H1 — Claude Design main or built-in Design Studio fallback |
| 5 | +# /pf:design — Gate H1 |
6 | 6 |
|
7 | | -**Layer-0 정책**: Pro/Max 기본 포함. 별도 API 키 불필요. |
| 7 | +**Layer-0**: Claude Code Pro/Max 기본 포함. |
8 | 8 |
|
9 | | -## Usage |
| 9 | +## When this runs |
10 | 10 |
|
11 | | -``` |
12 | | -/pf:design |
13 | | -``` |
| 11 | +Automatically after PreviewDD Stage 3 (4-Panel meta-tally) completes. |
| 12 | +Can also be invoked manually: `/pf:design` re-opens the selection UX on |
| 13 | +the current run. |
14 | 14 |
|
15 | | -## 인자 |
| 15 | +## v1.1.0 flow (unified: select + tweak) |
16 | 16 |
|
17 | | -_(인자 없음)_ |
| 17 | +**Click 1 of 2** (the other is Gate H2 deploy approval). |
18 | 18 |
|
19 | | -## 동작 |
| 19 | +M3 Dev PM collects the 4-Panel output and runs a single AskUserQuestion |
| 20 | +with 4 options: |
20 | 21 |
|
21 | | -Stage 4 spec lock 직후 자동 호출되지만, 수동 재호출도 가능. AskUserQuestion으로 Claude Design vs 내장 Studio 선택. Claude Design 선택 시 prompt 템플릿 준비, 사용자에게 claude.ai/design 탭 열도록 안내. |
| 22 | +- **① 🏆 Recommended**: composite 1위 advocate |
| 23 | + - `target_persona` · `primary_surface` · `one_line_pitch` · 4 panel 점수 표시 |
| 24 | + - → 이대로 Claude Design(or 내장 Studio)로 진입 |
22 | 25 |
|
23 | | -## 관련 |
| 26 | +- **② 💡 Alternative A**: 특정 panel 단독 우승자 1 |
| 27 | + - 예: TP 단독 우승자가 Recommended와 다른 경우 (API-first · SDK angle) |
24 | 28 |
|
25 | | -- 본 명령은 plugin `preview-forge`의 일부입니다. |
26 | | -- 상세 스펙: [preview-forge-proposal.html](../../../preview-forge-proposal.html) |
| 29 | +- **③ 🔬 Alternative B**: 특정 panel 단독 우승자 2 |
| 30 | + - 예: RP 단독 우승자 (Privacy-focused · Offline-first angle) |
| 31 | + |
| 32 | +- **④ 🎨 Show me all 26 (gallery)** |
| 33 | + - 26 mockup HTML을 로컬 `runs/<id>/mockups/gallery.html` 로 엮어 브라우저 오픈 |
| 34 | + - 사용자가 보고 나면 두 번째 AskUserQuestion으로 pick (4옵션: 3 카드 + "다시 fresh roll") |
| 35 | + |
| 36 | +## What happens after the click |
| 37 | + |
| 38 | +| 사용자 선택 | 다음 동작 | |
| 39 | +|---|---| |
| 40 | +| Option 1 (Recommended) | `chosen_preview.json`에 P<NN> lock + Claude Design / Studio로 진입 | |
| 41 | +| Option 2 / 3 (Alternative) | chosen_preview에 반영 + **기존 mitigations는 다른 제품 context이므로 MD(Mitigation Designer) 재생성 요청** → Claude Design / Studio | |
| 42 | +| Option 4 (Gallery) | 27-mockup HTML grid 생성 → default browser 오픈 → 사용자가 본 후 두 번째 AskUserQuestion → chosen_preview 반영 | |
| 43 | +| 모든 경우 | 2차 AskUserQuestion — "Claude Design에서 열까(Pro/Max) / 내장 Studio로 tweak" | |
| 44 | + |
| 45 | +## Override semantics |
| 46 | + |
| 47 | +사용자가 panel 추천 아닌 alternative 선택 시: |
| 48 | +- 원본 `chosen_preview.json`은 `chosen_preview.panel-recommended.json`으로 백업 |
| 49 | +- 새 chosen_preview에 `chosen_via: "user_override"` + `selection_metadata.reason` 기록 |
| 50 | +- Blackboard에 `user-override` 이벤트 추가 (tier 0, dept meta) |
| 51 | +- **Mitigations는 새 제품 context로 MD를 재호출**해서 재생성 |
| 52 | + (예: P02 Slack bot 대비 P19 desktop app은 보안·데이터 거주성 우선순위가 완전히 다름) |
| 53 | + |
| 54 | +## allowed_scope (M3 Dev PM 관점) |
| 55 | + |
| 56 | +- Read: `runs/<id>/previews.json` · `panels/*.json` · `mockups/*.html` · `mitigations.json` |
| 57 | +- Write: `runs/<id>/{chosen_preview.json,chosen_preview.json.lock,chosen_preview.panel-recommended.json,design-approved.json}` |
| 58 | +- Task: MD (mitigations 재생성), Claude Design integration (optional) |
| 59 | + |
| 60 | +## Fallback |
| 61 | + |
| 62 | +Claude Design API 장애 · 사용자가 offline 선택 시 → 내장 Design Studio |
| 63 | +(`plugins/preview-forge/design-studio/` Next.js route) 자동 전환. |
| 64 | + |
| 65 | +## Related |
| 66 | + |
| 67 | +- Panel outputs: `runs/<id>/panels/{tp,bp,up,rp}-tally.json`, `meta-tally.json` |
| 68 | +- 26 mockup files: `runs/<id>/mockups/P01-P26.html` |
| 69 | +- LESSON 0.7: "Panel 추천 ≠ 사용자 의지" (`memory/LESSONS.md`) |
0 commit comments