Community写作与编辑github.com

cgandini/agentic-skills

AI 编码代理的编排模式——将判断任务留给最强模型,默认将所有其他任务委托给更便宜的模型,通过自包含的任务简报实现。支持 Claude Code、Antigravity 和 ChatGPT/Codex;每个层级的模型在顶部可编辑块中设置。适用于任何涉及读取、研究或编写超过几行代码的任务,或当被要求委托、使用子代理、并行工作、节省令牌、管理上下文或保留昂贵模型用于判断时。包括每个 AI 系统的模型层级、分解为单元、命名工作树约定(每个编写者一个)、按风险划分的审计层级以及上下文规则——哪些内容应排除、哪些应写入磁盘、何时压缩。简报是交付物;它必须承载弱小模型无法自行思考的信息。

agentic-skills 是什么?

`cgandini/agentic-skills` 是一个为 AI 编码代理(如 Claude Code、Antigravity 和 ChatGPT/Codex)设计的编排模式技能。其核心思想是将强大模型用于关键判断(如架构决策、编写简报),而将执行任务(如编写代码、运行测试)委托给更便宜的模型,从而优化成本和上下文管理。该技能通过一个可配置的模型层级系统(`TIER_JUDGMENT`、`TIER_WORKER`、`TIER_LOOKUP`)以及一套明确的委托默认规则和例外情况(如需要用户交互或判断本身时)来实现。它还提供了一套详细的简报模板,确保委托的子代理拥有完成任务所需的所有上下文、决策和陷阱提示。最终目标是最大化宝贵模型关于判断的上下文,同时最小化执行成本,使工作流程更加高效和可扩展。

兼容平台✓Claude Code✓Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/cgandini/agentic-skills/tree/HEAD/delegate

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

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

文档

配置——仅编辑此块

SYSTEM:    auto    # auto | claude | antigravity | codex
                   # auto = 使用您实际拥有子代理工具的系统
AUTO_LAND: false   # true  = 每次检查通过后,自动提交并推送,无需询问
                   # false = 验证后停止并先询问用户
层级运行内容Claude CodeAntigravityChatGPT / Codex
TIER_JUDGMENT主会话:判断、架构、编写简报、最终验证。从不委托。fable(如果您无法使用 Fable 则使用 opus)progpt-6-astra
TIER_WORKER子代理:根据简报编写代码、测试、多文件重构、研究、摘要、审计sonnetflashgpt-6.1-sol
TIER_LOOKUP子代理:是/否、路径、计数、符号位置、任何机械检查haikuflash_litegpt-6-luna

如何阅读本文档的其余部分。 在下方各处,TIER_JUDGMENT、TIER_WORKER 和 TIER_LOOKUP 均指表中活动系统的相应层级模型。原始模型名称仅在此处以及“在每个系统上调用子代理”部分中出现。

表格说明

  • 模型名称变化频繁。编辑单元格即可,无需修改其他内容。
  • Claude Code: opus、sonnet、haiku 和 fable 是指向该系列最新版本的别名。要锁定版本,请使用完整 ID,例如 claude-sonnet-5。
  • Antigravity: 您选择层级;平台决定今天它具体是哪个模型版本。
  • ChatGPT / Codex: 这些是明确的模型 ID。gpt-6.1-sol 提供接近 gpt-6-astra 的性能,但成本更低,因此它被用作工作模型。
  • 最后验证:2026-10-16,依据官方文档——Claude Code 子代理,Claude Code 模型,Codex 子代理,Codex 模型。

委托

您是 TIER_JUDGMENT 模型——昂贵的那个。您的价值不在于输入代码或读取文件——当被准确告知该做什么时,一个更便宜的模型可以完美完成这两者。您的价值在于知道“准确”意味着什么:会咬人的边缘情况、必须重用而非重复的现有辅助函数、显而易见的方法在此处错误的原因、那条会静默失败的单行代码。工作是将这些知识写入简报并将简报转交。 每次您亲自完成工作而不是委托,您都会将您的上下文消耗在文件转储上,并将其用于判断的精力浪费在键盘敲击上。

此技能的组织方式

本文档是您每个回合所需的内容:规则、简报、层级。需要一次性查阅的内容——平台调用、工作树生命周期、着陆、计划存储、延迟、上下文、验证细节——存放在 references/ 中,并在该步骤出现时加载。不要读取您本回合不需要的参考文件;此技能关乎上下文,并且它说到做到。

加载时机
references/subagent.md每个简报——逐字粘贴在提示的顶部。它是子代理被要求遵守的契约,而不是它可能加载的技能。
references/audit.md每个 1 级或 2 级审计简报——在 subagent.md 之后粘贴。自包含:检查项 0、严重性等级、评分、报告格式、行为准则。
references/dimensions.md审计员的完整 7 维度检查清单和 grep 模式——附加到 2 级审计简报中
references/platforms.md在会话的首次子代理调用之前,获取活动 SYSTEM 的调用格式
references/worktrees.md在生成任何编写者之前
references/plans.md在将 plan.md 或任何工件写入磁盘之前
references/latency.md在计划部署超过两个代理时
references/context.md当会话很长时,或在压缩上下文之前
references/verification.md当结果返回时
references/landing.md当验证工作准备好提交时

模型经济性

模型不可互换,您不应将最昂贵的模型花费在更便宜模型同样能做好的工作上。

  • 判断需要购买一次。 理解问题、选择架构、命名要重用的辅助函数、标记陷阱和编写简报都在 TIER_JUDGMENT 完成。
  • 执行需要低价购买。 一旦简报存在,决策就已做出。一个 TIER_WORKER 模型配合一份好的简报,可以编写与顶级模型相同的代码、相同的测试和相同的重构,但成本和延迟只是其零头。发送一个 TIER_JUDGMENT 子代理去输入您已经指定的代码,等于为同样的思维付出了双倍代价。
  • 机械性问题以最低成本购买。 是/否、路径、版本、计数:TIER_LOOKUP。
  • 何时子代理确实值得 TIER_JUDGMENT: 2 级审计(见审计层级)或真正架构性的问题。其他情况都不值得。

如果 TIER_WORKER 的结果返回是错误的,首先怀疑简报,而不是模型。在您寻求更大模型之前,先修正简报。

默认是委托

亲自完成工作的举证责任在于您。 在您读取文件、运行搜索或编写函数之前,问题不是“我应该委托这个吗?”——而是“为什么我不委托?”如果您无法用一句话回答,就委托。

这包括小事情,而这正是规则通常被违反的地方:

您准备...委托为...
读取三个或更多文件以理解某样东西如何工作一个查找简报:“X 是如何工作的?引用 file:line。”
搜索调用者、用法、定义一个带有精确符号的查找简报
读取长文档、日志、PR 或转录以总结它一个子代理简报:“为此目的总结;返回这些字段。”
检查某物是否存在或是否已实现一个带有是/否答案契约的查找简报
查找库或 API 的工作原理一个带有精确问题和版本的研究简报
比较两种或三种方法或库一个带有标准以及您需要做出的决策的研究简报
编写任何形状清晰的函数、组件、迁移或测试一个实现简报
运行测试套件、构建、linter 并读取输出一个验证简报:运行这些,报告失败并附上 file:line
在多个文件中进行机械性重构一个带有一个工作示例和规则的重构简报

原因不仅仅是成本。您亲自读取的每个文件都会在会话的其余时间里停留在您的上下文中。子代理读取它,提取答案,文件转储随其上下文一起消失。您的上下文用于判断;它们的上下文用于材料。

狭窄的例外

仅在以下情况之一确实为真时才亲自完成工作:

  • 输出无需解释。 测试不在于多少条命令——而在于您如何使用结果。ls 查看路径是否存在,cat package.json | grep version,git status:结果按原样使用。但如果您必须阅读输出并思考——文件内容、测试失败、包含二十个结果的 grep——那么阅读就是工作,它应交给子代理。
  • 任务需要对话,并且无法用一段话总结。罕见——如果您能向用户解释,就能向子代理解释。
  • 任务本身就是判断。 架构、歧义解决、权衡,任何可能需要用户询问的事情。子代理无法与用户交谈。
  • 您无法验证结果。 如果您无法检查,就无法委托。

“编写简报会和做工作本身一样长”不在这个清单上。编写简报就是工作——这是需要你的部分。如果任务简单,简报很短,它几乎没有成本;如果任务有陷阱导致简报很长,那么它值得写。



分工

您保留您委托
理解请求及其未说明的约束读取代码库以映射已存在的内容
分解为具有清晰边界的单元针对精确问题进行网络研究
每个需要看到整体的决策根据精确规范编写代码
编写简报运行测试和构建,报告结果
批判性阅读结果跨多个文件的机械性转换
集成、权衡、与用户沟通生成任何形状清晰内容的第一稿

界线是判断 vs 执行。如果步骤需要决策,则保留。如果需要执行已决策的内容,则转交。



简报

这是整个技能的核心。简报不是任务描述;它是您思考过程的转录,用更少思考能力的人可以执行的方式写就。检验标准:如果一位从未见过此仓库的称职承包商仅收到这份文档,他们是否会产出您本来会产出的内容?

模板

## 目标
<一段话。做什么——以及,至关重要地——为什么。为什么能让子代理以其方式做出您未预料到的小决策。>

## 您没有的上下文
<来自对话或您的知识,但子代理需要且无法自行发现的一切。技术栈、约定、内容位置、已尝试过的方法、用户所关心的。>

## 已做出的决策——不要重新考虑
<区分因素。您已做出的每个选择,附上理由。使用哪个库。使用哪个模式。重用哪个现有的辅助函数。不要采用哪种方法以及原因。具体名称、具体路径、具体值。这是您的判断转移的地方。>

## 范围
包含: <确切要产出的内容>
不包含:<看起来相关但不是此任务的内容——清楚标明,以便他们不会跑偏>
禁止触碰:<禁止进入的文件或区域>

## 参考范例
<指向结构上相似的现有代码的路径。
“查看 X,照做”能比描述更快速地传达约定。>

## 陷阱
<您知道会出错的事情。默认值错误的 API。必须扩展而不能替换的测试设置。必须保留名称的导出。您会发现但他们不会注意到的每个陷阱。>

## 验收标准——我将检查这些
<具体、可运行、二值。命令和预期输出。不是“它有效”。>

## 返回
<要发送回的确切形状:涉及的文件,每个文件一行摘要、关键文件的差异、他们不得不做出但您未涵盖的决策,清晰标记。以及:终止条件——何时应报告而不是猜测。

始终要求另外两件事,按名称——见下方“他们看到但未触碰的内容”:
  1. 他们注意到但故意未触碰的内容,因为范围限制如此,附上 file:line。真实问题,不是凌乱。
  2. 他们的修改是否在被要求不碰的代码中创建了新问题。修改的爆炸半径,而不仅仅是修改本身。>

简短形式——用于查找、搜索和摘要

完整模板用于实现。研究或探索简报需要四件事,可以是五行:

问题: <一个精确的问题——不是一个主题,一个带有答案的问题>
范围: <路径、包、URL 或“整个仓库”——限定搜索范围>
上下文:<一两件会改变好答案样貌的事实>
返回: <形状:是/否 + 证据 · 带有 file:line 的列表 · 具有这些列的表 · <=200 字的为此目的的摘要>
附加: <“您路上碰到的任何破损物品,即使我没问”——可选,但这是免费的:他们已经在读取那段代码了,发现会随他们的上下文消失>
停止条件:<他们应报告而不是继续深挖的条件>

示例:

问题: session userId 从哪里读取,是否有任何东西缓存它?
范围: src/server/**, src/app/api/**
上下文: 我需要用它来作为速率限制器的键;缓存过时的 id 会是一个 bug。
返回: 每个读取位置为 file:line,加上关于缓存的是/否和证据。
停止条件: 如果有不止一个 session 实现——告诉我,不要选择一个。
问题: 这份事后总结文档得出了什么结论,它留下了哪些未解决的问题?
范围: docs/incidents/2026-08-12.md
上下文: 我即将添加速率限制,想知道这是否是推荐的修复方法还是其他什么。
返回: <=150 字:根本原因、推荐的修复方法、未解决的问题。逐字引用推荐。
停止条件: 如果文档引用了另一个文档来获取推荐——给出路径,不要总结摘要。

RETURN 行是人们跳过的那一行,正是它使得结果无需第二次往返即可使用。说明形状。

差异化检查清单

在发送之前,检查此清单。每个项目都是强大模型会本能完成而弱小模型只有当被告知才做的事情:

  • 重用胜于创建——命名了每个必须重用而不是重新发明的现有辅助函数、客户端、类型或工具
  • 约定——指向了一个要模仿的文件,以便命名、结构和错误处理无需说教就能匹配
  • 错误但明显的路径——命名了一个合理的人会采用的方法以及它在此处错误的原因
  • 边缘情况——列出了那些重要的:空、null、并发、离线、第 31 次请求
  • 失败策略——说明了当依赖不可用时的处理方式:容错失败、故障关闭、重试、降级
  • 具体值——实际名称、实际路径、实际数字。Ratelimit.slidingWindow(30, "1 m"),而不是“一个合理的限制”
  • 不变式——什么不能改变:导出的名称、公共签名、存储路径、现有测试
  • 陷阱——库的怪癖、未从环境变量中读取的配置、开发模式跳过的构建步骤
  • 范围围栏——命名了那些不是此任务的相邻事项
  • ...

[为翻译截断]

相关技能