
gstack o-series 模型行为覆盖层为 OpenAI 推理模型定制的 SKILL 行为补丁【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstackgstack 通过「模型行为覆盖层」model overlay机制针对不同 LLM 家族向生成的 SKILL 文档注入行为校正指令。本文以 model-overlays/o-series.md 为核心完整解读这三条面向 OpenAI o 系列推理模型o1/o3/o4 等的行为规则并结合仓库源码说明覆盖层如何被解析、包裹和注入到每个生成技能中读者最终能掌握 gstack 的 overlay 机制全貌以及如何用--model参数为任意模型族生成定制化的技能文档。一、o-series 覆盖层三条行为规则model-overlays/o-series.md 是纯 Markdown 文件全文由三条加粗标题引导的行为指令组成。它们是「补丁」而非硬性规则——解析器在注入时会附带从属声明见第二节模型应将其视为偏好而非规则。以下逐条继承原文并展开。1.1 Reasoning model behavior用推理但不暴露推理链原文要求你有强大的内部推理能力。要使用它但除非用户要求看到你的推理否则不要在输出中暴露思维链chain-of-thought。给出结论加证据而不是推理链本身。这条规则针对 o 系列模型的核心特性——推理型reasoning模型在回答前会进行内部思考。gstack 的立场是内部推理照常进行不剥夺模型的推理能力输出侧收敛默认只呈现「结论 证据」把推理链藏起来避免终端用户在 SKILL 执行过程中被大段中间思考淹没用户主权保留用户明确要求看推理时再展示规则本身不是一刀切的静默要求。这解释了为什么 o 系列模型在 gstack 技能中默认输出「结论先行」式的回答结构。1.2 Structured outputs preferred结构化输出优先于散文原文要求呈现分析时优先使用表格或要点列表而非散文段落。散文用于解释和上下文结构用于发现findings、选项options和对比comparisons。这条规则给 o 系列的输出划定了一条文体分界线内容类型推荐形式发现、结论findings表格 / 要点列表选项options、对比comparisons表格 / 要点列表解释、上下文、背景散文prose这与 gstack 整体文档风格一致SKILL 文档中大量使用表格组织决策矩阵和状态清单。对 o 系列模型而言这条规则意在抑制其在分析性输出中倾向于长段落铺陈的倾向。1.3 Completion bias完成倾向但服从安全门禁原文要求当完整方案可达时不要停留在部分方案上。但技能工作流的 STOP 点、AskUserQuestion 门禁和 /ship review 门禁永远优先于完成倾向。这条规则是三条中唯一带有优先级约束的也是理解 gstack overlay 设计哲学的关键完成倾向completion biaso 系列模型在 gstack 工作流中被鼓励「做到底」——不要交半个方案就结束回合但从属于subordinate to技能工作流中显式的 STOP 点、AskUserQuestion用户决策门禁、/ship审查门禁。这三类门禁代表「用户决策点」或「安全边界」一旦触发完成倾向必须让位。这种「倾向 从属」的写法与解析器注入的包裹文本第二节形成呼应overlay 里的每条指令都可以被技能本身的工作流规则覆盖。二、覆盖层如何被解析与注入源码机制三条规则的生效路径完全由两个源码文件决定模型族归一化 scripts/models.ts 和 overlay 解析器 scripts/resolvers/model-overlay.ts。2.1 模型族归一化o3、o1-pro都能命中 o-seriesscripts/models.ts 中的resolveModel()把 CLI 传入的模型名归一化为 overlay 文件名对应的「族名」。规则按优先级精确匹配输入与ALL_MODEL_NAMES含o-series见 scripts/models.ts完全一致则直接返回族启发式正则/^o[0-9](-|$)/把o3、o4、o4-mini、o1、o1-mini、o1-pro等一律归到o-seriesscripts/models.ts未知输入返回null由调用方决定报错或回退。文件头注释还点明了 o-series 的典型宿主场景「Codex CLI 运行 GPT/o-series 模型」scripts/models.ts。也就是说当 gstack 为 Codex 等宿主生成 SKILL 文档且目标模型是 o 系推理模型时本文件即被选中。2.2 解析器读取、继承、包裹scripts/resolvers/model-overlay.ts 的readOverlay()实现了三级优先级精确匹配ctx.model o-series→ 读取model-overlays/o-series.md{{INHERIT:...}}指令若文件首个非空白行是{{INHERIT:claude}}之类的继承声明解析器先读基类文件并拼接在前实现「子类 overlay 在父类之上叠加」scripts/resolvers/model-overlay.ts。注意 o-series.md没有继承声明它是独立的基础 overlay不依赖其他文件文件缺失或ctx.model未设置返回空字符串优雅降级不报错。generateModelOverlay()随后把内容包裹成统一的注入段scripts/resolvers/model-overlay.ts## Model-Specific Behavioral Patch (o-series) The following nudges are tuned for the o-series model family. They are **subordinate** to skill workflow, STOP points, AskUserQuestion gates, plan-mode safety, and /ship review gates. If a nudge below conflicts with skill instructions, the skill wins. Treat these as preferences, not rules. o-series.md 的三条规则正文这段包裹文本是理解 o-series.md 第 1.3 条「subordinate to safety gates」写法的来源从属声明是解析器强制注入的与文件内容无关无论 overlay 写了什么都会出现在每份生成文档中。仓库根目录已生成的 SKILL.md 展示了这一段的真实形态当前默认生成的是 claude 族。2.3 注入位置在 AskUserQuestion 格式之后在 scripts/resolvers/preamble.ts 的前言段数组中generateModelOverlay(ctx)排在generateAskUserFormat(ctx)之后。源码注释解释了顺序的缘由AskUserQuestion Format renders BEFORE the model overlay so the pacing rule is the ambient default... reversing this order regresses plan-review cadence (v1.6.4.0 bug).即节奏规则pacing rule必须作为环境默认先被模型读到overlay 的行为倾向只能作为从属补丁落在后面顺序颠倒曾导致 plan-review 节奏回归v1.6.4.0 缺陷。这从工程侧印证了 o-series.md 第 1.3 条「门禁优先于完成倾向」不是文档修辞而是整个 preamble 装配顺序所保障的不变量。三、实操生成带 o-series 补丁的技能文档仓库提供的生成入口在 package.json# 为 o 系推理模型重新生成全部技能文档 bun run gen:skill-docs --model o-series # 变体名同样可用resolveModel 会归一化到同一 overlay bun run gen:skill-docs --model o3 bun run gen:skill-docs --model o1-pro运行后每个技能的SKILL.md中都会出现## Model-Specific Behavioral Patch (o-series)段前言行MODEL_OVERLAY: {model}会标明当前激活的 overlay该机制由 CHANGELOG 记录的 v1.3 特性面引入。overlay 文件是纯 Markdown直接在model-overlays/下原地编辑即可无需改任何代码——这是仓库对 overlay 的维护约定。生成时的行为矩阵输入场景解析结果生成文档中的效果--model o-series精确匹配注入 o-series.md 三条规则--model o3/o1-pro等族启发式归一化同上--model gpt-5.4-mini归一化到gpt-5.4走 model-overlays/gpt-5.4.md未设置 model / 文件缺失返回空字符串不生成 Patch 段技能照常生成gpt-5.6-sol特例精确匹配使用专门的「作用域消歧」前言替代通用从属声明scripts/resolvers/model-overlay.ts需要说明的适用前提overlay 选择的是模型轴与宿主Claude Code、Codex CLI、Cursor 等是正交的——scripts/models.ts 明确「host ≠ model」生成器不会从宿主反推模型除非显式传--model或 setup 流程探测如从~/.codex/config.toml探测 Codex 模型。四、横向对照o-series 在 overlay 家族中的定位当前 model-overlays/ 目录含 10 个 overlay 文件。CHANGELOG 在 v1.3 特性面中列出了首批五个的定位claudetodo-list 纪律、gpt反提前终止 完整性、gpt-5.4反啰嗦继承 gpt、gemini简洁性、o-series结构化输出。三者对照可以看出 gstack 针对各模型族的「短板补强」思路overlay核心补强点与 o-series 的差异model-overlays/gpt.md完成倾向、先做后列、无客套开场gpt 的 completion bias 是「无条件做到底」o-series 的 completion bias 显式从属于安全门禁model-overlays/gemini.md简洁约束常规回答 3 行同样要求结构化输出但强调压缩而非结构化组织model-overlays/claude.mdTodo 逐条销项、重操作前说明思路、专用工具优于 Bash完全不涉及推理链与输出结构o-series 的独特之处是把「推理模型」这一模型类别本身作为调校对象其他 overlay 针对的是某家的行为偏差o-series 针对的是「内部推理很强、但需要管理其输出形态隐藏 CoT、结构化呈现」这一类别特性。五、验证与回归保障围绕 overlay 机制仓库提供了可查证的证据链归一化行为test/model-overlay-gpt-5.6-sol.test.ts 直接对resolveModel()断言如gpt-5.6-sol精确命中、gpt-5.6-terra落入gpt族同一套归一化路径覆盖 o 系变体preamble 装配顺序scripts/resolvers/preamble.ts 的注释把 overlay 必须晚于 AskUserQuestion 格式段的原因锚定到具体版本缺陷属于「顺序即正确性」的强约束CHANGELOG 追溯CHANGELOG.md 记录了 o-series overlay 的引入「o-series (structured output)」、resolveModel()的族启发式设计o3→o-series以及 overlay 排序回归的修复过程生成产物任意已生成的技能文档如根目录 SKILL.md尾部都带有Model-Specific Behavioral Patch段可直接查看当前生效的 overlay 内容验证注入是否符合预期。小结model-overlays/o-series.md 只有三条规则但它示范了 gstack overlay 机制的完整闭环纯 Markdown 的行为指令→resolveModel()模型名归一化→readOverlay()读取并可选继承拼接 → 解析器强制包裹从属声明 → 在 preamble 中按既定顺序注入。理解这一链路后你可以直接阅读 scripts/models.ts 与 scripts/resolvers/model-overlay.ts 为新的模型族追加 overlay或调整 o 系列三条规则中任何一条的措辞而无需触碰任何 TypeScript 代码。【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考