一键导入
mandu-mcp-verify
편집 후 검증 루프. 파일 편집 직후, "check 해줘", stop-hook 자동 호출. ate_auto_pipeline + guard_check + doctor 를 병렬로. 개별 ate_* 도구로 수동 분해 금지 — 실패했을 때만 drill-down.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
편집 후 검증 루프. 파일 편집 직후, "check 해줘", stop-hook 자동 호출. ate_auto_pipeline + guard_check + doctor 를 병렬로. 개별 ate_* 도구로 수동 분해 금지 — 실패했을 때만 drill-down.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Canonical Mandu agent workflow. Use first in Mandu projects before direct source edits so Codex, Claude Code, Gemini CLI, and other agents follow the same context -> plan -> apply -> verify -> repair loop.
React composition patterns for Mandu applications. Use when designing Island components, managing shared state, or building reusable component APIs. Triggers on compound components, context providers, boolean props, or component architecture tasks.
Production deployment patterns for Mandu applications
File-system based routing for Mandu. Use when creating pages, API routes, layouts, or dynamic routes. Triggers on tasks involving app/ folder, page.tsx, route.ts, layout.tsx, [id], [...slug], or URL patterns.
Architecture guard system for Mandu. Use when checking layer dependencies, enforcing architecture rules, or validating file locations. Triggers on tasks involving architecture, layers, dependencies, or guard commands.
Island Hydration pattern for Mandu. Use when creating interactive components, client-side state, or partial hydration. Triggers on tasks involving "use client", client.tsx, useState, useEffect, Island, or hydration.
| name | mandu-mcp-verify |
| description | 편집 후 검증 루프. 파일 편집 직후, "check 해줘", stop-hook 자동 호출. ate_auto_pipeline + guard_check + doctor 를 병렬로. 개별 ate_* 도구로 수동 분해 금지 — 실패했을 때만 drill-down. |
편집 직후 / 생성 직후 / pre-commit 에서 도는 표준 검증 루프. 핵심은 "하나의 ate 파이프라인 + guard + 구조 진단" 을 병렬 fast path 로 먼저 돌리고, 실패했을 때만 세분 도구로 drill-down 하는 것.
app/, spec/, src/shared/contracts/)mandu_generate 완료 직후 (create-flow 가 자동 전이)네 도구는 서로 독립. 병렬 호출.
┌─────────────────────────────┐
│ mandu.ate.auto_pipeline │ ← Tier-0: extract/generate/run/heal 전부
├─────────────────────────────┤
│ mandu_guard_check │ ← Tier-1: 아키텍처 규칙 위반 스캔
├─────────────────────────────┤
│ mandu.lint │ ← 가드레일-lint: 코드 품질 스캔 (oxlint)
├─────────────────────────────┤
│ mandu_doctor │ ← Tier-0: 구조/import/location 진단
└─────────────────────────────┘
네 개를 parallel 호출
인자 예:
mandu.ate.auto_pipeline({
repoRoot: ".",
oracleLevel: "standard",
useImpactAnalysis: true, // 변경된 라우트만 대상
autoHeal: false // heal 은 별도 단계
})
mandu_guard_check({ repoRoot: "." })
mandu.lint({ typeAware: false }) // oxlint 미설치 시 조용히 skip
mandu_doctor({ repoRoot: "." })
네 응답을 수집하고 pass/fail 매트릭스를 만든다:
| 도구 | pass | fail 의 의미 |
|---|---|---|
ate.auto_pipeline | 테스트 통과 + 계약 일치 | 테스트 실패 또는 impact 드리프트 |
guard_check | 레이어/금지 import 위반 없음 | 아키텍처 규칙 위반 |
lint | oxlint error 0 | error 1+ (warning 은 informational) |
doctor | 파일 위치 / import 정상 | 구조 결함 |
네 개 모두 green → verify 종료. 사용자에게 압축 요약 제시.
fast path 가 빨간 항목을 돌려주면 그 카테고리별로만 drill-down. 세 종류가 다 실패했다고 모든 drill-down 을 돌리지 말고, 응답에 들어온 카테고리만.
mandu_guard_explain({ violationId }) ← 먼저: 왜 위반인지 설명
→ (자동 수정 가능하면) mandu_guard_heal({ autofix: true, violationIds: [...] })
→ (수동 수정이면) 사용자에게 수정 지시 후 fast path 재실행
mandu.ate.feedback({ runId }) ← 힐 후보의 카테고리/우선순위
→ mandu.ate.apply_heal({ runId, healIndex, createBackup: true })
→ fast path 의 ate.auto_pipeline 재실행
중요: mandu.ate.heal + mandu.ate.apply_heal 을 수동으로 엮지 않는다.
ate.auto_pipeline 이 이미 heal 후보를 계산했고, 우리는 적용 여부만 결정.
mandu.lint({ typeAware: false }) ← 이미 fast path 에서 뜬 상태
→ 반환 payload 의 error 목록에서 rule id 확인
→ site-level 수정 (절대 전역 off 로 회피 금지 — `mandu-lint` §AP-1)
→ fast path 재실행
oxlint 가 설치되어 있지 않으면 fast path 의 lint 응답은 installed: false 로
돌아온다. 그 경우 mandu.lint.setup({}) 로 설치하도록 사용자에게 안내 — 기존
프로젝트는 opt-in 이 필요함. 신규 프로젝트는 mandu init 이 이미 배선했으므로
이 경로는 드물다.
mandu_check_import({ filePath }) ← 잘못된 import 경로 상세
→ mandu_check_location({ filePath }) ← 파일 위치 규칙 위반 상세
→ 사용자에게 수정안 제시 (또는 safe-change 로 전이)
dev 서버 돌고 있고 fast path 중 런타임 성격의 실패가 보이면:
mandu_kitchen_errors({ limit: 20 })
| # | 규칙 | 이유 |
|---|---|---|
| V-1 | ATE 는 반드시 mandu.ate.auto_pipeline 하나로 시작 | 개별 ate_* 도구 수동 조합 = AP-1 (index 참조) |
| V-2 | fast path 는 병렬 호출 | 세 도구 독립. 순차 호출은 왕복 3배 낭비 |
| V-3 | mandu_guard_heal 은 drill-down 단계에서만 | fast path 에서 autofix 를 켜면 스냅샷 없이 자동 수정됨 |
| V-4 | drill-down 은 실패한 카테고리에만 | 통과한 쪽까지 drill 해서 왕복 부풀리지 않는다 |
| V-5 | heal 후에는 fast path 를 다시 돌린다 | 수정이 새 위반을 만들 수 있음. 1회 재확인 |
| V-6 | 대규모 수정이 필요한 drill-down 은 mandu-mcp-safe-change 로 escalate | snapshot + tx 없이 큰 수정 금지 |
mandu.ate.extract → mandu.ate.generate → mandu.ate.run → mandu.ate.heal → mandu.ate.apply_heal 를 손으로.mandu.ate.auto_pipeline 단 하나.auto_pipeline 결과 보고 → guard_check → doctor 를 하나씩.mandu_generate 재호출로 "리셋" 시도.guard_heal / apply_heal / 수동 수정.git add . && git commit.mandu-mcp-verify 호출.편집 완료
┌─ mandu.ate.auto_pipeline ─┐
├─ mandu_guard_check │ (parallel)
└─ mandu_doctor ─┘
────────────────────────────
all green? → 종료
실패? → 해당 카테고리만 drill-down:
guard_explain / guard_heal
ate.feedback / ate.apply_heal
check_import / check_location
→ 재실행 (fast path)
목표 호출 수:
mandu-mcp-safe-changemandu-mcp-index — Tier/aggregate 우선순위 + AP-1 (ATE 수동 분해)mandu-mcp-create-flow — 생성 직후 이 skill 로 자동 전이mandu-mcp-safe-change — drill-down 이 대규모 수정으로 번질 때mandu-debug — 에러 카테고리별 도메인 지식mandu-guard-guide — guard 위반 유형별 수정 방법mandu-lint — 가드레일-lint 축 상세 (setup / type-aware / 자동수정 안전 절차)