yingxiaoshuai/openspec-reverse-engineering-skill
GitHub: yingxiaoshuai/openspec-reverse-engineering-skill
一个用于将现有代码逆向工程为 OpenSpec 规范文档的技能工具,支持回溯归档和修复缺失规范两种工作模式。
Stars: 1 | Forks: 0
# openspec-retro-archive
English | [简体中文](./README.zh-CN.md)
一个用于以下场景的 OpenSpec 技能:
- 将现有代码逆向工程为 OpenSpec
- 修复直接推送代码后缺失的 OpenSpec
- 从实际实现中重建 proposal/design/tasks/spec 产物
- 将历史特性回填到 OpenSpec 归档变更中
- 读取 `openspec/config.yaml` 或 `.openspec.yaml` 以遵循仓库语言、schema 和约束设置
- 针对单个特性、文件夹或文件集进行操作,而非扫描整个仓库
## 此技能解决的问题
许多团队并未始终如一地遵循 OpenSpec。有时是先发布特性,后补写规范。有时是队友绕过 OpenSpec 变更流程直接推送代码。
此技能涵盖这两种情况:
1. **回溯归档模式**
- 将现有或已发布的代码转换为已归档的 OpenSpec 变更
2. **修复模式**
- 在有人绕过 OpenSpec 工作流后,修复或回填缺失的 OpenSpec
它的工作范围可以是:
- 一个特性名称
- 一个能力名称
- 一个文件夹,例如 `src/features/analytics-dashboard`
- 一小部分文件
- 一个提交范围或最近的 git 历史
在生成输出之前,它还会读取 OpenSpec 配置(如 `openspec/config.yaml` 和 `.openspec.yaml`),以对齐语言、术语、格式和项目特定的约束。
## 核心能力
- 从现有实现推断变更边界,而不是将所有旧代码塞进一个归档中
- 根据代码证据、文档和 git 历史生成 OpenSpec 产物
- 在队友未使用 OpenSpec 提交代码后修复缺失的 OpenSpec
- 遵循仓库级 OpenSpec 配置中的输出语言、schema、术语和约束参数
- 支持文件夹范围和文件范围的逆向工程
- 区分直接证据、合理推断和未解决的空白
- 将历史任务默认写为已完成,同时允许补救任务保持开放状态
## 项目结构
```
openspec-retro-archive/
├─ SKILL.md
├─ README.md
├─ README.zh-CN.md
├─ .gitignore
├─ .gitattributes
├─ evals/
│ └─ evals.json
├─ examples/
│ ├─ prompts.en.md
│ ├─ prompts.zh-CN.md
│ └─ prompts.md
└─ docs/
└─ github-metadata.md
```
## 安装
如果你想在本地试用此技能:
```
Copy-Item -Recurse .\openspec-retro-archive $HOME\.claude\skills\openspec-retro-archive
```
然后通过以下方式加载:
```
npx openskills read openspec-retro-archive
```
## 示例提示词
- English prompts: [prompts.en.md](./examples/prompts.en.md)
- 中文提示词: [prompts.zh-CN.md](./examples/prompts.zh-CN.md)
典型请求:
- “请将现有的 `src/features/analytics-dashboard` 实现逆向工程为已归档的 OpenSpec 变更。”
- “一位队友绕过 OpenSpec 直接将代码推送到了 `src/features/incident-center/components`。请创建一个修复变更并补全缺失的规范覆盖。”
- “仅使用 `src/features/knowledge-base` 及其相关 API 文件。不要扫描整个仓库。”
- “先读取 `openspec/config.yaml`,遵循其语言和约束设置,然后修复 `src/features/incident-center` 缺失的 OpenSpec。”
## 评估
评估提示词位于 [evals.json](./evals/evals.json)。目前涵盖:
- 回溯归档工作流
- 直接代码推送后的修复工作流
- 特性范围的逆向工程
- 文件夹范围的逆向工程
- 感知配置的语言和约束处理
## 发布到 GitHub
示例命令:
```
git add .
git commit -m "feat: add OpenSpec retro archive and repair skill"
git remote add origin
git push -u origin main
```
## 许可证
目前未包含许可证。如果你想公开发布该仓库,请添加一个与你想让他人使用该项目的方式相匹配的 `LICENSE` 文件。
标签:Git历史, OpenSpec, 云资产清单, 代码分析, 代码转规范, 凭证管理, 功能规范, 工作流, 技术债务, 文档生成, 网络安全研究, 网络调试, 自动化, 软件开发, 逆向工程, 遗留代码, 防御加固, 项目重构