尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从codex-plugin-cc学5个设计模式:薄转发、verbatim输出与单一事实源
从codex-plugin-cc学5个设计模式薄转发、verbatim输出与单一事实源【免费下载链接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.项目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cccodex-plugin-cc是 OpenAI 推出的 Claude Code 插件让你在 Claude Code 里直接调用 Codex 做代码审查/codex:review或委派任务/codex:rescue。它代码量不大却处处体现工程取舍。本文带你读懂它的 5 个可复用设计模式薄转发、verbatim 输出、单一事实源、共享代理连接复用、结构化输出兜底并给出源码位置方便对照阅读。项目一览3 层结构 ️整个插件只有三层理解结构后再看模式会非常清晰层目录职责命令层plugins/codex/commands/每个斜杠命令一份 Markdown告诉 Claude「怎么调脚本、怎么回话」脚本层plugins/codex/scripts/Node.js 脚本真正干活起任务、管状态、渲染结果数据层本地状态文件state.json 每个任务一份 JSON所有事实的落盘处入口是 codex-companion.mjssetup / review / task / status / result / cancel等子命令全部在这里分派。模式一薄转发 —— 命令文件只“传话”不干活 新手常见做法把逻辑写进命令定义里。这个插件反着来——命令文件是薄转发层几乎不含业务逻辑。以 rescue.md 为例它对子代理的约束极其克制The subagent is a thin forwarder only. It should use oneBashcall to invokenode .../codex-companion.mjs task ...and return that commands stdout as-is.子代理只做一件事一次Bash调用脚本然后把 stdout 原样返回。转发链条是/codex:rescue命令 →codex-rescue子代理 → 一次脚本调用 → codex-companion.mjs 分派到handleTask。整条链路上没有任何一层“顺手”做额外的事。可迁移的经验把“决策逻辑”收敛到唯一的脚本入口上层全部变薄。以后改行为只改一处上层 Markdown 基本不用动。模式二verbatim 输出 —— AI 只搬运不改写 这是全文最值得抄的一条规则。review.md 对 Claude 的要求是三连否定Return the command stdout verbatim, exactly as-is.原样返回Do not paraphrase, summarize, or add commentary.不许转述、总结、加评论Do not fix any issues mentioned in the review output.不许顺手修代码脚本侧也配合了render.mjs 的renderTaskResult拿到 Codex 的原始输出后只是补一个换行就原样输出不做任何加工。更狠的约束写在 codex-result-handling/SKILL.mdCRITICAL: After presenting review findings, STOP. ... Auto-applying fixes from a review is strictly forbidden, even if the fix is obvious.为什么重要LLM 转述 AI 输出时最容易“好心办坏事”——丢细节、改语气、甚至擅自执行。让模型当“传声筒”、让脚本控制最终文本结果才可预期、可复现。模式三单一事实源 —— 一份 state.json 定乾坤 ️状态管理是背景任务插件的难点。本项目的做法见 state.mjs一个仓库一套状态目录名 仓库名 根路径 SHA256 前 16 位state.mjs#L29-L44不同仓库互不串扰state.json是唯一权威任务列表、配置都只存这一份读取时自动合并默认值并容错损坏文件jobs/目录存全量记录每个任务一份完整 JSON含请求参数、原始输出state.json里只留索引和摘要自动瘦身pruneJobs只保留最近MAX_JOBS 50条被裁剪的任务连同日志一起删除state.mjs#L80-L84。写入路径也收敛为单一入口updateState→saveState任何地方改状态都走这里。可迁移的经验把“权威数据”和“全量明细”分两份但只允许一个写入函数。多入口写入是状态类 bug 的头号来源。模式四共享代理 —— 多个客户端复用一条连接 Codex 的 app-server 启动成本高。如果每个任务各起一条连接资源浪费还容易互相打架。插件的方案是 app-server-broker.mjs一个常驻的 JSON-RPC 代理进程所有客户端通过本地 socket 连到它由它独占并转发到 Codex。关键设计都在 250 行内忙则拒绝已有活跃请求时新请求直接收到broker is busy错误而不是排队死等app-server-broker.mjs#L173-L182流式事件精确路由turn/completed只发回发起对应线程的那个客户端特例白名单turn/interrupt允许在流式进行中插队保证“取消”永远可用app-server-broker.mjs#L170-L195干净关停SIGTERM/SIGINT 下断开所有 socket、删掉 socket 文件与 pid 文件。“拒绝 路由 特例”三件套就是一个最小可用的连接复用网关。模式五结构化输出 优雅降级 对抗性审查/codex:adversarial-review要求 Codex 按 JSON Schema 输出见 review-output.schema.jsonverdict/summary/findings/next_steps四个必填块。渲染层 render.mjs 体现了成熟系统的姿态解析失败→ 不报错崩溃直接展示 parse error 原始输出结构不合法→ 展示 validation error 原始输出合法→ 逐字段normalize缺 severity 补low、缺 title 补Finding N按严重度排序后渲染成表格。“先校验、再清洗、兜底展示原文”三步走让 LLM 输出这种不确定性输入始终有确定性的呈现结果。一张表总结5 个模式的“一句话心法” #模式一句话心法代表文件1薄转发上层只传话逻辑收口在唯一入口rescue.md2verbatim 输出AI 当传声筒脚本控制最终文本review.md3单一事实源一份权威数据 一个写入函数state.mjs4共享代理复用连接忙则拒绝事件精确路由app-server-broker.mjs5结构化输出兜底校验 → 清洗 → 原文兜底render.mjs新手阅读路线按这个顺序翻源码 README.md —— 10 分钟看懂 7 个斜杠命令与典型流程commands/ 下 8 个 Markdown —— 看懂“薄转发层”怎么写codex-companion.mjs —— 命令分派与任务生命周期可配合 tracked-jobs.mjs 看queued → running → completed/failed/cancelledlib/ —— state、render、git、process 各司其职的小模块tests/ —— 每个 lib 模块都有对应测试是理解行为契约的最快路径。这 5 个模式不挑语言也不挑场景写 CLI、做代理层、管后台任务时都能直接搬。建议 clone 下来边跑/codex:review边对照源码一遍即可。【免费下载链接】codex-plugin-ccUse Codex from Claude Code to review code or delegate tasks.项目地址: https://gitcode.com/GitHub_Trending/co/codex-plugin-cc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

技能注入反而降低编码表现?WebDev-Skills-Bench评测解析

技能注入反而降低编码表现?WebDev-Skills-Bench评测解析

如果告诉你"给大模型塞一堆技能,编码反而变差了",你会不会觉得这是反常识?这次我们来看一个非常值得本地评测和工程化团队关注的方向:WebDev-Skills-Bench,一个把"技能注入"当作变量、专门评估编码…

📅 2026/10/5 1:54:25
CrewAI 多智能体实操:三步搭出能接订单的电商客服系统

CrewAI 多智能体实操:三步搭出能接订单的电商客服系统

CrewAI 多智能体实操:三步搭出能接订单的电商客服系统 【免费下载链接】crewAI Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling compl…

📅 2026/11/3 14:58:38
Freqtrade FreqUI 网页界面使用指南:4 步打开控制台,登录问题一张表解决

Freqtrade FreqUI 网页界面使用指南:4 步打开控制台,登录问题一张表解决

Freqtrade FreqUI 网页界面使用指南:4 步打开控制台,登录问题一张表解决 【免费下载链接】freqtrade Free, open source crypto trading bot 项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade 这篇文章帮你在不写任何策略代码的前提下…

📅 2026/10/6 18:57:46
MORE NEWS

更多资讯

📰

S7-200 PLC在游泳池水处理系统中的节能优化方案

1. 项目概述:基于S7-200 PLC的游泳池水处理系统去年夏天给本地游泳馆做自动化改造时,发现传统继电器控制的水处理系统故障率高、能耗浪费严重。用西门子S7-200 PLC配合组态王重新设计后,不仅实现了自动反冲洗、药剂投加等核心功能&#xff0c…

📰

软件测试金字塔与自动化实践指南

1. 项目概述在软件开发领域,测试环节常常被新手开发者忽视,却又是决定产品质量的关键环节。我见过太多团队在项目后期被测试问题拖累,不得不加班加点修复本该早期发现的缺陷。测试不是简单的"点一点按钮",而是一门需要系…

📰

VC6.0调用jsoncpp实现UTF-8/GBK双模中文JSON解析

简介:本资源是一套专为VC6.0开发环境深度适配的JSONCPP全功能调用案例,面向嵌入式、工控及遗留系统维护等需兼容老旧开发平台的C工程师,解决在VC6.0中解析含中文JSON数据时普遍存在的乱码、编译失败与API调用异常等核心痛点。压缩包共72个文件…

📰

期货波动怎么看?平均真实波幅(ATR)和历史波动率怎么选?

想看期货波动,平均真实波幅(ATR)和历史波动率(HV)都能提供信息,却不宜拿两个数直接比较谁大谁小。你若关心一段行情通常跨过多少报价距离,与关心收盘价格的比例变化有多分散,实际上是…

📰

GNG生长神经气:无监督拓扑建模与在线流形学习

1. 这不是又一个“神经网络”噱头:GNG到底在解决什么真问题?你可能已经看过太多标题带“神经网络”的论文,点进去发现不过是把经典算法套个新壳,加点ReLU、Dropout、BatchNorm就敢叫“深度改进”。但GNG——Growing Neural Gas Ne…

📰

STM32F103C8T6最小系统原理图深度解析:电源、复位、时钟与SWD设计本质

简介:本资源为STM32F103C8T6最小系统板的完整原理图PDF文件,面向嵌入式初学者、电子设计爱好者及单片机课程实践者,解决核心硬件电路搭建与理解难题。图纸涵盖电源管理(含ME6211 3.3V稳压、多级去耦电容)、复位电路&am…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬