TDD迁移流水线Skill tdd-migration-pipeline

这是一个用于通过测试驱动开发方法迁移或重写代码库的协调器工作流技能。它利用代理执行任务,确保代码质量、行为契约不变,并通过自动化流水线管理整个迁移过程。关键词:TDD, 代码迁移, 代理工作流, 行为契约, 自动化测试。

DevOps 0 次安装 0 次浏览 更新于 3/14/2026

名称: tdd迁移流水线 描述: 仅协调器工作流,用于通过完整TDD和代理委派迁移/重写代码库 允许工具: [Task, TodoWrite, Read, Bash]

TDD迁移流水线

仅协调器工作流,用于迁移或重写代码库。您不读取文件、编写代码或自行验证任何内容。您只指导代理并传递上下文(路径,而非内容)。

使用时机

  • 将代码库从一种语言/框架迁移到另一种
  • 使用TDD保证重写系统
  • 具有行为契约的大规模重构
  • 当您希望在协调器中零上下文增长时

核心原则

  1. 零协调器执行 - 只指导并传递上下文
  2. 所有工作由代理完成 - 您从不读取/写入/验证
  3. 上下文窗口保持平坦 - 传递路径,而非内容
  4. 新代码放在单独目录中 - 从不修改源

您的约束

  • 从不说“让我读取…”或“查看…”
  • 只说“代理X:用Z做Y”
  • 您的上下文不应在执行期间增长
  • 所有代理必须使用qltytldr技能

流水线阶段

阶段1: 规范

指导spec-agent(使用scout或architect):
- 使用tldr技能分析{source_path}
- 输出:spec.md,包含行为契约、类型、边界情况

代理提示模板:

使用tldr命令(tldr结构,tldr提取,tldr调用)分析{source_path}处的代码库。
创建spec.md,包含:
- 所有行为契约(每个函数/类的承诺)
- 输入/输出类型
- 边界情况和不变量
- 组件间的依赖关系
写入:{target_dir}/spec.md

阶段2: 失败测试

指导test-agent(使用arbiter):
- 读取spec.md
- 在{target_dir}/tests/中编写失败测试
- 测试应在实现前定义预期行为

指导review-agent(使用critic):
- 验证测试完全覆盖规范
- 无行为覆盖缺口

阶段3: 对抗性(迭代3次)

指导premortem-agent(使用premortem技能):
- 审查规范 + 测试
- 识别故障模式、竞争条件、边界情况
- 不要询问 - 直接将缓解措施添加到规范中
- 运行3次迭代,每次都有新视角

关键点: 每次迭代应找到新问题,而非重复先前的问题。

阶段4: 阶段化计划

指导planner-agent(使用architect或plan-agent):
- 输入:spec.md + 测试 + 缓解措施
- 输出:phased-plan.yaml
- 要求:
  - 依赖排序的阶段
  - 每个阶段 = 一个可测试单元
  - 每个阶段清晰的输入/输出

阶段5: 构建循环(每个阶段)

对于phased-plan.yaml中的每个阶段:

  指导builder-agent(使用kraken或spark):
  - 编写代码以通过此阶段的测试
  - 使用qlty进行质量检查
  - 每次更改后运行测试

  指导review-agent(使用critic或judge):
  - 验证实现匹配规范
  - 检查先前阶段的回归
  - 验证无破坏性更改

阶段6: 集成验证

指导integration-agent(使用atlas或validator):
- 使用tldr对比{reference_repo}
- 检查:
  - 无竞争条件
  - 无挂起或死锁
  - 无与原始相比的破坏性更改
  - 所有行为契约得以保留
- 输出:validation-report.md

调用

调用此工作流时,指定:

SOURCE: {源代码路径}
TARGET_DIR: {迁移代码的新文件夹}
TARGET_LANG: {typescript|python|go|rust|等}
REFERENCE_REPO: {最终对比的URL或路径}
SKILLS: [tldr-code, qlty-check, {领域特定}]

代理映射

阶段 代理类型 子代理
规范 研究 scoutarchitect
测试 验证 arbiter
审查 审查 criticjudge
对抗性 审查 premortem 技能
计划 计划 architectplan-agent
构建 实现 kraken(大型)或 spark(小型)
集成 验证 atlasvalidator

示例协调

# 阶段1
Task(scout): "分析 /src/old-system 使用 tldr 结构和 tldr 提取。创建 spec.md 在 /migration/spec.md,包含所有行为契约。"

# 阶段2
Task(arbiter): "读取 /migration/spec.md。编写失败测试到 /migration/tests/,定义预期行为。"

Task(critic): "审查 /migration/spec.md 与 /migration/tests/。报告任何行为缺口。"

# 阶段3(迭代3次)
Task(premortem): "审查 /migration/spec.md 和 /migration/tests/。识别故障模式。直接将缓解措施添加到规范中。迭代1/3。"
[重复使用“迭代2/3”,“迭代3/3”]

# 阶段4
Task(architect): "从 /migration/spec.md 和 /migration/tests/,创建 /migration/phased-plan.yaml,包含依赖排序的阶段。"

# 阶段5(循环)
Task(kraken): "从 /migration/phased-plan.yaml 实现阶段1。代码写入 /migration/src/。运行测试后。"

Task(critic): "审查 /migration/src/ 对比 /migration/spec.md。检查规范合规性和回归。"
[重复每个阶段]

# 阶段6
Task(atlas): "运行完整集成测试在 /migration/src/。使用 tldr 对比 /src/old-system。输出 /migration/validation-report.md。"

反模式(不要做)

  • 将文件读入上下文(“让我检查代码…”)
  • 直接编写代码(“我将实现这个函数…”)
  • 自行验证任何内容(“查看测试,我看到…”)
  • 修改源目录
  • 跳过对抗性阶段
  • 未先运行测试就进行构建

成功标准

  • [ ] 所有测试通过
  • [ ] qlty 报告干净
  • [ ] tldr 对比显示无破坏性更改
  • [ ] 无竞争条件或挂起
  • [ ] validation-report.md 确认行为等价