pdlc-bootstrap — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pdlc-bootstrap (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- @include templates/prompts/iron-law-tool.md(已内联于下方,无需另读) --> ⛔ IRON LAW · 不可违反的硬门禁(工具型命令)
本命令不是主链路上的阶段:不追加 `history`,不改 `current_stage` / `next_step` / `last_phase_result`,也不为此分配功能ID。以下规则不可协商:
违反任一条 = 立即中止当前命令,输出违规详情,等待人工介入。 <!-- @include-end templates/prompts/iron-law-tool.md -->
接收一句话项目描述,自动分析需求、选择技术栈、生成完整的项目骨架(代码目录 + 基础配置 + PDLC 文档草稿)。
git status),如果有,提示用户先 commit 或 stash,然后继续docs/00_standards/ 等),如不存在则直接创建这些目录date +%Y%m%d、date +%H%M%SF<YYYYMMDD>-<HHMMSS>(示例形如 F20260717-122801;用执行时的真实值)docs/ 或 docs/.pdlc-state/ 下已有同名前缀),重新读取 date +%H%M%S 重取(生成本身有耗时、通常已跨秒;若仍同秒则 sleep 1 后再读一次,不手算时分秒,天然处理跨天边界)用时分秒而非当日序号,是为了多人 / 多 AI 并行时零协调也不撞号、合并零冲突。旧 F<日期>-<NN> ID 仍可解析。<!-- @include templates/prompts/layout-detect.md(已内联于下方,无需另读) -->
下文出现的 backend/services/、frontend/web/ 等路径只是空项目时的默认布局。动手创建或扫描目录之前,先看项目实际长什么样:
pnpm-workspace.yaml、turbo.json、nx.json、lerna.json、package.json 的 workspaces、go.work、Cargo.toml 的 [workspace]、settings.gradle(.kts) 的 include → 按其中声明的目录(如 apps/、packages/、services/、crates/)理解布局
backend/services/、services/、apps/、packages/、cmd/、crates/ 下找已存在的服务 / 应用,新单元放在同级,命名与目录结构照着已有的来src/,或是框架默认结构(manage.py + 各 app、Rails 的 app/、Next.js 的 app/ / pages/、Spring Boot 单模块)→ 按框架约定放,不要新建 services/ 一类平行目录--autonomous 下记入 auto_decisions[])把探测结论写进本次报告:布局类型 + 依据的文件 + 新内容的落点。判断错了的代价是在用户仓库里长出一套平行目录,比多问一句贵得多。 <!-- @include-end templates/prompts/layout-detect.md -->
根据用户的一句话描述,自动分析并生成项目计划摘要:
输出格式:
## 项目计划摘要
### 后端服务
| 服务名 | 分类 | 技术栈 | 说明 |
|--------|------|--------|------|
| user-service | services | Java/Spring Boot | 用户管理 |
| ... | ... | ... | ... |
### 前端应用
| 应用名 | 分类 | 技术栈 | 说明 |
|--------|------|--------|------|
| web-admin | web | React/Next.js | 管理后台 |
| ... | ... | ... | ... |
### 目录结构预览
(输出目录树)如果描述太模糊,主动追问 1-2 个关键问题(如"后端偏好 Java 还是 Go?"、"需要管理后台还是面向用户的前台?"),但不要超过 2 轮追问。
将计划摘要展示给用户,等待确认。用户可以调整服务列表、技术栈等。 确认后一次性生成所有内容,不再逐步确认。
确认后,按以下顺序生成:
#### 3.1 后端服务骨架
对每个后端服务:
backend/<分类>/<服务名>/backend/<分类>/<服务名>/docs/ 下创建 api-design.md 骨架#### 3.2 前端应用骨架
对每个前端应用:
frontend/<分类>/<应用名>/#### 3.3 PDLC 文档草稿
docs/01_requirements/prd/ 下创建 <功能ID>-<项目名>-prd.mdassets/prd-template.md 模板格式docs/02_design/architecture/ 下创建 <功能ID>-<项目名>-arch.mdassets/arch-design-template.md 模板格式/pdlc-arch 维护 docs/ARCHITECTURE.md(per-feature ledger 与系统级 surface 分工互补)。*-arch-analysis.md(v1.0 的 v1..v5 累积模式),提示用户运行 /pdlc-arch 整合到 docs/ARCHITECTURE.md 并归档旧文件。docs/02_design/api/ 下为每个后端服务创建 <功能ID>-<服务名>-api.mdassets/api-design-template.md 模板格式docs/02_design/database/ 下创建 <功能ID>-<项目名>-db.mdassets/db-design-template.md 模板格式docs/ 根创建两个空 stub,提供 canonical surface 位置,内容留待对应技能填充docs/ARCHITECTURE.md:参考 本 skill 目录下的 assets/architecture-overview-template.md,仅写 surface 标记 + 追溯头 + 占位说明("运行 /pdlc-arch 生成完整架构总览")docs/GLOSSARY.md:参考 本 skill 目录下的 assets/glossary-template.md,仅写 surface 标记 + 占位说明(surface 型术语表,就地编辑维护,git log 审计)## Bootstrap 完成报告(<功能ID>)
### 生成内容汇总
| 类型 | 路径 | 说明 |
|------|------|------|
| 后端服务 | backend/services/xxx | ... |
| 前端应用 | frontend/web/xxx | ... |
| PRD 草稿 | docs/01_requirements/prd/<功能ID>-... | ... |
| 架构设计 | docs/02_design/architecture/<功能ID>-... | ... |
| API 设计 | docs/02_design/api/<功能ID>-... | ... |
| 数据库设计 | docs/02_design/database/<功能ID>-... | ... |
### 下一步操作
- 运行 `/pdlc-prd <需求描述>` 完善产品需求文档
- 运行 `/pdlc-design <设计目标>` 细化技术设计
- 运行 `/pdlc-tdd <功能描述>` 开始测试驱动开发
- 运行 `git status` 查看新建与改动的文件(新建文件不在 `git diff` 里)
- 想撤销:改动过的已跟踪文件用 `git checkout -- <路径>` 还原;新建文件先 `git clean -n` 预览、确认无误再删(`git checkout .` 删不掉新建文件)<!-- @include templates/prompts/output-language.md(已内联于下方,无需另读) --> 🌐 Output language for generated artifacts
All generated artifacts (PRDs, design docs, code comments, review reports, test plans, deployment manuals, changelog entries, etc.) follow this policy:
an artifact (e.g. "write the PRD in English", "用英文写 API 设计文档", "output the deploy doc in Japanese"), use that language for that artifact, regardless of conversation language.
language and others in a different language (common: Chinese PRD + English API docs for partners), honour each per-artifact instruction.
ask once before producing the first artifact.
This policy applies to content (prose, comments, headings). It does not override technical conventions like English variable names, English git commit subjects, or English error codes when the project's conventions require them. <!-- @include-end templates/prompts/output-language.md -->
项目描述: $ARGUMENTS
<!-- @include templates/prompts/handoff.md(已内联于下方,无需另读) -->
命令完成后必须输出以下格式的最终消息:
✅ <阶段名> 完成:<主要产出物路径>
📊 自检:<通过数>/<总数> 通过(若有未通过,附要点)
📦 状态快照:docs/.pdlc-state/<feature-id>.json
👉 下一步:/pdlc-<next_step>
(如果有分叉)或 /pdlc-<alt>(条件:<选择依据>)规则:
next_step,此时输出 👉 下一步:(本次流程结束,无后续)/pdlc-tdd;若测试已齐 → /pdlc-review"<!-- @include-end templates/prompts/handoff.md -->
本命令的 handoff 输出:
✅ 项目骨架初始化 完成
📦 产出:backend/ + frontend/ + docs/ 骨架
👉 下一步:(本次流程结束,无后续)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.