@simplysm/sd-claude 13.0.83 → 13.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,102 +1,102 @@
1
1
  ---
2
2
  name: sd-init
3
- description: "초기화", "init", "sd-init", "CLAUDE.md 생성" 등을 요청할 때 사용.
3
+ description: Used when requesting "initialize", "init", "sd-init", "generate CLAUDE.md", etc.
4
4
  ---
5
5
 
6
- # SD Init — CLAUDE.md 자동 생성
6
+ # SD Init — Auto-generate CLAUDE.md
7
7
 
8
- 프로젝트를 분석하여 CLAUDE.md 자동 생성한다. 기존 파일이 있으면 덮어쓴다.
8
+ Analyze the project and auto-generate CLAUDE.md. Overwrite if the file already exists.
9
9
 
10
10
  ---
11
11
 
12
- ## Step 1: 패키지 매니저 감지
12
+ ## Step 1: Detect Package Manager
13
13
 
14
- 프로젝트 루트의 lock 파일로 PM을 판별하라:
14
+ Determine the PM from the lock file in the project root:
15
15
 
16
16
  1. `pnpm-lock.yaml` → pnpm
17
17
  2. `yarn.lock` → yarn
18
- 3. 그외 → npm
18
+ 3. Otherwise → npm
19
19
 
20
- ## Step 2: 스크립트 분석
20
+ ## Step 2: Analyze Scripts
21
21
 
22
- `package.json`의 `scripts`를 읽고, 스크립트가 호출하는 CLI 도구에 대해 Bash로 `--help`등의 도움말 보기를 실행하여 사용 가능한 인자와 플래그를 파악하라.
22
+ Read the `scripts` in `package.json`, and for each CLI tool invoked by a script, run `--help` or similar help commands via Bash to identify available arguments and flags.
23
23
 
24
- 파악한 정보를 바탕으로 스크립트를 카테고리별(개발, 빌드, 테스트, 린트 ) 그룹화하고, 스크립트의 기본 사용법과 주요 플래그 예시를 정리하라.
24
+ Based on the gathered information, group scripts by category (development, build, test, lint, etc.), and organize the basic usage and key flag examples for each script.
25
25
 
26
- ## Step 3: 코딩 규칙 분석
26
+ ## Step 3: Analyze Coding Rules
27
27
 
28
- 프로젝트 루트에서 아래 설정 파일들을 찾아 읽어라 (존재하는 것만):
28
+ Find and read the following config files from the project root (only those that exist):
29
29
 
30
- - ESLint: `eslint.config.*`, `.eslintrc.*`, `packages/*/eslint.*`
30
+ - ESLint: `eslint.config.*`, `.eslintrc.*`, `packages/*/eslint.*`, etc.
31
31
  - Prettier: `.prettierrc*`, `prettier.config.*`
32
32
  - EditorConfig: `.editorconfig`
33
- - TypeScript: `tsconfig.json` (루트)의 `compilerOptions` `strict`, `noImplicitAny` 등 코드 스타일에 영향을 주는 옵션
33
+ - TypeScript: `compilerOptions` in the root `tsconfig.json` that affect code style, such as `strict`, `noImplicitAny`, etc.
34
34
  - Stylelint: `.stylelintrc*`, `stylelint.config.*`
35
35
 
36
- Claude 규칙과 반대로 수정하기를 제안할 정도의 자주 실수할 내용들만 대폭 간결하게 정리하라.
36
+ Summarize only the frequently violated rules that Claude is likely to suggest incorrectly keep it highly concise.
37
37
 
38
- ## Step 4: CLAUDE.md 생성
38
+ ## Step 4: Generate CLAUDE.md
39
39
 
40
- 아래 정보를 종합하여 프로젝트 루트에 `CLAUDE.md`를 작성하라:
40
+ Combine the information above and write `CLAUDE.md` in the project root:
41
41
 
42
- - **프로젝트 정보**: `package.json`의 `name`, `description`
43
- - **PM**: Step 1에서 감지한 패키지 매니저
44
- - **모노레포 구조**: `workspaces` 필드 또는 `pnpm-workspace.yaml`이 있으면 워크스페이스 경로를 간단히 기술
45
- - **기술스택**: `dependencies`/`devDependencies`에서 주요 기술(프레임워크, 번들러, 테스트 도구 ) 파악하여 아주 간단히 기술
46
- - **명령어**: Step 2에서 정리한 스크립트 사용법
47
- - **코딩 규칙**: Step 3에서 분석한 규칙 Claude가 지켜야 것들. `## 코딩 규칙` 섹션으로 작성
42
+ - **Project info**: `name` and `description` from `package.json`
43
+ - **PM**: Package manager detected in Step 1
44
+ - **Monorepo structure**: If a `workspaces` field or `pnpm-workspace.yaml` exists, briefly describe the workspace paths
45
+ - **Tech stack**: Identify key technologies (frameworks, bundlers, test tools, etc.) from `dependencies`/`devDependencies` and describe them very briefly
46
+ - **Commands**: Script usage organized in Step 2
47
+ - **Coding rules**: Rules from Step 3 that Claude should follow. Write as a `## Coding Rules` section
48
48
 
49
- ### 참고 예시
49
+ ### Reference Example
50
50
 
51
- 아래는 작성된 CLAUDE.md 예시다. 형식을 그대로 복사하지 말고, 프로젝트 특성에 맞게 유연하게 작성하라.
51
+ Below is an example of a well-written CLAUDE.md. Do not copy the format verbatim adapt it flexibly to the project's characteristics.
52
52
 
53
53
  ```markdown
54
54
  # Simplysm
55
55
 
56
- pnpm 모노레포. 패키지 경로: `packages/*`, 테스트: `tests/*`
56
+ pnpm monorepo. Package paths: `packages/*`, tests: `tests/*`
57
57
 
58
- ## 명령어
58
+ ## Commands
59
59
 
60
- 모든 명령어는 내부적으로 `pnpm sd-cli <명령>`을 실행한다. 모든 명령에 `--debug` 플래그 사용 가능.
61
- `[targets..]`를 지정하지 않으면 `sd.config.ts`에 정의된 전체 패키지 대상으로 실행된다.
62
- 타겟은 패키지 경로로 지정한다 (예: `packages/core-common`, `tests/orm`).
60
+ All commands internally run `pnpm sd-cli <command>`. The `--debug` flag is available for all commands.
61
+ If `[targets..]` is not specified, all packages defined in `sd.config.ts` are targeted.
62
+ Targets are specified by package path (e.g., `packages/core-common`, `tests/orm`).
63
63
 
64
- ### 개발
64
+ ### Development
65
65
 
66
66
  ​```bash
67
- pnpm dev [targets..] # client+server 패키지 개발 모드 실행
68
- pnpm dev packages/solid-demo # 특정 패키지만 dev 모드
69
- pnpm dev -o key=value # sd.config.ts에 옵션 전달
67
+ pnpm dev [targets..] # Run client+server packages in dev mode
68
+ pnpm dev packages/solid-demo # Dev mode for a specific package only
69
+ pnpm dev -o key=value # Pass options to sd.config.ts
70
70
 
71
- pnpm watch [targets..] # 라이브러리 패키지 빌드 워치 모드
72
- pnpm watch packages/core-common # 특정 패키지만 워치
71
+ pnpm watch [targets..] # Watch mode for library package builds
72
+ pnpm watch packages/core-common # Watch a specific package only
73
73
  ​```
74
74
 
75
- ### 빌드 & 배포
75
+ ### Build & Deploy
76
76
 
77
77
  ​```bash
78
- pnpm build [targets..] # 프로덕션 빌드
79
- pnpm build packages/solid # 특정 패키지만 빌드
78
+ pnpm build [targets..] # Production build
79
+ pnpm build packages/solid # Build a specific package only
80
80
 
81
- pnpm pub [targets..] # 빌드 배포 (npm/sftp)
82
- pnpm pub --no-build # 빌드 생략하고 배포만
83
- pnpm pub --dry-run # 실제 배포 없이 시뮬레이션
81
+ pnpm pub [targets..] # Build then deploy (npm/sftp)
82
+ pnpm pub --no-build # Deploy only, skip build
83
+ pnpm pub --dry-run # Simulate without actual deployment
84
84
  ​```
85
85
 
86
- ### 코드 품질 검사
86
+ ### Code Quality Checks
87
87
 
88
88
  ​```bash
89
- pnpm typecheck [targets..] # TypeScript 타입 체크
90
- pnpm lint [targets..] # ESLint + Stylelint 실행
91
- pnpm lint:fix [targets..] # 린트 자동 수정 (--fix)
92
- pnpm check [targets..] # 전체 검사 (typecheck + lint + test 병렬)
93
- pnpm vitest [targets..] # vitest 워치 모드
94
- pnpm vitest run [targets..] # 테스트 1회 실행
89
+ pnpm typecheck [targets..] # TypeScript type check
90
+ pnpm lint [targets..] # Run ESLint + Stylelint
91
+ pnpm lint:fix [targets..] # Auto-fix lint issues (--fix)
92
+ pnpm check [targets..] # Full check (typecheck + lint + test in parallel)
93
+ pnpm vitest [targets..] # vitest watch mode
94
+ pnpm vitest run [targets..] # Run tests once
95
95
  ​```
96
96
 
97
- ## 아키텍처
97
+ ## Architecture
98
98
 
99
- 의존 방향: 아래. `core-common`은 내부 의존 없는 leaf 패키지.
99
+ Dependency direction: topbottom. `core-common` is a leaf package with no internal dependencies.
100
100
 
101
101
  ​```
102
102
  Apps: solid-demo (client) / solid-demo-server (server)
@@ -108,26 +108,26 @@ Tools: sd-cli, lint, excel, storage, sd-claude, mcp-playwright
108
108
  ​```
109
109
 
110
110
 
111
- ## 통합 테스트
111
+ ## Integration Tests
112
112
 
113
- `tests/` 폴더에 위치. `pnpm vitest run tests/orm` 등으로 실행.
113
+ Located in the `tests/` folder. Run with `pnpm vitest run tests/orm`, etc.
114
114
 
115
- - `tests/orm` — DB 커넥션, DbContext, 이스케이프 테스트 (MySQL, PostgreSQL, MSSQL). Docker 필요.
116
- - `tests/service` — 서비스 클라이언트-서버 통신 테스트.
115
+ - `tests/orm` — DB connection, DbContext, escape tests (MySQL, PostgreSQL, MSSQL). Requires Docker.
116
+ - `tests/service` — Service client-server communication tests.
117
117
 
118
- ## 코딩 규칙
118
+ ## Coding Rules
119
119
 
120
- - `import type` 필수 (`verbatimModuleSyntax`), `#private` 금지 → `private` 사용
121
- - `console.*` 금지, `if (str)` 금지 → `str !== ""` 명시 비교 (nullable boolean/object 허용)
122
- - `Buffer` 금지 → `Uint8Array`, `events` 금지 → `@simplysm/core-common`의 `EventEmitter`
123
- - SolidJS: props 구조 분해 금지, `.map()` 대신 `<For>`, `className` 대신 `class`
124
- - Prettier: 100자, 2 스페이스, 세미콜론, trailing comma, LF
120
+ - `import type` required (`verbatimModuleSyntax`), `#private` forbiddenuse `private` keyword
121
+ - `console.*` forbidden, `if (str)` forbiddenuse explicit comparison `str !== ""` (nullable boolean/object allowed)
122
+ - `Buffer` forbidden → `Uint8Array`, `events` forbidden`EventEmitter` from `@simplysm/core-common`
123
+ - SolidJS: no props destructuring, use `<For>` instead of `.map()`, use `class` instead of `className`
124
+ - Prettier: 100 chars, 2-space indent, semicolons, trailing comma, LF
125
125
  ```
126
126
 
127
- ## Step 5: 완료 안내
127
+ ## Step 5: Completion Notice
128
128
 
129
- 생성이 완료되면 아래를 출력하라:
129
+ When generation is complete, output the following:
130
130
 
131
131
  ```
132
- CLAUDE.md 생성되었습니다. 커밋하려면 /sd-commit 실행하세요.
132
+ CLAUDE.md has been generated. Run /sd-commit to commit.
133
133
  ```
@@ -1,104 +1,165 @@
1
1
  ---
2
2
  name: sd-plan
3
- description: 스킬은 사용자가 "계획 세워줘", "plan 만들어", "sd-plan", "구현 계획", "작업 계획" 등을 요청할 때 사용한다.
3
+ description: This skill is used when the user requests "make a plan", "create a plan", "sd-plan", "implementation plan", "work plan", etc.
4
4
  ---
5
5
 
6
- # SD Plan — 명확한 계획서 생성
6
+ # SD Plan — Clear Plan Generation
7
7
 
8
- 사용자의 작업 요청을 받아 초기 계획서를 생성한 뒤, 불명확한 부분을 반복적으로 검토하고 질문하여 완벽히 명확한 계획서를 만든다.
8
+ Receives a task request from the user, generates an initial plan, then iteratively reviews and asks questions about unclear parts to produce a perfectly clear plan.
9
+
10
+ ## MANDATORY RULE — ONE QUESTION PER AskUserQuestion CALL
11
+
12
+ **Every AskUserQuestion call MUST have exactly 1 item in the `questions` array. NEVER bundle 2+ questions.**
13
+
14
+ WRONG — bundling multiple questions:
15
+ ```
16
+ questions: [
17
+ { question: "Which API style?" ... },
18
+ { question: "Which styling approach?" ... },
19
+ { question: "What default value?" ... }
20
+ ]
21
+ ```
22
+
23
+ RIGHT — one question per call, sequential:
24
+ ```
25
+ // Call 1
26
+ questions: [{ question: "Which API style?" ... }]
27
+ // Wait for answer → apply → re-extract unclear items
28
+ // Call 2
29
+ questions: [{ question: "Which styling approach?" ... }]
30
+ // Wait for answer → apply → re-extract unclear items
31
+ // Call 3
32
+ questions: [{ question: "What default value?" ... }]
33
+ ```
34
+
35
+ **Violating this rule makes the output unusable. There is NO exception.**
9
36
 
10
37
  ---
11
38
 
12
- ## Step 1: 입력 확인
39
+ ## Step 1: Input Verification
13
40
 
14
- - 작업 설명을 아래 우선순위로 확보하라:
15
- 1. **작업 요청**: 사용자가 스킬 호출 함께 전달한 작업 설명
16
- 2. **현재 대화**: 작업 요청이 없으면 현재 대화 컨텍스트에서 작업 내용을 파악
17
- 3. **AskUserQuestion**: 둘로도 파악이 되면 "어떤 작업에 대한 계획서를 만들까요? 작업 내용을 설명해 주세요."라고 질문
18
- - 충분한 작업 설명을 확보한 Step 2로 진행하라.
41
+ - Obtain the task description in the following priority order:
42
+ 1. **Task request**: The task description provided by the user when invoking the skill
43
+ 2. **Current conversation**: If no task request is provided, determine the task from the current conversation context
44
+ 3. **AskUserQuestion**: If neither of the above is sufficient, ask "What task should I create a plan for? Please describe the task."
45
+ - Proceed to Step 2 after obtaining a sufficient task description.
19
46
 
20
47
  ---
21
48
 
22
- ## Step 2: 계획서 생성 + 명확화 반복
49
+ ## Step 2: Plan Generation + Clarification Loop
50
+
51
+ ### 2-1. Draft Creation
52
+
53
+ Draft the plan. **Every implementation item MUST be structured as 3 sub-steps: RED → Implement → GREEN.** NEVER skip or merge these sub-steps regardless of task simplicity.
23
54
 
24
- ### 2-1. 초안 작성
55
+ Classify the task first, then apply the matching TDD approach:
25
56
 
26
- 계획서 초안을 작성하라. 반드시 TDD원칙에 따라 작성하라:
27
- - 코드 작업이면 테스트 코드 먼저 작성
28
- - 비코드 작업이면 자체 검증 체크리스트 먼저 정의
29
- - 코드 작업이지만 프로젝트 자체에 테스트환경 자체가 구축되어있지 않다면 CLI, dry-run등의 검증방법 제시
57
+ **If code + test env exists:**
58
+ 1. **RED** Write a failing test file, run it → confirm FAIL
59
+ 2. **Implement** Write the minimum code to pass
60
+ 3. **GREEN** Run the testconfirm PASS
30
61
 
31
- ### 2-2. 명확화 사이클
62
+ **If code + no test env:**
63
+ 1. **RED** — Define a CLI/dry-run command, run it → confirm FAIL
64
+ 2. **Implement** — Write the minimum code to pass
65
+ 3. **GREEN** — Run the same command → confirm PASS
32
66
 
33
- 아래를 **불명확 항목이 0개가 때까지** 반복하라:
67
+ **If non-code (config, docs, prompts, SKILL.md, etc.):**
68
+ Prompt/config files cannot be unit-tested. Use **Agent behavioral simulation**: launch an Agent that reads the file and naturally follows its instructions with a sample task. **Do NOT tell the Agent what behavior you are testing** (this biases the result and invalidates the test).
69
+ 1. **RED** — `git stash` your changes → launch Agent with a sample task against the **original** file → confirm the Agent's output shows the **problematic** behavior (FAIL)
70
+ 2. **Implement** — `git stash pop` to restore changes, then apply your edits
71
+ 3. **GREEN** — launch same Agent with the same task against the **modified** file → confirm the Agent's output shows the **desired** behavior (PASS). If FAIL → fix implementation → re-run GREEN until PASS.
34
72
 
35
- 1. **추출**: 계획서를 아래 "불명확 판단 기준" 12개 항목에 전부 대조하여 불명확 항목을 나열하라.
36
- 2. **의존성 분석**: 항목 간 의존 관계를 파악하라. ("A가 정해져야 B를 질문 가능" → B는 A에 의존)
37
- 3. **질문**: 의존 대상이 없는 항목들을 AskUserQuestion 도구 **하나당 단 하나의 질문**만 하라. 각 질문에 2~5개 선택지를 제시하라.
38
- - `한건의 설명제시 -> AskUserQuestion` 반복
39
- 4. **반영**: 답변을 모두 반영하여 계획서를 업데이트하고, 1번으로 돌아가라.
73
+ ### 2-2. Clarification Cycle
40
74
 
41
- 불명확 항목 0개 **Step 2.5 최종 검증**으로 이동.
75
+ **This is a single-item loop. Each iteration handles exactly ONE unclear item, then restarts from scratch.**
42
76
 
43
- ### 불명확 판단 기준
77
+ 1. **Extract**: Compare the plan against all 12 "Ambiguity Criteria" below → enumerate unclear items.
78
+ - 0 unclear items → **STOP this loop. Go to Step 2.5.**
79
+ 2. **Dependency analysis**: Identify dependencies. ("A must be decided before B" → B depends on A)
80
+ 3. **Ask exactly ONE question**: Pick the single most important item with no unresolved dependencies.
81
+ a. Present a brief explanation of why this item is unclear.
82
+ b. Call AskUserQuestion with `questions` array containing **exactly 1 item**. Include 2-5 options.
83
+ c. **STOP and WAIT** for the user's answer. Do NOT plan, prepare, or output anything about the next question.
84
+ 4. **Apply**: Incorporate the answer into the plan.
85
+ 5. **RESTART from step 1** — re-extract ALL unclear items from scratch. The previous answer may have resolved multiple items or created new ones. Never assume the remaining questions are still valid.
44
86
 
45
- > **핵심 원칙**: 사용자가 명시하지 않았고, 코드베이스에서 확인되지 않은 것은 **모두 추측/가정으로 간주**하여 불명확 항목으로 취급하라. Claude가 자신있게 작성했더라도 출처가 불분명하면 불명확이다.
87
+ **NEVER ask 2+ questions before restarting the loop. NEVER plan ahead for "the next question". Each loop iteration = 1 Extract + 1 Question + 1 Answer.**
46
88
 
47
- 아래 12개 항목을 **매 검토 시 전부** 대조하라. "해당 없음"이라고 넘기려면 구체적 근거(사용자 발언 또는 코드베이스 확인)가 있어야 한다.
89
+ ### Ambiguity Criteria
48
90
 
49
- 1. **사용자 미명시 가정**: 사용자가 말하지 않았는데 Claude 채워넣은 결정사항
50
- 2. **구체성 부족**: HOW 없이 "적절히 처리", "필요에 따라" 등의 표현
51
- 3. **범위 모호**: IN/OUT 스코프가 정의되지 않음
52
- 4. **미지정 동작**: 에러, 유효하지 않은 입력, 기본값 등이 지정되지 않음
53
- 5. **알 없는 제약조건**: 성능, 호환성, 플랫폼 요구사항이 불분명
54
- 6. **누락된 엣지케이스**: 경계 조건, 동시성, 빈 상태 등
55
- 7. **모호한 파일/함수 참조**: 구체적 경로 없이 "관련 파일을 수정"
56
- 8. **불명확한 순서/의존성**: 단계 선후 관계 미명시
57
- 9. **추측 표현**: "아마", "~일 있음", "TBD", "???" 등
58
- 10. **통합 세부사항 누락**: API 계약, 데이터 형식, 인터페이스 미정의
59
- 11. **실패/롤백 전략 부재**: 실패 대응 방안 없음
60
- 12. **검증 방법 미정의**: 구현 단계에 대응하는 검증 방법이 없음
91
+ > **Core principle**: Anything not explicitly stated by the user and not confirmed in the codebase is **treated as speculation/assumption** and classified as an unclear item. Even if Claude wrote it confidently, it is unclear if the source is unverified.
92
+ >
93
+ > **Exception — implementation details are NOT unclear items**: Technical decisions about HOW to achieve the goal (code placement, internal structure, naming conventions, file organization, etc.) are Claude's engineering judgment. Only user-facing requirements (WHAT behavior the user wants) should be classified as unclear. If the user did not specify it and it is purely a technical approach decision, Claude decides — do NOT ask the user.
94
+
95
+ Compare against all 12 items below **during every review**. To skip an item as "not applicable", there must be concrete evidence (user statement or codebase confirmation).
96
+
97
+ 1. **Unstated user assumptions**: Decisions filled in by Claude that the user did not specify
98
+ 2. **Lack of specificity**: Expressions like "handle appropriately", "as needed" without explaining HOW
99
+ 3. **Ambiguous scope**: IN/OUT scope is not defined
100
+ 4. **Unspecified behavior**: Errors, invalid inputs, default values, etc. are not specified
101
+ 5. **Unknown constraints**: Performance, compatibility, or platform requirements are unclear
102
+ 6. **Missing edge cases**: Boundary conditions, concurrency, empty states, etc.
103
+ 7. **Vague file/function references**: "Modify related files" without specific paths
104
+ 8. **Unclear ordering/dependencies**: Precedence between steps is not specified
105
+ 9. **Speculative expressions**: "Probably", "might be", "TBD", "???", etc.
106
+ 10. **Missing integration details**: API contracts, data formats, interfaces are undefined
107
+ 11. **No failure/rollback strategy**: No response plan for failures
108
+ 12. **Undefined verification methods**: No verification method corresponding to an implementation step
61
109
 
62
110
  ---
63
111
 
64
- ## Step 2.5: 최종 검증 (불명확 없음 선언 필수)
112
+ ## Step 2.5: Final Verification (Required Before Declaring No Ambiguities)
65
113
 
66
- "불명확 없음" 선언하기 **직전에 반드시** 아래를 수행하라:
114
+ **Immediately before** declaring "no ambiguities", you must perform the following:
67
115
 
68
- 1. 계획서의 **모든 단계를 처음부터 끝까지** 다시 읽으며, 12개 기준을 전수 대조하라.
69
- 2. 특히 다음을 집중 확인하라:
70
- - Claude가 스스로 결정한 부분 사용자 확인을 받지 않은 것이 있는가?
71
- - "~한다", "~로 처리한다" 단정적으로 부분의 근거가 사용자 발언 또는 코드베이스에 있는가?
72
- - 구체적 파일 경로, 함수명, 데이터 구조가 빠진 곳은 없는가?
73
- 3. 검증에서 **하나라도** 불명확 항목이 발견되면 Step 2의 질문 사이클로 돌아가라.
74
- 4. 진짜로 없으면 → Step 3으로 이동.
116
+ 1. Re-read **every step of the plan from beginning to end**, comparing against the 12 criteria one more time.
117
+ 2. Pay special attention to the following:
118
+ - Are there any parts that Claude decided on its own without user confirmation?
119
+ - Do all definitive statements (e.g., "will do X", "will handle as Y") have supporting evidence from user statements or the codebase?
120
+ - Are there any places missing specific file paths, function names, or data structures?
121
+ 3. If **even one** unclear item is found during this verification, return to the question cycle in Step 2.
122
+ 4. If truly none remain Move to Step 3.
75
123
 
76
124
  ---
77
125
 
78
- ## Step 3: 최종 출력
126
+ ## Step 3: Final Output
79
127
 
80
- 모든 불명확 항목이 해소되었으면 완성된 계획서를 사용자에게 제시하고, AskUserQuestion으로 구현 승인을 요청하라.
128
+ Once all unclear items have been resolved, present the completed plan to the user and request implementation approval via AskUserQuestion.
81
129
 
82
- 사용자가 승인하면 `.tmp/plans/{yyMMddHHmmss}_{topic}.md`에 계획서를 Write하라.
83
- - 파일명 예시: `260311143052_progress-컴포넌트-추가.md`
84
- - `yyMMddHHmmss`: 연월일시분초 (예: 260311143052)
85
- - `{topic}`: 작업 내용 기반 짧은 케밥케이스 (예: progress-컴포넌트-추가)
130
+ If the user approves, Write the plan to `.tmp/plans/${TS}_{topic}.md`.
131
+ - Generate the timestamp first: `TS=$(date +%y%m%d%H%M%S)`
132
+ - Filename example: `260311143052_add-progress-component.md`
133
+ - `{topic}`: Short kebab-case based on the task content (e.g., add-progress-component)
86
134
 
87
135
  ---
88
136
 
89
- ## Step 4: 구현 완료 후 안내
137
+ ## Step 4: Post-Implementation Guidance
138
+
139
+ If the user approves implementation, implement according to the plan. Follow the TDD approach defined in Step 2-1 for the task type. **Do NOT proceed to the next item until the current item reaches GREEN.**
140
+
141
+ ### TDD Execution Rules
142
+
143
+ **RED and GREEN must be actually executed. NEVER skip or substitute them.**
144
+
145
+ - "User already confirmed the issue" is NOT a valid RED. Run the test yourself.
146
+ - "Needs a separate session to verify" is NOT a valid GREEN. Run the test yourself.
147
+ - If GREEN fails → fix the implementation → re-run GREEN. Repeat until it passes.
90
148
 
91
- 사용자가 구현을 승인하면, 계획서에 따라 구현하라. 구현이 완료되면 아래 안내를 출력하라:
149
+ Once all items are complete, output the following guidance. Include only the items whose conditions are met, numbered sequentially:
92
150
 
93
- - **코드 수정이 포함된 경우**:
94
- ```
95
- 구현이 완료되었습니다. 다음 단계를 순서대로 실행하는 것을 권장합니다:
96
- 1. /sd-check타입체크 + 린트 + 테스트 검사 및 자동 수정
97
- 2. /sd-simplify변경된 코드 단순화 리뷰
98
- 3. /sd-commit — 변경사항 커밋
99
- ```
151
+ | Condition | Recommendation |
152
+ |-----------|----------------|
153
+ | Code changes exist | `/sd-check` Type check + lint + test inspection and auto-fix |
154
+ | Code changes exist | `/sd-simplify`Simplification review of changed code |
155
+ | Public API changed (exports, public methods/properties, component props, etc.) | `/sd-readme`Update README documentation |
156
+ | Always | `/sd-commit`Commit changes |
100
157
 
101
- - **코드 수정이 없는 경우** (설정, 문서 ):
102
- ```
103
- 구현이 완료되었습니다. 커밋하려면 /sd-commit 실행하세요.
104
- ```
158
+ Example (all conditions met):
159
+ ```
160
+ Implementation is complete. It is recommended to run the following steps in order:
161
+ 1. /sd-check — Type check + lint + test inspection and auto-fix
162
+ 2. /sd-simplify — Simplification review of changed code
163
+ 3. /sd-readme — Update README documentation
164
+ 4. /sd-commit — Commit changes
165
+ ```