Help us improve
Share bugs, ideas, or general feedback.
From pdlc
Scans existing project structure, reverse-generates baseline documentation, and performs health checks to smoothly adopt old projects into PDLC workflow.
npx claudepluginhub kanfu-panda/pdlc-skills --plugin pdlcHow this skill is triggered — by the user, by Claude, or both
Slash command
/pdlc:pdlc-adoptThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- @include templates/prompts/iron-law.md -->
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
扫描现有项目结构,逆向生成基线文档,并进行健康检查发现潜在问题。让旧项目平滑接入 PDLC 流程。
从 $ARGUMENTS 中解析子命令:
| 子命令 | 说明 |
|---|---|
scan | 扫描项目,输出接入报告 + 健康检查报告(不写任何文件,只读分析) |
init | 根据扫描结果,逆向生成基线文档到 docs/ 目录 |
如果未提供子命令或无法识别,输出以上帮助信息后停止。
全程只读,不创建/修改任何文件,只在终端输出报告。
技术栈检测
package.json、pom.xml、build.gradle、go.mod、requirements.txt、Pipfile、Cargo.toml、mix.exs 等react、vue、next、angular(从 package.json 依赖推断)服务/应用识别
backend/services/ 或具有独立启动入口的子目录frontend/、web/、app/ 或具有前端框架特征的目录数据库识别
按技术栈扫描路由定义:
| 技术栈 | 扫描目标 |
|---|---|
| Spring Boot | @RequestMapping、@GetMapping、@PostMapping 等注解 |
| Express/NestJS | router.get/post/put/delete、@Get/@Post 装饰器 |
| FastAPI | @app.get/post/put/delete、@router.get/post |
| Go (Gin/Echo) | r.GET/POST/PUT/DELETE、e.GET/POST |
| Django | urlpatterns、path()、re_path() |
提取信息:HTTP 方法、路径、处理函数名、参数(如能识别)。
| 来源 | 提取方式 |
|---|---|
| ORM Model | 扫描实体类/模型定义,提取表名、字段名、字段类型、关联关系 |
| Migration 文件 | 扫描 migrations/、db/migrate/ 等目录,提取 DDL 变更历史 |
| SQL 文件 | 扫描 *.sql 文件,提取 CREATE TABLE 语句 |
README.md 内容丰富度docs/ 目录及子目录docs/01_requirements/、docs/02_design/ 等)对代码进行静态分析级别的检查,按严重程度分级:
📊 项目扫描报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 一、项目结构
| 项目 | 详情 |
|------|------|
| 技术栈 | Java Spring Boot 2.7 + MySQL 8.0 |
| 后端服务 | 3 个(user-service, order-service, product-service) |
| 前端应用 | 1 个(web-admin, React 18) |
| 数据库 | MySQL(12 张表) |
| 已有文档 | README.md(简略)、无 PDLC 文档 |
## 二、可生成的基线文档
| 文档类型 | 是否可生成 | 内容预估 |
|---------|-----------|---------|
| 基线 PRD | ✅ 可生成 | 从 README + 服务结构推断,需人工补充业务目标 |
| API 设计文档 | ✅ 可生成 | 提取到 45 个接口定义 |
| DB 设计文档 | ✅ 可生成 | 提取到 12 张表结构 |
| 架构概要 | ✅ 可生成 | 3 服务 + 1 前端的依赖关系图 |
## 三、健康检查报告
### 🔴 阻断 (2)
| # | 位置 | 问题 | 风险 | 修复建议 |
|---|------|------|------|---------|
| 1 | user-service/src/.../UserDao.java:45 | SQL 字符串拼接 | SQL 注入 | 改用 PreparedStatement 参数化查询 |
| 2 | config/application.yml:12 | 数据库密码明文硬编码 | 凭证泄露 | 使用环境变量或密钥管理服务 |
### 🟠 严重 (3)
...
### 🟡 一般 (5)
...
### 🔵 建议 (4)
...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
统计:🔴 2 | 🟠 3 | 🟡 5 | 🔵 4 | 总计 14 个问题
💡 建议:先修复 🔴 阻断级问题,再运行 /pdlc-adopt init 生成基线文档。
建议先运行 scan 查看报告,再运行 init 生成文档。
scan 相同的扫描逻辑(收集项目信息)docs/ 下是否已有同名基线文档,已存在则跳过(避免覆盖)docs/
├── 00_standards/
├── 01_requirements/prd/
├── 02_design/
│ ├── api/
│ ├── architecture/
│ └── database/
├── 03_development/
├── 04_testing/
├── 05_deployment/
└── 07_reviews/
所有基线文档以 ADOPTED- 前缀命名,与正常 PDLC 文档区分。
所有文档头部包含接入标记:
<!-- PDLC-TRACE -->
<!-- PDLC-ADOPTED -->
<!-- 项目名称: my-project -->
<!-- 接入日期: YYYY-MM-DD -->
<!-- 阶段: 接入基线 -->
<!-- 说明: 由 /pdlc-adopt init 自动生成,内容基于代码逆向推断,需人工审核补充 -->
docs/01_requirements/prd/ADOPTED-<项目名>-prd.md> ⚠️ 以下内容由代码逆向推断,业务目标和用户故事需人工补充docs/02_design/api/ADOPTED-<服务名>-api.md(每个服务一个)templates/api-design-template.md 的格式> ⚠️ 接口描述基于函数名推断,请核对补充docs/02_design/database/ADOPTED-<服务名>-db.md(每个服务一个)templates/db-design-template.md 的格式> ⚠️ 表结构从代码提取,请核对与实际数据库是否一致docs/02_design/architecture/ADOPTED-<项目名>-arch.md> ⚠️ 架构描述基于代码结构推断,请核对补充docs/00_standards/adopt-status.md# PDLC 接入状态
> 由 `/pdlc-adopt init` 生成于 YYYY-MM-DD
## 接入概况
| 模块 | 基线 PRD | API 设计 | DB 设计 | 架构文档 | 测试覆盖 | 状态 |
|------|---------|---------|---------|---------|---------|------|
| user-service | ✅ | ✅ | ✅ | ✅ | ⚠️ 待补充 | 基线完成 |
| order-service | ✅ | ✅ | ✅ | ✅ | ⚠️ 待补充 | 基线完成 |
## 健康检查问题跟踪
| # | 级别 | 位置 | 问题 | 状态 |
|---|------|------|------|------|
| 1 | 🔴 | UserDao.java:45 | SQL 拼接 | 待修复 |
| 2 | 🔴 | application.yml:12 | 密码硬编码 | 待修复 |
## 后续建议
1. 人工审核基线文档,补充业务目标和用户故事
2. 修复 🔴 阻断级健康问题
3. 新功能开发使用 `/pdlc-feature` 走完整 PDLC 流程
4. 旧功能改造时从 `/pdlc-design` 开始(基线 PRD 已满足守卫检查)
5. 逐步为核心模块补充单元测试(使用 `/pdlc-tdd`)
docs/ 目录下创建文档> ⚠️ 引用块明确标注.claude/templates/pdlc/adopt-report-template.md 模板作为格式参考接入操作: $ARGUMENTS
本命令的 handoff 输出:
✅ PDLC 接入基线文档 完成
📦 产出:docs/**(基线文档集)
👉 下一步:(本次流程结束,无后续)