dev-init · git:20260730.6ee304a · 2026-07-30 · sha256 9bd7275ed18abf9b

dev-init git:20260730.6ee304aA

Immutable. This exact content is served forever at /api/v1/blob/9bd7275ed18abf9b.

---
name: dev-init
description: 项目初始化子类型规范 — 新项目/模块脚手架 + Profile 自动生成
---
# Dev Init Skill

## 触发条件

用户要求初始化新项目、新模块、新仓库,典型场景:从零搭建项目脚手架、初始化 monorepo 子包、创建新服务模板。

## 执行流程

| 步骤 | 动作 |
|------|------|
| 1 | 收集项目信息:名称/技术栈/包管理器/团队规范 |
| 2 | CP1:确认技术栈选型和目录结构 |
| 3 | CP2:确认依赖清单和配置文件方案 |
| 4 | 生成脚手架:目录结构 + 配置文件 + 基础文件 |
| 5 | 自动生成 Profile:由 workspace layout 解析的 `<active-profile-dir>` |
| 6 | 初始化 Git + CHANGELOG + README(README 默认通过 `readme-authoring` 生成) |

## Profile 自动生成

init 完成后必须执行 `ProfileGenerationContractGate`,先运行 `devcodex profile plan`,再按确认档位运行 `devcodex profile init --tier <tier>`:

| 档位 | 默认生成 |
|------|----------|
| `profile-lite` | README、01~03、`config.json` |
| `profile-standard` | lite + 04、05、`06-功能清单.md` |
| `profile-closed-loop` | standard + `07-用户文档与契约规范.md` |

公开包、CLI、SDK、多模块、文档站或 public API 项目应根据证据选择 standard/closed-loop。新生成的 `06-功能清单.md` 使用 `FeatureInventorySchemaV2`,分离生命周期与证据状态/日期/引用,并兼容读取 V1;事实不明确时保留 `unverified`,不得编造。已有 Profile 升级只补缺失文件;降档必须显式 `--allow-downgrade` 并保留高档文件,执行 `ProfileTierMigrationSafetyGate`。

## 关键规则

- **Gray Skill 不默认部署**:`portfolio` 中 `lifecycleState=gray` 的 Skill 为可选/试验能力,init / 宿主分发默认不安装到部署副本;仅 `active` Skill 进入默认分发(见 `skill-lifecycle-governance`)
- 跳过 CP3(init 无需实施计划阶段);同时豁免 `dev-plan-review`(CP3 已跳过,质量门禁不适用);必须记录 `CP3: N/A(init 子类型豁免)`,供 hook/fallback 区分合法豁免与漏确认
- 生成的 .gitignore 必须覆盖当前 layout 对应的 `<active-root>/.memory/`;legacy 单项目模式才使用 `.devcodex/.memory/`
- 依赖选型遵循项目 profile 中的技术栈约束(若已有 profile)
- 初始化 README 时默认先写给真实使用者;开发/贡献信息后置,后续专项复审走 `audit-readme`
- Node.js 项目默认生成 `engines.node >=18`,并同步 README、Profile 与 CI matrix;低于 v18 必须在 CP2 写明业务理由、风险和验证证据
- 包 / 库 / adapter / CLI 初始化必须同时生成或确认代码实现层与包工程层入口:public API、public types、internal 工具、shared tests、benchmark(如适用)、docs、scripts、dist/coverage 边界、package metadata 与 `changelogs/unreleased.md`