@riconext/hermes-repo 0.2.4 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +338 -100
- package/dist/cli.js +5670 -780
- package/dist/cli.js.map +1 -1
- package/dist/templates/AGENTS.hermes-block.tpl +119 -0
- package/dist/templates/AGENTS.md.tpl +3 -115
- package/dist/templates/MEMORY.md.tpl +5 -1
- package/dist/templates/SKILL.md.tpl +23 -0
- package/dist/templates/gitignore-block.txt +5 -0
- package/dist/templates/hooks.codebuddy.json.tpl +24 -0
- package/dist/templates/hooks.cursor.json.tpl +15 -0
- package/dist/templates/llm.json.example +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
## 记忆系统
|
|
2
|
+
|
|
3
|
+
本项目使用 @riconext/hermes-repo 管理 AI 助手记忆。
|
|
4
|
+
|
|
5
|
+
核心文件:
|
|
6
|
+
|
|
7
|
+
- `.memory/MEMORY.md` — 注入到每次会话的摘要
|
|
8
|
+
- `.memory/captures/` — 按类型(semantic / episodic / procedural)归档的原始捕获
|
|
9
|
+
- `.memory/topics/` — 整理后的主题记忆
|
|
10
|
+
|
|
11
|
+
## 使用记忆
|
|
12
|
+
|
|
13
|
+
- 开始新任务前,先读取 `.memory/MEMORY.md`
|
|
14
|
+
- 如需查找历史经验: `npx @riconext/hermes-repo search <关键词>`
|
|
15
|
+
- 查看特定捕获: `cat .memory/captures/<type>/<文件名>.md`
|
|
16
|
+
- 查看主题: `cat .memory/topics/<主题>.md`
|
|
17
|
+
- 查看可用技能: `cat .memory/skills/*/SKILL.md`
|
|
18
|
+
|
|
19
|
+
## 技能使用
|
|
20
|
+
|
|
21
|
+
项目自动从重复的流程记忆中生成技能(SKILL.md),存在 `.memory/skills/`。
|
|
22
|
+
|
|
23
|
+
### 何时加载技能
|
|
24
|
+
|
|
25
|
+
当你需要执行以下操作时,先查看是否有对应的技能:
|
|
26
|
+
|
|
27
|
+
1. 部署 / 发布 / 回滚
|
|
28
|
+
2. 数据库迁移
|
|
29
|
+
3. 新模块 / 新页面创建
|
|
30
|
+
4. 重复性配置操作
|
|
31
|
+
5. 调试已知类型的问题
|
|
32
|
+
|
|
33
|
+
### 如何使用
|
|
34
|
+
|
|
35
|
+
1. 查看技能目录: `ls .memory/skills/`
|
|
36
|
+
2. 匹配到任务后: `cat .memory/skills/<name>/SKILL.md`
|
|
37
|
+
3. 按步骤执行
|
|
38
|
+
4. 执行结束后,在捕获中引用技能名(帮助 consolidate 追踪技能有效性)
|
|
39
|
+
|
|
40
|
+
## 何时搜索过去经验
|
|
41
|
+
|
|
42
|
+
当你遇到以下情况,应主动搜索 `.memory/` 中的历史记忆:
|
|
43
|
+
|
|
44
|
+
1. 处理你之前解决过类似问题的模块
|
|
45
|
+
2. 需要进行与上次类似的技术选型
|
|
46
|
+
3. 用户说「之前不是这样」或「上次讨论过」
|
|
47
|
+
4. 需要了解项目的历史架构决策
|
|
48
|
+
|
|
49
|
+
## 记录新经验
|
|
50
|
+
|
|
51
|
+
当你遇到以下情况,在 `.memory/captures/` 创建捕获文件:
|
|
52
|
+
|
|
53
|
+
1. 你犯了错误并被用户纠正
|
|
54
|
+
2. 你发现代码与已有约定不一致
|
|
55
|
+
3. 你了解到项目特有的架构决策(包括被否决的方案)
|
|
56
|
+
4. 你做出了非平凡的设计选择(包括为什么选 A 不选 B)
|
|
57
|
+
5. 你重复遇到了类似问题(说明前一次的经验没有被记住)
|
|
58
|
+
6. 你完成了复杂的多步操作流程
|
|
59
|
+
|
|
60
|
+
### 分类参考
|
|
61
|
+
|
|
62
|
+
- **语义记忆**: 事实、约定、决策原则 → type: semantic
|
|
63
|
+
- **情景记忆**: 具体事件经过 → type: episodic
|
|
64
|
+
- **流程记忆**: 操作步骤 → type: procedural
|
|
65
|
+
|
|
66
|
+
### scope 选择
|
|
67
|
+
|
|
68
|
+
- 这个经验适用于整个项目吗?→ scope: all
|
|
69
|
+
- 只适用于前端 / 后端 / 基础设施?→ 对应 scope
|
|
70
|
+
|
|
71
|
+
## 团队协作(多人仓库)
|
|
72
|
+
|
|
73
|
+
本项目由多人维护。记忆分两层:
|
|
74
|
+
|
|
75
|
+
### 个人层(仅你自己可见,不提交 git)
|
|
76
|
+
|
|
77
|
+
- `.memory/captures/` — 你这次的 AI 捕获
|
|
78
|
+
- `.memory/refs/` — 你的引用记录
|
|
79
|
+
- 不需要审批,直接写入
|
|
80
|
+
|
|
81
|
+
### 团队层(所有人可见,提交 git)
|
|
82
|
+
|
|
83
|
+
- `.memory/topics/` — 团队认同的约定
|
|
84
|
+
- `.memory/skills/` — 团队可复用的技能
|
|
85
|
+
- `.memory/MEMORY.md` — 团队记忆摘要
|
|
86
|
+
|
|
87
|
+
### 晋升团队层
|
|
88
|
+
|
|
89
|
+
当你觉得某条个人捕获对团队有价值:
|
|
90
|
+
|
|
91
|
+
1. 标记晋升: `touch .memory/captures/<type>/xxx.promote`
|
|
92
|
+
2. 使用 PR 模板 `.memory/templates/PROMOTE_PR.md` 创建晋升 PR
|
|
93
|
+
3. 等团队 review 后合并;`promote --pr` 生成草案,`promote --apply --manifest` 落盘(v0.13+)
|
|
94
|
+
|
|
95
|
+
### 冲突处理
|
|
96
|
+
|
|
97
|
+
如果发现团队层记忆与你的经验矛盾:
|
|
98
|
+
|
|
99
|
+
1. 在 `.memory/team/conflict-resolutions/` 创建冲突记录
|
|
100
|
+
2. 不要直接修改团队层文件
|
|
101
|
+
3. 在 PR 或周会上提出讨论
|
|
102
|
+
|
|
103
|
+
## 引用记录
|
|
104
|
+
|
|
105
|
+
当你读取某条捕获或技能后,记录引用(供 flush 聚合 `use_count`):
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx @riconext/hermes-repo ref --capture captures/semantic/<文件>.md --reason "为何查看"
|
|
109
|
+
npx @riconext/hermes-repo ref --skill <slug> --reason "执行前加载技能"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
也可在 `.memory/refs/` 手写 JSON(`target` 为相对 `.memory/` 的路径)。
|
|
113
|
+
|
|
114
|
+
## 禁止
|
|
115
|
+
|
|
116
|
+
- 不要写入代码的具体实现细节(代码本身是自文档的)
|
|
117
|
+
- 不要写入敏感信息(密钥、密码、个人数据)
|
|
118
|
+
- 不要重复写入已存在的内容(先搜索再写)
|
|
119
|
+
- 不要在没有用户交互的会话中创建捕获(纯自动化操作不产生经验)
|
|
@@ -1,118 +1,6 @@
|
|
|
1
1
|
# 项目指令
|
|
2
2
|
|
|
3
|
-
## 记忆系统
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- `.memory/MEMORY.md` — 注入到每次会话的摘要
|
|
10
|
-
- `.memory/captures/` — 按类型(semantic / episodic / procedural)归档的原始捕获
|
|
11
|
-
- `.memory/topics/` — 整理后的主题记忆
|
|
12
|
-
|
|
13
|
-
## 使用记忆
|
|
14
|
-
|
|
15
|
-
- 开始新任务前,先读取 `.memory/MEMORY.md`
|
|
16
|
-
- 如需查找历史经验: `npx @riconext/hermes-repo search <关键词>`
|
|
17
|
-
- 查看特定捕获: `cat .memory/captures/<type>/<文件名>.md`
|
|
18
|
-
- 查看主题: `cat .memory/topics/<主题>.md`
|
|
19
|
-
- 查看可用技能: `cat .memory/skills/*/SKILL.md`
|
|
20
|
-
|
|
21
|
-
## 技能使用
|
|
22
|
-
|
|
23
|
-
项目自动从重复的流程记忆中生成技能(SKILL.md),存在 `.memory/skills/`。
|
|
24
|
-
|
|
25
|
-
### 何时加载技能
|
|
26
|
-
|
|
27
|
-
当你需要执行以下操作时,先查看是否有对应的技能:
|
|
28
|
-
|
|
29
|
-
1. 部署 / 发布 / 回滚
|
|
30
|
-
2. 数据库迁移
|
|
31
|
-
3. 新模块 / 新页面创建
|
|
32
|
-
4. 重复性配置操作
|
|
33
|
-
5. 调试已知类型的问题
|
|
34
|
-
|
|
35
|
-
### 如何使用
|
|
36
|
-
|
|
37
|
-
1. 查看技能目录: `ls .memory/skills/`
|
|
38
|
-
2. 匹配到任务后: `cat .memory/skills/<name>/SKILL.md`
|
|
39
|
-
3. 按步骤执行
|
|
40
|
-
4. 执行结束后,在捕获中引用技能名(帮助 consolidate 追踪技能有效性)
|
|
41
|
-
|
|
42
|
-
## 何时搜索过去经验
|
|
43
|
-
|
|
44
|
-
当你遇到以下情况,应主动搜索 `.memory/` 中的历史记忆:
|
|
45
|
-
|
|
46
|
-
1. 处理你之前解决过类似问题的模块
|
|
47
|
-
2. 需要进行与上次类似的技术选型
|
|
48
|
-
3. 用户说「之前不是这样」或「上次讨论过」
|
|
49
|
-
4. 需要了解项目的历史架构决策
|
|
50
|
-
|
|
51
|
-
## 记录新经验
|
|
52
|
-
|
|
53
|
-
当你遇到以下情况,在 `.memory/captures/` 创建捕获文件:
|
|
54
|
-
|
|
55
|
-
1. 你犯了错误并被用户纠正
|
|
56
|
-
2. 你发现代码与已有约定不一致
|
|
57
|
-
3. 你了解到项目特有的架构决策(包括被否决的方案)
|
|
58
|
-
4. 你做出了非平凡的设计选择(包括为什么选 A 不选 B)
|
|
59
|
-
5. 你重复遇到了类似问题(说明前一次的经验没有被记住)
|
|
60
|
-
6. 你完成了复杂的多步操作流程
|
|
61
|
-
|
|
62
|
-
### 分类参考
|
|
63
|
-
|
|
64
|
-
- **语义记忆**: 事实、约定、决策原则 → type: semantic
|
|
65
|
-
- **情景记忆**: 具体事件经过 → type: episodic
|
|
66
|
-
- **流程记忆**: 操作步骤 → type: procedural
|
|
67
|
-
|
|
68
|
-
### scope 选择
|
|
69
|
-
|
|
70
|
-
- 这个经验适用于整个项目吗?→ scope: all
|
|
71
|
-
- 只适用于前端 / 后端 / 基础设施?→ 对应 scope
|
|
72
|
-
|
|
73
|
-
## 团队协作(多人仓库)
|
|
74
|
-
|
|
75
|
-
本项目由多人维护。记忆分两层:
|
|
76
|
-
|
|
77
|
-
### 个人层(仅你自己可见,不提交 git)
|
|
78
|
-
|
|
79
|
-
- `.memory/captures/` — 你这次的 AI 捕获
|
|
80
|
-
- `.memory/refs/` — 你的引用记录
|
|
81
|
-
- 不需要审批,直接写入
|
|
82
|
-
|
|
83
|
-
### 团队层(所有人可见,提交 git)
|
|
84
|
-
|
|
85
|
-
- `.memory/topics/` — 团队认同的约定
|
|
86
|
-
- `.memory/skills/` — 团队可复用的技能
|
|
87
|
-
- `.memory/MEMORY.md` — 团队记忆摘要
|
|
88
|
-
|
|
89
|
-
### 晋升团队层
|
|
90
|
-
|
|
91
|
-
当你觉得某条个人捕获对团队有价值:
|
|
92
|
-
|
|
93
|
-
1. 标记晋升: `touch .memory/captures/<type>/xxx.promote`
|
|
94
|
-
2. 使用 PR 模板 `.memory/templates/PROMOTE_PR.md` 创建晋升 PR
|
|
95
|
-
3. 等团队 review 后合并;详情见 `npx @riconext/hermes-repo promote --pr`(v0.2+)
|
|
96
|
-
|
|
97
|
-
### 冲突处理
|
|
98
|
-
|
|
99
|
-
如果发现团队层记忆与你的经验矛盾:
|
|
100
|
-
|
|
101
|
-
1. 在 `.memory/team/conflict-resolutions/` 创建冲突记录
|
|
102
|
-
2. 不要直接修改团队层文件
|
|
103
|
-
3. 在 PR 或周会上提出讨论
|
|
104
|
-
|
|
105
|
-
## 引用记录
|
|
106
|
-
|
|
107
|
-
当你读取某条捕获时,在 `.memory/refs/` 创建引用记录:
|
|
108
|
-
|
|
109
|
-
```json
|
|
110
|
-
{ "capture": "文件名", "reason": "为啥看这个", "date": "2026-05-20" }
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## 禁止
|
|
114
|
-
|
|
115
|
-
- 不要写入代码的具体实现细节(代码本身是自文档的)
|
|
116
|
-
- 不要写入敏感信息(密钥、密码、个人数据)
|
|
117
|
-
- 不要重复写入已存在的内容(先搜索再写)
|
|
118
|
-
- 不要在没有用户交互的会话中创建捕获(纯自动化操作不产生经验)
|
|
4
|
+
<!-- >>> hermes-repo agents (do not edit this block manually) -->
|
|
5
|
+
__HERMES_AGENTS_BLOCK__
|
|
6
|
+
<!-- <<< hermes-repo agents -->
|
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
|
|
15
15
|
(consolidate 后自动填充)
|
|
16
16
|
|
|
17
|
+
## 可用技能
|
|
18
|
+
|
|
19
|
+
(consolidate 后从 procedural 晋升填充)
|
|
20
|
+
|
|
17
21
|
## 检索提示
|
|
18
22
|
|
|
19
|
-
-
|
|
23
|
+
- 手动整理记忆: `npx @riconext/hermes-repo flush`
|
|
20
24
|
- 查看捕获: `ls .memory/captures/` 或 `cat .memory/captures/<type>/<文件>.md`
|
|
21
25
|
- 查看主题: `ls .memory/topics/`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: example-skill
|
|
3
|
+
description: >
|
|
4
|
+
(技能简短描述:何时激活、解决什么问题)
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: @riconext/hermes-repo
|
|
7
|
+
platforms: [linux, macos]
|
|
8
|
+
trigger-tags: [workflow]
|
|
9
|
+
created-from:
|
|
10
|
+
- captures/procedural/capture-example.md
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 步骤
|
|
14
|
+
|
|
15
|
+
1. (步骤一)
|
|
16
|
+
|
|
17
|
+
## 常见陷阱
|
|
18
|
+
|
|
19
|
+
- (易错点)
|
|
20
|
+
|
|
21
|
+
## 验证
|
|
22
|
+
|
|
23
|
+
- (如何确认成功)
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
# >>> hermes-repo memory (do not edit this block manually)
|
|
2
2
|
# 个人层 — 不提交
|
|
3
3
|
.memory/captures/
|
|
4
|
+
.memory/llm.json
|
|
4
5
|
.memory/sessions/
|
|
5
6
|
.memory/refs/
|
|
6
7
|
.memory/personal/
|
|
7
8
|
.memory/hermes-debug.log
|
|
9
|
+
.memory/consolidate-state.json
|
|
10
|
+
.memory/.consolidate.lock
|
|
11
|
+
.memory/skill-usage.json
|
|
12
|
+
.memory/promote/
|
|
8
13
|
|
|
9
14
|
# 团队层 — 提交
|
|
10
15
|
!.memory/topics/
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"Stop": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "npx __PACKAGE_NAME__ capture"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"SessionStart": [
|
|
14
|
+
{
|
|
15
|
+
"hooks": [
|
|
16
|
+
{
|
|
17
|
+
"type": "command",
|
|
18
|
+
"command": "npx __PACKAGE_NAME__ inject"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|