Learns from Claude Code sessions by creating atomic instincts with confidence scores, evolving them into skills/commands/agents. v2.1 adds project-scoped instincts to prevent cross-project pollution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/everything-claude-code:continuous-learning-v2The summary Claude sees in its skill listing — used to decide when to auto-load this skill
一个先进的学习系统,通过原子 "instincts"(具有置信度评分的小型学习行为),将你的 Claude Code 会话转化为可重用知识。
agents/observer-loop.shagents/observer.mdagents/session-guardian.shagents/start-observer.shcommands/evolve.mdcommands/instinct-export.mdcommands/instinct-import.mdcommands/instinct-status.mdconfig.jsonhooks/observe.shscripts/detect-project.shscripts/instinct-cli.pyscripts/lib/homunculus-dir.shscripts/migrate-homunculus.shscripts/test_parse_instinct.py一个先进的学习系统,通过原子 "instincts"(具有置信度评分的小型学习行为),将你的 Claude Code 会话转化为可重用知识。
v2.1 添加了项目范围的 instincts — React 模式留在你的 React 项目中,Python 约定留在你的 Python 项目中,通用模式(如"始终验证输入")全局共享。
| 特性 | v2.0 | v2.1 |
|---|---|---|
| 存储 | 全局(~/.claude/homunculus/) | 项目范围(${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/projects/<hash>/) |
| 范围 | 所有 instincts 到处应用 | 项目范围 + 全局 |
| 检测 | 无 | git remote URL / 仓库路径 |
| 提升 | N/A | 在 2+ 个项目中出现时从项目提升到全局 |
| 命令 | 4(status/evolve/export/import) | 6(+promote/projects) |
| 跨项目 | 污染风险 | 默认隔离 |
| 特性 | v1 | v2 |
|---|---|---|
| 观察 | Stop hook(会话结束) | PreToolUse/PostToolUse(100% 可靠) |
| 分析 | 主上下文 | 后台 agent(Haiku) |
| 粒度 | 完整 skills | 原子 "instincts" |
| 置信度 | 无 | 0.3-0.9 加权 |
| 演进 | 直接到 skill | Instincts -> 聚类 -> skill/command/agent |
| 共享 | 无 | 导出/导入 instincts |
Instinct 是一个小的学习行为:
---
id: prefer-functional-style
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
source: "session-observation"
scope: project
project_id: "a1b2c3d4e5f6"
project_name: "my-react-app"
---
# Prefer Functional Style
## Action
Use functional patterns over classes when appropriate.
## Evidence
- Observed 5 instances of functional pattern preference
- User corrected class-based approach to functional on 2025-01-15
属性:
project(默认)或 globalSession Activity (在 git 仓库中)
|
| Hooks 捕获 prompts + 工具使用(100% 可靠)
| + 检测项目上下文(git remote / 仓库路径)
v
+---------------------------------------------+
| projects/<project-hash>/observations.jsonl |
| (prompts, tool calls, outcomes, project) |
+---------------------------------------------+
|
| Observer agent 读取(后台,Haiku)
v
+---------------------------------------------+
| 模式检测 |
| * 用户纠正 -> instinct |
| * 错误解决 -> instinct |
| * 重复工作流 -> instinct |
| * 范围决定:项目还是全局? |
+---------------------------------------------+
|
| 创建/更新
v
+---------------------------------------------+
| projects/<project-hash>/instincts/personal/ |
| * prefer-functional.yaml (0.7) [project] |
| * use-react-hooks.yaml (0.9) [project] |
+---------------------------------------------+
| instincts/personal/ (全局) |
| * always-validate-input.yaml (0.85) [global]|
| * grep-before-edit.yaml (0.6) [global] |
+---------------------------------------------+
|
| /evolve 聚类 + /promote
v
+---------------------------------------------+
| projects/<hash>/evolved/ (项目范围) |
| evolved/ (全局) |
| * commands/new-feature.md |
| * skills/testing-workflow.md |
| * agents/refactor-specialist.md |
+---------------------------------------------+
系统自动检测你的当前项目:
CLAUDE_PROJECT_DIR 环境变量(最高优先级)git remote get-url origin -- 哈希以创建可移植的项目 ID(不同机器上的同一仓库获得相同的 ID)git rev-parse --show-toplevel -- 使用仓库路径的备选方案(特定于机器)每个项目获得一个 12 字符的哈希 ID(如 a1b2c3d4e5f6)。注册文件位于 ${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/projects.json,将 ID 映射到人类可读的名称。
Continuous-learning-v2 将观察者数据存储在 ~/.claude 之外,这样 Claude Code 的敏感路径守卫不会阻止后台 instinct 写入:
CLV2_HOMUNCULUS_DIR 设置为绝对路径时$XDG_DATA_HOME/ecc-homunculus$HOME/.local/share/ecc-homunculus在 ~/.claude/homunculus 有数据的现有用户可以一次性迁移:
bash skills/continuous-learning-v2/scripts/migrate-homunculus.sh
如果作为插件安装(推荐):
不需要额外的 settings.json hook 块。Claude Code v2.1+ 自动加载插件 hooks/hooks.json,observe.sh 已在其中注册。
如果你之前将 observe.sh 复制到了 ~/.claude/settings.json 中,请移除那个重复的 PreToolUse / PostToolUse 块。重复插件 hook 会导致双重执行和 ${CLAUDE_PLUGIN_ROOT} 解析错误,因为该变量仅在插件管理的 hooks/hooks.json 条目中可用。
如果手动安装到 ~/.claude/skills,添加到你的 ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}],
"PostToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}]
}
}
系统在首次使用时自动创建目录,但你也可以手动创建:
# 全局目录
mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/ecc-homunculus"/{instincts/{personal,inherited},evolved/{agents,skills,commands},projects}
# 项目目录在 hook 首次在 git 仓库中运行时自动创建
/instinct-status # 显示已学习的 instincts(项目 + 全局)
/evolve # 将相关的 instincts 聚类为 skills/commands
/instinct-export # 导出 instincts 到文件
/instinct-import # 从其他人导入 instincts
/promote # 将项目 instincts 提升到全局范围
/projects # 列出所有已知项目及其 instinct 计数
| 命令 | 描述 |
|---|---|
/instinct-status | 显示所有 instincts(项目范围 + 全局)及置信度 |
/evolve | 将相关 instincts 聚类为 skills/commands,建议提升 |
/instinct-export | 导出 instincts(可按范围/领域过滤) |
/instinct-import <file> | 导入 instincts 并带范围控制 |
/promote [id] | 将项目 instincts 提升到全局范围 |
/projects | 列出所有已知项目及其 instinct 计数 |
编辑 config.json 控制后台观察者:
{
"version": "2.1",
"observer": {
"enabled": false,
"run_interval_minutes": 5,
"min_observations_to_analyze": 20
}
}
| 键 | 默认值 | 描述 |
|---|---|---|
observer.enabled | false | 启用后台观察者 agent |
observer.run_interval_minutes | 5 | 观察者分析观察结果的频率 |
observer.min_observations_to_analyze | 20 | 分析运行前的最小观察结果数 |
其他行为(观察捕获、instinct 阈值、项目范围、提升标准)通过 instinct-cli.py 和 observe.sh 中的代码默认值配置。
${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/
+-- identity.json # 你的资料,技术水平
+-- projects.json # 注册表:项目哈希 -> 名称/路径/远程
+-- observations.jsonl # 全局观察结果(回退)
+-- instincts/
| +-- personal/ # 全局自动学习的 instincts
| +-- inherited/ # 全局导入的 instincts
+-- evolved/
| +-- agents/ # 全局生成的 agents
| +-- skills/ # 全局生成的 skills
| +-- commands/ # 全局生成的 commands
+-- projects/
+-- a1b2c3d4e5f6/ # 项目哈希(来自 git remote URL)
| +-- project.json # 每项目元数据镜像(id/name/root/remote)
| +-- observations.jsonl
| +-- observations.archive/
| +-- instincts/
| | +-- personal/ # 项目特定的自动学习
| | +-- inherited/ # 项目特定的导入
| +-- evolved/
| +-- skills/
| +-- commands/
| +-- agents/
+-- f6e5d4c3b2a1/ # 另一个项目
+-- ...
| 模式类型 | 范围 | 示例 |
|---|---|---|
| 语言/框架约定 | project | "使用 React hooks"、"遵循 Django REST 模式" |
| 文件结构偏好 | project | "测试在 __tests__/"、"组件在 src/components/" |
| 代码风格 | project | "使用函数式风格"、"优先使用 dataclasses" |
| 错误处理策略 | project | "使用 Result 类型处理错误" |
| 安全实践 | global | "验证用户输入"、"清理 SQL" |
| 通用最佳实践 | global | "先写测试"、"始终处理错误" |
| 工具工作流偏好 | global | "编辑前先 Grep"、"写入前先读取" |
| Git 实践 | global | "Conventional commits"、"小型聚焦提交" |
当相同的 instinct 以高置信度出现在多个项目中时,它是提升到全局范围的候选者。
自动提升标准:
如何提升:
# 提升特定 instinct
python3 instinct-cli.py promote prefer-explicit-errors
# 自动提升所有符合条件的 instincts
python3 instinct-cli.py promote
# 预览而不做更改
python3 instinct-cli.py promote --dry-run
/evolve 命令也会建议提升候选者。
置信度随时间演变:
| 分数 | 含义 | 行为 |
|---|---|---|
| 0.3 | 试探性 | 建议但不强制 |
| 0.5 | 中等 | 相关时应用 |
| 0.7 | 强 | 自动批准应用 |
| 0.9 | 几乎确定 | 核心行为 |
置信度增加 当:
置信度降低 当:
"v1 依靠 skills 进行观察。Skills 是概率性的 — 基于 Claude 的判断,它们大约 50-80% 的时间触发。"
Hooks 100% 的时间确定性地触发。这意味着:
v2.1 与 v2.0 和 v1 完全兼容:
scripts/migrate-homunculus.sh 从 ~/.claude/homunculus/instincts/ 迁移~/.claude/skills/learned/ skills 来自 v1 仍然工作基于 Instinct 的学习:一个项目一个项目地教 Claude 你的模式。
npx claudepluginhub aaione/everything-claude-code-zhCreates atomic instincts with confidence scores from Claude Code session hooks, scopes them to projects or globally, and evolves them into skills, commands, or agents.
Observes Claude Code sessions to extract atomic 'instincts' (behaviors with confidence scoring), evolving them into reusable skills/commands/agents. Adds project-scoped instincts in v2.1 to prevent cross-project contamination.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.