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

91 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 首次初始化自检(最高优先级 · 必须最先执行)
**每一次会话的首次用户消息响应之前**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