AI工厂实施Skill ai-factory.implement

AI工厂实施技能是一个AI驱动的工具,用于自动执行软件开发任务计划。它通过顺序处理任务、标记进度和跨会话持久化,实现高效的编码实施和项目管理。适用于AI辅助开发、任务自动化、进度跟踪和会话连续性。关键词:AI实施、软件开发自动化、任务管理、进度跟踪、会话持久化、AI工厂。

AI应用 0 次安装 0 次浏览 更新于 3/18/2026

名称: ai-factory.implement 描述: 执行当前计划中的实施任务。顺序处理任务,标记完成状态,并保留进度以便跨会话继续。当用户说“实施”、“开始编码”、“执行计划”或“继续实施”时使用。 参数提示: ‘[任务ID或"状态"]’ 允许工具: Read Write Edit Glob Grep Bash TaskList TaskGet TaskUpdate AskUserQuestion Questions 禁用模型调用: true

实施 - 执行任务计划

执行计划中的任务,跟踪进度,并启用会话继续。

工作流程

步骤0:检查当前状态

首先: 确定我们处于什么状态:

1. 检查未提交的更改(git status)
2. 检查计划文件(.ai-factory/PLAN.md 或分支命名的文件)
3. 检查当前分支

如果存在未提交的更改:

您有未提交的更改。是否先提交它们?
- [ ] 是,现在提交(/ai-factory.commit)
- [ ] 否,暂存并继续
- [ ] 取消

如果不存在计划文件(所有任务已完成或全新开始):

未找到活动计划。

当前分支:feature/user-auth

您想做什么?
- [ ] 从当前分支开始新功能
- [ ] 返回到 main/master 并开始新功能
- [ ] 创建快速任务计划(无分支)
- [ ] 无操作,仅检查状态

根据选择:

  • 从当前开始新功能 → /ai-factory.feature <描述>
  • 返回到 main → git checkout main && git pull/ai-factory.feature <描述>
  • 快速任务 → /ai-factory.task <描述>

如果计划文件存在 → 继续到步骤 0.1

步骤 0.1:加载项目上下文和过往经验

如果存在,读取 .ai-factory/DESCRIPTION.md 以了解:

  • 技术栈(语言、框架、数据库、ORM)
  • 项目架构和约定
  • 非功能性需求

如果目录存在,读取 .ai-factory/patches/ 中的所有补丁:

  • 使用 Glob.ai-factory/patches/ 中查找所有 *.md 文件
  • 读取每个补丁以学习过去的修复和错误
  • 应用学到的经验:避免导致错误的模式,使用防止错误的模式
  • 注意 根本原因预防 部分——它们告诉您不要做什么

在实施时使用此上下文:

  • 遵循指定的技术栈
  • 使用正确的导入模式和约定
  • 应用适当的错误处理和日志记录
  • 避免补丁中记录的陷阱——不要重复过去的错误

步骤 0.1:查找计划文件

按此顺序检查计划文件:

1. .ai-factory/PLAN.md 是否存在? → 使用它(直接 /ai-factory.task 调用)
2. 没有 .ai-factory/PLAN.md → 检查当前 git 分支:
   git branch --show-current
   → 查找 .ai-factory/features/<分支名称>.md(例如,.ai-factory/features/feature-user-auth.md)

优先级:

  1. .ai-factory/PLAN.md - 始终优先(来自直接 /ai-factory.task
  2. 分支命名文件 - 如果没有 .ai-factory/PLAN.md(来自 /ai-factory.feature

读取计划文件 以了解:

  • 上下文和设置(测试、日志记录偏好)
  • 提交检查点(何时提交)
  • 任务依赖关系

步骤 1:加载当前状态

TaskList → 获取所有状态的任务

查找:

  • 下一个待处理任务(未阻塞,未完成)
  • 任何进行中的任务(首先恢复这些)

步骤 2:显示进度

## 实施进度

✅ 已完成:3/8 个任务
🔄 进行中:任务 #4 - 实施搜索服务
⏳ 待处理:4 个任务

当前任务:#4 - 实施搜索服务

步骤 3:执行当前任务

对于每个任务:

3.1:获取完整详情

TaskGet(taskId) → 获取描述、文件、上下文

3.2:标记为进行中

TaskUpdate(taskId, status: "in_progress")

3.3:实施任务

  • 读取相关文件
  • 进行必要的更改
  • 遵循现有代码模式
  • 除非计划包括测试任务,否则不编写测试
  • 不创建报告或摘要

3.4:验证实施

  • 检查代码编译/运行
  • 验证功能正常工作
  • 修复任何即时问题

3.5:标记为已完成

TaskUpdate(taskId, status: "completed")

3.6:在计划文件中更新复选框

在完成任务后立即更新计划文件中的复选框:

# 之前
- [ ] 任务 1:创建用户模型

# 之后
- [x] 任务 1:创建用户模型

这是强制性的 — 复选框必须反映实际进度:

  • 使用 Edit 工具将 - [ ] 更改为 - [x]
  • 在每项任务完成后立即执行此操作
  • 即使稍后会提供删除选项
  • 计划文件是进度的真相来源

3.7:如果需要,更新 .ai-factory/DESCRIPTION.md

如果在实施期间:

  • 添加了新的依赖项/库
  • 技术栈更改(例如,添加了 Redis,切换了 ORM)
  • 添加了新的集成(例如,Stripe、SendGrid)
  • 做出了架构决策

→ 更新 .ai-factory/DESCRIPTION.md 以反映更改:

## 技术栈
- **缓存:** Redis(添加用于会话存储)

这将保持 .ai-factory/DESCRIPTION.md 作为真相来源。

3.8:检查提交检查点

如果计划有提交检查点且当前任务处于检查点:

✅ 任务 1-4 已完成。

这是一个提交检查点。是否准备提交?
建议消息:"feat: 添加基础模型和类型"

- [ ] 是,现在提交(/ai-factory.commit)
- [ ] 否,继续到下一个任务
- [ ] 跳过所有提交检查点

3.9:移动到下一个任务或暂停

步骤 4:会话持久化

通过 TaskUpdate 自动保存进度。

暂停时:

当前进度已保存。

已完成:4/8 个任务
下一个任务:#5 - 添加分页支持

要在稍后恢复,运行:
/ai-factory.implement

恢复时(下一个会话):

/ai-factory.implement

→ 自动查找下一个未完成的任务

步骤 5:完成

当所有任务完成时:

## 实施完成

所有 8 个任务已完成。

分支:feature/product-search
计划文件:.ai-factory/features/feature-product-search.md
修改的文件:
- src/services/search.ts(创建)
- src/api/products/search.ts(创建)
- src/types/search.ts(创建)

下一步是什么?

1. 🔍 /ai-factory.verify — 验证没有遗漏任何内容(推荐)
2. 💾 /ai-factory.commit — 直接提交更改

上下文清理

实施后上下文很重。所有代码更改已保存 — 建议释放空间:

AskUserQuestion: 在继续之前释放上下文?

选项:
1. /clear — 完全重置(推荐)
2. /compact — 压缩历史
3. 保持原样

建议验证:

AskUserQuestion: 所有任务已完成。运行验证?

选项:
1. 先验证 — 运行 /ai-factory.verify 检查完整性(推荐)
2. 跳过到提交 — 直接转到 /ai-factory.commit

如果用户选择“先验证” → 建议调用 /ai-factory.verify。 如果用户选择“跳过到提交” → 建议调用 /ai-factory.commit

检查是否需要更新文档:

读取计划文件设置。如果文档偏好设置为“是”(来自 /ai-factory.feature 问题),运行 /ai-factory.docs 以更新文档。

如果文档偏好是“否”或未设置 — 静默跳过此步骤。

如果文档偏好是“是”:

📝 更新项目文档...

→ 调用 /ai-factory.docs 分析更改并更新文档。

完成后处理计划文件:

  • 如果是 .ai-factory/PLAN.md(直接 /ai-factory.task,不是来自 /ai-factory.feature):

    是否删除 .ai-factory/PLAN.md?(不再需要)
    - [ ] 是,删除它
    - [ ] 否,保留
    
  • 如果是分支命名文件(例如,.ai-factory/features/feature-user-auth.md):

    • 保留它 - 记录了完成的工作
    • 用户可以在合并前删除,如果愿意

检查是否在 git worktree 中运行:

检测 worktree 上下文:

# 如果 .git 是文件(不是目录),我们在 worktree 中
[ -f .git ]

如果我们在 worktree 中,提供合并回并清理的选项:

您正在并行 worktree 中工作。

  分支:    <当前分支>
  Worktree:  <当前目录>
  主仓库: <主仓库路径>

是否希望将此分支合并到 main 并清理?
- [ ] 是,合并并清理(推荐)
- [ ] 否,我会手动处理

如果用户选择 “是,合并并清理”

  1. 确保所有内容已提交 — 检查 git status。如果存在未提交的更改,建议先 /ai-factory.commit 并等待。

  2. 获取主仓库路径:

    MAIN_REPO=$(git rev-parse --git-common-dir | sed 's|/\.git$||')
    BRANCH=$(git branch --show-current)
    
  3. 切换到主仓库:

    cd "${MAIN_REPO}"
    
  4. 合并分支:

    git checkout main
    git pull origin main
    git merge "${BRANCH}"
    

    如果发生合并冲突:

    ⚠️  检测到合并冲突。手动解决:
      cd <主仓库路径>
      git merge --abort   # 取消
      # 或解决冲突并 git commit
    

    → 在此停止,不继续清理。

  5. 移除 worktree 和分支(仅当合并成功时):

    git worktree remove <worktree路径>
    git branch -d "${BRANCH}"
    
  6. 确认:

    ✅ 合并并清理完成!
    
      分支 <分支> 已合并到 main。
      Worktree 已移除。
    
    您现在位于:<主仓库路径>(main)
    

如果用户选择 “否,我会手动处理”,显示提醒:

要在稍后合并并清理:
  cd <主仓库路径>
  git merge <分支>
  /ai-factory.feature --cleanup <分支>

重要:不生成摘要报告、不生成分析文档、不执行收尾任务。

命令

开始/恢复实施

/ai-factory.implement

从下一个未完成的任务继续。

从特定任务开始

/ai-factory.implement 5

从任务 #5 开始(适用于跳过或重做)。

仅检查状态

/ai-factory.implement status

显示进度而不执行。

执行规则

做:

  • ✅ 一次执行一个任务
  • ✅ 在开始前标记任务为进行中
  • ✅ 在完成后标记任务为已完成
  • ✅ 遵循现有代码约定
  • ✅ 创建任务描述中提到的文件
  • ✅ 处理任务中提到的边缘情况
  • ✅ 如果任务不明确,停止并询问

不做:

  • ❌ 编写测试(除非任务列表明确包括测试任务)
  • ❌ 创建报告文件
  • ❌ 创建摘要文档
  • ❌ 添加不在计划中的任务
  • ❌ 未经用户许可跳过任务
  • ❌ 将未完成的任务标记为完成

进度显示格式

┌─────────────────────────────────────────────┐
│ 功能:用户认证                            │
├─────────────────────────────────────────────┤
│ ✅ #1 创建用户模型                         │
│ ✅ #2 添加注册端点                         │
│ ✅ #3 添加登录端点                         │
│ 🔄 #4 实施 JWT 生成              ← 当前 │
│ ⏳ #5 添加密码重置                         │
│ ⏳ #6 添加邮箱验证                         │
├─────────────────────────────────────────────┤
│ 进度:3/6(50%)                           │
└─────────────────────────────────────────────┘

处理阻塞

如果任务无法完成:

⚠️ 在任务 #4 遇到阻塞

问题:[问题描述]

选项:
1. 跳过此任务并继续(标记为阻塞)
2. 修改任务方法
3. 停止实施并讨论

您想做什么?

会话连续性

任务在对话/项目状态中持久化。

开始新会话:

用户:/ai-factory.implement

Claude:恢复实施...

找到 3 个已完成任务,5 个待处理。
从任务 #4 继续:实施 JWT 生成

[执行任务 #4]

示例完整流程

会话 1:
  /ai-factory.feature 添加用户认证
  → 创建分支:feature/user-authentication
  → 询问测试(否)、日志记录(详细)
  → /ai-factory.task 创建 6 个任务
  → 保存计划到:.ai-factory/features/feature-user-authentication.md
  → /ai-factory.implement 开始
  → 完成任务 #1、#2、#3
  → 用户结束会话

会话 2:
  /ai-factory.implement
  → 检测分支:feature/user-authentication
  → 读取计划:.ai-factory/features/feature-user-authentication.md
  → 加载状态:3/6 完成
  → 从任务 #4 继续
  → 完成任务 #4、#5、#6
  → 全部完成,建议 /ai-factory.commit

关键规则

  1. 从不编写测试 除非任务列表明确包括测试任务
  2. 从不创建报告 或完成后的摘要文档
  3. 始终标记任务为进行中 在开始工作前
  4. 始终标记任务为已完成 在完成后
  5. 始终更新计划文件中的复选框 - - [ ]- [x] 在任务完成后立即执行
  6. 保留进度 - 任务跨越会话边界生存
  7. 一次一个任务 - 仅专注于当前任务

关键:日志记录要求

在实施代码时始终添加详细日志记录。 AI生成的代码通常有难以调试的细微错误,没有适当的日志记录。

日志记录指南

  1. 记录函数进入/退出 带有参数和返回值
  2. 记录状态更改 - 变更前后
  3. 记录外部调用 - API请求、数据库查询、文件操作
  4. 记录错误上下文 - 包括相关变量,不仅仅是错误消息
  5. 尽可能使用结构化日志记录(JSON格式)

示例模式

function processOrder(order: Order): Result {
  console.log('[processOrder] 开始', { orderId: order.id, items: order.items.length });

  try {
    const validated = validateOrder(order);
    console.log('[processOrder] 验证通过', { validated });

    const result = submitToPayment(validated);
    console.log('[processOrder] 支付结果', { success: result.success, transactionId: result.id });

    return result;
  } catch (error) {
    console.error('[processOrder] 错误', { orderId: order.id, error: error.message, stack: error.stack });
    throw error;
  }
}

日志管理要求

日志必须可配置且可管理:

  1. 使用日志级别 - DEBUG、INFO、WARN、ERROR
  2. 基于环境的控制 - LOG_LEVEL 环境变量
  3. 易于禁用 - 单个标志或环境变量以关闭详细日志
  4. 考虑轮换 - 对于基于文件的日志,实施轮换或使用现有工具
// 好:可配置日志记录
const LOG_LEVEL = process.env.LOG_LEVEL || 'debug';
const logger = createLogger({ level: LOG_LEVEL });

// 好:可以禁用
if (process.env.DEBUG) {
  console.log('[debug]', data);
}

// 坏:硬编码的详细日志,无法关闭
console.log(hugeObject); // 会污染生产日志

为什么这很重要

  • AI生成的代码可能没有覆盖的边缘情况
  • 日志帮助识别哪里出错
  • 没有日志的调试浪费大量时间
  • 用户可以稍后移除日志,但开发期间缺少日志成本高昂
  • 生产安全 - 日志必须可减少以避免性能问题和存储成本

不要跳过日志记录以“保持代码清洁” - 详细日志记录在实施期间是必需的,但必须是可配置的。