ワンクリックで
lina-openspec-archive-changes
扫描并归档 LinaPro 仓库中已经完成的所有 OpenSpec 活跃变更,并在归档前校验插件相关规范目录使用 <plugin-id> 前缀。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
扫描并归档 LinaPro 仓库中已经完成的所有 OpenSpec 活跃变更,并在归档前校验插件相关规范目录使用 <plugin-id> 前缀。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
为LinaPro以及SubModule仓库自动提交、推送并创建 PR。必须用户手动触发,禁止自动触发该技能。
手动生成 LinaPro 版本更新日志。用户要求生成 changelog、release notes、版本更新日志、发布说明,或提到 lina-community-release-changelog 时必须使用本技能。技能会基于 Git 历史、源码差异和 OpenSpec 内容整理详尽的双语 Markdown 更新日志,涉及数据库变更时必须单独列出,支持默认比较范围和用户指定两个版本/标签/提交进行比较,固定写入 localdocs/changelog.md。
仅手动触发。只有当用户明确要求 lina-perf-audit,或确认要运行完整审计时, 才执行 LinaPro 后端 API 全量性能审计。该流程会通过 make db.init/mock 重置数据库、重启服务、安装并启用所有内置插件、准备压测数据,并启动并发子代理; 通常需要几十分钟到数小时,且会消耗大量 Token。不得从其他技能、CI、定时任务、 Git 钩子或模糊的性能请求中触发。
审查 LinaPro 社区 GitHub Issues,并按项目规范和源码实现分类处理。用户要求审查 LinaPro issue、社区 issue、GitHub issue、question、feature、bug、关闭无效 issue,或提到 lina-community-issue-review 时必须使用本技能。
审查 LinaPro 社区 GitHub Pull Request,并按项目规范发表评论。用户要求审查 LinaPro PR、社区 PR、pull request、bot 审批、bot-approved 标签、GitHub PR 治理,或提到 lina-community-pr-review 时必须使用本技能。
用于处理用户对已有实现的反馈分诊与执行闭环:先判断是否需要纳入 OpenSpec 活跃变更或新建变更,再完成根因分析、实现、验证和必要测试。凡是用户针对已有实现反馈 Bug、缺陷、改进点、建议或实现遗漏,即使没有明确提到“反馈”或 OpenSpec,也必须使用本技能。
| name | lina-openspec-archive-changes |
| description | 扫描并归档 LinaPro 仓库中已经完成的所有 OpenSpec 活跃变更,并在归档前校验插件相关规范目录使用 <plugin-id> 前缀。 |
| compatibility | 依赖 OpenSpec CLI,要求在 LinaPro 仓库根目录执行。 |
扫描 openspec/changes/ 根目录下的活跃 OpenSpec 变更,将已经完成的变更执行归档,并清晰展示本次处理结果。
该技能需要手动调用触发。
openspec/changes/ 根目录下的一级子目录,并明确排除 openspec/changes/archive/。in-progress、状态无法读取、任务文件无法安全判定或归档命令失败,就不要移动该变更目录。--no-validate 绕过校验。git status --short,了解是否已有用户改动。不要还原、整理或修改与归档无关的文件。openspec archive 前,必须先完成全部候选变更的完成态、任务清单和增量规范 header 匹配预检。若任一完成态候选无法安全归档,停止本轮自动归档,不得先归档其他候选后再报告失败。apps/lina-plugins/<plugin-id>/下开发的具体业务插件能力时,归档前必须确认该变更的specs/能力目录以<plugin-id>开头,避免归档后把插件规范写入主框架通用能力目录。“插件相关内容”指用户在apps/lina-plugins/<plugin-id>/下开发的具体业务插件功能及其 OpenSpec 规范,例如john-content-cms插件提供的 CMS 功能。不包括apps/lina-core中的插件宿主框架、插件生命周期、插件治理、pluginbridge、host service 或源码/动态插件运行时等主框架通用能力。
归档预检时必须按以下规则处理插件相关内容:
proposal.md、design.md、tasks.md、增量规范正文、涉及路径或plugin.yaml中的插件id识别<plugin-id>。openspec/changes/<change-name>/specs/<capability>/目录必须以<plugin-id>开头。允许直接使用<plugin-id>作为插件根能力目录,也允许使用<plugin-id>-<capability>承载插件内更细的能力;禁止使用cms、article-management、settings这类不带插件前缀的通用目录名。<plugin-id>前缀;不得把多个插件的业务规范合并进同一个无插件前缀的能力目录。openspec/specs/的插件规范目录必须仍然以<plugin-id>开头,例如openspec/specs/john-content-cms/spec.md或openspec/specs/john-content-cms-article/spec.md。plugin-framework、plugin-governance或plugin-host-service-extension,不要强行加某个业务插件 ID。插件规范目录缺少插件前缀:<capability> 应以 <plugin-id> 开头,并按“先全量预检再归档”原则停止本轮自动归档。一个变更只有在以下条件全部成立时,才视为可自动归档:
openspec/changes/<change-name>/,且 <change-name> 不是 archive。openspec status --change "<change-name>" --json 能正常执行。openspec status 返回的所有 artifact 都处于完成状态。常见完成值包括 done、complete、completed;若返回结构不包含 artifact 明细,则使用 openspec list --json 中该变更的 status 字段辅助判断,只有 complete、completed、done 视为完成。tasks.md 中不存在未完成任务标记:
- [ ]- [未完成](若项目中出现中文任务标记)openspec list --json 提供 completedTasks 和 totalTasks,则二者必须相等。MODIFIED 和 REMOVED requirement header 必须能在当前 openspec/specs/<capability>/spec.md 中找到。缺失时说明 OpenSpec header 不匹配:<capability>/<requirement>,并跳过自动归档。specs/<capability>/目录必须满足“插件相关 OpenSpec 命名要求”,确保归档目标为openspec/specs/<plugin-id>.../而不是主框架通用目录。如果 tasks.md 不存在,应将该变更标记为“无法判定任务完成情况”,并跳过自动归档。LinaPro 的 OpenSpec 变更应维护任务清单,缺失任务文件不适合自动处理。
在仓库根目录执行:
pwd
test -d openspec/changes
openspec --version
git status --short
若 openspec 不可用、当前目录不是仓库根目录,或 openspec/changes 不存在,停止执行并说明原因。
优先使用 OpenSpec CLI 获取状态摘要:
openspec list --json
同时用文件系统扫描作为兜底,确保不会漏掉 CLI 未列出的活跃目录:
find openspec/changes -mindepth 1 -maxdepth 1 -type d ! -name archive -exec basename {} \; | sort
合并两边得到的变更名,去重后按字母序处理。不要扫描 openspec/changes/archive/ 内部目录。
对每个候选变更执行:
openspec status --change "<change-name>" --json
并读取:
openspec/changes/<change-name>/tasks.md
记录以下信息:
changeName:变更名listStatus:openspec list --json 中的状态(如有)statusArtifacts:openspec status --json 中 artifact 的完成情况(如有)completedTasks / totalTasks:任务统计(如 CLI 提供)uncheckedTasks:从 tasks.md 扫描到的未完成任务数量pluginIds:识别到的业务插件 ID 列表(如有)pluginSpecNaming:插件相关specs/目录是否满足<plugin-id>前缀要求skipReason:若不可归档,记录明确原因推荐跳过原因写法:
任务未完成:79/113tasks.md 中仍有 34 个未完成任务OpenSpec 状态未完成:in-progressOpenSpec 状态读取失败缺少 tasks.md,无法自动判定任务完成情况artifact 未完成:proposal, design插件规范目录缺少插件前缀:cms 应以 john-content-cms 开头归档失败:<错误摘要>执行任何归档命令前,必须先检查全部候选变更,并形成可归档列表与跳过列表。
预检内容包括:
openspec status --change "<change-name>" --json 能读取且所有 artifact 完成。tasks.md 存在且未包含未完成任务标记。openspec list --json 的 completedTasks 与 totalTasks 一致(如 CLI 提供)。specs/**/spec.md 中所有 MODIFIED/REMOVED requirement header 都存在于当前主规范对应 capability 的 openspec/specs/<capability>/spec.md。specs/<capability>/目录均以对应<plugin-id>开头;检查MODIFIED/REMOVED header 时也只能使用带插件前缀的openspec/specs/<capability>/spec.md作为目标,不得用历史遗留的无前缀插件目录放行。如果存在任何 openspec list --json 已报告完成但预检失败的活跃变更,应停止本轮自动归档,并报告所有预检失败原因。不要先归档其他可归档变更。
仅对通过完成判定的变更执行:
openspec archive -y "<change-name>"
说明:
-y 跳过交互确认,因为本技能已经完成自动检查。--no-validate。--skip-specs。只有当 OpenSpec CLI 明确提示该变更不需要同步 specs,或用户事先要求跳过 specs 时,才可以使用 --skip-specs。openspec/changes/<change-name>/,并记录归档路径。常见归档路径为 openspec/changes/archive/YYYY-MM-DD-<change-name>/。如果归档命令失败,记录为未归档,并保留错误摘要;不要手动 mv 目录来绕过 OpenSpec CLI。
执行完成后,用中文输出结构化结果。必须包含:
推荐格式:
**自动归档结果**
扫描到 3 个活跃变更,成功归档 1 个,跳过 2 个。
成功归档:
- `change-a` → `openspec/changes/archive/2026-05-12-change-a/`
未归档:
- `change-b`:任务未完成:5/8
- `change-c`:OpenSpec 状态未完成:in-progress
若发生环境错误:
无法执行自动归档:未找到 OpenSpec CLI。
请先安装或修复 `openspec` 命令后再运行 `lina-openspec-archive-changes`。
归档结束后,根据实际情况运行轻量验证:
openspec list --json
openspec validate --all
若 openspec validate --all 因仓库中既有未完成变更失败,不要把失败归咎于本次归档;在报告中说明失败范围和相关变更名。