Skip to content

故障排查指南 ​

按问题域分类,每个问题有排查步骤和解决方案。


问题域 1:初始化相关 ​

init-project.sh 执行失败:Permission denied ​

原因:脚本没有执行权限。

bash
# 修复
chmod +x ../h-codeflow-framework/templates/init-project.sh

init-project.sh 执行失败:No such file or directory ​

原因:路径不对。脚本需要在项目目录执行,框架仓库在同级目录。

bash
# 确认目录结构
ls ../h-codeflow-framework/templates/init-project.sh

# 正确的执行方式
cd my-project
bash ../h-codeflow-framework/templates/init-project.sh . "My Project"

子项目没有被自动检测 ​

原因:子目录缺少标识文件。

框架通过以下文件识别子项目类型:

  • package.json → 前端
  • pom.xml 或 build.gradle → 后端

检查子目录是否包含这些文件。如果没有,可以手动初始化:

bash
bash ../h-codeflow-framework/templates/init-subproject.sh ./my-subproject fe "My Project"

CLAUDE.md 模板变量未替换 ​

原因:初始化时第二个参数(项目名称)未传递或为空。

重新执行初始化,确保传递项目名称:

bash
bash ../h-codeflow-framework/templates/init-project.sh . "My Project Name"

问题域 2:升级相关 ​

upgrade.sh 找不到 marker ​

现象:脚本输出 "WARNING: no marker found in xxx"。

原因:文件中没有 h-codeflow-framework:core 标记行。

排查步骤:

  1. 打开被警告的文件,搜索 h-codeflow-framework
  2. 如果 marker 被意外删除,从框架源文件复制 marker 行并追加到文件末尾
  3. 重新执行 upgrade.sh

marker 格式不对 ​

正确格式:

markdown
<!-- h-codeflow-framework:core v1.0.0-20260416 — DO NOT EDIT ABOVE THIS LINE, managed by upgrade.sh -->

常见错误:

  • 版本号格式不对(应为 X.Y.Z-YYYYMMDD)
  • 多了空格或少了字符
  • marker 不是独占一行

升级后 marker 下方内容丢失 ​

不应该发生。 如果发生了:

  1. 检查 .claude/.backup/ 是否有升级前的备份
  2. 从备份恢复:
bash
cp -r .claude/.backup/upgrade-YYYYMMDD-HHMMSS/* .claude/
  1. 向框架维护者报告此问题(可能是 upgrade.sh 的 bug)

冲突检测报告了冲突 ​

upgrade.sh 在升级前会检测下游 marker 上方是否有本地修改。如果有:

策略参数适用场景
默认无备份 .local 副本后继续覆盖,最后汇总提示
保留本地--conflict=preserve跳过冲突文件,保留本地修改
直接退出--conflict=failCI 环境,有冲突就停
强制覆盖--force跳过冲突检测,强制覆盖(慎用)

问题域 3:工作流相关 ​

AI 不走 Intake 三问直接改代码 ​

原因:project_rule.md 未被正确加载,或 AI 跳过了规则。

排查步骤:

  1. 确认 .claude/rules/project_rule.md 存在且非空
  2. 确认文件包含 Intake 触发规则章节
  3. 重新启动 Claude Code 会话(重新加载规则)
  4. 如果仍然跳过,在对话开头显式提醒:"请按照 project_rule.md 的规则执行 Intake 三问"

PM 产出的 Spec 质量差 ​

常见原因和解决方案:

原因解决方案
业务词典为空填充 .claude/skills/domain-ontology/SKILL.md
需求描述太模糊Intake 三问时给出更具体的回答
CLAUDE.md 缺少项目上下文补充项目概述、技术栈、业务背景
没有参考已有代码结构确保 CLAUDE.md 中有子项目结构说明

QA 打回后流程卡住 ​

排查步骤:

  1. 查看 QA 的 FAIL 报告(在 evidences/ 下)
  2. 根据报告中的问题,决定修复方案
  3. 告诉主对话"修复 QA 发现的问题",AI 会调度 Dev/FE 修复
  4. 修复完成后 QA 会自动重新审查

AI 加载了错误的上下文(前端任务加载后端规则或反之) ​

这不应该发生。如果发生:

  1. 检查 .claude/rules/project_rule.md 中的禁止事项章节
  2. 确认禁止规则存在:"前端任务不加载 coding_backend.md;后端任务不加载 coding_frontend_shared.md"
  3. 在对话中提醒 AI:"这是前端/后端任务,请加载对应的编码规范"

问题域 4:环境相关 ​

Claude Code 无法启动或连接异常 ​

  1. 确认 Claude Code 已正确安装(claude --version)
  2. 确认网络连通性
  3. 确认认证有效(重新登录:claude login)
  4. 参考 Claude Code 官方文档

doctor.sh 各检查项修复方案 ​

检查项修复命令
bashmacOS/Linux 自带
gitbrew install git 或 apt install git
shasum/sha256summacOS 自带 shasum;Linux: apt install coreutils
python3brew install python3 或 apt install python3
node/npmbrew install node 或 nvm install node
mvnbrew install maven 或下载安装
gh CLIbrew install gh

MCP Server 配置问题 ​

如果使用 Jira/Confluence 集成:

  1. 确认项目根目录有 .mcp.json
  2. 确认配置格式正确(参考 templates/mcp-config.json.template)
  3. 确认网络可以访问 Jira/Confluence 服务
  4. MCP 不可用时框架会自动降级,不影响正常工作流

性能问题:AI 响应慢 ​

可能原因:

  • 上下文文件太多(检查 .claude/ 下是否有多余的大文件)
  • 项目代码量太大(Codemap 可以帮助聚焦)
  • 网络延迟

优化建议:

  • 保持 domain-ontology 精简(只放核心术语)
  • 定期清理过时的 Spec 目录
  • 使用 /onboard 聚焦到具体模块,减少全局加载

问题域 5:Windows 环境 ​

框架工具脚本基于 bash 编写,Windows 环境需要通过 Git for Windows 自带的 Git Bash 运行。

安装 Git for Windows ​

  1. 下载安装 Git for Windows
  2. 安装时建议勾选 "Git Bash Here"(右键菜单快捷方式)
  3. 安装完成后打开 Git Bash(不是 CMD / PowerShell)

用 Git Bash 执行脚本 ​

所有框架脚本必须在 Git Bash 中运行:

bash
# 在 Git Bash 中操作
cd /d/my-project                    # Git Bash 用 Unix 风格路径(D: → /d/)
bash ../h-codeflow-framework/tools/upgrade.sh --dry-run --diff
bash ../h-codeflow-framework/tools/doctor.sh

路径转换

Git Bash 中访问 Windows 路径:C:\Users\xxx → /c/Users/xxx

常见问题 ​

脚本报 $'\r': command not found

CRLF 换行符问题。框架已配置 .gitattributes 强制 .sh 文件使用 LF。如果仍然遇到:

bash
# Git Bash 中修复
git config --global core.autocrlf input
git checkout -- *.sh

shasum 命令找不到

框架脚本已自动兼容 shasum(macOS)和 sha256sum(Git Bash/Linux),不需要手动处理。如果仍然报错,运行 bash tools/doctor.sh 查看诊断结果。

diff 命令行为异常

Git Bash 自带的 diff 与 GNU diff 行为一致,通常不会有问题。如果遇到差异,升级 Git for Windows 到最新版本。