| name | implement |
| description | Use when user wants to implement tasks from a plan (PLN-XXX). Uses TDD internally (hidden from user), guides through task-by-task implementation with progress updates in user's preferred language. Triggered by "/implement" command or requests like "구현하고 싶어요" or "코드 작성해주세요". |
Implement
Overview
This skill implements tasks from plan documents (PLN-XXX) using Test-Driven Development (TDD) internally while showing clean progress updates to the user.
Use this skill when:
- User wants to implement a plan
- User says "/implement" or "구현하고 싶어요"
- User completed planning and is ready to code
- User asks to implement specific tasks from a plan
Output: Working code in src/, tests in tests/, updated plan document
Workflow
Step 1: Load Context
Goal: Understand user's background and the plan to implement.
Process:
Read CLAUDE.md from project root:
Read: CLAUDE.mdExtract:
- Preferred communication language
- Work domain
- Technical background
Find plan to implement:
- If user specified: "PLN-001을 구현하고 싶어요"
- If not specified, list available plans:
ls docs/plans/ - Ask user which plan to implement
Read plan document:
Read: docs/plans/PLN-XXX-YYYY-MM-DD-name.mdExtract from plan:
- Requirements
- Scenarios
- Tasks (with acceptance criteria)
- Verification commands
Step 2: Set Up Environment
Goal: Ensure project structure and dependencies are ready.
Process:
Check project structure exists:
ls src/ tests/If missing:
mkdir -p src testsCheck for virtual environment:
ls venv/If not exist, remind user:
- Korean: "먼저 가상 환경을 만들어주세요:
python -m venv venv그리고 활성화:source venv/bin/activate" - English: "Please create a virtual environment first:
python -m venv venvand activate it:source venv/bin/activate"
- Korean: "먼저 가상 환경을 만들어주세요:
Step 3: Choose Implementation Order
Goal: Determine which tasks to implement and in what order.
Process:
Show task list to user:
이 계획에는 3개 태스크가 있습니다: - Task 1: Facebook API 연동 [미완료] - Task 2: Instagram API 연동 [미완료] - Task 3: Excel 리포트 생성 [미완료] 어떤 순서로 구현할까요? 1. 순서대로 전부 구현 (Task 1 → 2 → 3) 2. 특정 태스크만 구현Get user's choice
Create implementation checklist with TodoWrite:
- One todo per task
- Mark as pending initially
Step 4: Implement Each Task (TDD Cycle)
Goal: Implement one task at a time using TDD (hidden from user).
For each task, repeat:
4.1. Announce Task Start
AI: Task 1 시작: Facebook API 연동
페이스북에서 좋아요, 댓글, 공유 수를 가져오는 기능을 만들겠습니다.
Update TodoWrite: Mark task as in_progress
4.2. TDD Cycle (Internal - Hidden from User)
Read TDD guide:
Read: references/tdd-guide.md
Process (internal):
Write test first in
tests/test_<module>.py- Use pytest
- Add
@pytest.mark.scnXXXmarker to map to scenarios - Cover acceptance criteria from plan
Run test → RED (should fail)
pytest tests/test_<module>.py -vImplement minimal code in
src/<module>.py- Read common patterns:
Read: references/common-patterns.md - Read library recommendations:
Read: references/library-recommendations.md - Write clean, simple code
- Read common patterns:
Run test → GREEN (should pass)
pytest tests/test_<module>.py -vIf test fails 3 consecutive times (same test, same error):
- Auto-trigger debug skill:
Skill: debug - Provide debug context: error message, test code, implementation code
- Wait for debug result
- If debug fixes issue → Continue with GREEN
- If debug escalates → Inform user, wait for guidance
- Auto-trigger debug skill:
Refactor if needed
- Clean up code
- Add error handling
- Add logging
DO NOT show test code to user - only show implementation code when asked.
4.3. Show Progress to User
After test passes:
AI: Task 1 완료 ✅
src/facebook_client.py를 생성했습니다.
페이스북 API에 연결하고 engagement 데이터를 가져올 수 있습니다.
사용 방법:
```python
from src.facebook_client import FacebookClient
client = FacebookClient(api_key="...")
data = client.fetch_engagement(page_id="우리회사")
print(data) # {'likes': 100, 'comments': 20, 'shares': 5}
```
Update TodoWrite: Mark task as completed
4.4. Mark Task in Plan Document
python scripts/mark_task_done.py docs/plans/PLN-XXX-... 1
This checks all acceptance criteria checkboxes for Task 1.
4.5. Handle Dependencies
If task requires dependencies:
Inform user:
이 태스크는 facebook-sdk 라이브러리가 필요합니다. 설치하시겠어요? `pip install facebook-sdk`Wait for user confirmation
Update requirements.txt:
# If requirements.txt doesn't exist, create it # Add new dependency with version facebook-sdk==3.1.0
Step 5: Integration and End-to-End Test
Goal: Verify all tasks work together for each scenario.
Process:
After all tasks for a scenario are complete, create main script:
# src/report_generator.py from facebook_client import FacebookClient from instagram_client import InstagramClient from excel_generator import generate_excel def main(): # Integrate all components pass if __name__ == '__main__': main()Check scenario coverage (automated):
python scripts/check_scenario_coverage.py docs/plans/PLN-XXX-...This checks:
- All scenarios in plan have tests with @pytest.mark.scnXXX
- Runs tests for each scenario
- Reports coverage and results
Output example:
Found 3 scenario(s): SCN-001, SCN-002, SCN-003 ✓ SCN-001: Tests found (2 file(s)) ✅ PASS (5 test(s)) ✓ SCN-002: Tests found (1 file(s)) ✅ PASS (2 test(s)) ⚠️ SCN-003: No tests found Summary: Scenario Coverage: 2/3 (67%) Test Results: 2/2 passingIf any scenario uncovered:
- Phase 1: Show warning, don't block
- Ask user: "SCN-003에 테스트가 없습니다. 지금 추가할까요, 나중에 할까요?"
- User can choose to add now or defer
Run scenario verification from plan document:
python src/report_generator.pyCheck expected output:
- File created?
- Correct content?
- Matches scenario expectations?
If verification passes:
AI: SCN-001 검증 완료 ✅ reports/engagement-2025-10-26.xlsx 파일이 생성되었습니다. 시나리오에 정의된 대로 작동합니다!If verification fails → Use debug skill
Update plan status to completed:
python scripts/update_plan_status.py docs/plans/PLN-XXX-... completedThis updates the plan's YAML frontmatter:
- status: completed
- verified: true
- verification_date: YYYY-MM-DD
- updated: YYYY-MM-DD
Step 6: Documentation Update
Goal: Update docs/architecture/ with how the implementation works.
Process:
Create architecture document:
Write: docs/architecture/PLN-XXX-implementation.mdDocument structure:
# PLN-XXX Implementation ## Overview [Brief description of what was built] ## Components ### src/facebook_client.py - Purpose: Connect to Facebook API and fetch engagement data - Key functions: - `fetch_engagement(page_id)`: Returns dict with likes, comments, shares ### src/excel_generator.py - Purpose: Generate Excel report from engagement data - Key functions: - `generate_excel(data, output_path)`: Creates formatted Excel file ## Dependencies - facebook-sdk==3.1.0 - openpyxl==3.1.2 ## Usage ```bash python src/report_generator.pyHow It Works
- Reads API credentials from .env
- Fetches data from Facebook and Instagram
- Calculates total engagement
- Generates Excel file with two sheets
Inform user:
구현 문서를 작성했습니다: docs/architecture/PLN-001-implementation.md 나중에 참고할 수 있도록 작동 방식을 기록했습니다.
Step 7: Git Commit
Goal: Create commit referencing the plan ID.
Process:
Show changes:
git status git diffAsk user if ready to commit:
변경사항을 커밋할까요? - src/ 폴더에 새 파일 추가 - tests/ 폴더에 테스트 추가 - docs/plans/PLN-001-... 업데이트 (태스크 완료 체크) - docs/architecture/PLN-001-implementation.md 추가If user agrees:
git add src/ tests/ docs/ git commit -m "Implement Tasks 1-3 from PLN-001 - Add Facebook API client - Add Instagram API client - Add Excel report generator - Complete SCN-001: Daily engagement report Ref: PLN-001"
Step 8: Next Steps Guidance
Goal: Guide user on what to do next.
Process:
If all tasks complete:
모든 태스크 구현 완료! ✅ 다음 단계: 1. 실제 데이터로 테스트해보세요: `python src/report_generator.py` 2. 문제가 생기면 [debug] 스킬 사용하기 3. 새 기능 추가는 새 계획(PLN-002)을 먼저 작성하세요 "/debug" 또는 "/plan"을 입력하세요.If partial completion:
Task 1-2 완료! ✅ (Task 3 남음) 계속 구현할까요? 1. 다음 태스크 구현 (Task 3) 2. 여기서 중단하고 나중에 계속
Key Principles
TDD is Hidden from User
DO:
- Write tests first (internally)
- Run tests to verify (internally)
- Only show code to user when tests pass
DON'T:
- Show test code to user (unless they ask)
- Mention pytest in regular updates
- Explain testing process to user
User sees: "Task 1 완료 ✅"
User doesn't see: "Wrote test_facebook_client.py, ran pytest, all tests passed"
Progressive Implementation
One task at a time:
- Complete Task 1 fully → Show user → Mark done
- Then Task 2 → Show user → Mark done
- Don't try to do everything at once
Why: Easier to debug, user can test incrementally
Communication in User's Language
Adapt technical depth based on user's background (from CLAUDE.md):
- Non-technical: Simple explanations, avoid jargon
- Semi-technical: Use library names, show code examples
- Technical: Full technical details
Example (non-technical):
페이스북에 연결하는 코드를 만들었습니다.
API 키를 .env 파일에 넣으면 데이터를 가져올 수 있어요.
Example (semi-technical):
facebook-sdk 라이브러리를 사용해서 FacebookClient 클래스를 만들었습니다.
.env 파일의 FACEBOOK_API_KEY로 인증하고, fetch_engagement() 메서드로 데이터를 가져옵니다.
Use Common Patterns
Load references as needed:
Read: references/common-patterns.md
Find patterns for:
- CSV/Excel file I/O
- API calls
- Date/time handling
- Error handling
- Logging
Don't reinvent - use proven patterns.
Library Selection
Load library recommendations:
Read: references/library-recommendations.md
Based on domain (from CLAUDE.md):
- Marketing → requests, openpyxl, facebook-sdk, instagrapi
- Finance → pandas, openpyxl, pdfplumber
- Sales → requests, openpyxl
- HR → requests, openpyxl, PyYAML
Prefer built-in libraries when possible.
Troubleshooting
Tests Keep Failing
Symptom: Test fails after 2-3 attempts to fix
Solution:
- Review test expectations - Are they realistic?
- Check implementation logic - Is there a fundamental error?
- Simplify - Break into smaller functions
- Ask for help - External validation might reveal issue
Inform user:
Task 1을 구현하는 중 문제가 발생했습니다.
Facebook API 인증에서 오류가 나는데, API 키가 올바른지 확인해주시겠어요?
Be specific about what's needed.
Missing Dependencies
Symptom: Import error when running code
Solution:
- Identify missing library
- Install:
pip install <library> - Add to requirements.txt
- Re-run test
Inform user:
openpyxl 라이브러리가 필요합니다.
설치할까요? `pip install openpyxl`
User Wants to See Test Code
Symptom: "테스트 코드 보여주세요"
Solution:
AI: 테스트 코드는 tests/test_facebook_client.py에 있습니다.
[Shows test code]
pytest로 실행할 수 있습니다: `pytest tests/ -v`
It's okay to show tests when asked - just don't show them proactively.
Task Dependencies Are Wrong
Symptom: Task 3 needs Task 1, but they're defined independently
Solution:
- Identify dependency
- Implement in correct order (Task 1 → Task 3)
- Update plan if needed to clarify dependencies
Resources
scripts/
mark_task_done.py- Mark task as completed in plan document (checks all acceptance criteria)update_plan_status.py- Update plan status in YAML frontmatter (pending → in_progress → completed)check_scenario_coverage.py- Check if all scenarios have tests with pytest markers, run tests per scenario
references/
tdd-guide.md- TDD workflow (hidden from user): RED → GREEN → REFACTOR cycle, testing patternscommon-patterns.md- Ready-to-use code patterns for CSV, Excel, API, dates, logging, error handlinglibrary-recommendations.md- Domain-specific library recommendations (marketing, finance, sales, HR, data processing)
Example Session
User: /implement
AI: [Loads CLAUDE.md and finds plans]
AI: 어떤 계획을 구현할까요?
1. PLN-001-2025-10-26-social-media-report.md
User: PLN-001이요
AI: [Reads plan document]
PLN-001에는 3개 태스크가 있습니다:
- Task 1: Facebook API 연동
- Task 2: Instagram API 연동
- Task 3: Excel 리포트 생성
순서대로 전부 구현할까요?
User: 네
AI: [Creates TodoWrite todos]
좋습니다! Task 1부터 시작하겠습니다.
AI: [Internally: writes test, implements code, runs test → GREEN]
Task 1 완료 ✅
src/facebook_client.py를 생성했습니다.
[Shows usage example]
AI: [Marks task done in plan]
AI: Task 2 시작: Instagram API 연동...
[Repeats TDD cycle]
Task 2 완료 ✅
AI: Task 3 시작: Excel 리포트 생성...
openpyxl 라이브러리가 필요합니다.
설치할까요? `pip install openpyxl`
User: 네
AI: [Installs, updates requirements.txt, implements Task 3]
Task 3 완료 ✅
AI: 모든 태스크 완료! SCN-001 검증을 시작합니다...
[Runs: python src/report_generator.py]
✅ reports/engagement-2025-10-26.xlsx 생성 완료!
시나리오대로 작동합니다.
AI: [Creates architecture doc, commits]
구현 완료! 변경사항을 커밋했습니다.
다음 단계:
1. 실제 데이터로 테스트: `python src/report_generator.py`
2. 문제 발생 시: "/debug"
3. 새 기능 추가: "/plan"