스펙 우선 생성 워크플로우. "만들어줘", 피처/리소스/라우트 추가 시 자동 호출. contract → generate 순서를 강제하고 생성 직후 verify loop 로 전이. granular 도구 (add_route + create_contract + generate) 를 손으로 엮지 않는다.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add konamgil/mandu --skill mandu-mcp-create-flow --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Mandu Mcp Create Flow?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/konamgil-mandu-mcp-create-flow)More formats (shields.io, HTML) on the badges page.
---
name: mandu-mcp-create-flow
description: |
스펙 우선 생성 워크플로우. "만들어줘", 피처/리소스/라우트 추가 시 자동 호출.
contract → generate 순서를 강제하고 생성 직후 verify loop 로 전이.
granular 도구 (add_route + create_contract + generate) 를 손으로 엮지 않는다.
---
# Mandu MCP Create Flow
새 기능을 스캐폴딩할 때의 **스펙 우선** 레시피. "contract 없이 generate 먼저"
라는 대표적 실수를 방지하고, 가능한 한 집계 도구 (resource/feature/scaffold) 를
사용한다.
## Trigger
- "만들어줘", "추가해줘", "create", "add"
- "CRUD" + 엔티티 이름
- 피처 / 라우트 / 리소스 / API 엔드포인트 / 컴포넌트 추가
- `mandu-create-feature` 또는 `mandu-create-api` task-shaped skill 이 활성화될 때
## Decision Tree
요청의 단위를 먼저 구분한다.
```
요청 내용
├─ 리소스 단위 (User, Post, Comment 같은 도메인 엔티티)
│ → Track A: Resource flow
├─ 피처 단위 (페이지 + 섹션 + island + slot 세트)
│ → Track B: Feature flow
├─ 단일 라우트 (페이지 하나 또는 API 하나만)
│ → Track C: Route flow
└─ 스키마만 이미 있고 스캐폴드만 필요
→ Track D: Scaffold-only
```
### Track A — Resource Flow (도메인 엔티티)
```
mandu.resource.create ← Tier-0 aggregate: resource + fields 묶음 생성
└─> mandu_create_contract ← Zod 계약 (집계 도구가 자동으로 요청하지 않을 때만)
└─> mandu_generate ← 스캐폴드 생성
└─> mandu-mcp-verify 로 전이
```
`mandu.resource.create` 인자 예:
```
mandu.resource.create({
name: "Post",
fields: { title: "string", content: "string", publishedAt: "datetime?" }
})
```
리소스가 생성되면 route / slot / contract 의 후보가 제안된다. 제안을 그대로
받아 `mandu_generate` 로 흘린다. 제안된 경로를 무시하고 `mandu_add_route` 로
손수 만들지 않는다.
### Track B — Feature Flow (페이지 + island + slot)
```
mandu_analyze_structure ← alias of mandu.negotiate.analyze, 요구사항 → 구조 제안
└─> mandu.feature.create ← Tier-0 aggregate: 여러 라우트 + slot + island 묶음
└─> mandu_create_contract ← API 엔드포인트가 포함된 경우
└─> mandu_generate
└─> mandu-mcp-verify 로 전이
```
또는 단축 경로:
```
mandu_generate_scaffold ← alias of mandu.negotiate.scaffold,
negotiate + scaffold 를 한 번에
└─> mandu-mcp-verify
```
사용자가 이미 스키마를 구체적으로 제시했다면 `mandu_analyze_structure` 는 스킵.
"대충 사용자 프로필 페이지 만들어줘" 처럼 모호한 요청일 때만 negotiate 먼저.
### Track C — Single Route Flow
```
mandu_add_route ← 파일 생성 (경로 규칙 자동 적용)
└─> mandu_create_contract ← API 라우트면 필수, 페이지만이면 생략 가능
└─> mandu_generate ← 스캐폴드 반영
└─> mandu-mcp-verify
```
`mandu_add_route` 인자:
```
mandu_add_route({ path: "/users/[id]", type: "page" })
mandu_add_route({ path: "/api/users/[id]", type: "api" })
```
### Track D — Scaffold-Only (스키마 이미 있음)
사용자가 `spec.ts` 또는 기존 contract 를 제시했다면:
```
mandu_generate_scaffold ← negotiate skip, 바로 scaffold
└─> mandu-mcp-verify
```
## Absolute Rules
| # | 규칙 | 이유 |
|---|------|------|
| R-1 | `mandu_generate` 는 **언제나 마지막** | contract 이전 generate 는 생성물 타입이 unstable |
| R-2 | `mandu_create_contract` 는 **`mandu_generate` 전에** | 생성물이 Zod 타입에 바인딩됨 |
| R-3 | 복합 생성은 **집계 도구 우선** (`resource.create` / `feature.create` / `generate_scaffold`) | 순서 / 롤백 / 검증을 집계가 처리 |
| R-4 | 생성 직후 **무조건 `mandu-mcp-verify` 로 전이** | 생성물은 guard / contract / ate 로 검증해야 의미 있음 |
| R-5 | 사용자가 스키마를 준 경우 **`negotiate` 스킵** | 중복 분석 왕복 제거 |
| R-6 | 단일 트랜잭션 단위는 **`mandu_begin` ~ `mandu_commit`** 로 감싼다 (위험 변경 시) | `mandu-mcp-safe-change` 참조 |
## Post-Create Transition (자동)
생성이 끝나면 **반드시** `mandu-mcp-verify` fast path 로 넘어간다:
```
mandu_generate 완료
→ mandu.ate.auto_pipeline + mandu_guard_check + mandu_doctor (병렬)
→ 실패 시 drill-down
```
`mandu_generate` 의 응답이 "success" 라도 verify 를 건너뛰지 않는다.
guard 위반이나 contract 타입 불일치는 생성 자체는 성공해도 나중에 드러난다.
## Anti-patterns
### AP — Granular Manual Assembly
- 증상: 피처 하나 만들라는 요청에 `mandu_add_route` × 3 + `mandu_create_contract` × 2 + `mandu_generate` 를 수동 호출.
- 왜 안 되나: 중간에 실패하면 반쯤 만들어진 상태. 집계 도구 (`feature.create`, `resource.create`) 가 이 시퀀스를 트랜잭션으로 처리한다.
- 대응: Track A / B / D 의 집계 도구 먼저.
### AP — Generate Before Contract (R-2 위반)
- 증상: `mandu_generate` → 결과 보고 → `mandu_create_contract` → 또 `mandu_generate`.
- 왜 안 되나: 1차 generate 의 생성물이 버려짐 + 2차에서 import path 꼬임.
- 대응: contract 먼저. 항상.
### AP — Negotiate 후 직접 생성
- 증상: `mandu_analyze_structure` 로 계획 받고, 반환된 route 목록을 `mandu_add_route` 로 손으로 하나씩.
- 왜 안 되나: `mandu_generate_scaffold` 가 이 역할. negotiate 의 구조를 바로 scaffold 로 흘린다.
- 대응: `mandu_generate_scaffold` 한 방.
### AP — "만들고 바로 커밋"
- 증상: `mandu_generate` 결과를 보고 verify 스킵하고 git commit.
- 왜 안 되나: guard 위반 / contract 불일치가 커밋에 박힘.
- 대응: R-4 (생성 직후 verify) 지킨다.
## Quick Recipes
### 간단한 CRUD 리소스 추가
```
mandu.resource.create({ name, fields })
mandu_generate (resource.create 가 요청할 때만)
→ mandu-mcp-verify
```
호출 수: 2-3
### 피처 + API + Island
```
mandu_generate_scaffold({ description })
→ mandu-mcp-verify
```
호출 수: 2 (가장 압축된 경로)
### 이미 있는 contract 에 라우트 하나만 추가
```
mandu_add_route({ path, type })
mandu_generate
→ mandu-mcp-verify
```
호출 수: 3
목표: 표준 CRUD 피처 기준 **≤ 6 MCP 호출 (생성 + verify fast path 포함)**.
## See Also
- `mandu-mcp-index` — 라우터 / anti-pattern 카탈로그
- `mandu-mcp-verify` — 생성 직후 자동 전이
- `mandu-mcp-safe-change` — 기존 구조를 흔드는 리팩터의 경우
- `mandu-create-feature`, `mandu-create-api` — 도메인 지식 (파일 구조, 네이밍)
- `mandu-slot` — slot 파일 작성 규칙
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!