Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MQjehovah/agent --skill prove-it-tdd명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
月度经营复盘。适用于"XX月经营情况 / 经营分析 / 经营报告 / 月度复盘"类任务。固化已验证可用的批量 SQL 查询集与报告模板,一次并行查完、直接出报告,禁止自由探索数据库。
产品经营分析。分析销售、采购、库存、成本、现金流、生产等业务数据并生成报告。已按数字中台真实数据库校准:明确标注哪些指标数据库能算、哪些无数据源不得编造,每个维度附可用 SQL。
Release engineer checklist. Sync main, run tests, audit coverage, push, open PR. Bootstraps test frameworks if missing. Use when "ready to ship", "deploy", "publish", "release this".
SOC 직업 분류 기준
SKILL.md 표시 중
| name | prove-it-tdd |
| description | 严格 Prove-It 测试驱动开发模式。先写失败测试,证明它失败,再写代码,证明它通过,最后重构。 |
| lifecycle_stage | BUILD |
| trigger_patterns | ["tdd","test.?driven","先测试","测试驱动","prove.?it"] |
| estimated_tokens | 3000 |
先证它失败,再证它通过。
不是"先写测试、再写代码"这么简单。每一步都必须有可见的证据证明当前状态。
写一个测试,明确描述你想要的行为。
# tests/test_user_service.py
def test_get_user_returns_user():
"""给定有效用户ID,返回用户对象"""
service = UserService()
user = service.get_user("user_001")
assert user is not None
assert user.id == "user_001"
assert user.name == "张三"
铁律:测试必须针对还不存在的代码。它必然失败。
检查:pytest tests/test_user_service.py -v 输出测试 FAILED。
⚠️ 如果测试通过了——你在测已经存在的东西,不要继续,回去写一个新功能的测试。
运行测试,保存失败证据:
pytest tests/test_user_service.py -v
输出必须包含:
FAILED tests/test_user_service.py::test_get_user_returns_user - ...
铁律:你必须亲眼看到这个 FAILED。如果没看到,说明测试写得不对(可能是语法错误,也可能是测试通过了一个意外行为)。
⚠️ 不要跳过这一步。跳过 = 你不知道你的测试是有效的。
写最小的代码让测试通过:
# src/user_service.py
class UserService:
def get_user(self, user_id: str) -> dict:
return {"id": user_id, "name": "张三"}
铁律:
检查:pytest tests/test_user_service.py -v 输出测试 PASSED。
运行测试,保存通过证据:
pytest tests/test_user_service.py -v
输出必须包含:
PASSED tests/test_user_service.py::test_get_user_returns_user
铁律:你必须亲眼看到这个 PASSED。
⚠️ 如果这一步花了超过 3 次尝试 → 你的设计可能有问题。停下来,重新思考接口设计。
现在代码通过了,可以重构了。
重构范围:
重构后铁律:再次运行测试,证明重构没破坏任何东西。
pytest tests/ -v
输出必须全部 PASSED。
每次循环的输出必须包含以下证据:
=== TDD CYCLE ===
Step 1: 测试 test_X 已编写
Step 2: 运行测试 → FAILED(证据附后)
→ pytest 输出: ...
Step 3: 实现代码
Step 4: 运行测试 → PASSED(证据附后)
→ pytest 输出: ...
Step 5: 重构完成,运行全部测试 → ALL PASSED
→ pytest 输出: ...
=== CYCLE COMPLETE ===
| 违规行为 | 纠正方法 |
|---|---|
| 一次写了多个测试 | 只留一个,其他注释掉,逐个循环 |
| 写了比"恰好通过"更多的代码 | 删除多余代码,只留最小实现 |
| 跳过 Step 2(证明失败) | 回退到 Step 1 重新开始 |
| 重构时改了测试逻辑 | 重构只改实现代码,不动测试 |
| 测试太慢(>1 秒) | 使用 mock 替代真实依赖 |
"""TDD 循环记录
Cycle 1:
测试: test_...
状态: RED → GREEN → REFRAME
证据:
$ pytest tests/... -v
→ FAILED → PASSED
重构说明: ...
"""