SuperAPI AI 工具集

my-router

智能体与模型

查看项目

更新于 11-06 22:08

技能介绍

用途

my-router 是一个路由层,位于外层工作流(例如 superpowers 的 brainstorm/plan/execute/verify)与领域技能之间。它读取工作目录、文件类型和用户提示词,据此决定调用哪个技能,从而让用户不必记住技能名称。

何时使用 superpowers 与直接派发

路由由 my-router 决定。并非所有任务都需要 superpowers 的完整流程。

  • 清晰、范围明确且技能匹配明显的任务(例如“review staged changes”):直接派发——路由选择领域技能并立即运行。当任务已经定义清楚时,头脑风暴和规划没有价值。
  • 开放式、多步骤或模糊的任务(例如“build a new feature”“restructure the paper”):先走 superpowers——brainstorm → plan → execute(路由在 execute 阶段派发)→ verify。这类任务受益于先思考再动手。
  • 快速编辑或修复(例如“fix the typo on line 42”“rename this variable”):两者都不用,直接做。无需路由或工作流。

规则:如果领域技能显而易见且范围清晰,跳过 superpowers 直接派发;如果任务需要探索或规划,让 superpowers 运行外层循环,路由在 execute 阶段派发。

与 superpowers 的集成

当 superpowers 处于活动状态时,它负责工作流阶段:brainstorm → plan → execute → verify。路由在 execute 阶段激活并派发到正确的领域技能。当 superpowers 未激活(直接派发或快速任务)时,路由独立工作。

路由如何工作

派发时,路由按顺序检查三个信号(关键词、文件类型、项目结构)。在消费型项目中,应用下方自带路由表之前,它会先合并任何消费方本地的路由扩展:仓库根目录的 routing-table.local.md,或 AGENTS.local.md 中的 ## Routing 段落。这两个文件在 bootstrap 后仍然存在(自带路由表则不会),因此它们是消费型仓库注册自身技能的位置;在关键词或文件类型冲突时,本地行优先。

1. 提示词关键词(最高优先级)

用户提示词通常包含最清晰的信号。自带路由表包含 implement-review、ci-mockup-figure、readme-polish 和 editable-figure 的关键词条目。可在 fork 的 references/routing-table.md 中,或在消费型项目的 bootstrap 安全本地文件中为自己的技能添加条目。

当图表请求明确要求 PowerPoint 或原生可编辑性时,应优先走 editable-figure 路由,而不是通用图表、README-polish 或幻灯片路由。简化现有可编辑图表的请求仍走该路由。明确要求 HTML mockup、TikZ、截图或仅提示词的请求保持其要求的格式。走该路由前,检查会话能否执行 editable-figure 所需的桌面 PowerPoint 验证;若不能,说明限制,并仅在其输出符合请求时提供 ci-mockup-figure。不要用 HTML 静默替代明确要求的 PPTX。

对于论文或提案的解释性图表,尤其是概览或“Figure 1”,通过常规技能查找读取 editable-figure/references/gallery/index.md。无论路由选择哪个图表技能(包括项目本地变体如 nsf-figure-builder)都应这样做。为 Yue Zhao 工作时,将其要求的 preference-first 设计协议作为最高设计优先级执行:检查选定图片和反馈,将确认的品质映射到新设计,并把该映射带入提示词和实现,再将结果与这些参考对比。保留要求的输出格式;读取 gallery 不需要 PowerPoint,也不会把仅提示词任务变成图表构建。

2. 工作目录中的文件类型

如果提示词关键词不明确,检查正在处理的文件。自带路由识别:暂存的 git 变更 → implement-review;仪表盘/时间线的 HTML mockup 文件 → ci-mockup-figure;标记为需润色的顶层 README.md → readme-polish;论文、提案或 README 旁的 .pptx 图表源文件 → editable-figure。添加新技能时也添加自己的文件类型规则。

3. 项目结构提示

有些项目在 AGENTS.local.md 中或通过目录命名约定(例如 proposals/ 或 papers/ 目录,或指向共享编辑仓库的子模块)声明其类型。在相关时使用这些提示选择内容感知行为。

派发规则

  • 本地优先覆盖:派发前,扫描 skills/(项目本地)中是否有匹配技能的更具体变体。若存在本地变体,使用它而非任何 pack 部署或 bootstrap 的副本。
  • 若提示词关键词匹配 → 调用该技能。
  • 若文件上下文匹配但提示词模糊(例如“help me with this”)→ 说明检测到的上下文和建议的技能,请用户确认后再继续。
  • 若多个技能可能适用 → 说明候选并请用户选择。
  • 若无匹配 → 回退到 superpowers 或通用 agent 行为。不要强行套用不合适的技能。

技能查找顺序

在消费型项目仓库中,技能可以是项目本地、pack 部署或从共享配置 bootstrap 而来。派发时按以下顺序查找每个技能:

  1. skills/<name>/SKILL.md:项目本地(最高优先级)。项目可在此添加自己的技能。
  2. .claude/skills/<name>/SKILL.md:由 bootstrap 从配置的 pack 部署(anywhere-agents pack add 添加一个)。.claude/ 前缀是历史性的 Claude Code 约定;SKILL.md 内容与 agent 无关。
  3. .agent-config/repo/skills/<name>/SKILL.md:从共享配置仓库 bootstrap 而来。
  4. 已安装插件:agent 特定的插件技能(例如 Claude Code 插件),检查 /skills 输出。

如果项目本地技能比 pack 部署或 bootstrap 的技能更匹配任务,优先使用项目本地技能。路由自身也遵循同样的查找顺序。

扩展路由

注册新技能的位置取决于你是拥有本仓库还是仅消费它。机制相同:以提示词关键词、文件类型和目录提示为键的路由行。只有位置不同,且必须能在配置刷新路径中存活。

在 fork 本仓库时(你拥有自带路由表):

  1. 在 skills/<your-skill>/ 下添加技能目录。
  2. 在 references/routing-table.md 中添加一行。
  3. 添加匹配的 .claude/commands/<your-skill>.md 指针,以便 Claude Code 直接调用。

在消费型项目中(本技能通过 bootstrap 到达,bootstrap 部署配置的 pack):

不要在此编辑 references/routing-table.md。每个磁盘副本(.agent-config/repo/skills/my-router/、.claude/skills/my-router/)都会在下次 bootstrap 或 pack verify --fix 时被覆盖。在 bootstrap 永不触及的位置注册你的技能:

  1. 在 skills/<your-skill>/ 下添加技能目录(项目本地,天然 bootstrap 安全)。
  2. 在以下任一 bootstrap 安全文件中注册其路由:
    • 仓库根目录的 routing-table.local.md,使用与 references/routing-table.md 相同的表格格式;或
    • AGENTS.local.md 中的 ## Routing 段落,当你已在该文件保留项目覆盖时更方便。
  3. 可选地添加项目本地的 .claude/commands/<your-skill>.md 指针。bootstrap 复制步骤是非破坏性的,从不删除上游不存在的命令文件,因此仅消费方的指针会保留。

派发时,路由将这些本地行合并到自带路由表之上;在关键词或文件类型冲突时,本地条目优先。routing-table.local.md 和 AGENTS.local.md 都位于 bootstrap 重写文件集之外,因此注册在刷新后仍然存在。

与 implement-review 结合

当领域技能完成后需要审查时:

  1. 领域技能运行(例如代码变更、论文编辑)。
  2. 变更被暂存。
  3. 路由以适当的视角(code、paper、proposal、general)派发到 implement-review。
  4. 审查者应用视角特定标准。

参见 implement-review/SKILL.md 了解审查循环协议。

示例

  • 用户说:“Review this” → 路由检测到:存在暂存变更 → 派发到 implement-review;根据暂存文件选择内容类型视角(code、paper、proposal、general)。
  • 用户说:“Build the feature and review it” → 路由检测到:代码上下文 → superpowers 处理构建,然后路由以 code 视角派发到 implement-review。
  • 用户说:“Make an HTML mockup for the method figure” → 路由检测到:关键词“mockup” → 派发到 ci-mockup-figure。
  • 用户说:“Polish the README with modern patterns” → 路由检测到:关键词“polish README” → 派发到 readme-polish。
  • 用户说:(其他任何内容,自带路由无规则)→ 路由回退到 superpowers 或通用 agent 行为。在 fork 的 references/routing-table.md 中,或在消费型项目的 routing-table.local.md / AGENTS.local.md 的 ## Routing 段落中添加更多规则。