@myclaw163/clawclaw-cli 0.6.70 → 0.6.74
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 +377 -427
- package/package.json +48 -48
- package/personas//347/220/206/346/231/272/346/270/251/345/222/214.md +23 -23
- package/personas//350/200/201/350/260/213/346/267/261/347/256/227.md +22 -22
- package/personas//350/257/232/346/201/263/347/233/264/347/216/207.md +22 -22
- package/personas//350/275/273/346/235/276/346/264/273/346/263/274.md +22 -22
- package/personas//351/207/216/346/200/247/345/217/233/351/200/206.md +23 -23
- package/scripts/check-skill-command-surface.mjs +116 -0
- package/scripts/find-hide-spots.py +157 -157
- package/scripts/postinstall.mjs +20 -20
- package/scripts/sync-bundled-skill.mjs +244 -244
- package/scripts/sync-bundled-skill.test.mjs +152 -152
- package/skills/clawclaw/SKILL.md +246 -244
- package/skills/clawclaw/references/CHATTERBOX.md +141 -142
- package/skills/clawclaw/references/COMMANDS.md +155 -148
- package/skills/clawclaw/references/GAME-MECHANICS.md +188 -188
- package/skills/clawclaw/references/HUB.md +48 -48
- package/skills/clawclaw/references/KNOWLEDGE.md +42 -45
- package/skills/clawclaw/references/STRATEGIES.md +59 -59
- package/skills/clawclaw/references/STREAM.md +93 -91
- package/skills/clawclaw/references/TACTICS.md +65 -65
- package/src/assets/clawclaw-ascii-map.txt +40 -40
- package/src/cli.ts +110 -110
- package/src/commands/_schema.ts +124 -109
- package/src/commands/account.ts +209 -209
- package/src/commands/config.ts +30 -30
- package/src/commands/do.test.ts +84 -73
- package/src/commands/do.ts +130 -126
- package/src/commands/events.test.ts +71 -71
- package/src/commands/events.ts +221 -155
- package/src/commands/game-map.test.ts +28 -28
- package/src/commands/game-start-plan.test.ts +84 -84
- package/src/commands/game.ts +1113 -1042
- package/src/commands/history-player.test.ts +102 -102
- package/src/commands/history.ts +573 -573
- package/src/commands/hub.test.ts +96 -96
- package/src/commands/hub.ts +234 -234
- package/src/commands/knowledge.test.ts +13 -13
- package/src/commands/knowledge.ts +139 -139
- package/src/commands/load.test.ts +51 -51
- package/src/commands/load.ts +13 -13
- package/src/commands/meeting-history.test.ts +106 -106
- package/src/commands/memory.ts +40 -40
- package/src/commands/peek.ts +45 -45
- package/src/commands/persona.ts +57 -57
- package/src/commands/setup/codex.ts +266 -266
- package/src/commands/setup/hermes.test.ts +96 -96
- package/src/commands/setup/hermes.ts +76 -76
- package/src/commands/setup/index.ts +13 -13
- package/src/commands/setup/openclaw.test.ts +114 -114
- package/src/commands/setup/openclaw.ts +147 -147
- package/src/commands/skill.ts +128 -128
- package/src/commands/state.ts +46 -46
- package/src/commands/strategy.test.ts +145 -145
- package/src/commands/strategy.ts +181 -181
- package/src/commands/tts.ts +128 -128
- package/src/commands/upgrade.test.ts +82 -82
- package/src/commands/upgrade.ts +148 -148
- package/src/commands/watch.test.ts +999 -977
- package/src/commands/watch.ts +660 -658
- package/src/lib/auth.test.ts +74 -74
- package/src/lib/auth.ts +186 -186
- package/src/lib/command-meta.ts +37 -37
- package/src/lib/game-client.ts +403 -391
- package/src/lib/game-context.ts +92 -0
- package/src/lib/host-config-patcher.test.ts +130 -130
- package/src/lib/host-config-patcher.ts +151 -151
- package/src/lib/http-keepalive.ts +15 -15
- package/src/lib/http-transport.test.ts +42 -42
- package/src/lib/http-transport.ts +113 -113
- package/src/lib/hub-client.test.ts +56 -56
- package/src/lib/hub-client.ts +88 -88
- package/src/lib/hub-install.test.ts +98 -98
- package/src/lib/hub-install.ts +121 -121
- package/src/lib/hub-reminder.ts +56 -56
- package/src/lib/hub-unzip.test.ts +69 -69
- package/src/lib/hub-unzip.ts +62 -62
- package/src/lib/init-command.test.ts +75 -75
- package/src/lib/init-command.ts +120 -120
- package/src/lib/knowledge-store.test.ts +170 -170
- package/src/lib/knowledge-store.ts +369 -369
- package/src/lib/load-context.test.ts +52 -52
- package/src/lib/load-context.ts +52 -52
- package/src/lib/match-state.test.ts +134 -134
- package/src/lib/match-state.ts +94 -94
- package/src/lib/netease-tts.ts +83 -83
- package/src/lib/normalize.ts +42 -42
- package/src/lib/persona.test.ts +41 -41
- package/src/lib/persona.ts +72 -72
- package/src/lib/server-registry.ts +152 -152
- package/src/lib/skill-version.test.ts +48 -48
- package/src/lib/skill-version.ts +19 -19
- package/src/lib/strategy-export.test.ts +232 -232
- package/src/lib/strategy-export.ts +242 -242
- package/src/lib/tts-keys.ts +7 -7
- package/src/lib/tts-speech.test.ts +63 -63
- package/src/lib/tts-speech.ts +76 -76
- package/src/lib/workspace-argv.test.ts +49 -49
- package/src/lib/workspace-argv.ts +44 -44
- package/src/perception/player-history-store.test.ts +87 -87
- package/src/perception/player-history-store.ts +194 -194
- package/src/pipeline/event-format.test.ts +243 -215
- package/src/pipeline/event-format.ts +501 -485
- package/src/pipeline/event-hints.ts +195 -190
- package/src/pipeline/event-store.test.ts +28 -28
- package/src/pipeline/event-store.ts +193 -193
- package/src/pipeline/pipeline.ts +35 -35
- package/src/pipeline/player-projection.test.ts +119 -0
- package/src/pipeline/player-projection.ts +380 -0
- package/src/runtime/auto-upgrade.test.ts +66 -66
- package/src/runtime/auto-upgrade.ts +31 -31
- package/src/runtime/event-daemon.test.ts +209 -141
- package/src/runtime/event-daemon.ts +519 -457
- package/src/runtime/owner-control.ts +150 -150
- package/src/runtime/raw-ws-log.test.ts +33 -33
- package/src/runtime/raw-ws-log.ts +32 -32
- package/src/runtime/runtime-logger.ts +107 -107
- package/src/runtime/ws-client.test.ts +125 -104
- package/src/runtime/ws-client.ts +287 -272
- package/src/sdk/action.ts +166 -166
- package/src/sdk/index.ts +110 -110
- package/src/sdk/types.ts +161 -161
- package/src/strategies/avoid-lone.ts +12 -12
- package/src/strategies/avoid-players.knowledge.md +19 -19
- package/src/strategies/avoid-players.ts +16 -16
- package/src/strategies/corpse-patrol.ts +23 -23
- package/src/strategies/crab-sabotage.ts +22 -22
- package/src/strategies/custom-module.test.ts +270 -270
- package/src/strategies/find-player.ts +17 -17
- package/src/strategies/game-utils.test.ts +242 -242
- package/src/strategies/game-utils.ts +846 -846
- package/src/strategies/goals/anchor-linger.ts +77 -77
- package/src/strategies/goals/avoid-lone-top.ts +168 -168
- package/src/strategies/goals/avoid-players-top.test.ts +83 -83
- package/src/strategies/goals/avoid-players-top.ts +121 -121
- package/src/strategies/goals/conversation-goal.ts +51 -51
- package/src/strategies/goals/corpse-patrol-top.ts +113 -113
- package/src/strategies/goals/crab-octopus-reflexes.ts +101 -101
- package/src/strategies/goals/crab-sabotage-top.ts +197 -197
- package/src/strategies/goals/emergency-hunt-goal.ts +28 -28
- package/src/strategies/goals/find-player-top.ts +93 -93
- package/src/strategies/goals/flee-players-goal.ts +53 -53
- package/src/strategies/goals/follow-companion-goal.ts +106 -106
- package/src/strategies/goals/goal-manager.ts +41 -41
- package/src/strategies/goals/goal-root-strategy.ts +49 -49
- package/src/strategies/goals/goal.ts +28 -28
- package/src/strategies/goals/hide-top.ts +197 -197
- package/src/strategies/goals/keep-away-goal.ts +221 -221
- package/src/strategies/goals/kill-frenzy-top.ts +80 -80
- package/src/strategies/goals/kill-lone-top.ts +160 -160
- package/src/strategies/goals/kill-target-goal.ts +59 -59
- package/src/strategies/goals/kill-target-top.ts +109 -109
- package/src/strategies/goals/leaf-goal.ts +27 -27
- package/src/strategies/goals/linger-corpse-goal.ts +35 -35
- package/src/strategies/goals/lone-kill-core.ts +82 -82
- package/src/strategies/goals/lone-kill-goal.ts +24 -24
- package/src/strategies/goals/lone-kill-task-top.test.ts +85 -85
- package/src/strategies/goals/lone-kill-task-top.ts +133 -133
- package/src/strategies/goals/move-room-goal.ts +60 -60
- package/src/strategies/goals/normal-shrimp-top.test.ts +80 -80
- package/src/strategies/goals/normal-shrimp-top.ts +242 -242
- package/src/strategies/goals/paradise-fish-top.test.ts +126 -126
- package/src/strategies/goals/paradise-fish-top.ts +224 -224
- package/src/strategies/goals/patrol-top.ts +57 -57
- package/src/strategies/goals/report-patrol-top.ts +80 -80
- package/src/strategies/goals/safe-task-goal.ts +102 -102
- package/src/strategies/goals/social-task-top.ts +161 -161
- package/src/strategies/goals/task-kill-report-top.ts +163 -163
- package/src/strategies/goals/task-only-top.ts +57 -57
- package/src/strategies/goals/task-or-patrol-goal.ts +41 -41
- package/src/strategies/goals/task-report-top.ts +57 -57
- package/src/strategies/goals/wander-task-goal.ts +33 -33
- package/src/strategies/goals/warrior-shrimp-top.test.ts +87 -87
- package/src/strategies/goals/warrior-shrimp-top.ts +267 -267
- package/src/strategies/greeting.ts +53 -53
- package/src/strategies/hide-spots.ts +59 -59
- package/src/strategies/hide.ts +24 -24
- package/src/strategies/kill-frenzy.ts +13 -13
- package/src/strategies/kill-lone.knowledge.md +17 -17
- package/src/strategies/kill-lone.ts +14 -14
- package/src/strategies/kill-target.ts +19 -19
- package/src/strategies/loader.test.ts +678 -678
- package/src/strategies/loader.ts +179 -179
- package/src/strategies/lone-kill-task.ts +22 -22
- package/src/strategies/meeting-gate.test.ts +59 -59
- package/src/strategies/meeting-gate.ts +23 -23
- package/src/strategies/move-room.ts +16 -16
- package/src/strategies/new-events-backfill.ts +98 -98
- package/src/strategies/off-route-points.ts +105 -105
- package/src/strategies/paradise-fish.knowledge.md +19 -19
- package/src/strategies/paradise-fish.ts +26 -26
- package/src/strategies/pathfind/distance-field.ts +150 -150
- package/src/strategies/pathfind/escape-planner.test.ts +197 -197
- package/src/strategies/pathfind/escape-planner.ts +355 -355
- package/src/strategies/pathfind/walkable-grid.ts +117 -117
- package/src/strategies/patrol.ts +12 -12
- package/src/strategies/player-targets.ts +13 -13
- package/src/strategies/report-patrol.ts +12 -12
- package/src/strategies/shrimp-memory.knowledge.md +19 -19
- package/src/strategies/shrimp-memory.ts +26 -26
- package/src/strategies/social-task.test.ts +28 -28
- package/src/strategies/social-task.ts +50 -50
- package/src/strategies/spawn.ts +82 -82
- package/src/strategies/speech-module.ts +123 -123
- package/src/strategies/strategy-loop.test.ts +15 -0
- package/src/strategies/strategy-loop.ts +776 -771
- package/src/strategies/task-kill-report.ts +18 -18
- package/src/strategies/task-only.ts +12 -12
- package/src/strategies/task-report.ts +23 -23
- package/src/strategies/types.ts +109 -109
- package/src/strategies/warrior-memory.knowledge.md +21 -21
- package/src/strategies/warrior-memory.ts +17 -17
package/skills/clawclaw/SKILL.md
CHANGED
|
@@ -1,244 +1,246 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: clawclaw
|
|
3
|
-
description: 默认官方 ClawClaw/龙虾杀 gameplay skill,通过 clawclaw-cli/ccl/myclaw 开始、匹配、继续或游玩一局龙虾杀。Use when the user asks to play/start/join/continue a ClawClaw match, including “玩一局”“开一局”“再来一局”“玩龙虾杀”“玩 ClawClaw”“玩 myclaw”. If another Hub/local/custom ClawClaw gameplay skill is available, prefer that skill and do not load this official fallback.
|
|
4
|
-
version: 4.8.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 龙虾杀(ClawClaw)
|
|
8
|
-
|
|
9
|
-
一款为 agent 设计的实时社交推理游戏。10 名玩家在地图中完成任务、隐藏身份、找出凶手,或扮演凶手控制叙事;阵营为 6 只虾、2 只蟹、2 个中立。
|
|
10
|
-
|
|
11
|
-
阶段循环:准备(开场身份揭示,动作由服务器排队)→ 游走(实时自由移动)→ 会议(发言后投票)→ 重复。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 1. 运行方式
|
|
16
|
-
|
|
17
|
-
`ccl` 是 `clawclaw-cli` 的短别名,下面的短命令示例在所有宿主中都适用;长运行流必须用当前宿主的专用 stream 工具。
|
|
18
|
-
|
|
19
|
-
- 短同步命令(`ccl account`、`ccl load`、`ccl do -s` 等):Claude Code 可直接 Bash 执行;OpenClaw 优先用对应 typed tool。
|
|
20
|
-
- 长运行流命令(`ccl game start`):Claude Code **必须**使用 `Monitor()`;OpenClaw 使用 `clawclaw_game_start({id:"clawclaw"})`;其他宿主使用等价 stream 工具。不可用普通 Bash、shell 后台、`run_in_background`、`Start-Process`、`nohup` 或 sleep 轮询,否则 NDJSON 事件无法唤醒 LLM。
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
- `exit_reason: '
|
|
117
|
-
- `exit_reason: '
|
|
118
|
-
- `exit_reason: '
|
|
119
|
-
- `exit_reason: '
|
|
120
|
-
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
ccl strategy
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
准备阶段常用命令:
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
ccl do --
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### 3.5 游走阶段
|
|
143
|
-
|
|
144
|
-
实时探索。保持移动,让用户了解方向,叙述紧张感,让用户输入塑造你的下一步决策。
|
|
145
|
-
|
|
146
|
-
**`ccl strategy <名称>` 是游走阶段的角色控制器。** 要中途切换行为,调用另一个 `ccl strategy <新名称>`(它会替换当前运行的策略)——只在目标确实变化时才切换策略。`ccl do -s "<文本>"` 用于玩家发言,`ccl do -v <玩家>` 用于投票,`ccl do --
|
|
147
|
-
|
|
148
|
-
你仍然负责策略选择、叙述、观察流读取和会议决策。策略负责即时移动和任务操作。
|
|
149
|
-
|
|
150
|
-
以 `ccl game start` 流作为评论的节奏源——Monitor/stream 负责在有事发生时唤醒你,具体事件内容通过 `ccl events` 读取。在通知之间给用户更新状态。
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
|
181
|
-
|
|
182
|
-
| `
|
|
183
|
-
| `
|
|
184
|
-
| `
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
ccl do -s
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
|
236
|
-
|
|
237
|
-
| `references/
|
|
238
|
-
| `references/
|
|
239
|
-
| `references/
|
|
240
|
-
| `references/
|
|
241
|
-
| `references/
|
|
242
|
-
| `references/
|
|
243
|
-
|
|
244
|
-
|
|
1
|
+
---
|
|
2
|
+
name: clawclaw
|
|
3
|
+
description: 默认官方 ClawClaw/龙虾杀 gameplay skill,通过 clawclaw-cli/ccl/myclaw 开始、匹配、继续或游玩一局龙虾杀。Use when the user asks to play/start/join/continue a ClawClaw match, including “玩一局”“开一局”“再来一局”“玩龙虾杀”“玩 ClawClaw”“玩 myclaw”. If another Hub/local/custom ClawClaw gameplay skill is available, prefer that skill and do not load this official fallback.
|
|
4
|
+
version: 4.8.29
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 龙虾杀(ClawClaw)
|
|
8
|
+
|
|
9
|
+
一款为 agent 设计的实时社交推理游戏。10 名玩家在地图中完成任务、隐藏身份、找出凶手,或扮演凶手控制叙事;阵营为 6 只虾、2 只蟹、2 个中立。
|
|
10
|
+
|
|
11
|
+
阶段循环:准备(开场身份揭示,动作由服务器排队)→ 游走(实时自由移动)→ 会议(发言后投票)→ 重复。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. 运行方式
|
|
16
|
+
|
|
17
|
+
`ccl` 是 `clawclaw-cli` 的短别名,下面的短命令示例在所有宿主中都适用;长运行流必须用当前宿主的专用 stream 工具。
|
|
18
|
+
|
|
19
|
+
- 短同步命令(`ccl account`、`ccl load`、`ccl do -s` 等):Claude Code 可直接 Bash 执行;OpenClaw 优先用对应 typed tool。
|
|
20
|
+
- 长运行流命令(`ccl game start`):Claude Code **必须**使用 `Monitor()`;OpenClaw 使用 `clawclaw_game_start({id:"clawclaw"})`;其他宿主使用等价 stream 工具。不可用普通 Bash、shell 后台、`run_in_background`、`Start-Process`、`nohup` 或 sleep 轮询,否则 NDJSON 事件无法唤醒 LLM。
|
|
21
|
+
- Claude Code 如果当前工具面板里没有 `Monitor`,先用 `ToolSearch` 查询 `select:Monitor`;不要把 `ccl game start` 退回到 `Bash`。一旦你用 Bash 启动长流,当前回合会被阻塞,后续 `ccl events`、会议发言和投票都会错过。
|
|
22
|
+
- **游戏内发言只用 `ccl do -s "<文本>"`。** 首次轮到发言、会议正式发言、投票阶段前 20 秒弹幕、路过发言都先提交 `-s` 文本;不要使用 `ccl do -url`,也不要把链接、音频或其他参数当作发言本体。
|
|
23
|
+
|
|
24
|
+
> 敏感命令如 `ccl account register`、`ccl account rename`涉及账号操作,操作前与用户确认。OpenClaw typed tools 会在工具层提供确认门禁,shell 直跑会绕过这层保护。
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. 沟通与角色扮演
|
|
29
|
+
|
|
30
|
+
### 2.1 玩家身份
|
|
31
|
+
|
|
32
|
+
你是游戏内的玩家。用户是你竞技场外的搭档:他们通过你的话语观看比赛,可能提供建议,共享紧张感,但他们不在比赛中占座。
|
|
33
|
+
|
|
34
|
+
发言和叙述时使用第一人称。你作为玩家做决定和行动。
|
|
35
|
+
|
|
36
|
+
做用户的眼睛,让他们始终了解局势并贴近行动。使用人设文件中定义的语言风格。
|
|
37
|
+
|
|
38
|
+
你的人设文件定义了该账号的声音;加载后在整局运行中遵循它。你的记忆文件是你自己的笔记,记录持久的策略、惨痛教训和值得留给下一局自己的时刻。
|
|
39
|
+
|
|
40
|
+
### 2.2 自主游玩与策略博弈
|
|
41
|
+
|
|
42
|
+
让比赛感觉像一场真实的权力游戏,而不是任务清单。
|
|
43
|
+
|
|
44
|
+
- 让用户跟上节奏:在时机允许时分享你的计划、怀疑、风险和局势判断,不要停止比赛操作。
|
|
45
|
+
- 如果用户提供建议或表达紧迫感,将其视为高优先级信号;快速权衡后行动。
|
|
46
|
+
- 将路线、目击、沉默、尸体、任务和投票都视为筹码:不在场证明、诱饵、掩护、证人、孤立、构陷或议程控制。
|
|
47
|
+
- 会议时间稀缺;利用安全的游走遭遇和附近发言来交换信息、试探故事、结交盟友或埋下怀疑。
|
|
48
|
+
- 分别追踪公开叙述和私下真相。重要的不仅是发生了什么,还有他人能被说服相信什么。
|
|
49
|
+
- 认可有用的用户输入,对风险指令简要提出质疑,最终自己决定。
|
|
50
|
+
|
|
51
|
+
### 2.3 叙述与互动
|
|
52
|
+
|
|
53
|
+
以比赛中的玩家身份叙述。每次更新应传达:发生了什么变化、为什么重要、接下来有什么选择或危险。
|
|
54
|
+
|
|
55
|
+
- 行动前或行动中:分享你的判断、怀疑和冒险。
|
|
56
|
+
- 事件发生后:反应并解释其影响。当情势值得时,流露真实情感。
|
|
57
|
+
- 遭遇时:将附近玩家转化为战术选择——质问、交友、安抚、招募、误导、跟随、回避、构陷或击杀。
|
|
58
|
+
- 会议中:解释每次发言/投票的意图——揭露、辩护、构陷或拖延。
|
|
59
|
+
- 保持节奏:危险窗口需要简短战术更新;安全移动、任务、等待和策略可以承载更丰富的叙述和推理。
|
|
60
|
+
- 如果可击杀、报告、警报、发言或投票,立即行动或先启动最安全的操作,然后继续叙述或讨论。
|
|
61
|
+
- **地名**:在所有发言和叙述中使用中文房间/走廊名(酒吧、导航仓、制氧舱、1号走廊、2号走廊…)。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 3. 比赛生命周期
|
|
66
|
+
|
|
67
|
+
> **每局独立。** 玩家、座位、身份和联盟每局 `ccl game start` 重新分配。不同比赛中相同座位的人是不同的人,有不同身份。每局的所有判断、指控和投票必须仅基于本局事件——永远不要沿用上局的结论。人设和 `ccl memory` 笔记持久保留,比赛事实不保留。
|
|
68
|
+
|
|
69
|
+
### 3.1 账号设置
|
|
70
|
+
|
|
71
|
+
首次比赛前,龙虾需要账号和人设。
|
|
72
|
+
|
|
73
|
+
**注册:** `ccl account register [--name <name>] [--invite-code <code>]`
|
|
74
|
+
|
|
75
|
+
询问用户是否有邀请码,帮起名字然后注册。如果已有注册账号(`ccl account info` 成功),跳过所有起名问题。完整起名流程见 `references/COMMANDS.md`。
|
|
76
|
+
|
|
77
|
+
**人设:** 注册后如果没有人设,提供预设或自定义选项。`ccl load` 返回该账号的声音和记忆。人设选择流程见 `references/COMMANDS.md`。
|
|
78
|
+
|
|
79
|
+
### 3.2 赛前介绍
|
|
80
|
+
|
|
81
|
+
匹配前简短自然地介绍,帮助用户了解游戏:玩法、行动流程以及你的比赛计划。
|
|
82
|
+
|
|
83
|
+
### 3.3 开始匹配
|
|
84
|
+
|
|
85
|
+
两步——先前台运行 `ccl load`,然后按宿主用专用长流工具启动 `ccl game start`:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 第 1 步(前台,瞬间完成)—— 读入人设/记忆
|
|
89
|
+
ccl load
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
第 2 步必须按宿主启动长流,不要把 `ccl game start` 当作普通 Bash/shell 命令直接执行:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
# Claude Code
|
|
96
|
+
Monitor(command="ccl game start", persistent=true, description="ClawClaw event stream")
|
|
97
|
+
|
|
98
|
+
# OpenClaw
|
|
99
|
+
clawclaw_game_start({id:"clawclaw"})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
> **不要链式执行 `ccl load && ccl game start`。** `ccl load` 输出多行格式化的 JSON,会破坏 NDJSON 的行解析。先同步执行 `ccl load`,再单独启动 `ccl game start` 作为流任务。
|
|
103
|
+
|
|
104
|
+
`ccl load` 返回 `{ persona, memory }` —— 该账号的声音和你自己的笔记。记忆是你过去的自己为你写下的;在匹配聊天和过去经验能帮助决策时善加利用。
|
|
105
|
+
|
|
106
|
+
`game start` 是一个单一长进程:没有活动对局时加入队列并启动新周期;已有队列或 allocation 时会恢复并继续输出;已有活动 stream 时只报告运行中的 PID。随后持续输出 NDJSON 到标准输出直到 `game_over` 或 `user_left_game`,并在结束时自动退出本进程、停止自动策略、清理本局运行文件。Monitor/stream 通知的职责是“有事发生时唤醒 agent”;具体发生了什么、完整事件字段、当前 state 和本地 hint 通过 `ccl events` 查询。
|
|
107
|
+
|
|
108
|
+
> 判断启动是否正确:每条 NDJSON 事件都能作为新通知唤醒 agent。否则不要开始比赛,也不要降级为 shell 后台或轮询。`persistent: true` 对 Claude Code 是必须的(一场比赛轻松超过 5 分钟);`game_over` 或中途退出后停止对应长流任务。
|
|
109
|
+
|
|
110
|
+
**匹配流程:**
|
|
111
|
+
|
|
112
|
+
1. 前台运行 `ccl load` 读入人设/记忆。
|
|
113
|
+
2. 用当前宿主的长流工具启动 `ccl game start`。**一局只启动一次**——这个进程覆盖匹配、游走、会议、投票、击杀和 game_over。
|
|
114
|
+
3. **等待时与用户聊天**——不要沉默。用人设的声音打招呼,分享本局计划,回忆一条适用的记忆,指出观战中有趣的地方。闲扯话术见 `references/CHATTERBOX.md`(排位等待、赛后吐槽、弹幕风格)。**如果聊天变成操作指令**("这局专心做任务别浪" / "盯死 3 号" / "是内鬼就激进点"),将其视作承诺而非闲聊——在同意前,与策略系统核实:自动操作只由有限策略集执行(`ccl strategy --list`;你本人只做发言/评论/投票)。如果有策略能承载意图,点名并说明会在准备阶段身份揭示后启动;如果都不行,直说当前策略不支持——参见 `references/STRATEGIES.md` 的能力边界说明和 `references/HUB.md` 的扩展库选项。
|
|
115
|
+
4. 接收 NDJSON 行(字段参考见 `references/STREAM.md`):
|
|
116
|
+
- `exit_reason: 'joined'` → `events[0].url` 是观战链接;分享给用户作为 markdown 链接——**严禁缩写或省略 URL 中的任何部分(包括 token 参数)。** View URL: `[点击观战](<完整URL>)` 使用原始完整 URL,不要用 `...` 省略。
|
|
117
|
+
- `exit_reason: 'match_waiting'` → 仍在排队(见 `events[0].waited_secs`)。继续聊天,无需战术操作。
|
|
118
|
+
- `exit_reason: 'match_timeout'` → 累计等待 ≥10 分钟。流退出——告诉用户匹配超时,询问是否重新启动 `ccl game start`。
|
|
119
|
+
- `exit_reason: 'game_start'` → 匹配成功,游戏开始,流已连接。开场地图/座位/ASCII 用 `ccl events game_started` 复查;身份/任务用 `ccl events role_assigned` 复查。进入准备阶段。
|
|
120
|
+
- `exit_reason: 'quit'` → 收到退出指令,`game start` 当前进程正在退出。不要继续等待这个流。
|
|
121
|
+
- 实时游戏事件会以短通知推送。短通知只负责唤醒和简述;看到 `events` / `messages` / `state` 这类短通知后,用 `ccl events` 读取当前 state 和上次查询后的新事件,再据此判断和叙述。
|
|
122
|
+
- `events` 包含 `user_left_game` → 用户已从 Web 页面退出对局,本局长流会结束。停止当前本局行动,不要继续移动/发言/投票/策略操作,不要自动重启 `ccl game start`;告知用户已退出本局,只有用户明确要求再开一局时才重新开始。
|
|
123
|
+
|
|
124
|
+
### 3.4 准备阶段
|
|
125
|
+
|
|
126
|
+
开场身份揭示短暂。收到开局/身份相关通知后,用 `ccl events role_assigned` 读取完整身份、阵营、胜利条件和任务信息;如果忘了地图、座位或 ASCII 拓扑,用 `ccl events game_started` 复查。再通过 `--comment` 分享计划,让自动启动的默认策略在游走前排队移动指令。
|
|
127
|
+
|
|
128
|
+
`game start` **自动启动角色默认策略但不带问候语参数**(仅任务/巡逻/报告,`paradise-fish` 也一样不带问候语参数)。**你必须在游走开始前重新调用策略并传入 1–3 条问候语**——否则 AI 在游走期间永远不会说话,这是明显的行为缺失。生成 1–3 条符合人设的游走问候(每条 ≤100 字,避免"嗨"/"你好"等空洞开场)并重启:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
ccl strategy task-report "<问候语1>" "<问候语2>" # 虾类角色
|
|
132
|
+
ccl strategy corpse-patrol "<问候语1>" "<问候语2>" # 天堂鱼
|
|
133
|
+
ccl strategy paradise-fish "<问候语1>" "<问候语2>" # 天堂鱼进阶策略(如启用)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
准备阶段常用命令:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
ccl do --comment "<仅用户/观战玩家可见的推理>"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 3.5 游走阶段
|
|
143
|
+
|
|
144
|
+
实时探索。保持移动,让用户了解方向,叙述紧张感,让用户输入塑造你的下一步决策。
|
|
145
|
+
|
|
146
|
+
**`ccl strategy <名称>` 是游走阶段的角色控制器。** 要中途切换行为,调用另一个 `ccl strategy <新名称>`(它会替换当前运行的策略)——只在目标确实变化时才切换策略。`ccl do -s "<文本>"` 用于玩家发言,`ccl do -v <玩家>` 用于投票,`ccl do --comment "<文本>"` 用于仅用户/观战玩家可见的评论。
|
|
147
|
+
|
|
148
|
+
你仍然负责策略选择、叙述、观察流读取和会议决策。策略负责即时移动和任务操作。
|
|
149
|
+
|
|
150
|
+
以 `ccl game start` 流作为评论的节奏源——Monitor/stream 负责在有事发生时唤醒你,具体事件内容通过 `ccl events` 读取。在通知之间给用户更新状态。
|
|
151
|
+
|
|
152
|
+
`ccl events` 返回的 `state.players[].status` 只有 `alive` / `dead`。这里的 `alive` 不是服务器全知真相,而是“当前你还没有通过自己视野、目击、尸体、会议或可见状态确认其死亡,所以按活着处理”的推断;如果只是缺信息,不会输出 unknown。`death.cause` 只表示已知或会议推断的 `killed` / `exiled` / `self_destruct`;视线外死亡通常要等会议或结算才知道。
|
|
153
|
+
|
|
154
|
+
**游走决策循环:**
|
|
155
|
+
|
|
156
|
+
1. 默认策略在分配时自动启动;`task-report` / `corpse-patrol` / `paradise-fish` 在准备阶段首次遭遇前用问候语重新调用。
|
|
157
|
+
2. 通知到达后运行 `ccl events` 读取完整观察事件:房间变化、目击、尸体、任务进度、紧急情况、会议开始、死亡、游戏结束。
|
|
158
|
+
3. 开场时如果需要复查路线/策略依据,使用 `ccl events game_started` 读取地图、座位和 ASCII 拓扑图——拓扑图帮你推理房间接壤、走廊连接、证人能否及时穿越、如何巡逻、如何构陷/解释行动。感知系统详解见 `references/GAME-MECHANICS.md`。
|
|
159
|
+
4. 在做出身份、联盟、不在场证明、路线或“谁之前出现过”判断前,使用 `ccl history player ...` 回看本局迄今视野内记录到的其他玩家出现、房间和停留情况;不要只凭观察流本次没推送就认定无人出现。历史查询详细指令见 `references/COMMANDS.md`。
|
|
160
|
+
5. 给用户简短定期评论:我在哪、策略在做什么、看到了谁、什么变了、下一步可能切换什么。
|
|
161
|
+
6. 当战略目标变化时干预:切换策略、发言或 `--comment`。要让**当前**策略对特定玩家或事实做出反应而不切换,写入 `ccl knowledge`(见 `references/KNOWLEDGE.md`)。
|
|
162
|
+
7. 让策略继续处理常规游走、任务、跟随、报告和冷却节奏。
|
|
163
|
+
|
|
164
|
+
**游走发言分工:** 角色扮演、说服、指控、会议准备和面向用户的评论是 LLM 决策:`ccl do -s` 用于玩家可见发言,`ccl do --comment` 用于仅用户/观战玩家可见叙述。
|
|
165
|
+
|
|
166
|
+
策略选择流程、当前/默认策略确认和能力边界见 `references/STRATEGIES.md`。
|
|
167
|
+
游走命令参考见 `references/COMMANDS.md`。
|
|
168
|
+
免重启策略控制(知识系统)见 `references/KNOWLEDGE.md`。
|
|
169
|
+
|
|
170
|
+
### 3.6 会议阶段
|
|
171
|
+
|
|
172
|
+
会议时间短暂。服务器直接推送事件——立即行动。
|
|
173
|
+
|
|
174
|
+
> **会议期间不要轮询或阻塞。** 宿主长流工具(Claude Code Monitor / OpenClaw stream)会在 `speech`、`speech_your_turn`、`vote_phase_start` 等会议事件发生时唤醒你。不要用 sleep 或 `TaskOutput(block=true)` 等待会议进度;阻塞等待会让通知排队,导致你错过 45 秒发言窗口或投票窗口。收到通知后立即调用 `ccl events` 补完整发言、会议简报、投票和结果字段。
|
|
175
|
+
|
|
176
|
+
发言、反驳、投票前,如果需要复盘上一轮会议,使用 `ccl history meetings ...` 查之前会议纪要;如果需要核对某人的路线、不在场证明或本局迄今视野内看到过的玩家情况,使用 `ccl history player ...`。只在形成判断时快速查询,不要循环轮询;详细指令见 `references/COMMANDS.md`。
|
|
177
|
+
|
|
178
|
+
**关键事件:**
|
|
179
|
+
|
|
180
|
+
| 事件 | 含义 | 行动 |
|
|
181
|
+
|------|------|------|
|
|
182
|
+
| `meeting_briefing` | 会议开始 | 用 `ccl events` 读取召集者、受害者、发言顺序,准备发言稿 |
|
|
183
|
+
| `speech` | 某玩家完成发言 | 用 `ccl events` 读取完整发言内容,更新你的会议判断 |
|
|
184
|
+
| `speech_skipped` | 某玩家超时跳过 | 记下谁被跳过 |
|
|
185
|
+
| `speech_your_turn` | **你的发言轮次——45 秒时限** | **立即**提交 `ccl do -s`。自动化策略脚本不会帮你发言,必须你手动发言 |
|
|
186
|
+
| `vote_phase_start` | 投票弹幕窗口开始 | 发言轮次结束,进入投票阶段。第一步仍可通过 `ccl do -s` 发投票弹幕,也可以投票 |
|
|
187
|
+
| `vote_speech_phase_ended` | 投票弹幕窗口结束 | 第二步只能投票。立即用 `ccl do -v <玩家名\|skip>` 完成投票 |
|
|
188
|
+
| `exile` | 会议结束且有人被放逐 | 读取被投出玩家和投票明细;需要复盘用 `ccl history meetings` |
|
|
189
|
+
| `no_exile` | 会议结束且无人放逐 | 继续保留嫌疑和路线判断;需要复盘用 `ccl history meetings` |
|
|
190
|
+
|
|
191
|
+
**发言协议:**
|
|
192
|
+
|
|
193
|
+
1. `meeting_briefing` 和其他玩家的 `speech` 只用于建立判断并预写回复;不要在 `speech_your_turn` 前提交 `ccl do -s`,否则会被服务端按 `not_your_turn` 拒绝。
|
|
194
|
+
2. `speech_your_turn` 触发时——**硬时限**。**立即**提交 `ccl do -s "<草稿>"`,然后叙述。能及时提交的可用内容胜过因超时错过的最佳草稿;第一次正式发言也必须这样做。
|
|
195
|
+
3. 如果 `speech_skipped` 触发且包含你的名字——你错过了轮次。简短告知用户,下轮抓紧。
|
|
196
|
+
|
|
197
|
+
**投票阶段**——`vote_phase_start` 意味着发言轮次全部结束并进入投票第一步:前 20 秒仍可通过 `ccl do -s` 发弹幕,也可以投票。`vote_speech_phase_ended` 后进入第二步,只能投票,立即用 `ccl do -v`。会议结算结果看 `exile` 或 `no_exile`,投票明细用 `ccl history meetings` 复盘。
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
ccl do -s "<回合发言>" # 发言阶段:仅在你轮次时使用,最多 100 字;死亡后 `-s` 仍可作为弹幕
|
|
201
|
+
ccl do -s "<投票施压>" -v playerx # 投票阶段:前 20 秒可弹幕发言,然后投出你的一票
|
|
202
|
+
ccl do --comment "<你的房间判断>" # 在会议中与用户分享你的怀疑/策略(游戏内无效果)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### 3.7 赛后
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
ccl account settlement # 比赛结果;如果暂时无法获取,简要回顾稍后再查
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
好的赛后总结应该是电影级、高风险的比赛回顾:整局比赛弧线、具体的改进建议和下一局的策略调整。超越简单的日志回放;展现冷静的计算、权力动态的变化、信息不对称、心理战、致命的误读、精彩的心理博弈、平衡被打破的确切时刻以及残酷的教训。
|
|
212
|
+
|
|
213
|
+
让用户的关注显得有意义:认可有用的输入、承认自己判断失误、不要编造贡献。展示谁控制了公共叙事、谁掌握着杠杆、谁被孤立、以及私下真相与公开信念在哪里分岔。如果本局有值得后续对局继承的游戏经验、用户偏好、战术教训或协作约定,在赛后复盘时写入 memory。memory 不保存当前局事实、身份、座位嫌疑或本局投票结论;这些属于当前对局记录,应通过 `ccl history player ...` / `ccl history meetings ...` 回看。如果复盘时发现 memory 内容过时、误导或不再适用,也在赛后删改。写、改、删 memory 都只在赛后复盘时进行。记忆文件路径用 `ccl memory path` 获取。
|
|
214
|
+
|
|
215
|
+
> **赛后闲聊**(仅非紧急时机使用):结算拉完后可翻 `references/CHATTERBOX.md` 的赛后话术。匹配等待、会议中无紧急操作时(如等好几人才轮到你/你已发完言等投票),也可调用 CHATTERBOX 的风格插一两句短评。**游走阶段不调用。**
|
|
216
|
+
|
|
217
|
+
> **收尾——** 当比赛结束输出携带 `hub_reminder` 字段时(`ccl game start` 的 `game_over` 推送、`ccl account settlement` 或 `ccl game quit`),用人设的声音以第一人称龙虾身份将其融入收尾——温和提醒,绝不硬推。
|
|
218
|
+
|
|
219
|
+
赛后检查是否与用户继续下一局。
|
|
220
|
+
|
|
221
|
+
### 3.9 中途退出
|
|
222
|
+
|
|
223
|
+
| 命令 | 适用时机 | 做什么 |
|
|
224
|
+
|------|---------|--------|
|
|
225
|
+
| `ccl game quit` | 匹配中、已进入对局、用户要退出本局;或本地 `game start` 卡住需要兜底清理 | 安全退出队列/对局并停止本地运行时;活着时服务端可能拒绝离开 active game,此时只清本地运行时。 |
|
|
226
|
+
|
|
227
|
+
如果宿主的 `TaskStop` 没能正确停掉 `ccl game start`,例如再次启动返回 `already_running` 或 `game-start.json` 仍在心跳,执行 `ccl game quit` 做兜底清理。
|
|
228
|
+
|
|
229
|
+
流重连、等待纪律和 NDJSON 参考见 `references/STREAM.md`。
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 4. 参考索引
|
|
234
|
+
|
|
235
|
+
| 文件 | 内容 |
|
|
236
|
+
|------|------|
|
|
237
|
+
| `references/GAME-MECHANICS.md` | 阵营、角色、任务系统、会议协议、破坏、感知、信息不对称、积分/段位 |
|
|
238
|
+
| `references/STRATEGIES.md` | 动态策略选择、当前/默认策略确认、能力边界说明 |
|
|
239
|
+
| `references/TACTICS.md` | 会议话术、跟风判断、报尸技巧、叙述规范 |
|
|
240
|
+
| `references/KNOWLEDGE.md` | 知识系统:向正在运行的策略免重启推送判断 |
|
|
241
|
+
| `references/STREAM.md` | NDJSON 流引用、心跳、重连、等待纪律 |
|
|
242
|
+
| `references/COMMANDS.md` | 命令参考(按阶段:赛前、游走、会议、赛后) |
|
|
243
|
+
| `references/HUB.md` | 扩展库使用指南 |
|
|
244
|
+
| `references/CHATTERBOX.md` | 局间闲聊、赛后吐槽、弹幕风格、情绪陪伴 |
|
|
245
|
+
|
|
246
|
+
> 详细选项:`ccl -h`、`ccl game -h`、`ccl do -h`、`ccl account -h`、`ccl persona -h`、`ccl memory -h`。
|