
桌面应用CLI开发工具【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址https://gitcode.com/gh_mirrors/im/imewlconverter点击查看免费下载深蓝词库转换IME WL Converter仓库在openspec/目录下采用 OpenSpec 风格的规范驱动spec-driven开发工作流每个变更change先在openspec/changes/name/下生成提案proposal、设计design、增量规格说明specs与任务清单tasks待实现完成后通过/opsx:archive命令归档。本文以 .claude/commands/opsx/archive.md 为骨架完整讲解归档工作流的六个步骤、三条 CLI 探测命令、标准输出模板与防护措施并结合仓库中已有的归档实例如2026-05-12-export-scel说明其在真实项目中的落地方案。读完本文你将掌握如何安全地把一个已完成变更移动到openspec/changes/archive/并正确处理未完成产出物、未完成任务与增量规格说明同步三大分支场景。一、OPSX 归档工作流在项目中的定位在深入步骤之前先理解归档在 OPSX 生命周期中的位置。OPSX产出物驱动的 OpenSpec 工作流由一组 Claude Code slash command 组成全部位于 .claude/commands/opsx/ 目录形成一个完整闭环命令职责/opsx:new启动新变更用openspec-cn new change name在openspec/changes/name/下搭建脚手架/opsx:continue按产出物图继续推进当前变更/opsx:verify验证产出物与任务完成状态/opsx:sync将变更中的增量规格说明同步到主规范/opsx:archive将已完成的变更归档本文主题/opsx:bulk-archive一次性批量归档多个变更并代理式解决规格说明冲突仓库中的工作区结构完全支撑这套流程openspec/config.yaml 声明schema: spec-driven并提供项目上下文技术栈、约定、领域知识openspec/project.md 描述项目目的与约束openspec/changes/存放活动变更openspec/specs/存放各能力capability的主规范如 cmd-args-parsing/spec.md、llm-configuration-cli/spec.mdopenspec/changes/archive/则是归档的最终归宿。/opsx:archive的核心职责一句话概括把实现完成的变更目录从openspec/changes/name移动到openspec/changes/archive/YYYY-MM-DD-name并在移动前完成三类健康检查。移动而非删除保证了历史规格说明可追溯——这一点对深蓝词库转换这类长期维护、格式众多搜狗 scel、百度 bdict、QQ qpyd、Rime 等数十种的项目尤为重要。二、输入约定变更名称从哪来归档命令的输入格式为/opsx:archive change-name变更名称采用 kebab-case例如add-auth、export-scel。规则如下如果参数中指定了变更名称直接使用如果省略先检查是否可以从对话上下文中推断出来如果模糊或不明确必须提示用户选择可用变更严禁猜测或自动选择。始终让用户选择是贯穿整个工作流的第一原则防止误归档正在开发的变更。三、步骤一列出活动变更并让用户选择当变更名称缺失时运行openspec-cn list --json该命令返回所有活动未归档变更的 JSON 列表。随后使用AskUserQuestion tool让用户选择选择面板中应仅显示活动变更已归档的变更不出现如果可用包含每个变更使用的 Schema从产出物图解析。四、步骤二检查产出物完成状态选定变更后运行状态探测命令openspec-cn status --change name --json解析返回的 JSON重点关注两个字段schemaName当前变更使用的工作流artifacts产出物列表及其状态done或其他。从源码结构看openspec-cn status输出的正是产出物图artifact graph的完成情况这与/opsx:new中显示哪些产出物需要创建、哪些已就绪的状态模型同源。归档前读取该图本质是在做一次规格说明层面的收尾确认。分支处理如果存在任何产出物状态不是done显示列出所有未完成产出物的警告提示用户确认是否继续归档用户确认后继续否则中止。关键原则警告不阻断归档只负责告知与确认。五、步骤三检查任务完成状态产出物检查之外还需阅读任务文件通常是openspec/changes/name/tasks.md统计未完成任务统计标记为- [ ]未完成与- [x]已完成的任务数量如果发现未完成的任务显示包含未完成任务数量的警告并提示用户确认是否继续如果不存在任务文件直接继续无需任务相关警告。仓库中已有归档实例印证了任务文件的真实格式。以 openspec/changes/archive/2026-05-12-export-scel/tasks.md 为例该变更scel 格式导出能力的任务清单按接口与基础架构 / 核心导出实现 / 拼音处理 / 测试四个分组组织所有条目均标记为- [x]完成状态例如1.1 新增IBinaryWordLibraryExport接口2.4 实现文件头写入magic number8字节、保留区域填充至 0x011F4.3 编写往返测试导出为 scel 后重新导入验证词条数据一致性。任务粒度如此之细正是为了归档时能一目了然地核对完成度——对应实现的 SougouScelExporter.cs 与SougouScelImporter.cs均在仓库src/ImeWlConverter.Formats/SougouScel/下可查证。六、步骤四评估增量规格说明同步状态这是归档前最具技术含量的一步处理变更期间产生的增量规格说明delta specs。6.1 检查增量规格说明是否存在在openspec/changes/name/specs/下检查是否存在增量规格说明文件每个 capability 一个spec.md如果不存在不提示同步直接继续归档如果存在进入同步评估流程。6.2 与主规范逐条比对将每个增量规格说明与其在openspec/specs/capability/spec.md的相应主规范进行比较确定将应用哪些更改添加、修改、删除、重命名并在提示用户之前显示合并摘要。仓库中两个目录的对应关系清晰可验证增量侧openspec/changes/archive/2026-02-03-replace-search-word-freq-with-llm/specs/ 下含llm-configuration-cli/、llm-configuration-ui/、llm-word-rank-generation/、word-rank-management/四个能力主规范侧openspec/specs/ 下存在同名四个能力目录llm-configuration-cli、llm-configuration-ui、llm-word-rank-generation、word-rank-management一一对应正是增量同步到主规范后的结果。6.3 提示选项与分支根据比对结果提示选项不同如果需要更改立即同步推荐、不同步直接归档如果已同步立即归档、仍要同步、取消。若用户选择同步则执行/opsx:sync逻辑对应 .claude/commands/opsx/sync.md即读取增量规格说明并按新增需求 / 修改需求 / 移除需求 / 重命名需求四类操作智能合并进主规范。无论同步选择如何都继续执行归档——同步与否只影响摘要中的状态标注。七、步骤五执行归档同步评估结束后进入实际归档操作分三步1. 确保归档目录存在mkdir -p openspec/changes/archive2. 用当前日期生成目标名称YYYY-MM-DD-change-name例如2026-05-12-export-scel。3. 检查目标是否存在后移动mv openspec/changes/name openspec/changes/archive/YYYY-MM-DD-name如果目标已存在失败并报错建议重命名现有归档或使用不同日期如果不存在执行移动。一个容易忽略但重要的细节移动到归档时保留.openspec.yaml它与目录一起移动确保归档后的变更仍保留 Schema 元信息随时可以回溯其工作流类型。仓库中 4 个已归档实例2026-01-31-refactor-cmd-args-format、2026-01-31-refactor-version-automation、2026-02-03-replace-search-word-freq-with-llm、2026-05-12-export-scel的命名全部遵循YYYY-MM-DD-name规范且每个实例都完整保留了proposal.md、design.md、tasks.md及specs/子目录印证了整目录移动、信息零丢失的执行方式。八、步骤六显示归档摘要归档完成后输出结构化摘要包含四类信息变更名称、使用的 Schema、归档位置、规格说明同步状态以及任何警告的注释未完成的产出物/任务。成功时的输出模板## 归档完成 **变更** change-name **Schema** schema-name **归档至** openspec/changes/archive/YYYY-MM-DD-name/ **规范** ✓ 已同步到主规范 所有产出物已完成。所有任务已完成。成功时无增量规范的输出模板## 归档完成 **变更** change-name **Schema** schema-name **归档至** openspec/changes/archive/YYYY-MM-DD-name/ **规范** 无增量规范 所有产出物已完成。所有任务已完成。带警告的成功输出模板## 归档完成带警告 **变更** change-name **Schema** schema-name **归档至** openspec/changes/archive/YYYY-MM-DD-name/ **规格说明** 跳过同步用户选择跳过 **警告** - 带有 2 个未完成产出物的归档 - 带有 3 个未完成任务的归档 - 增量规格说明同步已跳过用户选择跳过 如果这不是故意的请检查归档。错误时的输出模板目标已存在## 归档失败 **变更** change-name **目标** openspec/changes/archive/YYYY-MM-DD-name/ 目标归档目录已存在。 **选项** 1. 重命名现有归档 2. 如果是重复的删除现有归档 3. 等待不同的日期再归档九、防护措施清单原文档末尾给出了六条核心防护措施是整个工作流的纪律红线如果未提供变更始终提示选择——严禁自动猜测使用产出物图openspec status --json进行完成度检查——以机器可读的 JSON 为准而非肉眼判断不要在警告时阻止归档——只需告知并确认尊重用户对未完成项的处理决定移动到归档时保留.openspec.yaml——元信息随目录一起移动显示清晰的操作摘要——让用户对归档结果一目了然如果请求同步使用/opsx:sync方法代理驱动如果存在增量规格说明始终运行同步评估并在提示前显示综合摘要。十、与相邻工作流的协作关系归档不是孤立的终点操作它与 OPSX 家族其他命令协同上游变更由/opsx:new创建见 new.md在openspec/changes/name/下用openspec-cn new change name搭建脚手架产出物依 Schema 逐步生成同步归档中的增量规范同步步骤直接复用/opsx:sync见 sync.md的代理驱动智能合并逻辑——读取增量规范、对比主规范、按新增/修改/移除/重命名四类需求操作应用变更操作应当幂等批量场景当有多个变更同时完成时可用/opsx:bulk-archive见 bulk-archive.md一次归档多个其通过构建capability - [涉及它的变更]映射检测规格说明冲突并以检查代码库寻找实现证据的方式代理式解决冲突单个变更的归档命令mkdir -pmv与命名规范YYYY-MM-DD-name在批量场景中完全复用。十一、写在最后归档的本质是状态迁移而非数据删除把变更从活动区迁入历史区同时保留全部产出物与元信息。对深蓝词库转换这样同时维护 WinForm GUI、Avalonia macOS 客户端、CLI 命令行工具与大量格式插件的仓库而言OPSX 归档保证了每一次功能演进如 scel 导出、LLM 词频生成都留有完整的规格说明审计轨迹openspec/changes/archive/下的每个YYYY-MM-DD-name目录就是一部可回放的变更史。如需深入可继续阅读 archive 命令定义、对应的技能实现 openspec-archive-change/SKILL.md以及 openspec/config.yaml 中声明的完整项目上下文。赞分享桌面应用CLI开发工具【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址https://gitcode.com/gh_mirrors/im/imewlconverter点击查看免费下载相关推荐RemoveWindowsAI 参数配置批量禁用RemoveWindowsAI 参数配置批量禁用 需要把 Windows 11 内置的 Copilot、Recall 等 AI 组件批量清掉出问题时还能一键桌面应用CLI开发工具OPSX 批量归档工作流详解用 openspec 一次归档多个已完成变更的完整指南OPSX 批量归档工作流详解用 openspec 一次归档多个已完成变更的完整指南 本篇技术指南以开源仓库 imewlconverter深蓝词库转换中 .桌面应用CLI开发工具Druid OPSX 工作流详解Archive 命令如何安全归档 OpenSpec 中已完成的变更Druid OPSX 工作流详解Archive 命令如何安全归档 OpenSpec 中已完成的变更 本文基于 Druid 仓库中的 OPSX Archive数据库后端上一篇Gumroad 创作者变现平台卖东西这件事怎么被做简单的开源代码完整解读下一篇ijkplayer入门教程5分钟快速集成Android视频播放功能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考