tidy
npx skills add https://github.com/ssiumha/dots --skill tidy
Agent 安装分布
Skill 文档
Tidy
Kent Beckì “Tidy First?” ë°©ë²ë¡ ì¼ë¡ ìì 구조ì ì 리를 ìíí©ëë¤.
íµì¬ ì² í
- Tidying â Refactoring: ëª ë¶ ë´ ìë£ëë ìì ì 리
- 1 tidying = 1 commit: ê° tidyingì ë°ëì ë³ë 커ë°
- ì°ì ì¤í ê°ë¥: ì¬ë¬ tidying ìí ì ì¬ë¬ ì»¤ë° ìì±
WHY: 1 tidying = 1 commit
- ëë리기 ì¬ì´ ë¨ì
- ê° ë³ê²½ì ê°ë³ ì¶ì ê°ë¥
- 문ì ë°ì ì í¹ì tidyingë§ revert
DECISION: ë³ë 커ë°
- ì´ì : revert ì©ì´, 리뷰 ëª í
- ëì: 기ë¥ê³¼ í¨ê» ì»¤ë° (ê±°ë¶: 문ì ìì¸ ì¶ì ì´ë ¤ì)
ìë í¸ë¦¬ê±°
| ì¡°ê±´ | ìì |
|---|---|
| “tidy” + ìì ëì¬ | “ì½ë ì 리í´ì¤”, “tidy í´ì¤” |
| ê¸°ë¥ ë³ê²½ ì ì 리 ìì² | “ì´ê±° ìì ì ì ì¢ ì 리íê³ ì¶ì´” |
| í¹ì í¨í´ ì¸ê¸ | “guard clauseë¡ ë°ê¿ì¤”, “dead code ì ê±°” |
Instructions
ìí¬íë¡ì° 1: ìì ìì íì
-
ê¸°ì¤ ì»¤ë° íì¸ (tidy ì»¤ë° ì ì¸)
# tidy: 커ë°ì ì ì¸í ìµê·¼ ì»¤ë° git log --format='%H %s' --grep='^tidy:' --invert-grep -n 1ì´ ì»¤ë°ì´ í ì¤í¸ íµê³¼ì 기ì¤ì ì´ ë©ëë¤.
-
컨í ì¤í¸ íì¸
git status git diff --stat -
ëì íì¼ í¹ì (ì°ì ìì ì)
- ì¬ì©ìê° ëª ìí íì¼
- git diffì ìë ìì íì¼ â ì ì²´ ëìì¼ë¡ ìë ì§í
- git diffê° ë¹ì´ìê³ ëª ì íì¼ë ìë ê²½ì°ìë§ â AskUserQuestion
-
íì¼ ë¶ì (code-analysis.md ì¤ì)
- < 200ì¤: ì ì²´ Read íì©
- 200-500ì¤: ast-grep ëë ë¶ë¶ Read
- 500ì¤+: Explore subagent íì
ìí¬íë¡ì° 2: ì ì²´ Survey
ëì íì¼ ì 체를 ì¤ìºíì¬ ì ì© ê°ë¥í tidying í보를 íë²ì ìì§íë¤.
íì ì°ì ìì:
| ì°ì ìì | í¨í´ | ê°ì§ ì í¸ | ì í ì´ì |
|---|---|---|---|
| 1 | Guard Clause | ê¹ì ì¤ì²©, if-else ì²´ì¸ | ì¤ì²© ê°ìë¡ ë²ê·¸ ì¶ì ì©ì´ |
| 2 | Dead Code | 미ì¬ì© í¨ì/ë³ì, 주ì ì½ë | í¼ë ì ê±°, ì¤í ë°©ì§ |
| 3 | Explaining Variable | ë³µì¡í 조건문, ë§¤ì§ ëë² | ìë ëª íí |
| 4 | Normalize Symmetries | ë¹ì¼ê´ì í¨í´ | ì¼ê´ì± íë³´ (â ï¸ ì°ì°í ì ì¬ì± 주ì) |
| 5 | Reading Order | í¨ì ìì ë¶ì¼ì¹ | íë¦ ê°ì |
| 6 | Cohesion Order | ê´ë ¨ ì½ë ë¶ì° | ìì§ë í¥ì |
Dead Code íì§ (ìì íì¼ ë²ì ë´):
- 주ì ì²ë¦¬ë ì½ë ë¸ë¡
- íì¼ ë´ ë¯¸í¸ì¶ private í¨ì
- 미ì¬ì© ë¡ì»¬ ë³ì
- ì ì²´ íë¡ì í¸ ì¤ìºì ë²ì ì´ê³¼ â ë³ë ìì ì¼ë¡
ìì¸ í¨í´: resources/01-tidying-patterns.md 참조
â ï¸ ì°ì°í ì ì¬ì± vs ì§ì§ ì¤ë³µ
| êµ¬ë¶ | ì§ì§ ì¤ë³µ | ì°ì°í ì ì¬ì± |
|---|---|---|
| ì ì | ëì¼ ë¹ì¦ëì¤ ë¡ì§ | 구í ì ì¬, ëë©ì¸ ìì´ |
| í¹ì§ | ë³ê²½ ì í¨ê» ë°ë | ë 립 ì§í ê°ë¥ |
| íë | íµí© | ì ì§ |
íµí© ê¸ì§ ì í¸: ë¤ë¥¸ ìí°í°/ëë©ì¸, ì ë¤ë¦ íì, 조건문 ì¦ê°
Survey ê²°ê³¼ íì â ë°ê²¬ë í보를 ë²í¸ 매긴 í ì´ë¸ë¡ ì¶ë ¥:
## Tidying Survey
| # | í¨í´ | ìì¹ | ë³ê²½ ìì½ | ìí¥ë |
|---|------|------|-----------|--------|
| 1 | Guard Clause | auth.ts:42 | 3ë¨ ì¤ì²© â early return | ê°ë
ì± â |
| 2 | Dead Code | auth.ts:78-85 | 주ì ì½ë ë¸ë¡ ì ê±° | í¼ë â |
| 3 | Explaining Variable | order.ts:15 | ë³µí© ì¡°ê±´ â ë³ì ì¶ì¶ | ìë ëª
í |
| ... | ... | ... | ... | ... |
ì´ {N}ê° ë°ê²¬. ì´ë»ê² ì§íí ê¹ì?
ëì íì¼ì´ ë§ì ê²½ì°: Explore subagent를 íì©íì¬ ë³ë ¬ ì¤ìºíë¤.
ìí¬íë¡ì° 3: ì í ë° ì ì©
-
ì¬ì©ì ì í ë기
Survey í ì´ë¸ ì¶ë ¥ í AskUserQuestionì¼ë¡ ì§í ë°©ì íì¸:
- ì ì²´ ì ì© â 모ë í보를 ììëë¡ ì ì©
- ë²í¸ ì í â í¹ì ë²í¸ë§ ì í (ì: “1, 3, 5”)
- í¨í´ ì í â í¹ì í¨í´ë§ (ì: “Guard Clauseë§”)
- ì·¨ì
-
ìì°¨ ì ì©
ì íë í보를 ììëë¡ ì ì©. ê° tidyingë§ë¤:
- ë³ê²½ ì ì©
- í ì¤í¸ íì¸ (ì¤ì ìì¹ ì°¸ì¡°)
- 커ë°:
git add {íì¼} && git commit -m "tidy: {í¨í´ëª } in {íì¼ëª }" - ì¤í¨ ì:
git restore {íì¼}+ í´ë¹ í목 skip ë³´ê³ í ë¤ìì¼ë¡
ì§ë¬¸ ìì´ ì°ì ì ì©: ì¬ì©ìê° ì íí í목ì ê°ë³ íì¸ ìì´ ì°ì ì§ííë¤.
-
ìë£ ë³´ê³
## Tidy ìë£ | # | í¨í´ | ìì¹ | ìí | |---|------|------|------| | 1 | Guard Clause | auth.ts:42 | â 커ë°ë¨ | | 2 | Dead Code | auth.ts:78 | â 커ë°ë¨ | | 3 | Explaining Variable | order.ts:15 | â í ì¤í¸ ì¤í¨ (skip) | {N}ê° ì¤ {M}ê° ì ì©, {K}ê° ì»¤ë° ìì±ë¨
ìí¬íë¡ì° 4: í¹ì í¨í´ ì ì©
ì¬ì©ìê° í¹ì í¨í´ì ìì²í ê²½ì°:
User: "guard clauseë¡ ë°ê¿ì¤"
â Guard Clause í¨í´ë§ ì§ì¤ íì
â í´ë¹ í¨í´ ì ì©
ì¤ì ìì¹
- ëì ë³ê²½ ê¸ì§: tidyingì êµ¬ì¡°ë§ ë³ê²½, ëìì ê·¸ëë¡
- í
ì¤í¸ íµê³¼ ì ì§: ê¸°ì¤ ì»¤ë°(tidy ì ì¸ ìµê·¼ 커ë°)ê³¼ ëì¼í í
ì¤í¸ ê²°ê³¼ ì ì§
- ìí¬íë¡ì° 1ìì íì¸í ê¸°ì¤ ì»¤ë°ì í ì¤í¸ ìí를 기ì¤ì¼ë¡ í¨
- export/public í¨ì ìì ì: ì ì²´ í ì¤í¸ (Task subagent)
- ë´ë¶ ë¡ì§ë§ ë³ê²½ ì: í´ë¹ íì¼ í ì¤í¸ë§
- í ì¤í¸ ìë ê²½ì°: WARNING í ê³ì
- ì¤í¨ ì: ìë
git restore {íì¼}+ ë³´ê³
- 1 tidying = 1 commit: ì¬ë¬ tidying ì¤í ì ê°ê° ë³ë 커ë°
- ëë리기 ì½ê²: ë 립ì ì¸ ì»¤ë°ì¼ë¡ ê°ë³ revert ê°ë¥
Examples
기본 ì¬ì©
User: "ì´ í¨ì ì 리í´ì¤"
â ìí¬íë¡ì° 1: ëì íì¼ ë¶ì
â ìí¬íë¡ì° 2: ì ì²´ Survey â 5ê° íë³´ í
ì´ë¸ ì¶ë ¥
â User: "ì ì²´ ì ì©"
â ìí¬íë¡ì° 3: 5ê° ì°ì ì ì© â 5ê° ì»¤ë°
â ìë£ ë³´ê³ í
ì´ë¸
ì í ì ì©
User: "/tidy"
â ìí¬íë¡ì° 1 â 2: 8ê° íë³´ Survey
â User: "1, 3, 5ë²ë§"
â ìí¬íë¡ì° 3: 3ê° ì°ì ì ì© â 3ê° ì»¤ë°
â ìë£ ë³´ê³
í¹ì í¨í´ ìì²
User: "guard clauseë¡ ë°ê¿ì¤"
â ìí¬íë¡ì° 4: Guard Clause í¨í´ë§ Survey
â 2ê° ë°ê²¬ â í
ì´ë¸ ì¶ë ¥
â User: "ì ì²´ ì ì©"
â 2ê° ì°ì ì ì© â 2ê° ì»¤ë°
í ì¤í¸ ì¤í¨ ì
User: "ì ì²´ ì ì©"
â #1 Guard Clause â â 커ë°
â #2 Dead Code â â í
ì¤í¸ ì¤í¨ â restore â skip
â #3 Rename â â 커ë°
â ìë£ ë³´ê³ : 3ê° ì¤ 2ê° ì ì©, 1ê° skip
Technical Details
ì»¤ë° ë©ìì§ íì
tidy: {í¨í´ëª
} in {íì¼ëª
}
- {구체ì ë³ê²½ ë´ì©}
ìì:
tidy: guard clause in auth.ts
- Convert nested if-else to early returns
- Reduce nesting depth from 4 to 1
tidy-commit agentìì ê´ê³
| tidy skill | tidy-commit agent |
|---|---|
| ì½ë 구조 ì 리 | ì»¤ë° ë¨ì ì 리 |
| ê¸°ë¥ ë³ê²½ ì | ìì ìë£ í |
| ì¬ì©ì ì§ì í¸ì¶ | proactive í¸ì¶ |
ì¡°í© ì¬ì©:
/tidy â ì½ë ì 리 â ê¸°ë¥ êµ¬í â tidy-commit â ì»¤ë° ì 리
리ìì¤
resources/01-tidying-patterns.md: 15ê°ì§ tidying í¨í´ ìì¸