com um clique
개발 단계 AI 협업 — 백엔드·프론트엔드·AI엔지니어·QA가 API 계약 기반 병렬 개발 수행
npx skills add https://github.com/unicorn-plugins/npd --skill developCopie e cole este comando no Claude Code para instalar a skill
개발 단계 AI 협업 — 백엔드·프론트엔드·AI엔지니어·QA가 API 계약 기반 병렬 개발 수행
npx skills add https://github.com/unicorn-plugins/npd --skill developCopie e cole este comando no Claude Code para instalar a skill
Claude Code 사용을 위한 로컬 개발 환경 사전준비 (기본 프로그램 설치 안내, Claude Code + OMC 설치, Claude Code 설정)
새 프로젝트 생성 — 프로젝트 디렉토리 초기화, AGENTS.md 생성, GitHub 레포 자동 생성
기획 단계 AI 협업 — 18단계 서비스 기획 워크플로우 (MVP정의 → 고객분석 → 시장조사 → 고객경험 → 문제가설 → 솔루션 → 비즈니스모델 → 이벤트스토밍 → 유저스토리 → UI/UX → 프로토타입 → 플로우 스크립트)
CI/CD 파이프라인 구성 AI 협업 -- DevOps 엔지니어가 Jenkins/GitHub Actions CI + ArgoCD CD 파이프라인 구축
배포 단계 AI 협업 — DevOps 엔지니어가 컨테이너 빌드·K8s 배포 수행
기술 설계 단계 AI 협업 — 아키텍트·AI엔지니어가 협업하여 아키텍처 패턴 선정, 논리/시퀀스/API/클래스/데이터/AI 서비스 설계 및 HighLevel 아키텍처 정의 수행
| name | develop |
| description | 개발 단계 AI 협업 — 백엔드·프론트엔드·AI엔지니어·QA가 API 계약 기반 병렬 개발 수행 |
| type | orchestrator |
| user-invocable | true |
[NPD Develop 활성화]
백엔드개발자·프론트엔드개발자·AI엔지니어·QA가 협업하여 API 계약(OpenAPI 명세) 기반 병렬 개발 전략으로 개발을 수행함.
사용자가 /npd:develop 호출 시 또는 "개발 시작", "개발해줘", "구현 시작" 키워드 감지 시.
주의사항: 중간 단계부터 시작할 때도 사전 설정 수집 및 진행 모드를 설정하는 Phase 0은 항상 수행해야 합니다.
/npd:create 완료 (프로젝트 디렉토리 및 AGENTS.md 존재)/npd:design 완료 (docs/design/ 산출물 존재)AGENTS.md 파일에서 ## 환경변수 섹션의 환경변수 로딩.
로딩 실패 시 사용자에게 /npd:create를 먼저 수행하라고 안내하고 종료.
설계→개발 경계에서 1회 컴파일되는 개발 입력 세트. Phase 1 / Step 1에서 생성되며 이후 모든 Step의 유일한 입력이다.
| 구성 요소 | 경로 | 원본 | 역할 |
|---|---|---|---|
| 통합 맥락 | docs/develop/dev-plan.md | 전체 설계 산출물 분석 결과 | 전체 그림 + 아키텍처 결정사항 |
| 백엔드 계약 | docs/design/api/*.yaml | 이미 존재 (변환 불요) | API 엔드포인트·스키마 정의 |
| DB 계약 | docs/design/database/*.md | 이미 존재 (변환 불요) | 테이블·인덱스·관계 정의 |
| 패키지 구조 | docs/design/class/package-structure.md | 이미 존재 (변환 불요) | 서비스별 패키지 레이아웃 |
| 프론트엔드 계약 | docs/plan/.../prototype/*.html+css | 이미 존재 (변환 불요) | UI 레이아웃·스타일 정의 |
| 행위 계약 | test/design-contract/*.spec.ts | 시퀀스 설계서에서 변환 | alt/else 분기 → it() 테스트 케이스 (참고 자료, 실행 불요) |
원칙: Phase 1 / Step 1 (AI 개발 키트 컴파일) 이후의 에이전트는
docs/design/sequence/,docs/design/class/*.puml등 원본 설계 문서를 직접 읽지 않는다. 필요한 정보는 모두 AI 개발 키트에 포함되어 있다. 원본이 필요한 경우는 키트에 누락이 있는 것이므로 Phase 1 / Step 1을 보완한다. 단, Phase 1 / Step 1 (AI 개발 키트 컴파일)은 변환 단계이므로 원본 설계 문서 읽기가 필수이다. 이 단계에서만 원본을 읽어 키트로 변환한다.
환경 변수 명세 의무: AI 개발 키트의
docs/develop/dev-plan.md는 설계서에서 식별된 모든 외부 의존성(메시지 브로커·DB·LLM·외부 API·시크릿)에 대해 환경 변수 이름과 용도를 명시한 표를 포함해야 한다. 이 표가 비어 있으면 Phase 1 / Step 1을 완료로 보지 않는다. 이후 Phase 2/3에서 신규 환경 변수가 도입될 때마다 같은 표에 추가하고.env.example에 키 템플릿을 등록한다.
| 에이전트 | FQN |
|---|---|
| architect | npd:architect:architect |
| backend-developer | npd:backend-developer:backend-developer |
| frontend-developer | npd:frontend-developer:frontend-developer |
| ai-engineer | npd:ai-engineer:ai-engineer |
| qa-engineer | npd:qa-engineer:qa-engineer |
| product-owner | npd:product-owner:product-owner |
| service-planner | npd:service-planner:service-planner |
{NPD_PLUGIN_DIR}/resources/guides/combine-prompt.md에 따라
AGENT.md + agentcard.yaml + tools.yaml 합치기Agent(subagent_type=FQN, model=tier_mapping 결과, prompt=조립된 프롬프트) 호출{NPD_PLUGIN_DIR}/gateway/runtime-mapping.yaml 참조워크플로우 단계에 Agent: {agent-name}이 명시된 경우,
메인 에이전트는 해당 단계를 직접 수행하지 않고, {NPD_PLUGIN_DIR}/resources/guides/call-subagent.md에 따라 서브 에이젼트 호출
모든 Step에서 아래 표준을 준수:
{NPD_PLUGIN_DIR}/resources/references/standard_comment.md{NPD_PLUGIN_DIR}/resources/references/standard_testcode.md{NPD_PLUGIN_DIR}/resources/references/standard_package_structure.md{NPD_PLUGIN_DIR}/resources/guides/design/common-principles.md가이드 문서(.md) 내 <!-- IF VAR == VALUE --> 조건 지시문 처리. 지원 변수
(PLATFORM, FRONTEND_PORT, MOCK, TEST_MODE)는 AGENTS.md > ### develop > 지원 변수
에 저장·조회한다.
상세: {NPD_PLUGIN_DIR}/resources/guides/develop/conditional-branching-protocol.md ← 필수 로드
{PROJECT_DIR}/AGENTS.md에 각 Phase의 Step 완료 시 저장. 최종 완료 시 Done으로 표기.
## 워크플로우 진행상황
### develop
- 진행 모드: {선택값}
- 개발 범위: {선택된 Phase 목록} (Phase 0 / Step 1에서 기록)
- 마지막 완료 Phase/Step: Phase 1/Step 0
- 지원 변수:
- PLATFORM: {REACT|VUE|FLUTTER} (Phase 1 / Step 4 시작 시 결정)
- FRONTEND_PORT: {3000} (PLATFORM 결정 직후)
- MOCK: {SINGLE} (Phase 1 / Step 3 완료 후)
- TEST_MODE: {AUTO|MANUAL} (Phase 0 / Step 5)
- 기술스택:
- Java: {버전}
- Spring Boot: {버전}
- 빌드 도구: {Gradle/Maven}
- Node.js: {버전}
- 프론트엔드: {React/Vue/Flutter}
- Python: {버전}
- AI 프레임워크: {FastAPI}
{PROJECT_DIR}/AGENTS.md의 ## 워크플로우 진행상황 > ### develop에 진행상황 정보가 있는 경우 마지막 완료 Step 이후부터 자동 재개.
기술스택은 Phase 1 / Step 1 (AI 개발 키트 컴파일) 수립 시 dev-plan.md의 ### 10-5. 기술스택 정보에서 추출하여 기록.
지원 변수는 ## 가이드 문서 조건 분기 프로토콜의 결정 시점에 따라 단계별로 채워지며, 이후 가이드 실행 시 해당 값을 우선 조회한다.
Phase 0: 사전 설정·진행 모드 선택 (개발 범위 + 크리덴셜 + 테스트 모드 + 진행 모드)
↓
Phase 1: 환경 구성 (AI 개발 키트 + 백엔드/백킹/FE/AI/실행 프로파일)
↓
Phase 2: API 계약 기반 병렬 개발 (BE API + FE Mock + AI)
↓
Phase 3: 통합 연동 (FE 실제 API + BE↔AI + API 테스트)
↓
Phase 4: 종합 테스트 및 QA (브라우저 테스트 + 제품 검증 + Final Report)
↓
Phase 5: 개발 완료
{NPD_PLUGIN_DIR}/resources/guides/develop/phase0-presetup.md ← 필수 로드AGENTS.md > ### develop 섹션에 진행 모드·개발 범위·지원 변수(TEST_MODE) 기록{PROJECT_DIR}/.env에 크리덴셜 (또는 .env.example에 키 등록)HighLevel 아키텍처 14.1 개발 단계에서 구현 범위를 사용자에게 선택받음.
설계서의 인증 방식이 OAuth2/하이브리드인 경우 Provider 크리덴셜 수집.
프론트엔드 이미지 생성용 GEMINI_API_KEY 수집.
ai-service-design.md 존재 시 LLM/Tool/RAG 크리덴셜 수집.
브라우저 테스트 모드(자동/수동) 선택 → AGENTS.md 지원 변수 > TEST_MODE에 저장.
단계별 승인/자동 진행 선택. 단계별 승인 시 ASK_USER 형식 정의됨. (중요) 자동 진행 시 사용자에게 진행에 필요한 정보를 한꺼번에 요청. AskUserQuestion 사용하지 않고 대화창으로 질문
Step 1은 두 단계로 구성된다:
{NPD_PLUGIN_DIR}/resources/guides/develop/dev-plan.mddocs/develop/dev-plan.md{NPD_PLUGIN_DIR}/resources/guides/develop/design-contract-compile.mddocs/develop/dev-plan.md (Step 1-1 산출물)docs/design/sequence/inner/*.puml (내부 시퀀스)docs/design/sequence/outer/*.puml (외부 시퀀스)docs/design/api/*.yaml (API 명세)docs/develop/dev-plan.md (확장된 통합 맥락)test/design-contract/*.spec.ts (행위 계약 참고 자료 — 백엔드 구현 시 분기 누락 방지용, 실행 불요){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트이후 모든 Step의 입력:
docs/develop/dev-plan.md(통합 맥락)docs/design/api/*.yaml(백엔드 계약)docs/design/database/*-schema.psql또는docs/design/database/*.md(DB 계약)docs/design/class/package-structure.md(패키지 구조)docs/plan/.../prototype/*.html+css(프론트엔드 계약)test/design-contract/*.spec.ts(행위 계약 참고 자료)
{NPD_PLUGIN_DIR}/resources/guides/develop/backend-env-setup.mdgradlew, gradlew.bat, gradle/wrapper/, settings.gradle, build.gradle(루트), {service-name}/build.gradle(서비스별), {service-name}/src/main/resources/application.yml(서비스별), common/src/main/java/.../common/.env.example 템플릿에 정의되며, 실제 값은 {PROJECT_DIR}/.env에서 통일){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/backing-service-setup.mddocker-compose.yml 작성 → DB(PostgreSQL/MySQL/MariaDB/MongoDB)/Cache/MQ + Prism Mock 서버 구성. 기본 제품(PostgreSQL) 외 선택 시 카테고리 가이드 참조./docker-compose.yml, ./.env.example, docs/develop/backing-service-result.mddocker compose --profile mock up)docker compose --profile ai up, AI 서비스 존재 시만){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-env-setup-react.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-env-setup-vue.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-env-setup-flutter.mdfrontend/ 프로젝트 골격, tools/generate-runtime-env.sh (프로젝트 서비스 구성에 맞게 동적 생성됨), npm run dev 실행 확인{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/ai-service-env-setup.mdai-service/ 프로젝트 골격, uvicorn 실행 확인{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트Phase 1 / Step 2 ~ Step 5는 병렬 실행: 4개 에이전트가 동시에 작업. Step 2와 Step 3의 환경변수 정합성은 placeholder 방식으로 해결 (각자 독립 작성, 값은
{PROJECT_DIR}/.env에서 통일..env.example은 키 템플릿)
{NPD_PLUGIN_DIR}/resources/guides/develop/run-profile.md{service-name}/.run/{service-name}.run.xml (서비스별){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트참고: Phase 0 / Step 2에서 OAuth2 크리덴셜을 사전 수집하였다. '나중에 설정'을 선택한 경우: 본 Step 에이전트에 "OAuth2 크리덴셜 미설정, 코드 구현만 진행하고 통합 테스트는 생략" 지시를 포함한다. Phase 3 진입 전에
{PROJECT_DIR}/.env파일에서 다시 확인한다.
{NPD_PLUGIN_DIR}/resources/guides/develop/backend-api-dev.mddocs/develop/dev-plan.md (통합 맥락 — 서비스 목록, 의존관계, 개발 순서)docs/design/api/{service-name}-api.yaml (API 계약)docs/design/database/{service-name}.md (DB 계약)docs/design/class/package-structure.md (패키지 구조)test/design-contract/{service-name}/*.spec.ts (행위 계약 참고 자료)test/design-contract/{service-name}/*.spec.ts의 it() 케이스를 참고하여 alt/else 분기 누락 방지 (테스트 실행 불요){service-name}/src/main/java/.../{service-name}/(API 구현 코드), {service-name}/src/test/java/.../{service-name}/(단위 테스트 코드){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트참고: Phase 0 / Step 3에서 Gemini API Key를 사전 수집하였다. '나중에 설정'을 선택한 경우: 본 Step 에이전트에 "Gemini API Key 미설정, 이미지 생성 불가 — 이미지가 필요한 곳은 CSS/SVG 기반 대체 구현" 지시를 포함한다.
{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-dev-react.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-dev-vue.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-dev-flutter.mdfrontend/src/components/, frontend/src/layouts/, frontend/src/services/api/, frontend/src/hooks/, frontend/src/pages/docker compose --profile mock up (Phase 1 / Step 3에서 구성){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트SKIP 조건: Phase 1 / Step 1에서 AI SKIP으로 결정된 경우 건너뜀
참고: Phase 0 / Step 4에서 AI 서비스 크리덴셜을 사전 수집하였다. '나중에 설정'을 선택한 경우: 본 Step 에이전트에 "LLM 크리덴셜 미설정, 코드 구현만 진행하고 실제 LLM 호출 테스트는 생략" 지시를 포함한다. Phase 3 진입 전에
{PROJECT_DIR}/.env파일에서 다시 확인한다.
{NPD_PLUGIN_DIR}/resources/guides/develop/ai-service-dev.md{service-name}/models/, {service-name}/clients/, {service-name}/prompts/, {service-name}/services/, {service-name}/routers/, {service-name}/tests/{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트Phase 2 / Step 1 ~ Step 3은 병렬 실행: 백엔드는 실제 API 구현, 프론트엔드는 Prism Mock으로 독립 개발, AI는 별도 서비스로 독립 개발
{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-integration-react.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-integration-vue.md{NPD_PLUGIN_DIR}/resources/guides/develop/frontend-integration-flutter.mdfrontend/public/runtime-env.js, frontend/src/services/api/client.ts, frontend/src/services/api/authService.ts, frontend/src/store/authStore.ts, frontend/(실제 API 연동 완료){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/backend-ai-integration.md.../client/AiServiceClient.java(인터페이스), .../client/AiServiceClientImpl.java(HTTP 클라이언트), {service-name}/src/main/resources/application.yml(resilience4j 섹션), .../client/AiServiceClientTest.java(통합 테스트){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트Phase 3 / Step 1, Step 2는 병렬 실행 가능 (단, Step 1은 Phase 2 / Step 1 완료 필요, Step 2는 Phase 2 / Step 1 + Step 3 완료 필요)
{NPD_PLUGIN_DIR}/resources/guides/develop/test-api.md./gradlew clean build 성공)docs/develop/api-test-result.md (API 테스트 결과){service}/src/test/resources/data/ (SQL seed, JSON fixture){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트선행 조건: Phase 3 / Step 3 (API 테스트) 전체 PASS 필수
Phase 0 / Step 5에서 사전 수집된 테스트 모드를 적용한다.
결정된 테스트 모드를 AGENTS.md의 ### develop > 지원 변수 섹션에 TEST_MODE: {AUTO|MANUAL} 로 기록한다.
{NPD_PLUGIN_DIR}/resources/guides/develop/test-browser-auto.md ← 필수 로드TEST_MODE = AUTO인 경우만.temp/phase4-step1-checkpoint.json) + 재테스트 루프(최대 3회) 수행docs/develop/test/e2etest-{N}.mde2e/tests/scenarios.spec.ts.temp/iter-{N}/tc-*.png (Step 2 입력){PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/test-browser-manual.md ← 필수 로드TEST_MODE = MANUAL인 경우만{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트선행 조건: Phase 4 / Step 1 완료
{NPD_PLUGIN_DIR}/resources/guides/develop/product-verify.md ← 필수 로드TEST_MODE = AUTO → Step 2-1 자동 모드 (5단계: 2-1a~2-1e, 체크포인트 .temp/phase4-step2-checkpoint.json, 개선 루프 최대 2회. PO/SP 재검증이 회귀 영향을 통합 검증하므로 별도 회귀 TC 재실행은 수행하지 않음)TEST_MODE = MANUAL → Step 2-2 수동 모드 (2-2a~2-2b 대화형, AskUserQuestion 사용 금지)docs/develop/test/verify-po-{N}.md, verify-sp-{N}.md, .temp/iter-{N+1}/{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트선행 조건: Phase 4 / Step 2 완료
docs/develop/test/e2etest-*.md, verify-po-*.md, verify-sp-*.mddocs/develop/test/final-report.md{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트{NPD_PLUGIN_DIR}/resources/guides/develop/dev-complete.md ← 필수 로드tools/run-backend.py, tools/run-frontend.py)readme-generation.md)/npd:deploy)tools/run-backend.py, tools/run-frontend.py, {PROJECT_DIR}/README.md{PROJECT_DIR}/AGENTS.md에 마지막 완료 Phase/Step 업데이트| # | 규칙 |
|---|---|
| 1 | <!--ASK_USER--> 발견 시 AskUserQuestion 도구를 호출할 것 (텍스트 출력 금지) |
| 2 | Phase 1 / Step 1 (AI 개발 키트 컴파일) 이후의 에이전트는 docs/design/sequence/, docs/design/class/*.puml 등 원본 설계 문서를 직접 읽지 않을 것 (AI 개발 키트만 사용. 원본이 필요한 경우 키트에 누락이 있는 것이므로 Phase 1 / Step 1을 보완) |
| 3 | 외부 가이드({NPD_PLUGIN_DIR}/resources/guides/develop/*.md)가 명시된 Step은 해당 가이드를 반드시 Read로 로드한 뒤 절차를 수행할 것. SKILL.md 본문의 요약만 보고 직접 수행하면 스킬 미준수로 간주 |
| 4 | Phase 2 완결 원칙: Phase 2/Step 1~3의 산출물은 그 단계 안에서 실제 동작이 완성되어야 한다. "Phase 3에서 실제 연동", "추후 구현" 같은 미루기 주석·스텁을 금지한다. 외부 의존성(메시지 브로커·DB·LLM·외부 API) 사용이 설계서에 명시된 경우, 그 단계에서 실제 클라이언트 코드와 통합 테스트까지 완료한다 |
| 5 | 하드코딩 금지 정책: 모든 산출물 코드에서 (a) 시크릿/API Key, (b) 가격·환율 등 비즈니스 상수, (c) URL·포트, (d) 도메인 데이터 샘플(MOCK_*, SAMPLE_*, FAKE_* 등 명명 상수)이 코드 리터럴로 박혀 있으면 안 된다. 모두 환경변수·설정파일·시드 SQL·실제 API 응답 중 하나로 외부화한다 |
| 6 | 스텁 검출 게이트: 각 Phase 완료 시 자동 검출을 실행한다. (a) grep -rn "MOCK_|SAMPLE_|FAKE_" frontend/, (b) grep -rn "TODO|FIXME|HACK" ., (c) grep -rn "log.info.*\[EVENT\]" . 결과가 0건이어야 다음 Phase로 진입한다. 의도적 잔존이 필요한 경우 같은 줄에 // ALLOW: 사유 또는 <!-- ALLOW: 사유 --> 주석으로 사유를 명시한다 |
docs/develop/dev-plan.md 확장 + test/design-contract/*.spec.ts 참고 자료)docs/develop/test/final-report.md)README.md 생성 완료 (프로젝트 루트)MOCK_*/SAMPLE_*/FAKE_*, TODO/FIXME/HACK, log.info(EVENT) 패턴) 결과 0건 (의도적 잔존은 ALLOW: 주석으로 사유 명시)log.info()만 있는 발행 메서드 금지)MOCK_*·SAMPLE_*·FAKE_* 명명 상수 0건 (grep으로 검증)docs/develop/test/final-report.md)완료 시 임시 상태 파일 정리. 산출물은 유지.
ARGUMENTS가 전달된 경우, 아래 매핑 테이블에서 키워드를 매칭하여 특정 Step으로 직접 점프한다. 이 로직은 재개 로직보다 우선 적용된다.
| 인수 키워드 | 시작 Step | 선행 조건 확인 |
|---|---|---|
브라우저테스트, 브라우저 테스트, phase4-step1, step5 | Phase 4 / Step 1 | docs/develop/api-test-result.md 존재 |
제품검증, 제품 검증, phase4-step2, step6 | Phase 4 / Step 2 | .temp/phase4-step1-checkpoint.json의 status가 completed |
AGENTS.md의 ### develop 섹션에서 변수를 복원한다 (진행 모드, 개발 범위, 지원 변수(TEST_MODE 등), 기술스택)
b. 테스트 모드 재선택 (Phase 4 / Step 1 점프 시): 복원된 지원 변수 > TEST_MODE를 표시하고, 이번 실행에서 변경할지 사용자에게 확인한다.{"title":"테스트 모드 확인","questions":[ {"question":"현재 설정된 테스트 모드: {복원된 테스트 모드}\n\n이번 브라우저 테스트에서 테스트 모드를 변경하시겠습니까?","type":"radio","options":["자동 테스트 유지 (AI가 Playwright Test Suite로 자동 수행)","수동 테스트로 변경 (사람이 브라우저에서 직접 테스트, AI가 수정 지원)"]} ]}
AGENTS.md의 지원 변수 > TEST_MODE 값을 갱신한다.temp/phase4-step{N}-checkpoint.json)이 존재하면 iteration 값을 보존(status가 completed이면 +1)하고 나머지(current_step, completed_steps, status)를 초기화한다. 미존재 시 iteration=1로 새로 생성한다.
d. 인증 상태 파일(e2e/.auth/state.json)을 삭제한다 (Phase 4 / Step 1 점프 시)
e. 선행 조건 산출물 존재 여부를 확인한다 (미존재 시 사용자에게 경고 후 중단)
f. Phase 0을 건너뛰고 해당 Step부터 실행한다