@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.
- package/claude/rules/sd-claude-rules.md +12 -6
- package/claude/rules/sd-library-issue.md +7 -0
- package/claude/rules/sd-simplysm-usage.md +5 -5
- package/claude/sd-statusline.py +5 -2
- package/claude/skills/sd-api-review/SKILL.md +49 -53
- package/claude/skills/sd-check/SKILL.md +45 -41
- package/claude/skills/sd-commit/SKILL.md +31 -31
- package/claude/skills/sd-debug/SKILL.md +77 -68
- package/claude/skills/sd-document/SKILL.md +56 -56
- package/claude/skills/sd-document/__pycache__/_common.cpython-313.pyc +0 -0
- package/claude/skills/sd-email-analyze/SKILL.md +22 -22
- package/claude/skills/sd-init/SKILL.md +63 -63
- package/claude/skills/sd-plan/SKILL.md +127 -66
- package/claude/skills/sd-readme/SKILL.md +59 -59
- package/claude/skills/sd-review/SKILL.md +42 -35
- package/claude/skills/sd-simplify/SKILL.md +37 -30
- package/package.json +4 -1
- package/scripts/cli.mjs +12 -0
- package/scripts/postinstall.mjs +20 -4
|
@@ -1,102 +1,102 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sd-init
|
|
3
|
-
description: "
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
18
|
+
3. Otherwise → npm
|
|
19
19
|
|
|
20
|
-
## Step 2:
|
|
20
|
+
## Step 2: Analyze Scripts
|
|
21
21
|
|
|
22
|
-
`package.json
|
|
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`
|
|
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
|
-
|
|
40
|
+
Combine the information above and write `CLAUDE.md` in the project root:
|
|
41
41
|
|
|
42
|
-
-
|
|
43
|
-
- **PM**:
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
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
|
-
|
|
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
|
|
56
|
+
pnpm monorepo. Package paths: `packages/*`, tests: `tests/*`
|
|
57
57
|
|
|
58
|
-
##
|
|
58
|
+
## Commands
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
`[targets..]
|
|
62
|
-
|
|
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 #
|
|
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..] #
|
|
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..] #
|
|
92
|
-
pnpm check [targets..] #
|
|
93
|
-
pnpm vitest [targets..] # vitest
|
|
94
|
-
pnpm vitest run [targets..] #
|
|
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
|
-
|
|
99
|
+
Dependency direction: top → bottom. `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/`
|
|
113
|
+
Located in the `tests/` folder. Run with `pnpm vitest run tests/orm`, etc.
|
|
114
114
|
|
|
115
|
-
- `tests/orm` — DB
|
|
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`
|
|
121
|
-
- `console.*`
|
|
122
|
-
- `Buffer`
|
|
123
|
-
- SolidJS: props
|
|
124
|
-
- Prettier: 100
|
|
120
|
+
- `import type` required (`verbatimModuleSyntax`), `#private` forbidden → use `private` keyword
|
|
121
|
+
- `console.*` forbidden, `if (str)` forbidden → use 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
|
|
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:
|
|
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
|
-
-
|
|
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
|
-
|
|
55
|
+
Classify the task first, then apply the matching TDD approach:
|
|
25
56
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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 test → confirm PASS
|
|
30
61
|
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
36
|
-
2. **의존성 분석**: 항목 간 의존 관계를 파악하라. ("A가 정해져야 B를 질문 가능" → B는 A에 의존)
|
|
37
|
-
3. **질문**: 의존 대상이 없는 항목들을 AskUserQuestion 도구 **하나당 단 하나의 질문**만 하라. 각 질문에 2~5개 선택지를 제시하라.
|
|
38
|
-
- `한건의 설명제시 -> AskUserQuestion` 반복
|
|
39
|
-
4. **반영**: 답변을 모두 반영하여 계획서를 업데이트하고, 1번으로 돌아가라.
|
|
73
|
+
### 2-2. Clarification Cycle
|
|
40
74
|
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
89
|
+
### Ambiguity Criteria
|
|
48
90
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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.
|
|
69
|
-
2.
|
|
70
|
-
-
|
|
71
|
-
- "
|
|
72
|
-
-
|
|
73
|
-
3.
|
|
74
|
-
4.
|
|
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
|
-
|
|
128
|
+
Once all unclear items have been resolved, present the completed plan to the user and request implementation approval via AskUserQuestion.
|
|
81
129
|
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
- `{topic}`:
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
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
|
+
```
|