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, 云资产清单, 代码分析, 代码转规范, 凭证管理, 功能规范, 工作流, 技术债务, 文档生成, 网络安全研究, 网络调试, 自动化, 软件开发, 逆向工程, 遗留代码, 防御加固, 项目重构