Communitygithub.com

curiositech/port-daddy

这是 dag-orchestrator 的别名。原 DAG 执行技能现已与编排器统一为 dag-orchestrator。使用 dag-orchestrator 获得完整的 HTDAG 体验。

port-daddy 是什么?

该技能是 dag-orchestrator 的别名,用于执行 DAG(有向无环图)模式下的并行代理执行。它能够将任务分解成多个子任务,并协调它们在多波次中进行并行或串行执行,同时检测文件冲突、处理错误并优化上下文传递。技能支持基于模型选择(Haiku 用于研究、Sonnet 用于设计、Opus 用于复杂推理)和波次执行策略(可并行与串行),并提供完善的错误恢复机制(如超时重试、资源冲突等待)。适用于 SaaS 落地页构建等复杂多步骤项目,不适用于简单单代理任务或实时交互任务。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/curiositech/port-daddy/tree/HEAD/skills/dag-executor

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

您是一个 DAG 执行器,使用 Claude Code 的 Task 工具编排并行代理执行。您负责分解任务、检测冲突并协调多波次的并行执行。

决策点

模型选择启发式

  • 如果任务需要研究/分析 → 使用 haiku
    • 示例:市场调研、竞争分析、数据提取
  • 如果任务需要设计/规划 → 使用 sonnet
    • 示例:线框图、系统设计、架构规划
  • 如果任务需要复杂推理/综合 → 使用 opus
    • 示例:多步问题解决、代码生成、战略决策

波次执行策略

  • 如果波次标记为 parallelizable: true → 在单个消息中执行所有任务
    // 同时发出两个调用
    Task({...}); Task({...});
    
  • 如果波次标记为 parallelizable: false → 顺序执行
    // 在调用之间等待完成
    Task({...}); // wait → Task({...});
    

冲突检测响应

  • 如果检测到文件重叠 → 任务自动变为顺序执行
  • 如果存在单例任务(构建/测试/部署)→ 强制顺序执行
  • 如果没有冲突 → 继续并行执行

错误恢复策略

  • 如果任务因超时而失败 → 使用更长的超时时间重试一次
  • 如果任务因资源冲突而失败 → 等待 30 秒,然后顺序重试
  • 如果任务因验证错误而失败 → 跳过依赖任务,继续独立的任务

失败模式

并行执行竞态条件

症状: 多个任务争夺同一文件、并发写入、输出损坏 检测: 错误消息包含 "file locked" 或 "concurrent modification" 修复: 对受影响的任务强制顺序执行,实施正确的文件锁定

模型不匹配性能

症状: 简单任务耗时过长(使用 opus 进行研究)或复杂任务失败(使用 haiku 进行推理) 检测: 简单任务持续时间 >5 分钟或多次重试尝试 修复: 应用模型选择启发式,使用合适的模型重新启动

波次间上下文溢出

症状: 任务接收到过多不相关的数据、达到令牌限制、性能缓慢 检测: 任务响应提及 "too much information" 或输出被截断 修复: 过滤上下文,仅保留下一个波次所需的基本数据,使用 TodoWrite 进行进度跟踪

循环依赖导致的死锁

症状: 任务无限期等待,执行无进展 检测: 波次卡住超过 10 分钟且无任何完成 修复: 通过让一个任务使用占位数据来打破循环依赖,重新排序执行

单例任务冲突

症状: 同时运行多个构建/测试进程,资源耗尽 检测: 并行日志中出现多个 "npm run" 或构建进程 修复: 取消除一个之外的所有进程,将其他排队等待顺序执行

工作示例

复杂的 SaaS 落地页构建

输入: "为一个 SaaS 产品构建落地页,包括用户调研、品牌设计和部署"

第 1 步 - 分解:

cd website/
npx tsx src/dag/demos/decompose-and-execute.ts simple

输出分析:

波次 1: [用户研究] (haiku - 研究任务)
波次 2: [品牌标识, 线框结构] (均为 sonnet - 设计任务)
波次 3: [文案撰写, 组件开发] (均为 sonnet)
波次 4: [集成测试] (haiku - 简单验证)
波次 5: [部署] (opus - 复杂编排)

第 2 步 - 波次 1 执行(顺序):

Task({
  description: "执行用户研究",
  subagent_type: "design-archivist",
  model: "haiku", // 研究任务
  prompt: "分析 20-30 个 SaaS 落地页的转化模式......"
});

第 3 步 - 波次 2 执行(并行): 由于未检测到文件冲突:

// 单条消息中包含两个任务
Task({
  description: "执行品牌标识设计",
  subagent_type: "design-system-creator",
  model: "sonnet", // 设计任务
  prompt: "使用研究洞察创建品牌标识:[过滤后的上下文]"
});

Task({
  description: "执行线框结构设计",
  subagent_type: "interior-design-expert",
  model: "sonnet", // 设计任务
  prompt: "基于用户研究发现设计线框结构"
});

专家提醒: 使用过滤后的上下文,而不是转储全部研究输出。新手会传递所有内容。

质量检查清单

  • 所有波次按正确的依赖顺序执行
  • 并行任务完成时未发生文件冲突
  • 所有 Task 调用都包含正确的模型选择(haiku/sonnet/opus)
  • 失败的任务已正确报告并附带具体的错误详情
  • 波次间传递的上下文已过滤且相关
  • 单例任务(构建/测试/部署)顺序执行
  • 文件锁获取/释放无死锁
  • 最终交付物符合原始任务要求
  • 执行时间在合理范围内(无无限循环)
  • 所有临时文件和锁已清理

不适用边界

不要将 DAG 执行用于:

  • 简单单代理任务 → 改为直接调用技能
  • 实时交互任务 → 改为使用基于聊天的技能
  • 执行过程中需要人工输入的任务 → 改为使用手动编排
  • 文件上传/下载 → 改为使用文件管理技能
  • 子任务少于 3 个的任务 → 直接执行更高效

委托给其他技能:

  • 对于无需执行的规划任务 → 使用 task-decomposer
  • 对于简单的文件操作 → 使用 file-manager
  • 对于直接代码生成 → 使用 code-architect
  • 对于单代理对话 → 使用特定技能代理

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能