⚠️ 개발 런타임 전용 — 이 스킬은 MoAI-ADK(Claude Code) 환경을 전제한다. Claude Cowork(Desktop)에서는 .moai/config 의존으로 동작하지 않을 수 있다. Desktop 사용자는 moai-designer:design-handoff-reader를 사용한다.
Design Handoff Domain Specialist
Assembles the 5-file Claude Design handoff package for the design-workflow Path A workflow (the handoff-deliverable step). The package is designed for paste-and-go use in the external claude.com Design product.
Quick Reference
The handoff package lives at .moai/design/handoff/:
| File |
Purpose |
Paste target |
prompt.md |
Master prompt — paste directly into claude.com Design |
Yes (primary) |
context.md |
Extended context for reference during design session |
Optional supplement |
references.md |
Visual reference URLs and design inspiration sources |
Referenced in prompt |
acceptance.md |
Design acceptance criteria (WCAG, responsive, brand) |
Referenced in prompt |
checklist.md |
Pre-paste self-check before using in claude.com Design |
Human review tool |
Key guarantees:
- [HARD]
prompt.md contains NO MoAI-specific tokens (no SPEC-, .moai/, manager-, internal skill names)
- [HARD] Brand voice integrated when
.moai/project/brand/brand-voice.md exists
- [HARD] Brand-absent fallback:
Brand Voice (default — please customize) placeholder section
- [HARD] Handoff exits with AskUserQuestion offering 3 options (a/b/c per the relevant requirement)
- [HARD] All 5 files produced regardless of brand context availability
Handoff Package Assembly
Input
- Bundle summary from
design-handoff-reader (the preceding Path A step) — what the user wants designed, target users, value propositions
- Brief from
design-brief when the request originates from a design brief (Lean Canvas / evaluation context)
- Optional:
.moai/project/brand/brand-voice.md (brand context)
- Optional:
.moai/project/brand/visual-identity.md (design tokens, colors)
Step 0: Brand Context Detection
Before writing any file, check brand context:
IF .moai/project/brand/brand-voice.md exists AND is non-empty:
Load brand voice → use in Brand Voice section of prompt.md
SET brand_present = true
ELSE:
Use default brand voice placeholder
SET brand_present = false
Note: will include AskUserQuestion offer to run brand interview
Step 1: Assemble prompt.md
prompt.md MUST follow this exact 5-section structure:
- Goal — 2-3 sentences describing what needs to be designed, target users, top 3 value propositions from the bundle summary / brief UVP
- References — 3-5 URLs to existing products with style notes, plus key aesthetic direction
- Brand Voice — Two branches (brand_present vs brand_absent), see decision below
- Acceptance Criteria — Concise non-negotiable requirements list (5-8 items)
- Out of Scope — Explicit exclusions (3-5 items)
Section 3 — Brand Voice Decision Tree
- Branch A (
brand_present = true): Extract personality + voice guidelines + color palette + typography from brand-voice.md and visual-identity.md
- Branch B (
brand_present = false): Emit ## 3. Brand Voice (default — please customize) header with explicit placeholder + instructions to either edit or run brand interview
See 5-section prompt template + brand branches detail for verbatim section templates.
Prohibited Content in prompt.md
[HARD] The following MUST NOT appear anywhere in prompt.md:
- References to
SPEC- identifiers (e.g., SPEC-AUTH-001)
- References to
.moai/ paths (e.g., .moai/design/, .moai/project/)
- References to internal skill / agent names (e.g.,
manager-spec, design-brief, design-handoff-reader)
- References to internal workflow step identifiers
- References to MoAI-specific commands (e.g.,
/project, /moai plan)
- Internal implementation details (file structures, Go code, database schemas)
The prompt must read as if written by a human product designer with no knowledge of MoAI's internal structure.
Steps 2-5: Supporting Files
| Step |
File |
Purpose |
| 2 |
references.md |
Competitor analysis + visual inspiration + UX pattern references (3-5 URLs from the bundle's Sources). Falls back to instructional note when URLs are scarce. |
| 3 |
acceptance.md |
Accessibility (WCAG 2.1 AA), Responsiveness (375/768/1280px), Brand Alignment, Content Completeness, Technical Constraints |
| 4 |
context.md |
Extended context — NOT for pasting into Claude Design. Full brief summary, roadmap context, research findings, brand context |
| 5 |
checklist.md |
Human self-check before pasting prompt.md: content review, MoAI-internal cleanup (auto-verified), scope verification, session readiness |
See supporting files templates for verbatim references.md, acceptance.md, context.md, and checklist.md templates.
Handoff Exit: AskUserQuestion
After all 5 files are written, the skill MUST surface an AskUserQuestion (with ToolSearch preload) presenting 3 options:
ToolSearch(query: "select:AskUserQuestion")
AskUserQuestion({
questions: [{
question: "핸드오프 패키지가 준비되었습니다. 다음 단계를 선택하세요.",
header: "Design 핸드오프 완료",
options: [
{
label: "Claude Design 세션 시작 (권장)",
description: "prompt.md를 claude.com Design에 복사해 붙여넣고 디자인 세션을 시작합니다. context.md/references.md는 보조 자료로 함께 엽니다."
},
{
label: "수동 검토",
description: "핸드오프 파일을 직접 검토하고 필요한 경우 편집합니다. .moai/design/handoff/ 디렉토리를 확인하세요. 준비가 되면 prompt.md를 Claude Design에 붙여넣으세요."
},
{
label: "핸드오프 패키지 재생성",
description: "prompt.md 또는 다른 파일에 수정이 필요한 경우 어떤 부분을 변경할지 알려주세요. 해당 파일만 재생성합니다."
}
]
}]
})
For non-Korean conversation_language, translate option labels and descriptions accordingly.
Works Well With
design-brief: Produces the design brief (Lean Canvas + value propositions) consumed as primary input when the request originates from a brief
design-system-prep / design-system-library: Provides reference URLs and visual inspiration for the references.md Sources
design-handoff-reader: Preceding Path A step — summarizes the imported bundle into the inputs this skill consumes
design-workflow: Downstream consumer of the .moai/design/handoff/ directory after the user completes the external Claude Design session (Path A handler)
Common Rationalizations
| Rationalization |
Reality |
| "Including SPEC-AUTH-001 in prompt.md helps the designer understand scope" |
prompt.md is for claude.com Design, not MoAI. SPEC IDs are internal. Use the Out of Scope section to describe scope boundaries in plain English. |
| "I should skip checklist.md — it's obvious" |
Checklist.md prevents the most common error: pasting a prompt with placeholder Brand Voice. It takes 30 seconds to complete and saves a bad design session. |
| "references.md is optional if research had no URLs" |
references.md is always produced. When URLs are scarce, include a note asking the user to add their own. An empty references file is worse than one with instructions. |
| "If brand is absent, skip the Brand Voice section" |
Brand Voice section is always present. Brand-absent path produces an explicit placeholder with instructions — clearer than a missing section. |
Verification
1---2name: design-handoff3description: Design Handoff4---56> ⚠️ **개발 런타임 전용** — 이 스킬은 MoAI-ADK(Claude Code) 환경을 전제한다. Claude Cowork(Desktop)에서는 `.moai/config` 의존으로 동작하지 않을 수 있다. Desktop 사용자는 `moai-designer:design-handoff-reader`를 사용한다.78<!-- Verifies: prompt.md is paste-ready (no MoAI tokens) -->9<!-- Verifies: Brand voice integrated when present; graceful default when absent -->10<!-- Verifies: Handoff exit AskUserQuestion with 3 options -->1112<!-- @MX:ANCHOR: [AUTO] 5-section prompt.md template structure — canonical definition -->13<!-- @MX:REASON: Consumed by every /design Path A handoff execution (high fan_in). Structural changes affect user trust — prompt.md is pasted directly into external claude.com Design session. -->1415# Design Handoff Domain Specialist1617Assembles the 5-file Claude Design handoff package for the `design-workflow` Path A workflow (the handoff-deliverable step). The package is designed for paste-and-go use in the external claude.com Design product.1819## Quick Reference2021The handoff package lives at `.moai/design/handoff/`:2223| File | Purpose | Paste target |24|------|---------|-------------|25| `prompt.md` | Master prompt — paste directly into claude.com Design | Yes (primary) |26| `context.md` | Extended context for reference during design session | Optional supplement |27| `references.md` | Visual reference URLs and design inspiration sources | Referenced in prompt |28| `acceptance.md` | Design acceptance criteria (WCAG, responsive, brand) | Referenced in prompt |29| `checklist.md` | Pre-paste self-check before using in claude.com Design | Human review tool |3031Key guarantees:3233- [HARD] `prompt.md` contains NO MoAI-specific tokens (no `SPEC-`, `.moai/`, `manager-`, internal skill names)34- [HARD] Brand voice integrated when `.moai/project/brand/brand-voice.md` exists35- [HARD] Brand-absent fallback: `Brand Voice (default — please customize)` placeholder section36- [HARD] Handoff exits with AskUserQuestion offering 3 options (a/b/c per the relevant requirement)37- [HARD] All 5 files produced regardless of brand context availability3839---4041## Handoff Package Assembly4243### Input4445- Bundle summary from `design-handoff-reader` (the preceding Path A step) — what the user wants designed, target users, value propositions46- Brief from `design-brief` when the request originates from a design brief (Lean Canvas / evaluation context)47- Optional: `.moai/project/brand/brand-voice.md` (brand context)48- Optional: `.moai/project/brand/visual-identity.md` (design tokens, colors)4950### Step 0: Brand Context Detection5152Before writing any file, check brand context:5354```55IF .moai/project/brand/brand-voice.md exists AND is non-empty:56 Load brand voice → use in Brand Voice section of prompt.md57 SET brand_present = true58ELSE:59 Use default brand voice placeholder60 SET brand_present = false61 Note: will include AskUserQuestion offer to run brand interview62```6364### Step 1: Assemble prompt.md6566<!-- @MX:WARN: [AUTO] prompt.md template — output pasted into external claude.com Design session -->67<!-- @MX:REASON: Changes to this template affect what users paste into claude.com. Structural changes can break user's design sessions. Validate against current claude.com Design prompt guidelines before modifying. -->6869`prompt.md` MUST follow this exact 5-section structure:70711. **Goal** — 2-3 sentences describing what needs to be designed, target users, top 3 value propositions from the bundle summary / brief UVP722. **References** — 3-5 URLs to existing products with style notes, plus key aesthetic direction733. **Brand Voice** — Two branches (brand_present vs brand_absent), see decision below744. **Acceptance Criteria** — Concise non-negotiable requirements list (5-8 items)755. **Out of Scope** — Explicit exclusions (3-5 items)7677#### Section 3 — Brand Voice Decision Tree7879- Branch A (`brand_present = true`): Extract personality + voice guidelines + color palette + typography from brand-voice.md and visual-identity.md80- Branch B (`brand_present = false`): Emit `## 3. Brand Voice (default — please customize)` header with explicit placeholder + instructions to either edit or run brand interview8182See [5-section prompt template + brand branches detail](references/prompt-template.md) for verbatim section templates.8384#### Prohibited Content in prompt.md8586[HARD] The following MUST NOT appear anywhere in prompt.md:8788- References to `SPEC-` identifiers (e.g., `SPEC-AUTH-001`)89- References to `.moai/` paths (e.g., `.moai/design/`, `.moai/project/`)90- References to internal skill / agent names (e.g., `manager-spec`, `design-brief`, `design-handoff-reader`)91- References to internal workflow step identifiers92- References to MoAI-specific commands (e.g., `/project`, `/moai plan`)93- Internal implementation details (file structures, Go code, database schemas)9495The prompt must read as if written by a human product designer with no knowledge of MoAI's internal structure.9697### Steps 2-5: Supporting Files9899| Step | File | Purpose |100|------|------|---------|101| 2 | references.md | Competitor analysis + visual inspiration + UX pattern references (3-5 URLs from the bundle's Sources). Falls back to instructional note when URLs are scarce. |102| 3 | acceptance.md | Accessibility (WCAG 2.1 AA), Responsiveness (375/768/1280px), Brand Alignment, Content Completeness, Technical Constraints |103| 4 | context.md | Extended context — NOT for pasting into Claude Design. Full brief summary, roadmap context, research findings, brand context |104| 5 | checklist.md | Human self-check before pasting prompt.md: content review, MoAI-internal cleanup (auto-verified), scope verification, session readiness |105106See [supporting files templates](references/supporting-files.md) for verbatim references.md, acceptance.md, context.md, and checklist.md templates.107108---109110## Handoff Exit: AskUserQuestion111112After all 5 files are written, the skill MUST surface an AskUserQuestion (with ToolSearch preload) presenting 3 options:113114```115ToolSearch(query: "select:AskUserQuestion")116AskUserQuestion({117 questions: [{118 question: "핸드오프 패키지가 준비되었습니다. 다음 단계를 선택하세요.",119 header: "Design 핸드오프 완료",120 options: [121 {122 label: "Claude Design 세션 시작 (권장)",123 description: "prompt.md를 claude.com Design에 복사해 붙여넣고 디자인 세션을 시작합니다. context.md/references.md는 보조 자료로 함께 엽니다."124 },125 {126 label: "수동 검토",127 description: "핸드오프 파일을 직접 검토하고 필요한 경우 편집합니다. .moai/design/handoff/ 디렉토리를 확인하세요. 준비가 되면 prompt.md를 Claude Design에 붙여넣으세요."128 },129 {130 label: "핸드오프 패키지 재생성",131 description: "prompt.md 또는 다른 파일에 수정이 필요한 경우 어떤 부분을 변경할지 알려주세요. 해당 파일만 재생성합니다."132 }133 ]134 }]135})136```137138For non-Korean conversation_language, translate option labels and descriptions accordingly.139140---141142## Works Well With143144- `design-brief`: Produces the design brief (Lean Canvas + value propositions) consumed as primary input when the request originates from a brief145- `design-system-prep` / `design-system-library`: Provides reference URLs and visual inspiration for the references.md Sources146- `design-handoff-reader`: Preceding Path A step — summarizes the imported bundle into the inputs this skill consumes147- `design-workflow`: Downstream consumer of the `.moai/design/handoff/` directory after the user completes the external Claude Design session (Path A handler)148149---150151## Common Rationalizations152153| Rationalization | Reality |154|----------------|---------|155| "Including SPEC-AUTH-001 in prompt.md helps the designer understand scope" | prompt.md is for claude.com Design, not MoAI. SPEC IDs are internal. Use the Out of Scope section to describe scope boundaries in plain English. |156| "I should skip checklist.md — it's obvious" | Checklist.md prevents the most common error: pasting a prompt with placeholder Brand Voice. It takes 30 seconds to complete and saves a bad design session. |157| "references.md is optional if research had no URLs" | references.md is always produced. When URLs are scarce, include a note asking the user to add their own. An empty references file is worse than one with instructions. |158| "If brand is absent, skip the Brand Voice section" | Brand Voice section is always present. Brand-absent path produces an explicit placeholder with instructions — clearer than a missing section. |159160## Verification161162- [ ] All 5 files produced: prompt.md, context.md, references.md, acceptance.md, checklist.md163- [ ] prompt.md has exactly 5 sections (Goal, References, Brand Voice, Acceptance, Out of Scope)164- [ ] prompt.md contains no SPEC- identifiers165- [ ] prompt.md contains no .moai/ path references166- [ ] prompt.md contains no internal skill/agent names or /design references167- [ ] Brand-absent path includes "Brand Voice (default — please customize)" header in prompt.md168- [ ] context.md includes note that it is NOT for pasting into Claude Design169- [ ] Handoff exit AskUserQuestion called with exactly 3 options