---
name: zero-config-initialization
scope:
  - '*'
products:
  - '*'
id: ka-hard-rule-零配置初始化规则
asset_kind: governance_rule
lifecycle_status: active
authority: canonical
owner_mechanism_id: mc-zero-config-init
routes: ['*']
primary_triggers:
  - 零配置初始化规则
secondary_triggers: []
negative_triggers: []
priority: P0
specificity: 5
consumes:
  - mc-zero-config-init
hard_blocks:
  - 配置推断错误
  - fingerprint不匹配
fallback: manual_required
required_evidence:
  - config_draft
  - fingerprint_evidence
version: 1.1.0
last_reviewed: '2026-06-01'
type: governance_rule
when: 零配置初始化规则
stages: ["*"]
---

# 零配置初始化规则

## 核心约束

1. **运行时推断 vs 确认配置 vs 蓝图**: `soloforge init` 必须区分三种配置来源
   - 运行时推断: 从已有项目结构探测（package.json、tsconfig.json 等）
   - 确认配置: 用户显式提供的 .soloforge/config.yaml
   - 空项目蓝图: 全新项目的默认模版

2. **禁止自动落盘**: 推断结果不得自动写入项目配置文件
   - 必须先展示推断结果，经用户确认后才可落盘
   - `--dry-run` 模式必须可用

3. **探测优先级**: 运行时探测按以下顺序匹配
   - 已有 .soloforge/config.yaml → 使用确认配置
   - 项目根目录 package.json → 推断 Node.js 项目
   - 项目根目录 go.mod → 推断 Go 项目
   - 无匹配 → 使用空项目蓝图

4. **配置字段覆盖**: 运行时推断不得覆盖确认配置
   - 确认配置是事实来源
   - 推断值仅作为建议展示

## 验证要点

- `init` 不创建未确认的配置文件
- 推断结果与实际项目类型一致
- 空项目使用默认蓝图而非猜测配置
