@michelj/context-guard 0.4.1 → 0.4.3
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 +74 -6
- package/README.zh-CN.md +74 -6
- package/{skills/context-guard/SKILL.md → SKILL.md} +216 -77
- package/bin/context-guard-skill.js +88 -3
- package/hooks.json +25 -1
- package/package.json +7 -3
- package/{skills/context-guard/references → references}/context-template.md +52 -1
- package/references/feature-chain-methodology.md +228 -0
- package/{skills/context-guard/scripts → scripts}/context_guard.py +3119 -121
- package/{skills/context-guard/scripts → scripts}/context_guard_hook.py +344 -12
- package/{skills/context-guard/tests → tests}/BC-20260701-090.sh +8 -7
- package/{skills/context-guard/tests → tests}/BC-20260702-096.sh +6 -3
- package/tests/BC-20260706-098.sh +66 -0
- package/tests/BC-20260707-099.sh +47 -0
- package/tests/BC-20260707-100.sh +46 -0
- package/tests/BC-20260707-101.sh +47 -0
- package/tests/BC-20260707-102.sh +68 -0
- package/tests/BC-20260707-103.sh +59 -0
- package/tests/BC-20260707-104.sh +103 -0
- package/tests/BC-20260707-105.sh +109 -0
- package/tests/BC-20260707-106.sh +80 -0
- package/tests/BC-20260707-107.sh +74 -0
- package/tests/BC-20260707-108.sh +48 -0
- package/tests/BC-20260707-109.sh +56 -0
- package/tests/BC-20260707-110.sh +71 -0
- package/tests/BC-20260707-111.sh +70 -0
- package/tests/BC-20260707-112.sh +45 -0
- package/tests/BC-20260707-113.sh +73 -0
- package/tests/BC-20260707-115.sh +77 -0
- package/tests/BC-20260707-116.sh +77 -0
- package/tests/BC-20260707-118.sh +115 -0
- package/tests/BC-20260707-119.sh +47 -0
- package/tests/BC-20260707-120.sh +60 -0
- package/tests/BC-20260707-121.sh +66 -0
- package/tests/BC-20260707-122.sh +48 -0
- package/tests/BC-20260707-123.sh +43 -0
- package/tests/BC-20260707-124.sh +56 -0
- package/tests/BC-20260707-125.sh +64 -0
- package/tests/BC-20260707-126.sh +80 -0
- package/tests/BC-20260707-127.sh +88 -0
- package/tests/BC-20260707-129.sh +59 -0
- package/tests/BC-20260707-130.sh +69 -0
- package/tests/BC-20260707-131.sh +140 -0
- package/tests/BC-20260707-132.sh +150 -0
- package/tests/BC-20260707-133.sh +70 -0
- package/tests/BC-20260708-136.sh +210 -0
- package/tests/BC-20260708-137.sh +106 -0
- package/tests/BC-20260708-138.sh +168 -0
- package/tests/BC-20260708-139.sh +79 -0
- package/tests/BC-20260709-002.sh +63 -0
- package/tests/BC-20260709-003.sh +239 -0
- package/tests/BC-20260709-006.sh +76 -0
- package/tests/BC-20260709-008.sh +168 -0
- package/tests/BC-20260710-001.sh +61 -0
- package/tests/BC-20260710-002.sh +111 -0
- package/tests/npm-install-smoke.sh +53 -0
- package/skills/context-guard/README.md +0 -234
- package/skills/context-guard/README.zh-CN.md +0 -234
- /package/{skills/context-guard/agents → agents}/openai.yaml +0 -0
- /package/{skills/context-guard/references → references}/register-template.md +0 -0
- /package/{skills/context-guard/references → references}/task-case-template.md +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260618-063.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260618-065.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260626-080.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260626-081.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260626-082.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260626-083.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260627-084.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260630-086.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260630-087.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260630-088.sh +0 -0
- /package/{skills/context-guard/tests → tests}/BC-20260630-089.sh +0 -0
package/README.md
CHANGED
|
@@ -7,12 +7,16 @@ Context Guard is a Codex skill for durable project memory. It keeps the task rou
|
|
|
7
7
|
## What It Does
|
|
8
8
|
|
|
9
9
|
- **Maintains project context**: creates and updates `.codex/context/`.
|
|
10
|
+
- **Preserves user wording**: stores short user instructions, constraints, preferences, route hints, and bad-case reports in `user-messages.md`.
|
|
11
|
+
- **Keeps secrets local-only**: redacts credentials from public context and stores durable secrets only under `.codex/context/private/`.
|
|
10
12
|
- **Records the roadmap**: tracks main routes, side routes, branch points, and progress.
|
|
11
13
|
- **Tracks bad cases**: records symptoms, triggers, causes, fixes, and recurrence checks.
|
|
12
|
-
- **Generates Roadmap HTML**: shows
|
|
14
|
+
- **Generates Roadmap HTML**: shows clickable node details with card and compact high-density views.
|
|
13
15
|
- **Separates human and agent views**: HTML is for humans; Markdown/JSON are for Codex.
|
|
14
16
|
- **Supports record language preferences**: writes future context in Chinese or English.
|
|
15
17
|
- **Handles task switches**: parks, resumes, and branches interrupted work.
|
|
18
|
+
- **Binds subagent projects**: maps each agent ID to its real local project root so context does not leak into a parent workspace or SSH server.
|
|
19
|
+
- **Archives concrete repairs**: keeps observed symptoms, causes, fixes, and verification while deduplicating repeated completion events.
|
|
16
20
|
- **Keeps tests human-designed**: Codex reuses approved checks or proposes drafts, but does not silently create durable tests.
|
|
17
21
|
- **Covers bad cases with feature chains**: prefer one real feature/workflow chain covering multiple bad cases over one separate test per bad case.
|
|
18
22
|
- **Runs approved tests by default**: user-created or user-approved tests run at every development completion unless the user sets another cadence.
|
|
@@ -38,6 +42,8 @@ Install hooks only when you explicitly want Context Guard reminders at Codex lif
|
|
|
38
42
|
npx @michelj/context-guard install --with-hooks
|
|
39
43
|
```
|
|
40
44
|
|
|
45
|
+
This also enables the current `[features] hooks = true` setting in `~/.codex/config.toml` and migrates the deprecated `codex_hooks` alias without changing other settings.
|
|
46
|
+
|
|
41
47
|
Use from GitHub before the npm package is published:
|
|
42
48
|
|
|
43
49
|
```bash
|
|
@@ -50,7 +56,9 @@ Manual install is also supported:
|
|
|
50
56
|
git clone git@github.com:Michel-Johnson/Context-Guard-Skill.git
|
|
51
57
|
cd Context-Guard-Skill
|
|
52
58
|
mkdir -p ~/.codex/skills/context-guard
|
|
53
|
-
rsync -a --delete
|
|
59
|
+
rsync -a --delete \
|
|
60
|
+
SKILL.md README.md README.zh-CN.md agents references scripts tests \
|
|
61
|
+
~/.codex/skills/context-guard/
|
|
54
62
|
```
|
|
55
63
|
|
|
56
64
|
After installation, Codex should discover:
|
|
@@ -74,6 +82,18 @@ Do not write project context into:
|
|
|
74
82
|
- a temporary directory
|
|
75
83
|
- an SSH remote server path
|
|
76
84
|
|
|
85
|
+
Short user prompts that matter for future work are kept in:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
<Codex project root>/.codex/context/user-messages.md
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
If the user provides a credential that future Codex turns need, Context Guard records only a redacted pointer in public context. Raw durable secrets must stay local-only under:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
<Codex project root>/.codex/context/private/
|
|
95
|
+
```
|
|
96
|
+
|
|
77
97
|
When running scripts manually, pass the project root explicitly:
|
|
78
98
|
|
|
79
99
|
```bash
|
|
@@ -89,15 +109,14 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-add \
|
|
|
89
109
|
--command-text "npm test"
|
|
90
110
|
```
|
|
91
111
|
|
|
92
|
-
|
|
112
|
+
Create a proposed feature-chain test:
|
|
93
113
|
|
|
94
114
|
```bash
|
|
95
115
|
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-add \
|
|
96
116
|
--root /path/to/project \
|
|
97
117
|
--title "GPU monitor button" \
|
|
98
118
|
--entry "Click the GPU monitor button" \
|
|
99
|
-
--exit-check "Open a monitoring page with a valid grafana_url"
|
|
100
|
-
--command-text "npm test -- gpu-monitor"
|
|
119
|
+
--exit-check "Open a monitoring page with a valid grafana_url"
|
|
101
120
|
```
|
|
102
121
|
|
|
103
122
|
Attach a bad case to a specific feature-chain checkpoint:
|
|
@@ -111,6 +130,53 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-att
|
|
|
111
130
|
--check "grafana_url is non-empty and the frontend does not hang"
|
|
112
131
|
```
|
|
113
132
|
|
|
133
|
+
After the user confirms the flow, approve that same chain:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-approve \
|
|
137
|
+
--root /path/to/project \
|
|
138
|
+
--chain-id FC-... \
|
|
139
|
+
--command-text "npm test -- gpu-monitor"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Feature-chain commands can emit checkpoint markers so the Test Hub can report the exact failed step:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
CG_CHECKPOINT:Backend returns monitor URL:PASS
|
|
146
|
+
CG_CHECKPOINT:Frontend opens monitor page:FAIL:missing grafana_url
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The checkpoint name in each marker must match a registered feature-chain node. Unknown names are treated as test-chain errors. Approved feature-chain commands must report every registered checkpoint unless the checkpoint is explicitly optional.
|
|
150
|
+
|
|
151
|
+
If a checkpoint should not run every time, mark that checkpoint as optional explicitly:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-set-checkpoint \
|
|
155
|
+
--root /path/to/project \
|
|
156
|
+
--chain-id FC-... \
|
|
157
|
+
--node-title "Frontend opens monitor page" \
|
|
158
|
+
--required optional \
|
|
159
|
+
--reason "Only runs in browser integration environment"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Audit which checkpoints are required or optional:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-list \
|
|
166
|
+
--root /path/to/project \
|
|
167
|
+
--verbose
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If the user says this chain should not run every time, change its cadence:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-set-policy \
|
|
174
|
+
--root /path/to/project \
|
|
175
|
+
--chain-id FC-... \
|
|
176
|
+
--run-policy relevant-only \
|
|
177
|
+
--reason "Only run when GPU monitor flow changes"
|
|
178
|
+
```
|
|
179
|
+
|
|
114
180
|
After development, hand completion to the Test Hub:
|
|
115
181
|
|
|
116
182
|
```bash
|
|
@@ -220,8 +286,10 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py checkpoint-roadma
|
|
|
220
286
|
- Human-facing titles should read naturally, not like implementation logs.
|
|
221
287
|
- A bad case should help future Codex prevent recurrence.
|
|
222
288
|
- Test design belongs to humans; Codex can run approved checks or draft a proposal for confirmation.
|
|
289
|
+
- When a task is likely to recur or fits a reusable workflow check, Codex should gently ask whether the user wants to create a test task, but must not create durable tests silently.
|
|
223
290
|
- Prefer feature chains as the durable testing unit: one clear entry, one real workflow, ordered checkpoints, and multiple covered bad cases.
|
|
224
291
|
- Attach new bad cases to an existing feature-chain checkpoint first; propose a new chain only when no existing workflow matches.
|
|
292
|
+
- Feature chains start as `proposed`; promote them with `feature-chain-approve` only after user confirmation and checkpoint coverage.
|
|
225
293
|
- User-approved tests default to `every-dev-completion`; Codex may lower that cadence only when the user asks.
|
|
226
294
|
- Approved automated tests should go into `.codex/context/test-hub/registry.json` or `.codex/context/test-hub/feature-chains.json` and be scheduled through `dev-complete`.
|
|
227
295
|
- Keep the Test Hub simple: one registry, one `dev-complete` runner, one latest-result file, one read-only HTML status page, and a few management commands.
|
|
@@ -231,4 +299,4 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py checkpoint-roadma
|
|
|
231
299
|
- For frontend or HTML changes, inspect the rendered page or screenshot before claiming success.
|
|
232
300
|
- For any new durable test case, draft a short task-case proposal and confirm with the user before making it active.
|
|
233
301
|
|
|
234
|
-
See [`
|
|
302
|
+
See [`SKILL.md`](SKILL.md) for the full behavior rules.
|
package/README.zh-CN.md
CHANGED
|
@@ -7,12 +7,16 @@ Context Guard 是一个给 Codex 用的项目记忆 skill。它把任务主线
|
|
|
7
7
|
## 能做什么
|
|
8
8
|
|
|
9
9
|
- **维护项目 context**:自动创建并更新 `.codex/context/`。
|
|
10
|
+
- **保留用户原话**:把短用户指令、约束、偏好、路线提示和 bad case 反馈写入 `user-messages.md`。
|
|
11
|
+
- **敏感信息只留本地**:公开 context 里只保留脱敏指针,真正需要复用的凭据只放在 `.codex/context/private/`。
|
|
10
12
|
- **记录路线图**:维护主线、支线、分叉节点和当前进度。
|
|
11
13
|
- **记录 bad case**:保存问题现象、触发条件、原因、修复方式和防复发检查。
|
|
12
|
-
- **生成 Roadmap HTML
|
|
14
|
+
- **生成 Roadmap HTML**:支持卡片和高密度紧凑总览,点击节点看详情。
|
|
13
15
|
- **区分人类视图和 agent 视图**:HTML 给人看,Markdown/JSON 给 Codex 读取。
|
|
14
16
|
- **支持多语言记录**:按项目偏好用中文或英文写 context。
|
|
15
17
|
- **处理任务切换**:遇到新方向、支线任务或中断任务时,帮助 Codex park/resume。
|
|
18
|
+
- **绑定 Subagent 项目**:把 agent ID 绑定到实际本地项目根目录,避免 context 写回父工作区或 SSH 服务器。
|
|
19
|
+
- **沉淀真实修复**:优先保存 Subagent 实际发现的问题、根因、修复和验证;重复完成事件不会重复建节点。
|
|
16
20
|
- **测试由人类设计**:Codex 只复用已确认检查,或提出草案等待用户确认,不静默创建长期测试。
|
|
17
21
|
- **用功能链覆盖 bad case**:优先把多个 bad case 挂到同一条真实功能/工作流测试链上,而不是为每个 bad case 单独造测试。
|
|
18
22
|
- **默认运行已确认测试**:用户创建或确认的测试,默认每次开发结束都要运行;只有用户说明不必每次运行时才降频。
|
|
@@ -38,6 +42,8 @@ npm install -g @michelj/context-guard --registry=https://registry.npmjs.org
|
|
|
38
42
|
npx @michelj/context-guard install --with-hooks
|
|
39
43
|
```
|
|
40
44
|
|
|
45
|
+
该命令也会在 `~/.codex/config.toml` 中启用当前的 `[features] hooks = true`,并把已弃用的 `codex_hooks` 别名安全迁移,同时保留其他配置。
|
|
46
|
+
|
|
41
47
|
npm 包正式发布前,也可以直接从 GitHub 使用:
|
|
42
48
|
|
|
43
49
|
```bash
|
|
@@ -50,7 +56,9 @@ npx github:Michel-Johnson/Context-Guard-Skill install
|
|
|
50
56
|
git clone git@github.com:Michel-Johnson/Context-Guard-Skill.git
|
|
51
57
|
cd Context-Guard-Skill
|
|
52
58
|
mkdir -p ~/.codex/skills/context-guard
|
|
53
|
-
rsync -a --delete
|
|
59
|
+
rsync -a --delete \
|
|
60
|
+
SKILL.md README.md README.zh-CN.md agents references scripts tests \
|
|
61
|
+
~/.codex/skills/context-guard/
|
|
54
62
|
```
|
|
55
63
|
|
|
56
64
|
安装后 Codex 应该能发现:
|
|
@@ -74,6 +82,18 @@ Context 必须保存在当前打开的本地项目里:
|
|
|
74
82
|
- 临时目录
|
|
75
83
|
- SSH 远程服务器路径
|
|
76
84
|
|
|
85
|
+
对后续工作有价值的短用户消息会保存在:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
<Codex 打开的项目根目录>/.codex/context/user-messages.md
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
如果用户提供了后续需要复用的凭据,Context Guard 只会在公开 context 中记录脱敏指针。原始凭据必须只保存在本地私有目录:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
<Codex 打开的项目根目录>/.codex/context/private/
|
|
95
|
+
```
|
|
96
|
+
|
|
77
97
|
如果手动运行脚本,建议显式传入项目根目录:
|
|
78
98
|
|
|
79
99
|
```bash
|
|
@@ -89,15 +109,14 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-add \
|
|
|
89
109
|
--command-text "npm test"
|
|
90
110
|
```
|
|
91
111
|
|
|
92
|
-
|
|
112
|
+
创建一条待确认的功能链测试草案:
|
|
93
113
|
|
|
94
114
|
```bash
|
|
95
115
|
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-add \
|
|
96
116
|
--root /path/to/project \
|
|
97
117
|
--title "GPU 监控按钮" \
|
|
98
118
|
--entry "点击 GPU 监控按钮" \
|
|
99
|
-
--exit-check "打开包含有效 grafana_url 的监控页"
|
|
100
|
-
--command-text "npm test -- gpu-monitor"
|
|
119
|
+
--exit-check "打开包含有效 grafana_url 的监控页"
|
|
101
120
|
```
|
|
102
121
|
|
|
103
122
|
把 bad case 挂到功能链的具体环节:
|
|
@@ -111,6 +130,53 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-att
|
|
|
111
130
|
--check "grafana_url 不为空,前端不会卡住"
|
|
112
131
|
```
|
|
113
132
|
|
|
133
|
+
用户确认流程后,再批准同一条功能链:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-approve \
|
|
137
|
+
--root /path/to/project \
|
|
138
|
+
--chain-id FC-... \
|
|
139
|
+
--command-text "npm test -- gpu-monitor"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
功能链命令可以输出 checkpoint 标记,让测试中台知道具体哪一步失败:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
CG_CHECKPOINT:后端返回监控 URL:PASS
|
|
146
|
+
CG_CHECKPOINT:前端打开监控页:FAIL:缺少 grafana_url
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
标记里的 checkpoint 名称必须匹配已登记的功能链节点;未知名称会被当成测试链路错误。已批准的功能链默认必须报告每个已登记 checkpoint,除非该 checkpoint 被明确标为 optional。
|
|
150
|
+
|
|
151
|
+
如果某个 checkpoint 不适合每次都跑,显式标为 optional:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-set-checkpoint \
|
|
155
|
+
--root /path/to/project \
|
|
156
|
+
--chain-id FC-... \
|
|
157
|
+
--node-title "前端打开监控页" \
|
|
158
|
+
--required optional \
|
|
159
|
+
--reason "只在浏览器集成环境运行"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
查看每条功能链哪些 checkpoint 必跑、哪些可选:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-list \
|
|
166
|
+
--root /path/to/project \
|
|
167
|
+
--verbose
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
如果用户说这条链不需要每次都跑,修改运行频率:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-set-policy \
|
|
174
|
+
--root /path/to/project \
|
|
175
|
+
--chain-id FC-... \
|
|
176
|
+
--run-policy relevant-only \
|
|
177
|
+
--reason "只在修改 GPU 监控流程时运行"
|
|
178
|
+
```
|
|
179
|
+
|
|
114
180
|
开发完成后交给测试中台:
|
|
115
181
|
|
|
116
182
|
```bash
|
|
@@ -220,8 +286,10 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py checkpoint-roadma
|
|
|
220
286
|
- 用户看的标题要像人话,不要像实现日志。
|
|
221
287
|
- bad case 要能帮助未来避免复发。
|
|
222
288
|
- 测试设计权属于人类;Codex 可以执行已确认检查,或提出待确认草案。
|
|
289
|
+
- 当任务容易复发或适合沉淀为流程检查时,Codex 应温和提醒用户是否创建测试任务,但不能擅自创建长期测试。
|
|
223
290
|
- 测试的长期单位优先是功能链:一个明确入口、一段真实流程、多个检查点、覆盖多个 bad case。
|
|
224
291
|
- 新 bad case 优先挂到已有功能链节点;没有匹配功能链时,再提出新的功能链草案。
|
|
292
|
+
- 功能链默认是 `proposed` 草案;用户确认后,用 `feature-chain-approve` 在检查覆盖完整时再批准。
|
|
225
293
|
- 用户确认的测试默认是 `every-dev-completion`;只有用户要求时,Codex 才能改成其他运行频率。
|
|
226
294
|
- 已确认的自动化测试应进入 `.codex/context/test-hub/registry.json` 或 `.codex/context/test-hub/feature-chains.json`,由 `dev-complete` 统一调度。
|
|
227
295
|
- 测试中台保持简单:一个注册表、一个 `dev-complete` runner、一个最近结果、一个只读 HTML 状态页和几个管理命令。
|
|
@@ -231,4 +299,4 @@ python3 ~/.codex/skills/context-guard/scripts/context_guard.py checkpoint-roadma
|
|
|
231
299
|
- 前端或 HTML 改动结束前,应实际查看页面或截图,确认没有明显视觉错误。
|
|
232
300
|
- 任何新的长期测试 case 都先写简短草案,让用户确认后再变成 active 测试。
|
|
233
301
|
|
|
234
|
-
详细行为规则见 [`
|
|
302
|
+
详细行为规则见 [`SKILL.md`](SKILL.md)。
|