---
name: full-lifecycle-navigation
type: procedure
when: '下一步, 继续, 现在能写代码吗, 工作流导航, navigation, 阶段判断, 工作包生成'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-procedure-全生命周期工作流导航
asset_kind: procedure
lifecycle_status: active
authority: supporting
owner_mechanism_id: mc-workflow-navigation-contract
routes: ['operation', 'artifact_generation']
primary_triggers:
  - 全生命周期工作流导航
secondary_triggers:
  - 下一步
  - 继续
  - 现在能写代码吗
  - 阶段导航
negative_triggers: []
priority: P0
specificity: 5
consumes:
  - mc-workflow-navigation-contract
  - current_task_context
  - project_configuration
  - design_artifact_audit
  - repair_reverify_directive
emits:
  - next_action_plan
  - executable_work_package
  - prohibited_actions
required_evidence:
  - project_stage
  - task_stage
version: 1.1.0
last_reviewed: '2026-06-01'
stages: ["需求分析", "架构设计", "详细设计", "任务规划", "编码与单元测试", "代码审查", "联调验证"]
---

# 全生命周期工作流导航

本流程定义了从项目初始化到发布后的完整工作流导航决策树。

## 项目生命周期阶段

| 阶段 | 判断条件 | 下一步 |
|------|----------|--------|
| 未初始化 | .soloforge/ 不存在或无 config.yaml | 运行 soloforge init |
| 配置待确认 | config.yaml 存在但字段未确认 | 先区分自动修复项和业务确认项；机械类型/evidence 问题运行 soloforge config repair，业务口径再运行 soloforge config confirm |
| 知识就绪 | 配置已确认、知识库已索引 | 提交开发意图开始新任务 |
| 设计进行中 | 设计产物存在但未通过审计 | 完成设计并通过审计 |
| 实现就绪 | 设计产物已通过审计 | 制定开发切片计划 |
| 开发进行中 | 有任务在编码/验证阶段 | 继续编码和验证 |
| 交付就绪 | 任务已通过验证 | 进行交付验收 |
| 已发布 | 已交付上线 | 进入观察期 |
| 发布后观察 | 发布后验证阶段 | 监控、反馈、回滚预案 |

## 任务生命周期阶段

任务从分类到交付的完整流程：

1. 输入材料收集 → 2. 需求明确化 → 3. 决策研讨 → 4. 架构设计 → 5. 详细设计 → 6. 数据库设计 → 7. API 设计 → 8. 切片规划 → 9. 编码实现 → 10. 本地验证 → 11. 测试 → 12. 代码审查 → 13. 修复复验 → 14. 交付验收 → 15. 发布准备 → 16. 发布后观察

## 导航决策流程

1. 调用 `sf_navigation` 或 `soloforge next` 获取当前状态
2. 检查是否有陈旧任务需要处理
3. 读取 `confirmation_decisions`
   - `must_confirm` 非空时，先让用户选择，不得继续执行会被阻断的动作
   - `should_confirm` 非空时，明确说明建议确认的收益，但允许继续只读或低风险准备
   - `auto_resolvable` 非空时，按推荐命令修复或复验，不把它伪装成业务确认
4. 读取返回的 work_package，按描述执行下一步
5. 遵守 disallowed_actions 中的禁止动作
6. 执行完成后运行 acceptance_commands 验证
7. 如需用户确认，必须列出具体确认项、选项和不确认影响，不能笼统说“需要确认”

## 空项目确认口径

从 0 开发的新项目没有既有项目事实可确认。导航只能要求用户确认目标、边界、技术选择和默认口径。

- 可以继续：初始化、模版同步、知识索引、只读规划、设计准备
- 不可声称：自动推断结果是已有系统事实
- 不可阻塞：因为没有源码或历史文档而阻止空项目建立基线
- 必须阻塞：用户需要在多个业务口径或高影响决策中做选择但尚未选择

## 陈旧任务处理

当 current-task.json 指向旧任务时：
- 选择"恢复"：继续旧任务从上次中断处开始
- 选择"归档"：将旧任务标记为归档，清理指针
- 选择"新建"：归档旧任务后开始新任务
- 不得绕过 SoloForge 直接操作
- 归档只处理陈旧指针，不是直接写业务代码的许可

## 阻断恢复

当 Edit、Write、Bash 或 MCP 工具被 SoloForge 阻断时：

- 先读取阻断输出中的 `recovery_command`、`template_path` 和 `confirmation_decisions`
- 自动修复项按命令修复后重试对应工具
- 业务确认项列出具体必须确认内容后等待用户确认
- 不得取消任务后直接写代码
- 不得改用 Bash 绕过受控任务、设计复验或追踪矩阵
- 不得手动删除 `.soloforge/state`
- 若确认为陈旧任务，必须通过 `sf_status action=archive_stale confirm=true` 或导航推荐命令归档，再重新 `sf_classify -> sf_expand`

## 常见导航场景

**场景: 用户说"继续"**
→ 调用 sf_navigation 获取 work_package，按描述执行

**场景: 用户说"现在能写代码吗"**
→ sf_navigation 检查项目阶段和设计审计状态，返回允许或阻断原因

**场景: 用户说"审查后做什么"**
→ sf_navigation 检查 code_review 结果，推荐下一步验证或交付

**场景: 用户说"发布后做什么"**
→ sf_navigation 返回发布后观察工作包：验证、监控、反馈收集
