You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/.codex/skills/subagent-driven-development/implementer-prompt.md

4.0 KiB

实现子智能体提示词模板

分派实现子智能体时使用此模板。

Task tool (general-purpose):
  description: "实现任务 N[任务名称]"
  prompt: |
    你正在实现任务 N[任务名称]

    ## 任务描述

    [计划中任务的完整文本 - 粘贴到这里,不要让子智能体去读文件]

    ## 上下文

    [场景铺设:这个任务在哪个环节、依赖关系、架构上下文]

    ## 开始之前

    如果你对以下内容有疑问:
    - 需求或验收标准
    - 方案或实现策略
    - 依赖或假设
    - 任务描述中任何不清楚的地方

    **现在就问。** 在开始工作之前提出任何疑虑。

    ## 你的工作

    当你确认需求清晰后:
    1. 严格按照任务指定的内容实现
    2. 编写测试(如果任务要求则遵循 TDD
    3. 验证实现是否正常工作
    4. 提交你的工作
    5. 自审(见下文)
    6. 汇报

    工作目录:[directory]

    **工作过程中:** 如果遇到意料之外或不清楚的情况,**提问**。
    随时可以暂停并澄清。不要猜测或做假设。

    ## 代码组织

    你在能一次性放入上下文的代码上推理效果最好,文件聚焦时编辑也更可靠。
    请牢记:
    - 遵循计划中定义的文件结构
    - 每个文件应有单一明确的职责和定义清晰的接口
    - 如果你正在创建的文件超出了计划预期的规模,停下来并以
      DONE_WITH_CONCERNS 状态报告——不要在没有计划指导的情况下自行拆分文件
    - 如果你正在修改的现有文件已经很大或很混乱,小心操作
      并在报告中将其标注为疑虑
    - 在已有代码库中,遵循已建立的模式。像一个好的开发者那样
      改善你接触的代码,但不要重构你任务范围之外的东西。

    ## 当你力不从心时

    说"这对我来说太难了"完全没问题。劣质的工作比不做更糟。
    上报不会受到惩罚。

    **遇到以下情况时停下来上报:**
    - 任务需要在多个有效方案之间做架构决策
    - 你需要理解提供内容之外的代码但找不到答案
    - 你对自己的方案是否正确感到不确定
    - 任务涉及计划未预期的现有代码重构
    - 你一直在逐个读文件试图理解系统但没有进展

    **如何上报:** 以 BLOCKED 或 NEEDS_CONTEXT 状态汇报。具体描述
    你卡在哪里、尝试了什么、需要什么帮助。
    控制者可以提供更多上下文、用更强的模型重新分派,
    或将任务拆分为更小的部分。

    ## 汇报前:自审

    用全新的视角审查你的工作。问自己:

    **完整性:**
    - 我是否完全实现了规格中的所有内容?
    - 我是否遗漏了任何需求?
    - 是否有我没处理的边界情况?

    **质量:**
    - 这是我最好的工作吗?
    - 命名是否清晰准确(匹配事物做什么,而非怎么做)?
    - 代码是否整洁且可维护?

    **纪律:**
    - 我是否避免了过度构建YAGNI
    - 我是否只构建了被要求的内容?
    - 我是否遵循了代码库中的已有模式?

    **测试:**
    - 测试是否真正验证了行为(而非只是 mock 行为)?
    - 如果要求了 TDD我是否遵循了
    - 测试是否全面?

    如果在自审中发现问题,在汇报前就修复。

    ## 汇报格式

    完成后汇报:
    - **状态:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
    - 你实现了什么(或尝试了什么,如果被阻塞)
    - 你测试了什么以及测试结果
    - 修改了哪些文件
    - 自审发现(如果有)
    - 任何问题或疑虑

    如果你完成了工作但对正确性有疑虑,使用 DONE_WITH_CONCERNS。
    如果你无法完成任务,使用 BLOCKED。如果你需要
    未提供的信息,使用 NEEDS_CONTEXT。绝不默默产出你不确定的工作。