探了一晚上的CC和OPENSPEC,作个记录

豆包这次帮了大忙,解决了我的很多疑惑,这两个小时花得值呀。

我胡乱的问题提示词记录:

openspec只是SKILL文件么?还是使用NODE.JS开发了自己的一些逻辑,不然,怎么会不断和用户交互且能记住呢?这个OPENSPEC的技术实现细节有哪些,OPENSPEC每一次和用户对话交流,确认的内容,是必须经过大模型,还是自己内部循环,还是会有CLAUDECODE作组件交互?比如记忆如何管理,各个文件的生成是谁在定义操作?请以具体的场景(如explore, propose,apply)进行细致步骤分析和拆解。


那openspec引擎可以直接和大模型在后台交互么?还是所有提交大模型的问题及上下文,都必须经过CLAUDECODE才能完成?请在EXPLORE和APPLY阶段,明确OPENSPEC引擎,OPENSPEC SKILL,CLAUDECODE以及LLM的交互过程。还有所有要求用户回答的问题,选项的技术细节是如何实现的,交互流程如何,也把步骤和各组件描述清楚。


那我的理解,CLAUDECODE是通过OPENSPEC的CLI进行交互的吧?那即然大模型把结果返回给了CLAUDECODE,CLAUDECODE直接显示给用户即可,那为什么还要CLAUDECODE把从LLM获取的结果,通过后台传给OPENSPEC的CLI,然后这个CLI还要通过逻辑处理还是会直接再把数据返回给CC(CLAUDECODE)呢?如果直接返回,那不是相当于透传,多此一举么? 请把数据流和架构设计再请得清楚明白些,能解决这些疑惑。


那OPENSPEC如何安装?只是把CLI下载到本地,把SKILL再放到CC的指定目录么?自动安装有哪些命令,过程和文件移动过程细节?SKILL是在何时被安装到合适的文件夹里的?这个OPENSPEC的SKILL,只是在CC与LLM交互的时候发挥作用么?还是说会有CLI与CC的交互过程中发挥作用?据我所知,CC本身是可以直接读写文件系统 的,那在使用OPENSPEC的OPSX过程中,怎么就丧失了这种文件操作执行能力?是主动的,还是被动的?如何限制住的?那按之前的理解,CLAUDECODE这一层也可以不必要的嘛,可以让OPENSPEC直接与大模型交互,把CC这层去掉不也可以么?好像还可以更精简系统 架构呢。那好像是OPENSPEC和CC分别安装的,只要有一个工程目录先运行OPENSPEC的INIT命令,生成相关的目录和SKILL文件,然后,CC就可以在这个目录里使用OPSX命令了么?然后,VSCODE的CC扩散,也可以在这个目录里使用OPSX的扩展插件么了?所以,OPENSPEC,CC,VSCODE都是基于具体的工程目录来决定插件行为?而执行的各类CLI,都是独立的进程间调用了吧?请把这个模型说明白,也给我一个最终的解惑。


那CC能为OPENSPEC作显示给用户的服务,是它专门为OPENSPEC设计的功能,还是OPENSPEC利用了CC这个与用户交互窗口的功能?CC要把所有以大模型交流的信息传回给OPENSPEC CLI引擎,是CLI引导的,SKILL引导的,还是规定的?为什么没有OPENSPEC时,不会有这一个动作呢?没有OPENSPEC时,CC可以自主显示给用户,也可以自主的读写文件系统呀。也可以自 主的维护会话和记忆,必须CC也是一个很优秀的HARNESS工程实践。为什么用户一调用OPSX命令,CC的这些武功相关于就是自废了呢?有什么技术细节来佐证么?还有一个细节,就是OPENSPEC引擎解析和生成了一些纯展示文本和交互配置给CC,CC怎么知道如何正确显示给用户呢?这是CC本身就具体的交互能力,还是被OPENSPEC的SKILL引导的呢?还是说其它CLI同样生成交互给到CC与用户交互?能不能列举一个具体的数据示例,啥样的数据能让CC显示出与用户交互的效果?因为我们常见的是我们问CC问题,没见过CC能反问用户问题来进行多轮对话和深入交互的,我对这个点一直不懂,也不知道如何设计与CC的多轮持续交互,以及记住用户的问题和选项,用于更深入的持久对话,你可以设计一个DEMO CLI,来达到这种效果么?还有就是,CC在要写入文件或是执行代码时,一般会提醒与用户交互,要求确定。那如果上了OPENSPEC,需要写入文件或执行代码时,也是要包装成CC的确定格式,传回来让用户确定是否操作,CC再传回给CLI引擎,CLI引擎来决定下一个动作是同意还是禁止么?那这个动作是不是可以简化让CC直接接受用户选项,自己直接操作呢?最后解答一个问题,独立的CLAUDECODE CLI,与VSCODE里的CLAUDECODE可以分别安装,互不影响,还是说会共用SKILL?不然,为什么又有独立的CC,又有VSCODE里扩散插件的CC呢?这两者是什么关系,会不会相关影响呀?一般最佳实践是什么?OPENSPEC不让CC进行文件操作等约束,是放在哪些SKILL里的,这里边的SKILL是如何写的,请摘抄出相关的内容。那CC与CLI交互时,又是如何被这些SKILL描述约束的呢?也是通过类似于与LLM的上下文PROMPT,还是通过CLI调用参数呢?还是说有其它规则途径呢?


豆包的回答都很精彩,抄几段吧。

角色定位再浓缩
OpenSpec 引擎 = 业务主控 + 文件管家 + 协议解析器 + 规则校验器(本地核心,无 LLM 调用能力);
Claude Code = LLM 调用代理 + 前端显示器(无业务逻辑、无文件权限);
LLM = 纯内容生成器(不懂流程、不懂规则)。
数据流本质
纯文本对话:CC→引擎看似 “透传”,但引擎在后台完成状态、日志、会话维护;
带提问 / 选项 / 任务的业务交互:CC 只是传话筒,引擎才是真正的处理核心,中转是必须环节。
最终结论
这套 “CC ↔ 引擎” 的双向中转设计,不是冗余,而是为了实现「权限隔离、流程可控、协议扩展、安全校验」的工程化架构,也是 OpenSpec 能做到 “强规范、可记忆、自动化流程” 的底层保障。

❌ 误区:Skill 是独立运行程序
✅ 真相:Skill 是静态文本规则,仅被 CC 加载,无独立进程。
❌ 误区:CC 被系统禁用了文件读写
✅ 真相:CC 底层 API 正常,是Skill + 架构契约主动禁止其操作文件。
❌ 误区:中转 CLI 是多此一举
✅ 真相:CLI 是协议解析、文件管控、流程分支的唯一节点,无可替代。
❌ 误区:可以轻易砍掉 CC 精简架构
✅ 真相:技术可行,但会丢失交互、生态、分层优势,工程上不推荐。
❌ 误区:OpenSpec 是 VSCode 专属插件
✅ 真相:OpenSpec 是全局 CLI 工具,和编辑器无关,终端 / VSCode 均可使用,仅绑定项目目录。
❌ 误区:Skill 需要手动复制安装
✅ 真相:opsx init 全自动部署 Skill 到 CC 指定目录,无需人工干预。

  1. 核心架构再浓缩
    CC 只是通用交互终端,OpenSpec 纯复用其原生渲染、弹窗、对话能力,无专属定制;
    CC 从 “自主全能” 变为 “纯传话筒”,是 Skill 规则 + IPC 契约 + 上下文裁剪 三层主动约束,底层 API 未被禁用;
    数据强制回传的根源是 Skill 常驻规则,无 OpenSpec 时无此约束,CC 自闭环运行;
    结构化反问、选项交互 = 自定义文本标签协议 + CC 原生渲染,Demo CLI 可完整复刻该模型;
    文件 / 代码确认链路必须经 CLI 终审,是工程安全、审计、流程管控的必然要求,不能简化;
    终端 CC 与 VSCode CC 插件同源内核、共用全局 Skill、隔离项目 Skill,推荐 OpenSpec Skill 使用项目级部署;
    所有约束都明文写在 Skill 的 System Prompt 中,CC 与 CLI 的交互靠「Skill 规则 + 通信协议」双重管控。
  2. 一句话终极理解
    OpenSpec 把 CC 从 “独立 AI 客户端” 改造为标准化人机交互层,通过 Skill 定义行为边界、通过标签定义交互协议、通过跨进程通信接管所有业务逻辑与权限,最终实现一套可管控、可记忆、可流程化的 AI 工程协作体系。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容