This repository has been archived on 2026-07-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ClaudeInit/.claude/rules/common/claude-init-recall.md
2026-04-24 16:42:22 +08:00

3.8 KiB
Raw Blame History

首次初始化自检(最高优先级 · 必须最先执行)

每一次会话的首次用户消息响应之前Agent 必须执行以下检测(二选一,按优先级):

检测方式

方式 1优先检查 .claude/.pending-init 标记文件。

此文件由 session-init Hook 确定性创建(不依赖 Agent 记忆):

  • Hook 在 SessionStart 时运行
  • .init-done 不存在 → Hook 创建 .pending-init
  • .init-done 存在 → Hook 删除 .pending-init(清理残留)

Agent 只需 Read .claude/.pending-init

  • 文件存在 → 首次会话,必须触发 claude-init
  • 文件不存在 → 已初始化,跳过

方式 2兜底直接检查 .claude/.init-done

若方式 1 未执行Hook 未配置或未运行),回退到直接检查 sentinel。

判定逻辑

IF .claude/.pending-init 存在 OR .claude/.init-done 不存在:
    → 本仓库是"clone 模板后的首次会话"
    → 必须在处理用户原始请求之前先完成 claude-init
ELSE:
    → 已 init 过,跳过本自检
    → 仅当用户命中下方"手动触发关键词"时才再次执行本 Skill

首次触发的执行方式

  1. 暂存用户原始请求,明确告诉用户:

    "检测到当前仓库刚从模板 clone 下来,还未完成 .claude 初始化。需要先跑一遍 claude-init (清理模板遗留数据、配置项目画像、可选生成 .gitignore。完成后再处理你的请求{原始请求概要}。"

  2. 等用户明确回复"继续/OK"后,读取 .claude/skills/claude-init/SKILL.md 并严格执行阶段 0 → 7
  3. init 完成后(阶段 7 写入 .init-done 成功后),回到被暂存的用户原始请求继续处理
  4. 若用户说"先不做 init就处理我的请求"
    • 尊重用户选择,跳过本次 init
    • 但仍在本次回复中明确说明 sentinel 缺失,并提示"下次会话还会再次提醒"

自检成本说明

已 init 项目:每次会话仅多一次 Read .claude/.pending-init(极低成本,文件不存在时 Read 返回 error 即视为"已初始化")。 .pending-init 由 Hook 维护Agent 无需写入。


手动触发关键词(任意时刻,已 init 仓库也可用)

A. 全流程重置(阶段 0 → 7

匹配任一:

  • "初始化 claude" / "初始化claude" / "claude 初始化"
  • "重置 claude" / "reset claude"
  • "claude init" / "init claude"
  • "把复制过来的 .claude 清理一下" / "按 baserule 归位一下"

执行方式:读取 .claude/skills/claude-init/SKILL.md,按阶段 0 → 7 执行。 若 .claude/.init-done 已存在,阶段 0 会展示其元数据并要求用户二次确认。

B. 仅补 .gitignore只跑阶段 5.5

匹配任一:

  • "补 gitignore" / "补一下 gitignore" / "补个 gitignore"
  • "生成 gitignore" / "生成 .gitignore"
  • "gitignore 模板" / "来份 gitignore"

执行方式:读取 SKILL.md 的阶段 5.5 章节单独执行,不触碰其他阶段。 完成后更新 .init-done 中的 gitignore_generated: true


执行原则

  1. 稳定准确优先于 token 成本
  2. 破坏性操作(删除、重置、移动)前必须给用户 dry-run 清单
  3. 分类不清的文件必须逐条询问用户,不要猜
  4. 开始前先执行 git status 并提醒用户 commit/stash
  5. 设计为幂等——重复运行在已干净状态下不应造成破坏

不触发本 Skill 的情况

  • 用户只是问"claude 有什么 skill" —— 这是浏览需求,后续阶段会由 epee-orchestrator 类 Skill 处理
  • 用户只是想初始化某个具体数据文件(如"初始化画像")—— 走对应 Skill不涉及全局重置
  • .claude/.init-done 存在 且 用户请求中没有任一 A/B 组关键词 —— 正常响应用户,不提 init