cursor-guard 2.1.1 → 4.0.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.
@@ -0,0 +1,364 @@
1
+ # Cursor Guard 使用说明
2
+
3
+ 一份简短的上手文档,适合第一次安装后直接照着用。
4
+
5
+ ## 1. 它是做什么的
6
+
7
+ `cursor-guard` 用来保护你的项目不被 Cursor Agent 误改、误删、误覆盖。
8
+
9
+ 它主要做 3 件事:
10
+
11
+ 1. 在高风险写入前,先保留可恢复的版本。
12
+ 2. 提供自动备份能力,定时保存项目状态。
13
+ 3. 在需要恢复时,优先从本地备份里找回文件。
14
+
15
+ 默认是**本地保护**,不会自动推送到远程仓库。
16
+
17
+ ---
18
+
19
+ ## 2. 环境要求
20
+
21
+ - `Node.js >= 18`
22
+ - `Git`
23
+ 说明:如果你只用 `shadow` 影子拷贝模式,可以没有 Git;如果要用默认的 Git 备份模式,就需要 Git。
24
+ - `Cursor IDE`
25
+
26
+ ---
27
+
28
+ ## 3. 安装方式
29
+
30
+ ### 方式一:放到 Cursor skill 目录
31
+
32
+ 把项目放到下面任一目录即可:
33
+
34
+ ```text
35
+ ~/.cursor/skills/cursor-guard/
36
+ <你的项目>/.cursor/skills/cursor-guard/
37
+ ```
38
+
39
+ ### 方式二:npm 安装后复制
40
+
41
+ ```bash
42
+ npm install cursor-guard
43
+ ```
44
+
45
+ Windows:
46
+
47
+ ```powershell
48
+ Copy-Item -Recurse node_modules/cursor-guard "$env:USERPROFILE/.cursor/skills/cursor-guard"
49
+ ```
50
+
51
+ macOS / Linux:
52
+
53
+ ```bash
54
+ cp -r node_modules/cursor-guard ~/.cursor/skills/cursor-guard
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 4. 最快开始方式
60
+
61
+ ### 第一步:先检查环境
62
+
63
+ 最稳的方式:先进入你的项目根目录,再执行:
64
+
65
+ ```bash
66
+ npx cursor-guard-doctor --path .
67
+ ```
68
+
69
+ 也可以在任何别的目录执行,但 `--path` 必须明确指向你的项目根目录:
70
+
71
+ ```bash
72
+ # Windows
73
+ npx cursor-guard-doctor --path D:\MyProject
74
+
75
+ # macOS / Linux
76
+ npx cursor-guard-doctor --path /Users/you/my-project
77
+ ```
78
+
79
+ 它会检查:
80
+
81
+ - Node / Git 是否可用
82
+ - 当前目录是不是 Git 仓库
83
+ - 备份目录是否被忽略
84
+ - 配置文件是否合法
85
+
86
+ ### 第二步:按需创建配置文件
87
+
88
+ ```bash
89
+ cp .cursor/skills/cursor-guard/references/cursor-guard.example.json .cursor-guard.json
90
+ ```
91
+
92
+ 如果你不想自定义,也可以先不配,直接使用默认行为。
93
+
94
+ ### 第三步:启动自动备份
95
+
96
+ 这一点最重要:
97
+
98
+ - 命令可以在任意目录执行
99
+ - 但 `--path` 必须是你要保护的项目根目录
100
+ - 如果你当前就在项目根目录,写 `--path .` 最方便
101
+ - 如果你当前不在项目根目录,就不要写 `--path .`,要写完整路径
102
+
103
+ ```bash
104
+ # 已经进入项目根目录时
105
+ npx cursor-guard-backup --path .
106
+
107
+ # 不在项目根目录时,直接写目标项目路径
108
+ # Windows
109
+ npx cursor-guard-backup --path D:\MyProject
110
+
111
+ # macOS / Linux
112
+ npx cursor-guard-backup --path /Users/you/my-project
113
+ ```
114
+
115
+ 如果想缩短检查间隔:
116
+
117
+ ```bash
118
+ npx cursor-guard-backup --path . --interval 30
119
+ ```
120
+
121
+ 建议在**独立终端**里运行,不要和日常开发命令混在一起。
122
+
123
+ 错误示例:
124
+
125
+ ```bash
126
+ # 你当前在 D:\OtherProject
127
+ # 这条命令保护的是 D:\OtherProject,不是 D:\MyProject
128
+ npx cursor-guard-backup --path .
129
+ ```
130
+
131
+ 正确思路是:
132
+
133
+ - 要么先 `cd` 到真正的项目根目录,再用 `--path .`
134
+ - 要么不切目录,直接把目标项目路径写完整
135
+
136
+ ### 第四步(可选):启用 MCP 工具调用
137
+
138
+ 如果你的 Cursor 版本支持 MCP,可以启用它来让 Agent 调用更快、更省 token。
139
+
140
+ 在项目根目录(或全局 Cursor 设置)创建 `.cursor/mcp.json`:
141
+
142
+ ```jsonc
143
+ {
144
+ "mcpServers": {
145
+ "cursor-guard": {
146
+ "command": "node",
147
+ "args": ["<skill路径>/references/mcp/server.js"]
148
+ // 例: "args": ["C:/Users/you/.cursor/skills/cursor-guard/references/mcp/server.js"]
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ 启用后 Agent 可以直接调用 9 个工具:
155
+
156
+ | 工具 | 作用 |
157
+ |------|------|
158
+ | `doctor` | 诊断环境、配置、Git、备份状态 |
159
+ | `doctor_fix` | 自动修复常见问题(创建配置、初始化 Git 等) |
160
+ | `backup_status` | 查看 watcher 状态、最近备份、磁盘空间 |
161
+ | `snapshot_now` | 立即创建快照 |
162
+ | `list_backups` | 列出所有恢复点 |
163
+ | `restore_file` | 恢复单个文件 |
164
+ | `restore_project` | 预览/执行全项目恢复 |
165
+ | `dashboard` | 综合健康看板(策略/数量/磁盘/范围/状态/告警) |
166
+ | `alert_status` | 查看当前是否有变更频率告警 |
167
+
168
+ **不启用 MCP 也完全不影响使用**——Agent 会自动回退到 shell 命令路径。
169
+
170
+ ### 第五步:在 Cursor 里正常使用 Agent
171
+
172
+ 后续你像平时一样让 Agent 改代码即可。
173
+ `cursor-guard` 会在需要时提供保护、备份和恢复路径。
174
+
175
+ ---
176
+
177
+ ## 5. 备份方式怎么选
178
+
179
+ ### `git`
180
+
181
+ 适合已经是 Git 仓库的项目。
182
+
183
+ - 备份写入 `refs/guard/auto-backup`
184
+ - 不污染你当前分支
185
+ - 普通 `git push` 和 `git push --all` 不会把它推到远程
186
+
187
+ ### `shadow`
188
+
189
+ 适合非 Git 项目,或者你只想做本地文件拷贝。
190
+
191
+ - 备份写入 `.cursor-guard-backup/<timestamp>/`
192
+
193
+ ### `both`
194
+
195
+ 同时保留 Git 备份和影子拷贝,安全性最高,但占空间更多。
196
+
197
+ ---
198
+
199
+ ## 6. 推荐配置示例
200
+
201
+ ```json
202
+ {
203
+ "protect": ["src/**", "package.json", "README.md"],
204
+ "ignore": ["dist/**", "node_modules/**", "*.log"],
205
+ "backup_strategy": "both",
206
+ "auto_backup_interval_seconds": 60,
207
+ "pre_restore_backup": "always",
208
+ "secrets_patterns_extra": ["*.secret", "tokens.*"],
209
+ "retention": {
210
+ "mode": "days",
211
+ "days": 30,
212
+ "max_count": 100,
213
+ "max_size_mb": 500
214
+ },
215
+ "git_retention": {
216
+ "enabled": true,
217
+ "mode": "count",
218
+ "max_count": 200
219
+ },
220
+ "proactive_alert": true,
221
+ "alert_thresholds": {
222
+ "files_per_window": 20,
223
+ "window_seconds": 10,
224
+ "cooldown_seconds": 60
225
+ }
226
+ }
227
+ ```
228
+
229
+ 这个配置的意思:
230
+
231
+ - 只重点保护 `src/**`、`package.json`、`README.md`
232
+ - 忽略产物目录和日志
233
+ - 同时启用 Git 备份和影子拷贝
234
+ - 每 60 秒检查一次变化
235
+ - 恢复前默认先保留当前版本
236
+ - 额外排除自定义敏感文件
237
+ - 自动清理过旧备份
238
+ - 开启主动变更频率检测(10 秒内 20+ 文件变更时告警)
239
+
240
+ ---
241
+
242
+ ## 7. 最常用的配置项
243
+
244
+ ### `protect`
245
+
246
+ 指定重点保护哪些文件或目录。
247
+ 不写时,默认保护全部文件。
248
+
249
+ ### `ignore`
250
+
251
+ 指定哪些文件不要纳入保护和备份。
252
+
253
+ ### `backup_strategy`
254
+
255
+ 可选值:
256
+
257
+ - `git`
258
+ - `shadow`
259
+ - `both`
260
+
261
+ ### `pre_restore_backup`
262
+
263
+ 控制恢复前是否先保留当前版本:
264
+
265
+ - `always`:总是先保留
266
+ - `ask`:恢复前询问
267
+ - `never`:不保留,不推荐
268
+
269
+ ### `retention`
270
+
271
+ 控制 `.cursor-guard-backup/` 里的影子拷贝保留多久。
272
+
273
+ ### `git_retention`
274
+
275
+ 控制 `refs/guard/auto-backup` 里的 Git 备份保留多久。
276
+
277
+ ### `proactive_alert`
278
+
279
+ 是否开启 V4 主动变更频率检测(默认 `true`)。开启后 watcher 会自动监控文件变更速率,异常时触发告警。
280
+
281
+ ### `alert_thresholds`
282
+
283
+ 告警阈值配置:
284
+ - `files_per_window`:窗口内触发告警的文件数(默认 20)
285
+ - `window_seconds`:滑动窗口秒数(默认 10)
286
+ - `cooldown_seconds`:连续告警最小间隔(默认 60)
287
+
288
+ ---
289
+
290
+ ## 8. 怎么恢复
291
+
292
+ 恢复路径建议按这个顺序看:
293
+
294
+ 1. `refs/guard/pre-restore/...`
295
+ 2. `refs/guard/auto-backup`
296
+ 3. `.cursor-guard-backup/<timestamp>/`
297
+
298
+ 常用命令:
299
+
300
+ ```bash
301
+ git log guard/auto-backup --oneline -20
302
+ git restore --source=guard/auto-backup -- <path/to/file>
303
+ git diff guard/auto-backup -- <path/to/file>
304
+ ```
305
+
306
+ 如果是影子拷贝模式,就去 `.cursor-guard-backup/` 里找对应时间戳目录。
307
+
308
+ 更完整的恢复方法见:
309
+
310
+ - [recovery.md](./recovery.md)
311
+
312
+ ---
313
+
314
+ ## 9. 你最需要知道的几个点
315
+
316
+ - 默认不会自动 `git push`
317
+ - 普通 `git push` / `git push --all` 不会推送 `refs/guard/auto-backup`
318
+ - 但 `git push --mirror` 会推送所有 refs,谨慎使用
319
+ - `.cursor-guard-backup/` 会被自动加入忽略,避免备份目录反复触发 Git 脏状态
320
+ - 如果是重要项目,建议用 `both`
321
+
322
+ ---
323
+
324
+ ## 10. 常用命令速查
325
+
326
+ ```bash
327
+ # 检查环境
328
+ npx cursor-guard-doctor --path .
329
+
330
+ # 启动自动备份
331
+ npx cursor-guard-backup --path .
332
+
333
+ # 每 30 秒检查一次
334
+ npx cursor-guard-backup --path . --interval 30
335
+
336
+ # 查看最近 Git 自动备份
337
+ git log guard/auto-backup --oneline -20
338
+
339
+ # 从自动备份恢复单个文件
340
+ git restore --source=guard/auto-backup -- src/app.ts
341
+ ```
342
+
343
+ ### Agent 对话中的触发词
344
+
345
+ 你可以直接用自然语言和 Agent 说:
346
+
347
+ | 你说 | Agent 做什么 |
348
+ |------|------------|
349
+ | "guard doctor" / "自检" | 运行健康检查 |
350
+ | "guard fix" / "修复配置" | 自动修复常见问题 |
351
+ | "备份状态" / "watcher 在跑吗" | 查看备份系统状态 |
352
+ | "看板" / "dashboard" | 显示综合健康看板 |
353
+ | "有告警吗" / "风险提示" | 检查变更频率告警 |
354
+ | "恢复到5分钟前" | 从历史中找到最接近的版本并恢复 |
355
+ | "帮我恢复 src/app.ts" | 列出该文件的恢复点 |
356
+ | "MCP 能用吗" | 检查 MCP 是否配置正确 |
357
+
358
+ ---
359
+
360
+ ## 11. 进一步阅读
361
+
362
+ - [README.zh-CN.md](../README.zh-CN.md)
363
+ - [config-reference.zh-CN.md](./config-reference.zh-CN.md)
364
+ - [recovery.md](./recovery.md)