Skip to content

choihooo/plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SET Tools

개인용 개발 μžλ™ν™” 및 생산성 도ꡬ ν‚€νŠΈ - 개인 ν”„λ‘œμ νŠΈμ™€ 싀무 ν”„λ‘œμ νŠΈ λͺ¨λ‘ 지원

νŠΉμ§•

  • μ»€λ§¨λ“œ: 자주 μ‚¬μš©ν•˜λŠ” μž‘μ—…μ„ μœ„ν•œ μŠ¬λž˜μ‹œ μ»€λ§¨λ“œ
  • μ—μ΄μ „νŠΈ: μ½”λ“œ 리뷰, ν…ŒμŠ€νŠΈ 생성 μ „λ¬Έ AI μ—μ΄μ „νŠΈ
  • μŠ€ν‚¬: λ¦¬νŒ©ν† λ§, μ΅œμ ν™”, ν’ˆμ§ˆ 검증 μžλ™ ν™œμ„±ν™” μŠ€ν‚¬
  • ν›…: 파일 λ³€κ²½ 검증, λ‘œκΉ… 이벀트 ν•Έλ“€λŸ¬
  • MCP 톡합: μ™ΈλΆ€ μ„œλΉ„μŠ€ 연동 (Serena, Playwright, 4.5v Vision)
  • ADR μ‹œμŠ€ν…œ: μ•„ν‚€ν…μ²˜ μ˜μ‚¬κ²°μ • 기둝 μžλ™ν™”
  • SPEC μ‹œμŠ€ν…œ: ν”Όμ²˜ μŠ€νŽ™ λ¬Έμ„œν™” 및 λ³€κ²½ 좔적 (EARS 기반)
  • TRUST 5: ν’ˆμ§ˆ 게이트 μžλ™ν™”

μ„€μΉ˜

방법 1: λ§ˆμΌ“ν”Œλ ˆμ΄μŠ€ (μΆ”μ²œ)

# Claude Codeμ—μ„œ μ‹€ν–‰
/plugin marketplace add choiho8621/set-tools

방법 2: 둜컬 심볼릭 링크

# ν”ŒλŸ¬κ·ΈμΈ λ””λ ‰ν† λ¦¬λ‘œ 이동
cd /path/to/set-tools

# μ„€μΉ˜ 슀크립트 μ‹€ν–‰
npm run link-plugin

# λ˜λŠ” 직접 μ‹€ν–‰
bash scripts/link.sh

방법 3: μˆ˜λ™ 볡사

# Claude Code ν”ŒλŸ¬κ·ΈμΈ 디렉토리에 볡사
cp -r /path/to/set-tools ~/.claude/plugins/set-tools

# Claude Code μž¬μ‹œμž‘

μ„€μΉ˜ 확인

# Claude Codeμ—μ„œ λ‹€μŒ μ»€λ§¨λ“œ μ‚¬μš© κ°€λŠ₯ 확인
/project-init
/spec-create
/quality-check
/trust-validate
/adr-create

ν”ŒλŸ¬κ·ΈμΈ ꡬ쑰

set-tools/
β”œβ”€β”€ .claude-plugin/
β”‚   └── plugin.json          # ν”ŒλŸ¬κ·ΈμΈ λ§€λ‹ˆνŽ˜μŠ€νŠΈ
β”œβ”€β”€ commands/                 # μŠ¬λž˜μ‹œ μ»€λ§¨λ“œ
β”‚   β”œβ”€β”€ adr-create.md        # ADR 생성
β”‚   β”œβ”€β”€ adr-list.md          # ADR λͺ©λ‘
β”‚   β”œβ”€β”€ spec-create.md       # SPEC 생성 (3-file structure)
β”‚   β”œβ”€β”€ spec-update.md       # SPEC λ³€κ²½ 및 CHANGELOG μ—…λ°μ΄νŠΈ
β”‚   β”œβ”€β”€ spec-diff.md         # SPEC 버전 비ꡐ
β”‚   β”œβ”€β”€ spec-list.md         # SPEC λͺ©λ‘ 쑰회
β”‚   β”œβ”€β”€ quality-check.md     # TRUST 5 ν’ˆμ§ˆ 검증
β”‚   └── trust-validate.md    # LSP ν’ˆμ§ˆ 게이트
β”œβ”€β”€ agents/                   # AI μ—μ΄μ „νŠΈ
β”‚   β”œβ”€β”€ code-reviewer.md
β”‚   └── test-generator.md
β”œβ”€β”€ skills/                   # μžλ™ ν™œμ„±ν™” μŠ€ν‚¬
β”‚   β”œβ”€β”€ adr-generator/       # ADR μžλ™ 생성
β”‚   β”œβ”€β”€ spec-generator/      # SPEC μžλ™ 생성 (EARS)
β”‚   β”œβ”€β”€ spec-updater/        # SPEC λ³€κ²½ 좔적 (CHANGELOG)
β”‚   └── trust-validator/     # TRUST 5 ν’ˆμ§ˆ 검증
β”œβ”€β”€ hooks/                    # 이벀트 ν•Έλ“€λŸ¬
β”‚   β”œβ”€β”€ hooks.json
β”‚   └── scripts/
β”‚       β”œβ”€β”€ validate-change.sh
β”‚       β”œβ”€β”€ check-command.sh
β”‚       └── log-prompt.sh
β”œβ”€β”€ scripts/                  # 헬퍼 μœ ν‹Έλ¦¬ν‹°
β”‚   β”œβ”€β”€ create-adr.sh        # ADR 파일 생성 슀크립트
β”‚   β”œβ”€β”€ adr-template.md      # ADR ν…œν”Œλ¦Ώ
β”‚   β”œβ”€β”€ create-spec.sh       # SPEC 파일 생성 슀크립트
β”‚   β”œβ”€β”€ spec-template.md     # SPEC μš”κ΅¬μ‚¬ν•­ ν…œν”Œλ¦Ώ (EARS)
β”‚   β”œβ”€β”€ plan-template.md     # κ΅¬ν˜„ κ³„νš ν…œν”Œλ¦Ώ
β”‚   β”œβ”€β”€ acceptance-template.md # 인수 κΈ°μ€€ ν…œν”Œλ¦Ώ (Given/When/Then)
β”‚   β”œβ”€β”€ check-quality.sh     # TRUST 5 ν’ˆμ§ˆ 검증 슀크립트
β”‚   └── helper.sh
β”œβ”€β”€ .trust.example.yaml      # TRUST 5 μ„€μ • μ˜ˆμ‹œ
└── README.md

μ‚¬μš©λ²•

μ»€λ§¨λ“œ

ADR 관리

  • /adr-create - μƒˆλ‘œμš΄ ADR λ¬Έμ„œ 생성 (λŒ€ν™”ν˜•)
  • /adr-list - λͺ¨λ“  ADR λͺ©λ‘ ν‘œμ‹œ

SPEC 관리 (EARS 기반)

  • /spec-create - μƒˆλ‘œμš΄ ν”Όμ²˜ SPEC 생성 (3-file ꡬ쑰)
  • /spec-update - SPEC λ³€κ²½ 및 CHANGELOG μžλ™ μ—…λ°μ΄νŠΈ
  • /spec-diff - SPEC 버전별 변경사항 비ꡐ
  • /spec-list - λͺ¨λ“  SPEC λͺ©λ‘ 및 μƒνƒœ 쑰회

TRUST 5 ν’ˆμ§ˆ 관리

  • /quality-check - TRUST 5 ν’ˆμ§ˆ 검증 μ‹€ν–‰
    • --tested: ν…ŒμŠ€νŠΈ 컀버리지 검증 (85%+)
    • --readable: 가독성 검증 (0 lint errors)
    • --unified: 톡일성 검증 (0 format issues)
    • --secured: λ³΄μ•ˆ 검증 (0 vulnerabilities)
    • --trackable: 좔적 κ°€λŠ₯μ„± 검증 (Conventional Commits)
    • --fix: μžλ™ μˆ˜μ • κ°€λŠ₯ν•œ ν•­λͺ© μˆ˜μ •
  • /trust-validate - LSP ν’ˆμ§ˆ 게이트 검증
    • --phase plan: κΈ°μ€€μ„  캑처
    • --phase run: νšŒκ·€ λ°©μ§€ 검증
    • --phase sync: μ΅œμ’… ν’ˆμ§ˆ 확인

μ—μ΄μ „νŠΈ

Claude Codeκ°€ μžλ™μœΌλ‘œ ν˜ΈμΆœν•˜λŠ” μ „λ¬Έ μ—μ΄μ „νŠΈ:

  • Code Reviewer: μ „λ¬Έ μ½”λ“œ 리뷰 및 ν’ˆμ§ˆ 뢄석
  • Test Generator: 포괄적인 ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ 생성

μŠ€ν‚¬

λ‹€μŒ μž‘μ—… μ‹œ μžλ™ ν™œμ„±ν™”:

μ˜μ‚¬κ²°μ • & λ¬Έμ„œν™”

  • ADR Generator: μ€‘μš”ν•œ μ˜μ‚¬κ²°μ •μ΄ ν•„μš”ν•  λ•Œ μžλ™μœΌλ‘œ μ œμ•ˆν•˜κ³  μ²΄κ³„μ μœΌλ‘œ λ„μ™€λ“œλ¦½λ‹ˆλ‹€
    • "μ–΄λ–€ 방식을 써야 ν• κΉŒ?" 같은 μ§ˆλ¬Έμ— μžλ™ 응닡
    • 심도 μžˆλŠ” μ§ˆλ¬Έμ„ 톡해 결정을 λͺ…ν™•ν•˜κ²Œ
    • κ²°μ • 과정을 ADR λ¬Έμ„œλ‘œ μžλ™ 정리
  • SPEC Generator: ν”Όμ²˜ 개발 μ‹œ EARS ν˜•μ‹μœΌλ‘œ μš”κ΅¬μ‚¬ν•­ μ •μ˜ 도움
    • "μƒˆλ‘œμš΄ κΈ°λŠ₯ κ°œλ°œν• κ²Œ" β†’ μžλ™μœΌλ‘œ ν”Όμ²˜ 이해 질문
    • EARS 5κ°€μ§€ μœ ν˜•μœΌλ‘œ μš”κ΅¬μ‚¬ν•­ μž‘μ„±
    • 3-file ꡬ쑰 (spec.md, plan.md, acceptance.md) 생성
  • SPEC Updater: μŠ€νŽ™ λ³€κ²½ 감지 및 CHANGELOG μžλ™ μ—…λ°μ΄νŠΈ
    • "μš”κ΅¬μ‚¬ν•­ λ³€κ²½" β†’ μžλ™μœΌλ‘œ 버전 κ²°μ •
    • Semantic Versioning (Major/Minor/Patch)
    • λ³€κ²½ μ΄μœ μ™€ 영ν–₯ 뢄석 기둝

ν’ˆμ§ˆ 관리

  • TRUST Validator: μ½”λ“œ λ³€κ²½ μ‹œ TRUST 5 ν’ˆμ§ˆ κΈ°μ€€ μžλ™ 검증
    • μ½”λ“œ λ³€κ²½ 감지 β†’ μžλ™μœΌλ‘œ ν’ˆμ§ˆ 검증
    • 5κ°€μ§€ ν’ˆμ§ˆ 원칙 검증 (Tested, Readable, Unified, Secured, Trackable)
    • LSP ν’ˆμ§ˆ 게이트 (Plan/Run/Sync 단계)
    • μžλ™ μˆ˜μ • κ°€λŠ₯ν•œ ν•­λͺ© μžλ™ μˆ˜μ •

μ½”λ“œ ν’ˆμ§ˆ

  • μ½”λ“œ λ¦¬νŒ©ν† λ§
  • μ„±λŠ₯ μ΅œμ ν™”
  • μ½”λ“œ ν˜„λŒ€ν™”
  • λ³΅μž‘λ„ κ°μ†Œ

SPEC μ‹œμŠ€ν…œ (EARS 기반)

EARS (Easy Approach to Requirements Syntax) 방법둠을 μ°¨μš©ν•œ 3-file ꡬ쑰둜 ν”Όμ²˜ μŠ€νŽ™μ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€:

파일 ꡬ쑰

docs/specs/{feature-name}/
β”œβ”€β”€ spec.md          # EARS ν˜•μ‹ μš”κ΅¬μ‚¬ν•­
β”œβ”€β”€ plan.md          # κ΅¬ν˜„ κ³„νš
β”œβ”€β”€ acceptance.md    # Given/When/Then 인수 κΈ°μ€€
└── CHANGELOG.md     # λ³€κ²½ 이λ ₯

EARS ν˜•μ‹ (5κ°€μ§€ μš”κ΅¬μ‚¬ν•­ μœ ν˜•)

  1. Ubiquitous (보편적): "μ‹œμŠ€ν…œμ€ ~ν•΄μ•Ό ν•œλ‹€" - 항상 참인 μš”κ΅¬μ‚¬ν•­
  2. Event-driven (이벀트 기반): "WHEN ~ν•˜λ©΄, IF ~라면, THEN ~ν•΄μ•Ό ν•œλ‹€" - 이벀트 응닡
  3. State-driven (μƒνƒœ 기반): "WHILE ~인 λ™μ•ˆ, ~ν•΄μ•Ό ν•œλ‹€" - μƒνƒœ μœ μ§€
  4. Unwanted (λ°”λžŒμ§ν•˜μ§€ μ•Šμ€): "μ‹œμŠ€ν…œμ€ ~ν•˜λ©΄ μ•ˆ λœλ‹€" - κΈˆμ§€λœ λ™μž‘
  5. Optional (선택적): "κ°€λŠ₯ν•˜λ‹€λ©΄, ~ν•΄μ•Ό ν•œλ‹€" - nice-to-have

SPEC 라이프사이클

  1. DRAFT - μš”κ΅¬μ‚¬ν•­ μˆ˜μ§‘ 쀑
  2. ACTIVE - μš”κ΅¬μ‚¬ν•­ ν™•μ •, κ΅¬ν˜„ μ€€λΉ„ μ™„λ£Œ
  3. IN_PROGRESS - κ΅¬ν˜„ μ§„ν–‰ 쀑
  4. COMPLETED - κ΅¬ν˜„ μ™„λ£Œ 및 인수 κΈ°μ€€ 톡과
  5. REJECTED - ν”Όμ²˜ μ·¨μ†Œ λ˜λŠ” κ±°λΆ€

μ‚¬μš© μ˜ˆμ‹œ

# μƒˆλ‘œμš΄ ν”Όμ²˜ μŠ€νŽ™ 생성
/spec-create
# Feature name: shopping-cart
# Description: μ‚¬μš©μžκ°€ ꡬ맀할 μ œν’ˆμ„ μž„μ‹œ μ €μž₯ν•˜κ³  μˆ˜λŸ‰μ„ κ΄€λ¦¬ν•˜λ©° 결제둜 λ„˜μ–΄κ°ˆ 수 μžˆλŠ” κΈ°λŠ₯

# docs/specs/shopping-cart/ 디렉토리 생성
# - spec.md: EARS ν˜•μ‹μœΌλ‘œ μš”κ΅¬μ‚¬ν•­ μ •μ˜ (18개 μš”κ΅¬μ‚¬ν•­)
# - plan.md: κ΅¬ν˜„ κ³„νš (21 tasks, 51 hours)
# - acceptance.md: Given/When/Then ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€ (9 scenarios)

# μš”κ΅¬μ‚¬ν•­ λ³€κ²½ μ‹œ
/spec-update
# μžλ™μœΌλ‘œ CHANGELOG.md에 λ³€κ²½ 이λ ₯ 기둝

TRUST 5 μ‹œμŠ€ν…œ

TRUST 5 ν’ˆμ§ˆ ν”„λ ˆμž„μ›Œν¬λ‘œ μžλ™μœΌλ‘œ μ½”λ“œ ν’ˆμ§ˆμ„ 보μž₯ν•©λ‹ˆλ‹€:

TRUST 5 원칙

  1. T - Tested (ν…ŒμŠ€νŠΈ μ™„λ£Œ)

    • ν…ŒμŠ€νŠΈ 컀버리지 85% 이상
    • νƒ€μž… μ—λŸ¬ 0개
    • μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈ 0개
  2. R - Readable (가독성)

    • Lint μ—λŸ¬ 0개
    • λͺ…ν™•ν•œ 넀이밍
    • μ μ ˆν•œ 주석
  3. U - Unified (톡일성)

    • μΌκ΄€λœ μ½”λ“œ ν¬λ§·νŒ…
    • ν”„λ‘œμ νŠΈ ν‘œμ€€ μ€€μˆ˜
    • EARS ν˜•μ‹ μš”κ΅¬μ‚¬ν•­ μ€€μˆ˜
  4. S - Secured (λ³΄μ•ˆ)

    • OWASP Top 10 μ€€μˆ˜
    • λ³΄μ•ˆ 취약점 0개
    • μ‹œν¬λ¦Ώ λ…ΈμΆœ 0개
  5. T - Trackable (좔적 κ°€λŠ₯μ„±)

    • Conventional Commits ν˜•μ‹
    • CHANGELOG μ—…λ°μ΄νŠΈ
    • 이슈/PR μ°Έμ‘°

LSP ν’ˆμ§ˆ 게이트

Plan 단계 (κ³„νš)

  • κΈ°μ€€ μƒνƒœ 캑처
  • .trust-baseline.json 생성
  • κΈ°μ‘΄ μ—λŸ¬/κ²½κ³  수 기둝

Run 단계 (μ‹€ν–‰)

  • νšŒκ·€ λ°©μ§€ 검증
  • μƒˆ μ—λŸ¬ 0개 (ν•„μˆ˜)
  • κ²½κ³  증가 ≀ 5개

Sync 단계 (동기화)

  • μ΅œμ’… ν’ˆμ§ˆ 확인
  • 총 μ—λŸ¬ 0개
  • 총 κ²½κ³  ≀ 10개

μ‚¬μš© μ˜ˆμ‹œ

# 전체 ν’ˆμ§ˆ 검증
/quality-check

# νŠΉμ • ν•­λͺ©λ§Œ 검증
/quality-check --tested    # ν…ŒμŠ€νŠΈ μ»€λ²„λ¦¬μ§€λ§Œ
/quality-check --secured   # λ³΄μ•ˆλ§Œ

# LSP ν’ˆμ§ˆ 게이트
/trust-validate --phase plan    # μž‘μ—… μ‹œμž‘ μ „
/trust-validate --phase run     # λ³€κ²½ 쀑간쀑간
/trust-validate --phase sync    # μ™„λ£Œ ν›„

# μžλ™ μˆ˜μ •
/quality-check --fix

Git Hooks 톡합

# pre-commit: Run 단계 검증
pre-commit β†’ /trust-validate --phase run

# pre-push: Sync 단계 검증
pre-push β†’ /trust-validate --phase sync

μ„€μ • 파일

# .trust.yaml
tested:
  min_coverage: 85

lsp_gates:
  run:
    max_new_errors: 0
  sync:
    max_errors: 0
    max_warnings: 10

MCP μ„œλ²„ 톡합

ν˜„μž¬ ν†΅ν•©λœ MCP μ„œλ²„:

Serena (μ‹œλ§¨ν‹± μ½”λ”© 도ꡬ)

  • mcp__serena__find_symbol: 심볼 검색
  • mcp__serena__replace_symbol_body: 심볼 λ‚΄μš© ꡐ체
  • mcp__serena__get_symbols_overview: 파일 κ°œμš”
  • mcp__serena__search_for_pattern: νŒ¨ν„΄ 검색
  • mcp__serena__list_memories: λ©”λͺ¨λ¦¬ 관리
  • mcp__serena__write_memory: λ©”λͺ¨λ¦¬ μ €μž₯

Playwright (λΈŒλΌμš°μ € μžλ™ν™”)

  • mcp__playwright__browser_navigate: νŽ˜μ΄μ§€ 이동
  • mcp__playwright__browser_snapshot: μ ‘κ·Όμ„± μŠ€λƒ…μƒ·
  • mcp__playwright__browser_click: 클릭
  • mcp__playwright__browser_type: ν…μŠ€νŠΈ μž…λ ₯
  • mcp__playwright__browser_take_screenshot: μŠ€ν¬λ¦°μƒ·

4.5v Vision (이미지 뢄석)

  • mcp__4_5v_mcp__analyze_image: 이미지 URL 뢄석

Web Reader (μ›Ή μ½˜ν…μΈ  μΆ”μΆœ)

  • mcp__web_reader__webReader: URLμ—μ„œ μ½˜ν…μΈ  μΆ”μΆœ

ν›…

μžλ™μœΌλ‘œ μˆ˜ν–‰:

  • 파일 μ“°κΈ° μ „ λ³€κ²½ 사항 검증
  • Bash λͺ…λ Ή λ‘œκΉ… (감사 좔적)
  • ν”„λ‘¬ν”„νŠΈ 뢄석 좔적

μ„€μ •

.claude-plugin/plugin.jsonμ—μ„œ μ»€μŠ€ν„°λ§ˆμ΄μ¦ˆ:

  • ν”ŒλŸ¬κ·ΈμΈ 메타데이터
  • μ»΄ν¬λ„ŒνŠΈ 경둜
  • ν›… μ„€μ •
  • MCP μ„œλ²„ μ„€μ •

개발

μ»€λ§¨λ“œ μΆ”κ°€

commands/에 μƒˆ .md 파일 생성:

---
name: your-command
description: μ»€λ§¨λ“œ μ„€λͺ…
---

μ»€λ§¨λ“œ κ΅¬ν˜„ λ‚΄μš©...

μ—μ΄μ „νŠΈ μΆ”κ°€

agents/에 μƒˆ .md 파일 생성:

---
description: μ—μ΄μ „νŠΈ μ „λ¬Έ λΆ„μ•Ό
capabilities:
  - κΈ°λŠ₯ 1
  - κΈ°λŠ₯ 2
---

μ—μ΄μ „νŠΈ μ§€μ‹œμ‚¬ν•­...

μŠ€ν‚¬ μΆ”κ°€

skills/에 μƒˆ 디렉토리와 SKILL.md 생성:

---
name: μŠ€ν‚¬ 이름
description: ν™œμ„±ν™” 쑰건
version: 1.0.0
---

μŠ€ν‚¬ μ§€μ‹œμ‚¬ν•­...

ν›… μΆ”κ°€

hooks/hooks.json에 ν•­λͺ© μΆ”κ°€:

{
  "EventName": [{
    "matcher": "ToolPattern",
    "hooks": [{
      "type": "command",
      "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/script.sh"
    }]
  }]
}

베슀트 ν”„λž™ν‹°μŠ€

  1. ${CLAUDE_PLUGIN_ROOT}: λͺ¨λ“  κ²½λ‘œμ— ν™˜κ²½λ³€μˆ˜ μ‚¬μš©
  2. Kebab-case λͺ…λͺ…: μΌκ΄€λœ 파일/디렉토리 λͺ…λͺ…
  3. λͺ…ν™•ν•œ μ„€λͺ…: λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈμ˜ λͺ…ν™•ν•œ λ¬Έμ„œν™”
  4. μ—λŸ¬ 핸듀링: ν›…μ˜ μ μ ˆν•œ μ—λŸ¬ 처리
  5. λ‘œκΉ…: 디버깅을 μœ„ν•œ 포괄적인 λ‘œκΉ…

λΌμ΄μ„ μŠ€

MIT


개인용으둜 μ œμž‘λ˜μ–΄ 싀무 ν”„λ‘œμ νŠΈμ—μ„œλ„ ν™œμš©

SPEC μ‹œμŠ€ν…œ: EARS ν˜•μ‹ μš”κ΅¬μ‚¬ν•­ μ •μ˜ TRUST 5 μ‹œμŠ€ν…œ: LSP ν’ˆμ§ˆ 게이트 μžλ™ν™”

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages