ワンクリックで
lina-openspec-archive-changes
扫描并归档已完成的 OpenSpec 活跃变更。 必须用户手动触发,禁止自动触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
扫描并归档已完成的 OpenSpec 活跃变更。 必须用户手动触发,禁止自动触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
手动触发:将主仓库与 apps/lina-plugins 对齐最新 main 后, 按提示在两侧各建独立分支;分支就绪后继续处理提示词中的后续请求。 必须用户手动触发,禁止自动触发该技能。
用于处理用户对已有实现的反馈分诊与执行闭环:先判断是否需要纳入 OpenSpec 活跃变更或新建变更,再完成根因分析、实现、验证和必要测试。凡是用户针对已有实现反馈 Bug、缺陷、改进点、建议或实现遗漏,即使没有明确提到“反馈”或 OpenSpec,也必须使用本技能。
用于审查 LinaPro OpenSpec 工作流中的代码变更和规范合规性。在完成 /opsx:apply 任务、 完成 lina-feedback 反馈修复、执行 /opsx:archive 归档前必须使用;在用户要求代码审查、 规范合规检查,或明确调用 /lina-review 时也必须使用。
手动触发:为 LinaPro 主仓库及 apps/lina-plugins 子模块完成提交、PR 前 rebase、推送、创建 PR, 主仓 CI 修复回路,以及 PR 合并后恢复原始分支并同步 main。禁止自动触发。
审查 LinaPro 社区 GitHub Issues,并按项目规范和源码实现分类处理。 必须用户手动触发,禁止自动触发该技能。
先执行 lina-openspec-archive-changes 归档活跃变更,再执行 lina-openspec-archive-consolidate 做归档摘要。 必须用户手动触发,禁止自动触发。
| name | lina-openspec-archive-changes |
| description | 扫描并归档已完成的 OpenSpec 活跃变更。 必须用户手动触发,禁止自动触发。 |
| compatibility | 依赖 OpenSpec CLI,在 LinaPro 仓库根目录执行。 |
归档 openspec/changes/ 下已完成的活跃变更(排除 archive/),输出成功/跳过清单。
archive/。--no-validate,不手动 mv。tasks.md 完成态;不空写 design.md。openspec validate <name> --strict + openspec status --change <name> --json 复验。| 条件 | 要求 |
|---|---|
| 位置 | openspec/changes/<name>/,name ≠ archive |
| status 可读 | openspec status --change <name> --json 成功 |
| 必选 artifact | proposal / specs / tasks(若存在)为 done/complete/completed |
| design(可选) | 缺失 design.md、或 design=ready、或已 done → 均不阻塞。isComplete=false 仅因 design 未写 → 仍可继续。禁止为归档生成占位 design |
| tasks.md | 存在;无 - [ ] / - [未完成] |
| 任务统计 | completedTasks == totalTasks;不等则以 tasks.md 为准,记录差异后继续 |
| MODIFIED/REMOVED | header 须命中 openspec/specs/<capability>/spec.md;否则走修复 |
| 插件业务 specs | 能力目录必须以 <plugin-id> 开头(见下) |
| 校验 | openspec validate <name> --strict 通过 |
无 tasks.md → 跳过(无法判定)。缺 design.md → 不跳过。
无 artifact 明细时,用 openspec list --json 的 status ∈ {complete,completed,done} 辅助判断。
业务插件 = apps/lina-plugins/<plugin-id>/ 下的具体插件能力。
不含 宿主框架 / lifecycle / governance / pluginbridge / host service / 动态运行时。
plugin.yaml 识别 plugin-id。specs/<capability>/ 必须以 <plugin-id> 或 <plugin-id>-... 命名;归档后 openspec/specs/ 同理。cms)。plugin-framework)。specs/<cap>/ → specs/<plugin-id>-<cap>/ 或 specs/<plugin-id>/,再复验。插件规范目录缺少插件前缀且无法安全自动修复:<capability>。pwd && test -d openspec/changes && openspec --version && git status --short
CLI 不可用、非仓库根或无 openspec/changes → 停止并说明。
openspec list --json
find openspec/changes -mindepth 1 -maxdepth 1 -type d ! -name archive -exec basename {} \; | sort
CLI + 文件系统合并去重,字母序处理。
openspec status --change "<name>" --json
# 读 openspec/changes/<name>/tasks.md;扫 specs/**
记录:任务完成度、artifact、插件 id、可修复异常、skipReason。
常用原因:任务未完成:a/b · 缺少 tasks.md · artifact 未完成:proposal/specs/tasks · design 可选,已继续 · header 不匹配… · 插件前缀… · 归档失败:…
可自动修复(最多 2 轮,每轮后 strict 复验):
ADDED禁止:改 tasks 勾选、覆盖用户未提交冲突文件、删除有效需求以混过校验。
openspec archive -y "<name>"
-y;默认不用 --skip-specs / --no-validateopenspec/changes/archive/YYYY-MM-DD-<name>/**自动归档结果**
扫描到 N 个活跃变更,自动修复 A 个,成功归档 B 个,跳过 C 个。
自动修复:
- `name`:动作摘要,复验通过
成功归档:
- `name` → `openspec/changes/archive/YYYY-MM-DD-name/`
未归档:
- `name`:原因
无任何可归档项时写明「本次没有归档任何变更」。环境错误示例:未找到 OpenSpec CLI。
openspec list --json
openspec validate --all
validate --all 因其他未完成变更失败时,勿归咎本次归档,注明范围即可。
| 情况 | 处理 |
|---|---|
| 无活跃变更 | 报告即可,不报错 |
| 仅未完成 | 列原因,不归档 |
| 已在 archive/ | 不扫描 |
| 缺 design / design=ready | 归档,记「design 可选」 |
| 工作区已有本地改动 | 可继续;不动无关文件;待归档目录有改动时先提示 |
| 归档产生 diff | 预期结果,不自动 commit |