From vibe-recipe
/vr:kitchen 호출 시 사용합니다. 새 프로젝트 또는 기존 서비스에 vibe-recipe orchestration harness를 설치/도입/복구합니다. AGENTS.md, hooks, .agent, command profile을 구성해 recipe -> cook -> taste workflow가 재현 가능하게 동작해야 할 때 사용합니다.
npx claudepluginhub pj4316/vibe-recipe --plugin vibe-recipeThis skill uses the workspace's default tool permissions.
`kitchen`은 vibe-recipe orchestration harness를 구축하는 skill입니다. 새 프로젝트에는 기본 harness를 설치하고, 기존 서비스에는 현재 구조와 명령을 존중하며 비침투적으로 도입합니다.
examples/presets/backend-service/design.mdexamples/presets/backend-service/domain.mdexamples/presets/cli-tool/design.mdexamples/presets/cli-tool/domain.mdexamples/presets/library-package/design.mdexamples/presets/library-package/domain.mdexamples/presets/web-app/design-system.mdexamples/presets/web-app/design.mdexamples/presets/web-app/domain.mdexamples/presets/web-app/themes/enterprise-professional.mdexamples/presets/web-app/themes/friendly-colorful.mdexamples/presets/web-app/themes/modern-minimal.mdresources/AGENTS.mdresources/CHANGELOG.mdresources/commands.jsonresources/constitution.mdresources/design-system.mdresources/design.mdresources/domain.mdresources/health-check.mdMandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
kitchen은 vibe-recipe orchestration harness를 구축하는 skill입니다. 새 프로젝트에는 기본 harness를 설치하고, 기존 서비스에는 현재 구조와 명령을 존중하며 비침투적으로 도입합니다.
orchestration harness는 세 층입니다.
AGENTS.md: skill 라우팅, 역할 경계, parent/orchestrator agent 책임, human gate..agent/: spec, command profile, runbook, domain language, memory, handoff..agent/commands.json은 스킬 정의 파일이 아닙니다. target project의 native command profile이며 cook, taste, serve가 어떤 setup/build/test/e2e/lint/verify/dev 명령을 실행할지 판단하는 기준입니다. release 계열 skill이 source 부재 때문에 바로 막히지 않도록 kitchen은 bootstrap changelog와 version source도 함께 준비합니다.
.agent/commands.json을 만들겠습니다”보다 “테스트와 실행에 쓸 프로젝트 명령을 정리하겠습니다”처럼 먼저 설명합니다.초기 설정은 agent가 이해한 프로젝트 모습과 사용자가 기대하는 설정이 맞을 때까지 확인 루프를 돌립니다.
이 루프의 목적은 질문을 많이 하는 것이 아니라, 초기 프로젝트 설정 인식이 어긋난 상태로 파일을 만들지 않도록 하는 것입니다.
각 라운드는 아래 흐름을 기본으로 합니다.
질문은 checklist 심문처럼 길게 이어가지 않습니다. 한 번에 핵심 우려 1-3개만 다루고, 답을 받으면 바로 요약해 다음 라운드로 넘어갑니다.
핵심 템플릿은 resources/에 있습니다. kitchen은 템플릿을 그대로 복사하지 않고 제품 답변과 repo 감지 결과를 채워 생성합니다.
resources/AGENTS.mdresources/constitution.mdresources/design.mdresources/design-system.mdresources/domain.mdresources/commands.jsonresources/release-manifest.jsonresources/CHANGELOG.mdresources/health-check.mdresources/runbook-verification.mdresources/runbook-debugging.mdresources/runbook-deployment.mdmodern-minimal, friendly-colorful, enterprise-professional)세부 동작 문서는 plugins/vibe-recipe/docs/skills/KITCHEN.md를 따릅니다.
examples/는 plugin repo 내부 authoring source입니다. slash command가 없는 fallback 설치에서는 build-universal-agents-md.sh가 이 예시 본문을 universal AGENTS.md에 임베드해 self-contained reference로 제공합니다. target project에 생성되는 .agent/spec/design.md, .agent/wiki/design-system.md, .agent/wiki/domain.md는 examples 경로를 참조하는 문서가 아니라, 선택된 preset/theme를 바탕으로 생성된 결과물이어야 합니다.
핵심 생성 문서의 의도는 다음과 같습니다.
resources/design.md: arc42 섹션 구조와 C4 계층 사고방식을 섞은 architecture 플레이북입니다. repo 감지 결과를 바로 매핑하고, context/building blocks/runtime/deployment에 Mermaid skeleton을 남겨 implementer가 추가 질문 없이 채울 수 있게 합니다.resources/design-system.md: foundations-first design system 플레이북입니다. token hierarchy, focus visible을 포함한 accessibility checklist, composition pattern, governance까지 한 번에 담아 UI 정책을 바로 결정할 수 있게 합니다.사용자가 architecture, design-system, domain 방향을 직접 주지 않으면 kitchen은 repo 감지 결과로 preset 타입을 고르고 kitchen에 번들된 preset packets를 사용합니다. architecture는 선택된 preset의 architecture packet, domain은 선택된 preset의 domain packet 기본 stance를 따릅니다. architecture 기본값은 Hexagonal architecture와 TDD입니다.
web-app: frontend 힌트가 강한 repobackend-service: backend/API 힌트만 강한 repocli-tool: command/terminal 중심 entry pointlibrary-package: package/export 중심이며 app surface가 약한 repoweb-app -> backend-service -> cli-tool -> library-packageprecedence는 다음 순서를 고정합니다.
design-system.md는 web-app preset일 때만 기본 프리셋 source가 있습니다. backend-service, cli-tool, library-package는 기본적으로 design-system 대상이 아니며, 사용자가 명시적으로 요구하거나 repo facts가 실제 UI를 보여줄 때만 생성합니다.
web-app에서는 다시 theme packet을 고릅니다. 기본 theme는 다음처럼 선택합니다.
enterprise-professional: admin, dashboard, workflow tool, backofficemodern-minimal: 일반적인 B2B SaaS, polished product UIfriendly-colorful: consumer-friendly, onboarding-heavy, collaborative product선택된 theme packet의 실제 값을 설명으로 요약하지 말고 generated design-system 문서에 직접 반영합니다. target project 문서에는 preset/theme 이름, 선택 이유, 그리고 실제 주입된 결과만 남기고 plugin 내부 경로는 남기지 않습니다. 최소 주입 대상은 color palette, typography, spacing/radius, button design, chip/badge, icon style, card/input입니다. 여기에 더해 border/focus/selection token, fallback font policy와 heading/body weight, control height/icon size/shadow token, navigation/tabs/selected state, table/list density와 numeric alignment, dialog/drawer/toast/skeleton/empty state tone까지 문서에 남겨야 합니다.
파일을 쓰기 전에 mode를 판정합니다.
| Mode | Trigger | Behavior |
|---|---|---|
fresh | 새 프로젝트 성격이 강하고 .agent/constitution.md가 없음 | 제품 질문 후 기본 harness를 생성합니다. |
adopt | 기존 서비스에 처음 vibe-recipe를 도입 | 기존 문서, 구조, command, agent 지침을 읽고 비침투적 harness를 생성합니다. |
abort | 이미 harness가 있고 별도 요청이 없음 | 현재 셋업 요약만 보여주고 쓰지 않습니다. |
heal | 누락 파일 복구 요청 | 누락 scaffold만 복구하고 사용자 파일은 덮어쓰지 않습니다. |
patch <file> | 특정 생성 파일 갱신 요청 | 지정 파일만 preview와 승인 후 재생성합니다. |
harness | command profile, hooks, .agent/, generated instructions 개선 | 제품 scope는 유지하고 주방기구만 점검/개선합니다. |
reset | 명시적 reset 요청 | clean tree, backup, double confirm 후 fresh를 다시 실행합니다. |
mode가 애매하면 기존 harness가 있을 때는 abort입니다. harness가 없고 기존 서비스 흔적이 강하면 adopt, 빈 repo 또는 새 제품 요청이면 fresh입니다.
질문 전에 repo 사실을 조용히 수집합니다.
git status --shortpackage.json, pyproject.toml, requirements.txt, Cargo.toml, go.mod, GemfileAGENTS.md, CLAUDE.md, .github/copilot-instructions.md.agent/, .hooks/, pre-commit, release/deploy script감지 결과는 사용자 선택지를 늘리기 위한 것이 아니라 AGENTS.md, .agent/spec/design.md, .agent/commands.json 생성 근거입니다.
사용자에게 묻는 내용은 제품 정의에 한정합니다.
같은 대화의 제품 brief나 이전 alignment 메모가 있으면 제품 답변 초안으로 사용합니다. 운영 원칙은 묻지 않고 vibe-recipe 기본값으로 적용합니다. 사용자가 architecture shape, UI reference/density/mode, domain tone을 말하지 않으면 질문으로 빈칸을 남기지 말고 선택된 preset 기본값을 적용합니다.
질문은 한 번에 전부 쏟아내지 않습니다. 각 라운드마다 아래 형식으로 진행합니다.
질문 자체도 상담형으로 표현합니다. 예를 들면:
기존 서비스에 도입할 때는 기존 운영 방식을 덮지 않는 것을 우선합니다.
.agent/commands.json stable key로 매핑합니다..agent/spec/design.md 아키텍처 문서로 요약합니다..agent/wiki/domain.md 초안으로 추출하고, 비어 있는 부분은 선택된 preset의 glossary stance로 채웁니다.Adoption Questions로 남깁니다.kitchen은 모든 프로젝트에 다음 기본값을 적용합니다.
.agent/constitution.md는 초기화 이후 human-only입니다.recipe는 요구사항과 acceptance를 확정합니다.cook은 approved recipe 전체 구현을 지휘합니다.taste는 recipe 기준 review verdict와 loop recommendation을 냅니다..agent/commands.json의 verify command가 release gate입니다..agent/spec/INDEX.md, handoff index, ADR index는 librarian generated입니다.파일을 쓰기 전에 preview를 보여주고 승인을 받습니다.
preview를 사용자에게 설명할 때는 category 중심으로 먼저 보여주고, 실제 파일 경로는 필요할 때만 덧붙입니다.
preview도 대화형으로 진행합니다.
사용자가 우려를 말하면 방어적으로 대응하지 않고, 해당 우려를 제품/운영 리스크로 번역한 뒤 설정안에 어떻게 반영할지 다시 제안합니다.
사용자가 제품 설명을 수정하고 싶다면 해당 제품 질문만 다시 묻습니다. 운영 원칙 예외는 patch 또는 harness flow로 안내합니다.
승인 후 다음을 생성하거나 보강합니다.
| Target | 정책 |
|---|---|
AGENTS.md | 필수. 기존 파일은 preview와 승인 없이 덮어쓰지 않습니다. |
.agent/constitution.md | fresh/reset에서 생성. 이후 human-only. |
.agent/spec/prd.md | 제품 답변 기반 create only. |
.agent/spec/design.md | repo 감지와 command profile 기반의 arc42 + C4 hybrid architecture 문서. preset defaults와 Mermaid diagram skeleton 포함. |
.agent/commands.json | stable key 유지: setup/build/test/e2e/lint/verify/dev. |
.agent/release-manifest.json | real product manifest가 아직 없을 때 쓰는 0.0.0 bootstrap version source. 이후 public manifest로 교체 또는 retire. |
.agent/wiki/domain.md | 유비쿼터스 용어집 source of truth. preset의 glossary depth와 tone을 출발점으로 삼습니다. |
.agent/wiki/design-system.md | web-app 또는 명시적 UI 프로젝트일 때만 생성. backend/cli/library preset에는 기본 포함하지 않습니다. |
.agent/spec/active/0001-health-check.md | harness rehearsal용 create only. |
.agent/autopilot/state.json, .agent/autopilot/progress.md | autopilot runner state 초기 문서. Source of truth는 active spec task checkbox입니다. |
.agent/runbooks/* | verification/debugging/deployment 문서. |
.agent/memory/*, indexes | create only. librarian이 이후 관리. |
.hooks/* | create only. 차단성 hook은 승인 후 활성화. |
CLAUDE.md | AGENTS.md symlink 우선, 실패 시 generated copy. |
| project release notes source | 기존 release notes file을 우선하고, 없을 때만 kitchen이 bootstrap CHANGELOG.md skeleton을 만들어 wrap이 같은 source를 재사용할 수 있게 합니다. |
필요한 directory도 함께 만듭니다: .agent/spec/{active,done,archived,abandoned,handoffs}, .agent/autopilot, .agent/wiki/decisions, .agent/memory/{topics,handoffs}, .agent/runbooks.
AGENTS.md, .agent/constitution.md, .agent/spec/prd.md, .agent/spec/design.md가 있습니다..agent/commands.json이 valid JSON이고 stable key를 모두 포함합니다..agent/wiki/domain.md, .agent/memory/gotchas.md, health-check spec, runbooks가 있습니다..agent/release-manifest.json 0.0.0 baseline이 있고, project release notes source가 없으면 CHANGELOG.md bootstrap source가 있어 release 계열 skill이 source 부재 때문에 바로 막히지 않습니다..agent/autopilot/state.json과 .agent/autopilot/progress.md가 있습니다..agent/spec/design.md는 Introduction/Goals, Constraints, Context/Scope, Solution Strategy, Building Blocks, Runtime Scenarios, Deployment/Operational Notes, Cross-cutting Concepts, Decisions, Quality, Risks/Tech Debt, Glossary를 포함하고, 선택된 preset과 핵심 기본값을 기록합니다..agent/spec/design.md는 source of truth로서 구현 전에 먼저 읽혀야 하고, 기본 원칙으로 Hexagonal architecture와 TDD를 강조합니다. 이때 두 원칙은 슬로건이 아니라 구조 경계와 검증 전략으로 구체화돼 있어야 합니다..agent/wiki/domain.md는 선택된 preset, glossary depth, role/state style, domain tone을 기록합니다..hooks/pre-commit.sh와 CLAUDE.md 처리 결과가 보고됩니다.verify command가 null이면 kitchen 완료는 가능하지만 release 상태는 blocked로 보고합니다.
taste가 아직 APPROVE가 아니면 wrap/serve는 계속 blocked이지만, 그때도 어떤 파일과 어떤 순서가 필요한지 unblock 안내까지 함께 설명해야 합니다.
feat/0001-health-check branch를 제안합니다.git diff --stat을 보여줍니다.chore: initialize vibe-recipe kitchen
Refs: .agent/spec/active/0001-health-check.md