@simplysm/sd-claude 13.0.83 → 13.0.84

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,104 @@
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
9
 
10
10
  ---
11
11
 
12
- ## Step 1: 입력 확인
12
+ ## Step 1: Input Verification
13
13
 
14
- - 작업 설명을 아래 우선순위로 확보하라:
15
- 1. **작업 요청**: 사용자가 스킬 호출 함께 전달한 작업 설명
16
- 2. **현재 대화**: 작업 요청이 없으면 현재 대화 컨텍스트에서 작업 내용을 파악
17
- 3. **AskUserQuestion**: 둘로도 파악이 되면 "어떤 작업에 대한 계획서를 만들까요? 작업 내용을 설명해 주세요."라고 질문
18
- - 충분한 작업 설명을 확보한 Step 2로 진행하라.
14
+ - Obtain the task description in the following priority order:
15
+ 1. **Task request**: The task description provided by the user when invoking the skill
16
+ 2. **Current conversation**: If no task request is provided, determine the task from the current conversation context
17
+ 3. **AskUserQuestion**: If neither of the above is sufficient, ask "What task should I create a plan for? Please describe the task."
18
+ - Proceed to Step 2 after obtaining a sufficient task description.
19
19
 
20
20
  ---
21
21
 
22
- ## Step 2: 계획서 생성 + 명확화 반복
22
+ ## Step 2: Plan Generation + Clarification Loop
23
23
 
24
- ### 2-1. 초안 작성
24
+ ### 2-1. Draft Creation
25
25
 
26
- 계획서 초안을 작성하라. 반드시 TDD원칙에 따라 작성하라:
27
- - 코드 작업이면테스트 코드 먼저 작성
28
- - 비코드 작업이면자체 검증 체크리스트 먼저 정의
29
- - 코드 작업이지만 프로젝트 자체에 테스트환경 자체가 구축되어있지 않다면 → CLI, dry-run등의 검증방법 제시
26
+ Draft the plan. Always follow TDD principles:
27
+ - For code tasks Write test code first
28
+ - For non-code tasks Define a self-verification checklist first
29
+ - For code tasks where the project has no test environment set up Propose verification methods such as CLI or dry-run
30
30
 
31
- ### 2-2. 명확화 사이클
31
+ ### 2-2. Clarification Cycle
32
32
 
33
- 아래를 **불명확 항목이 0개가 때까지** 반복하라:
33
+ Repeat the following **until there are 0 unclear items**:
34
34
 
35
- 1. **추출**: 계획서를 아래 "불명확 판단 기준" 12 항목에 전부 대조하여 불명확 항목을 나열하라.
36
- 2. **의존성 분석**: 항목 의존 관계를 파악하라. ("A 정해져야 B 질문 가능" → B A에 의존)
37
- 3. **질문**: 의존 대상이 없는 항목들을 AskUserQuestion 도구 **하나당 하나의 질문**만 하라. 질문에 2~5 선택지를 제시하라.
38
- - `한건의 설명제시 -> AskUserQuestion` 반복
39
- 4. **반영**: 답변을 모두 반영하여 계획서를 업데이트하고, 1번으로 돌아가라.
35
+ 1. **Extract**: Compare the plan against all 12 "Ambiguity Criteria" listed below and enumerate all unclear items.
36
+ 2. **Dependency analysis**: Identify dependencies between items. ("A must be decided before B can be asked" → B depends on A)
37
+ 3. **Ask**: For items with no dependencies, use AskUserQuestion with **exactly one question per tool call**. Provide 2-5 options for each question.
38
+ - For each item, repeat "present one explanation -> AskUserQuestion"
39
+ 4. **Apply**: Incorporate all answers to update the plan, then return to step 1.
40
40
 
41
- 불명확 항목 0개 → **Step 2.5 최종 검증**으로 이동.
41
+ 0 unclear itemsMove to **Step 2.5 Final Verification**.
42
42
 
43
- ### 불명확 판단 기준
43
+ ### Ambiguity Criteria
44
44
 
45
- > **핵심 원칙**: 사용자가 명시하지 않았고, 코드베이스에서 확인되지 않은 것은 **모두 추측/가정으로 간주**하여 불명확 항목으로 취급하라. Claude 자신있게 작성했더라도 출처가 불분명하면 불명확이다.
45
+ > **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.
46
46
 
47
- 아래 12 항목을 **매 검토 전부** 대조하라. "해당 없음"이라고 넘기려면 구체적 근거(사용자 발언 또는 코드베이스 확인)가 있어야 한다.
47
+ 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).
48
48
 
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. **검증 방법 미정의**: 구현 단계에 대응하는 검증 방법이 없음
49
+ 1. **Unstated user assumptions**: Decisions filled in by Claude that the user did not specify
50
+ 2. **Lack of specificity**: Expressions like "handle appropriately", "as needed" without explaining HOW
51
+ 3. **Ambiguous scope**: IN/OUT scope is not defined
52
+ 4. **Unspecified behavior**: Errors, invalid inputs, default values, etc. are not specified
53
+ 5. **Unknown constraints**: Performance, compatibility, or platform requirements are unclear
54
+ 6. **Missing edge cases**: Boundary conditions, concurrency, empty states, etc.
55
+ 7. **Vague file/function references**: "Modify related files" without specific paths
56
+ 8. **Unclear ordering/dependencies**: Precedence between steps is not specified
57
+ 9. **Speculative expressions**: "Probably", "might be", "TBD", "???", etc.
58
+ 10. **Missing integration details**: API contracts, data formats, interfaces are undefined
59
+ 11. **No failure/rollback strategy**: No response plan for failures
60
+ 12. **Undefined verification methods**: No verification method corresponding to an implementation step
61
61
 
62
62
  ---
63
63
 
64
- ## Step 2.5: 최종 검증 (불명확 없음 선언 필수)
64
+ ## Step 2.5: Final Verification (Required Before Declaring No Ambiguities)
65
65
 
66
- "불명확 없음" 선언하기 **직전에 반드시** 아래를 수행하라:
66
+ **Immediately before** declaring "no ambiguities", you must perform the following:
67
67
 
68
- 1. 계획서의 **모든 단계를 처음부터 끝까지** 다시 읽으며, 12개 기준을 전수 대조하라.
69
- 2. 특히 다음을 집중 확인하라:
70
- - Claude가 스스로 결정한 부분 사용자 확인을 받지 않은 것이 있는가?
71
- - "~한다", "~로 처리한다" 단정적으로 부분의 근거가 사용자 발언 또는 코드베이스에 있는가?
72
- - 구체적 파일 경로, 함수명, 데이터 구조가 빠진 곳은 없는가?
73
- 3. 검증에서 **하나라도** 불명확 항목이 발견되면 Step 2의 질문 사이클로 돌아가라.
74
- 4. 진짜로 없으면 → Step 3으로 이동.
68
+ 1. Re-read **every step of the plan from beginning to end**, comparing against the 12 criteria one more time.
69
+ 2. Pay special attention to the following:
70
+ - Are there any parts that Claude decided on its own without user confirmation?
71
+ - Do all definitive statements (e.g., "will do X", "will handle as Y") have supporting evidence from user statements or the codebase?
72
+ - Are there any places missing specific file paths, function names, or data structures?
73
+ 3. If **even one** unclear item is found during this verification, return to the question cycle in Step 2.
74
+ 4. If truly none remain Move to Step 3.
75
75
 
76
76
  ---
77
77
 
78
- ## Step 3: 최종 출력
78
+ ## Step 3: Final Output
79
79
 
80
- 모든 불명확 항목이 해소되었으면 완성된 계획서를 사용자에게 제시하고, AskUserQuestion으로 구현 승인을 요청하라.
80
+ Once all unclear items have been resolved, present the completed plan to the user and request implementation approval via AskUserQuestion.
81
81
 
82
- 사용자가 승인하면 `.tmp/plans/{yyMMddHHmmss}_{topic}.md`에 계획서를 Write하라.
83
- - 파일명 예시: `260311143052_progress-컴포넌트-추가.md`
84
- - `yyMMddHHmmss`: 연월일시분초 (예: 260311143052)
85
- - `{topic}`: 작업 내용 기반 짧은 케밥케이스 (예: progress-컴포넌트-추가)
82
+ If the user approves, Write the plan to `.tmp/plans/${TS}_{topic}.md`.
83
+ - Generate the timestamp first: `TS=$(date +%y%m%d%H%M%S)`
84
+ - Filename example: `260311143052_add-progress-component.md`
85
+ - `{topic}`: Short kebab-case based on the task content (e.g., add-progress-component)
86
86
 
87
87
  ---
88
88
 
89
- ## Step 4: 구현 완료 후 안내
89
+ ## Step 4: Post-Implementation Guidance
90
90
 
91
- 사용자가 구현을 승인하면, 계획서에 따라 구현하라. 구현이 완료되면 아래 안내를 출력하라:
91
+ If the user approves implementation, implement according to the plan. Once implementation is complete, output the following guidance:
92
92
 
93
- - **코드 수정이 포함된 경우**:
93
+ - **If code changes are included**:
94
94
  ```
95
- 구현이 완료되었습니다. 다음 단계를 순서대로 실행하는 것을 권장합니다:
96
- 1. /sd-check — 타입체크 + 린트 + 테스트 검사 자동 수정
97
- 2. /sd-simplify — 변경된 코드 단순화 리뷰
98
- 3. /sd-commit — 변경사항 커밋
95
+ Implementation is complete. It is recommended to run the following steps in order:
96
+ 1. /sd-check — Type check + lint + test inspection and auto-fix
97
+ 2. /sd-simplify — Simplification review of changed code
98
+ 3. /sd-commit — Commit changes
99
99
  ```
100
100
 
101
- - **코드 수정이 없는 경우** (설정, 문서 ):
101
+ - **If no code changes are involved** (configuration, documentation, etc.):
102
102
  ```
103
- 구현이 완료되었습니다. 커밋하려면 /sd-commit 실행하세요.
103
+ Implementation is complete. Run /sd-commit to commit the changes.
104
104
  ```
@@ -1,126 +1,126 @@
1
1
  ---
2
2
  name: sd-readme
3
- description: "README 문서 생성", "sd-readme" 등을 요청할 때 사용.
3
+ description: Used when requesting "README documentation generation", "sd-readme", etc.
4
4
  ---
5
5
 
6
- # SD Readme — 모노레포 패키지 README 문서 생성기
6
+ # SD Readme — Monorepo Package README Documentation Generator
7
7
 
8
- 모노레포의 패키지에 대해 README.md 문서를 자동 생성한다. 패키지 규모에 따라 단일 README.md 또는 README.md + docs/*.md 구조로 점진적 공개(Progressive Disclosure) 원칙을 적용한다.
8
+ Automatically generates README.md documentation for each package in the monorepo. Applies Progressive Disclosure principles by choosing either a single README.md or a README.md + docs/*.md structure depending on the package size.
9
9
 
10
- ARGUMENTS: 패키지명 (선택). 지정하면 해당 패키지만 처리, 미지정 전체 패키지 병렬 처리.
10
+ ARGUMENTS: Package name (optional). If specified, only that package is processed; if omitted, all packages are processed in parallel.
11
11
 
12
- ## 작업 방법
12
+ ## Workflow
13
13
 
14
14
  ```mermaid
15
15
  flowchart TD
16
- A[인자 파싱] --> B{패키지명 지정?}
17
- B -- Yes --> C[README.md 생성]
18
- B -- No --> D[public 패키지 목록 수집]
19
- D --> E[패키지별 Agent 병렬 실행]
20
- E -- Agent --> C
16
+ A[Parse arguments] --> B{Package name specified?}
17
+ B -- Yes --> C[Generate README.md]
18
+ B -- No --> D[Collect public package list]
19
+ D --> E[Run Agent per package in parallel]
20
+ E -- Each Agent --> C
21
21
  ```
22
22
 
23
- ### A. 인자 파싱
23
+ ### A. Parse Arguments
24
24
 
25
- 스킬 호출 전달된 ARGUMENTS에서 패키지명을 추출하라.
25
+ Extract the package name from the ARGUMENTS passed when invoking the skill.
26
26
 
27
- - **패키지명 지정됨** → `packages/` 하위에서 해당 디렉토리를 찾아 바로 **C. README.md 생성**으로 이동.
28
- - **패키지명 미지정** → **D. public 패키지 목록 수집**으로 이동.
27
+ - **Package name specified** Find the corresponding directory under `packages/` and proceed directly to **C. Generate README.md**.
28
+ - **Package name not specified** Proceed to **D. Collect public package list**.
29
29
 
30
- ### C. README.md 생성
30
+ ### C. Generate README.md
31
31
 
32
- 대상 패키지 하나에 대해 아래를 수행하라.
32
+ Perform the following for a single target package.
33
33
 
34
- #### C-1. package.json 분석
34
+ #### C-1. Analyze package.json
35
35
 
36
- `packages/<name>/package.json`을 읽어라:
36
+ Read `packages/<name>/package.json`:
37
37
 
38
- 1. `name` `description`을 확인하라.
39
- 2. `"private": true`이면 해당 패키지를 **건너뛰어라**.
40
- 3. 패키지 진입점 소스코드가 무엇인지 확인하라.
38
+ 1. Check the `name` and `description` fields.
39
+ 2. If `"private": true`, **skip** this package.
40
+ 3. Identify the package entry point source code.
41
41
 
42
- #### C-2. 소스 코드 분석
42
+ #### C-2. Analyze Source Code
43
43
 
44
- 1. 진입점 파일 export를 재귀적으로 모두 읽어, 모든 public API를 수집하라.
45
- 2. JSDoc 주석이 있으면 항목의 설명으로 활용하라.
44
+ 1. Recursively read the entry point file and all exports to collect every public API.
45
+ 2. If JSDoc comments exist, use them as descriptions for each item.
46
46
 
47
- #### C-3. 문서 구조 결정 생성
47
+ #### C-3. Determine Document Structure and Generate
48
48
 
49
- 소스 코드의 규모와 논리적 카테고리 수를 보고, 아래 가지 적절한 구조를 **자율적으로** 판단하라:
49
+ Examine the source code size and the number of logical categories, then **autonomously** decide which of the two structures below is appropriate:
50
50
 
51
- - **단일 README.md**: 패키지가 작고 API가 적어 카테고리 분류가 불필요한 경우
52
- - **README.md + docs/*.md**: 패키지가 크거나 논리적 카테고리가 여러 개인 경우
51
+ - **Single README.md**: When the package is small, has few APIs, and category classification is unnecessary
52
+ - **README.md + docs/*.md**: When the package is large or has multiple logical categories
53
53
 
54
- 기존 README.md 또는 docs/가 있으면 기존 내용을 기반으로 **변경된 부분만 수정**하라. 기존 문서가 없으면 새로 생성하라.
55
- 구조가 변경되는 경우(BA) 불필요해진 `docs/` 디렉토리를 삭제하라.
56
- **영어**로 작성하라.
54
+ If an existing README.md or docs/ directory exists, **modify only the changed parts** based on the existing content. If no existing documentation exists, create it from scratch.
55
+ If the structure changes (B to A), delete the now-unnecessary `docs/` directory.
56
+ Write in **English**.
57
57
 
58
- #### C-4. package.json files 필드 관리
58
+ #### C-4. Manage package.json files Field
59
59
 
60
- `docs/` 디렉토리 생성·삭제 `package.json`의 `files` 배열을 함께 업데이트하라:
60
+ When creating or deleting the `docs/` directory, update the `files` array in `package.json` accordingly:
61
61
 
62
- - **구조 B 적용 시**: `files`에 `"docs"` 항목이 없으면 추가하라.
63
- - **구조 A 적용 시**: `files`에 `"docs"` 항목이 있으면 제거하라.
62
+ - **When applying Structure B**: If the `files` array does not contain `"docs"`, add it.
63
+ - **When applying Structure A**: If the `files` array contains `"docs"`, remove it.
64
64
 
65
65
  ---
66
66
 
67
- ##### 구조 A: 단일 README.md (소규모 패키지)
67
+ ##### Structure A: Single README.md (Small Packages)
68
68
 
69
- `packages/<name>/README.md` 파일을 생성하라:
69
+ Create the `packages/<name>/README.md` file:
70
70
 
71
71
  ```markdown
72
72
  # <package-name from package.json>
73
73
 
74
74
  > <description from package.json>
75
75
 
76
- <패키지의 주요 기능과 목적에 대한 상세 설명을 영어로 작성>
76
+ <Write a detailed description of the package's main features and purpose in English>
77
77
 
78
78
  ## API Reference
79
79
 
80
80
  ### <exportedName>
81
81
 
82
82
  ```typescript
83
- <export 시그니처 코드>
83
+ <export signature code>
84
84
  ```
85
85
 
86
- <해당 API에 대한 설명>
86
+ <Description of this API>
87
87
 
88
88
  ---
89
89
 
90
- (... 모든 exported 항목에 대해 반복 ...)
90
+ (... Repeat for all exported items ...)
91
91
 
92
92
  ## Usage Examples
93
93
 
94
94
  ```typescript
95
95
  import { ... } from "<package-name>";
96
96
 
97
- // 주요 사용 예제 코드
97
+ // Main usage example code
98
98
  ```
99
99
  ```
100
100
 
101
101
  ---
102
102
 
103
- ##### 구조 B: README.md + docs/*.md (대규모 패키지)
103
+ ##### Structure B: README.md + docs/*.md (Large Packages)
104
104
 
105
- **README.md** — `packages/<name>/README.md` 파일을 생성하라:
105
+ **README.md** — Create the `packages/<name>/README.md` file:
106
106
 
107
107
  ```markdown
108
108
  # <package-name from package.json>
109
109
 
110
110
  > <description from package.json>
111
111
 
112
- <패키지의 주요 기능과 목적에 대한 상세 설명을 영어로 작성>
112
+ <Write a detailed description of the package's main features and purpose in English>
113
113
 
114
114
  ## Documentation
115
115
 
116
116
  | Category | Description |
117
117
  |----------|-------------|
118
- | [<Category1>](docs/<category1>.md) | <카테고리 설명 주요 항목 나열> |
119
- | [<Category2>](docs/<category2>.md) | <카테고리 설명 주요 항목 나열> |
118
+ | [<Category1>](docs/<category1>.md) | <Category description and list of key items> |
119
+ | [<Category2>](docs/<category2>.md) | <Category description and list of key items> |
120
120
  | ... | ... |
121
121
  ```
122
122
 
123
- **docs/*.md** — 카테고리별로 `packages/<name>/docs/<category>.md` 파일을 생성하라:
123
+ **docs/*.md** — Create a `packages/<name>/docs/<category>.md` file for each category:
124
124
 
125
125
  ```markdown
126
126
  # <Category Name>
@@ -128,39 +128,39 @@ import { ... } from "<package-name>";
128
128
  ## <exportedName>
129
129
 
130
130
  ```typescript
131
- <export 시그니처 코드>
131
+ <export signature code>
132
132
  ```
133
133
 
134
- <해당 API에 대한 설명>
134
+ <Description of this API>
135
135
 
136
136
  ---
137
137
 
138
- (... 카테고리의 모든 exported 항목에 대해 반복 ...)
138
+ (... Repeat for all exported items in this category ...)
139
139
 
140
140
  ## Usage Examples
141
141
 
142
142
  ```typescript
143
143
  import { ... } from "<package-name>";
144
144
 
145
- // 카테고리의 주요 사용 예제 코드
145
+ // Main usage example code for this category
146
146
  ```
147
147
  ```
148
148
 
149
- 카테고리명과 분류는 소스 코드의 디렉토리 구조, 기능적 유사성 등을 고려하여 자율적으로 결정하라.
149
+ Determine category names and classifications autonomously, considering the source code directory structure, functional similarity, etc.
150
150
 
151
151
  ---
152
152
 
153
- ### D. public 패키지 목록 수집
153
+ ### D. Collect Public Package List
154
154
 
155
- `packages/*/package.json`을 Glob으로 탐색하되, `private: true`인 패키지는 제외하라.
155
+ Use Glob to search `packages/*/package.json`, excluding packages with `private: true`.
156
156
 
157
157
  ---
158
158
 
159
- ### E. 패키지별 Agent 병렬 실행
159
+ ### E. Run Agent Per Package in Parallel
160
160
 
161
- 남은 패키지에 대해 Agent 도구를 사용하여 **병렬로** 다음 프롬프트를 전달하라:
161
+ For each remaining package, use the Agent tool to pass the following prompt **in parallel**:
162
162
  ```
163
- /sd-readme <패키지명>
163
+ /sd-readme <package-name>
164
164
  ```
165
165
 
166
- 모든 subagent가 완료되면 종료.
166
+ Terminate once all subagents have completed.