一键导入
test-driven-development
새 도구 개발 또는 버그 수정 시 실패하는 테스트를 먼저 작성하고, 구현 후 통과를 확인. superpowers의 test-driven-development 기반.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
새 도구 개발 또는 버그 수정 시 실패하는 테스트를 먼저 작성하고, 구현 후 통과를 확인. superpowers의 test-driven-development 기반.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
BM25 Okapi 알고리즘을 사용하여 법령/판례 API 결과를 관련도 순으로 재랭킹합니다. search_enhance_tools.py와 bm25_search.py 구현 시 참조.
법령/판례 캐시 데이터 관리 시 사용. 캐시 저장/로드, 만료 처리, 지식 그래프 동기화. 성능 최적화 및 API 호출 최소화를 위해 캐싱 구현 시 참조.
법제처 OPEN API를 MCP 프로젝트에 통합할 때 사용. lawSearch.do와 lawService.do 엔드포인트, target 파라미터로 기능 구분. 새로운 API 엔드포인트 통합 시 참조.
도구 실패/API 오류 발생 시 4단계 근본 원인 분석 후 수정. 증상 수정이 아닌 원인 수정. superpowers의 systematic-debugging 기반.
도구 개발/개선 완료 선언 전 반드시 실제 API 호출 테스트를 수행하고 증거를 기록할 때 사용. superpowers의 verification-before-completion 기반.
Tool에서 API 호출 시 컨텍스트 처리. streamable-http와 stdio transport 모두 지원. with_context() 패턴으로 전역 컨텍스트 fallback 자동 처리.
| name | test-driven-development |
| description | 새 도구 개발 또는 버그 수정 시 실패하는 테스트를 먼저 작성하고, 구현 후 통과를 확인. superpowers의 test-driven-development 기반. |
원본: superpowers/test-driven-development MCP 한국 법령 프로젝트에 맞게 커스터마이징
실패하는 테스트 없이 프로덕션 코드를 작성하지 않는다.
새 도구 개발 시:
# tests/test_api_regression.py에 추가
def test_new_tool_returns_results(self, legislation_client):
result = legislation_client.search(
target="NEW_TARGET",
params={"query": "테스트", "type": "JSON", "display": 5}
)
assert result is not None
assert not result.get("error")
버그 수정 시:
# 버그를 재현하는 테스트
def test_tool_handles_empty_query(self, legislation_client):
"""빈 검색어에 대한 에러 처리 확인"""
result = legislation_client.search(
target="law",
params={"query": "", "type": "JSON"}
)
# 빈 검색어에도 적절한 응답 반환
assert result is not None
.venv/bin/python -m pytest tests/test_api_regression.py::TestAPIRegression::test_new_tool -v
반드시 확인:
도구를 구현하여 테스트를 통과시킴:
@mcp.tool(name="new_tool", description="...")
def new_tool(query: Annotated[str, "..."]) -> TextContent:
result = with_context(
None, "new_tool",
lambda context: context.law_api.search(
target="NEW_TARGET", query=query
)
)
return TextContent(type="text", text=str(result))
# 새 테스트 통과 확인
.venv/bin/python -m pytest tests/test_api_regression.py::TestAPIRegression::test_new_tool -v
# 전체 테스트 회귀 확인
.venv/bin/python -m pytest tests/ -v --tb=short
테스트가 통과한 후에만:
정리 후에도 테스트가 통과하는지 재확인.
type: "development" 작업 선택tests/test_api_regression.py에 추가