@michelj/context-guard 0.4.3 → 0.4.4
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 +103 -208
- package/README.zh-CN.md +103 -208
- package/SKILL.md +27 -678
- package/agents/openai.yaml +2 -2
- package/bin/context-guard-skill.js +159 -56
- package/bin/postinstall.js +1 -1
- package/hooks.json +11 -11
- package/package.json +9 -6
- package/prototype/workbench.html +4933 -0
- package/references/bug-record-template.md +37 -0
- package/references/context-template.md +14 -336
- package/scripts/context_guard.py +577 -7655
- package/scripts/context_guard_hook.py +179 -731
- package/scripts/map_owns.py +769 -0
- package/references/feature-chain-methodology.md +0 -228
- package/references/register-template.md +0 -85
- package/references/task-case-template.md +0 -63
- package/tests/BC-20260618-063.sh +0 -116
- package/tests/BC-20260618-065.sh +0 -66
- package/tests/BC-20260626-080.sh +0 -48
- package/tests/BC-20260626-081.sh +0 -40
- package/tests/BC-20260626-082.sh +0 -32
- package/tests/BC-20260626-083.sh +0 -66
- package/tests/BC-20260627-084.sh +0 -74
- package/tests/BC-20260630-086.sh +0 -50
- package/tests/BC-20260630-087.sh +0 -103
- package/tests/BC-20260630-088.sh +0 -32
- package/tests/BC-20260630-089.sh +0 -63
- package/tests/BC-20260701-090.sh +0 -84
- package/tests/BC-20260702-096.sh +0 -48
- package/tests/BC-20260706-098.sh +0 -66
- package/tests/BC-20260707-099.sh +0 -47
- package/tests/BC-20260707-100.sh +0 -46
- package/tests/BC-20260707-101.sh +0 -47
- package/tests/BC-20260707-102.sh +0 -68
- package/tests/BC-20260707-103.sh +0 -59
- package/tests/BC-20260707-104.sh +0 -103
- package/tests/BC-20260707-105.sh +0 -109
- package/tests/BC-20260707-106.sh +0 -80
- package/tests/BC-20260707-107.sh +0 -74
- package/tests/BC-20260707-108.sh +0 -48
- package/tests/BC-20260707-109.sh +0 -56
- package/tests/BC-20260707-110.sh +0 -71
- package/tests/BC-20260707-111.sh +0 -70
- package/tests/BC-20260707-112.sh +0 -45
- package/tests/BC-20260707-113.sh +0 -73
- package/tests/BC-20260707-115.sh +0 -77
- package/tests/BC-20260707-116.sh +0 -77
- package/tests/BC-20260707-118.sh +0 -115
- package/tests/BC-20260707-119.sh +0 -47
- package/tests/BC-20260707-120.sh +0 -60
- package/tests/BC-20260707-121.sh +0 -66
- package/tests/BC-20260707-122.sh +0 -48
- package/tests/BC-20260707-123.sh +0 -43
- package/tests/BC-20260707-124.sh +0 -56
- package/tests/BC-20260707-125.sh +0 -64
- package/tests/BC-20260707-126.sh +0 -80
- package/tests/BC-20260707-127.sh +0 -88
- package/tests/BC-20260707-129.sh +0 -59
- package/tests/BC-20260707-130.sh +0 -69
- package/tests/BC-20260707-131.sh +0 -140
- package/tests/BC-20260707-132.sh +0 -150
- package/tests/BC-20260707-133.sh +0 -70
- package/tests/BC-20260708-136.sh +0 -210
- package/tests/BC-20260708-137.sh +0 -106
- package/tests/BC-20260708-138.sh +0 -168
- package/tests/BC-20260708-139.sh +0 -79
- package/tests/BC-20260709-002.sh +0 -63
- package/tests/BC-20260709-003.sh +0 -239
- package/tests/BC-20260709-006.sh +0 -76
- package/tests/BC-20260709-008.sh +0 -168
- package/tests/BC-20260710-001.sh +0 -61
- package/tests/BC-20260710-002.sh +0 -111
- package/tests/npm-install-smoke.sh +0 -53
package/README.md
CHANGED
|
@@ -2,301 +2,196 @@
|
|
|
2
2
|
|
|
3
3
|
Language: **English** | [中文](README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
Context Guard is a
|
|
5
|
+
Context Guard is a durable project-memory skill for Codex, Cursor, and Claude. It keeps the task route, branches, bad cases, and verification paths inside the project's own `.codex/context/` folder, so agents can understand where the work is, what went wrong before, and how to avoid repeating fixed mistakes across sessions.
|
|
6
6
|
|
|
7
7
|
## What It Does
|
|
8
8
|
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **Separates human and agent views**: HTML is for humans; Markdown/JSON are for Codex.
|
|
16
|
-
- **Supports record language preferences**: writes future context in Chinese or English.
|
|
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.
|
|
20
|
-
- **Keeps tests human-designed**: Codex reuses approved checks or proposes drafts, but does not silently create durable tests.
|
|
21
|
-
- **Covers bad cases with feature chains**: prefer one real feature/workflow chain covering multiple bad cases over one separate test per bad case.
|
|
22
|
-
- **Runs approved tests by default**: user-created or user-approved tests run at every development completion unless the user sets another cadence.
|
|
23
|
-
- **Provides a Test Hub entrypoint**: `dev-complete` runs approved always-run tests, cleans success artifacts, and preserves failed evidence.
|
|
9
|
+
- **Four stores**: sessions, bugs, tasks, map — in the opened project’s `.codex/context/`
|
|
10
|
+
- **First-use map**: the agent and the human decide the first layer together (several candidate cuts, then lock L1), then L2, then L3. Titles must be instantly readable. Later sessions open that map
|
|
11
|
+
- **Human workbench**: people confirm in `prototype/workbench.html`. Agents read small indexes, not the whole map
|
|
12
|
+
- **User wording**: durable prompts go in `user-messages.md`; secrets stay under `private/`
|
|
13
|
+
- **Record language**: Chinese or English per folder
|
|
14
|
+
- **Lifecycle**: create session records, retain user messages, and persist agent-identified bad cases through one command
|
|
24
15
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Install with npx:
|
|
16
|
+
v1 does **not** include Roadmap HTML, Test Hub, or feature chains.
|
|
28
17
|
|
|
29
|
-
|
|
30
|
-
npx @michelj/context-guard install
|
|
31
|
-
```
|
|
18
|
+
## Human workbench
|
|
32
19
|
|
|
33
|
-
|
|
20
|
+
People confirm the architecture map in the workbench. With hooks installed, a new session starts one local workbench instance and opens it in the browser. Agents read the small indexes under `.codex/context/`; they do not drive the canvas.
|
|
34
21
|
|
|
35
|
-
|
|
36
|
-
npm install -g @michelj/context-guard --registry=https://registry.npmjs.org
|
|
37
|
-
```
|
|
22
|
+
**Current workbench:** [prototype/workbench.html](https://github.com/Michel-Johnson/Context-Guard-Skill/blob/main/prototype/workbench.html) · [open in browser](https://raw.githack.com/Michel-Johnson/Context-Guard-Skill/main/prototype/workbench.html)
|
|
38
23
|
|
|
39
|
-
|
|
24
|
+
The first browser open may show GitHack’s “One more step” page (it is only a proxy and does not review the HTML). Click **Open the page**.
|
|
40
25
|
|
|
41
|
-
|
|
42
|
-
npx @michelj/context-guard install --with-hooks
|
|
43
|
-
```
|
|
26
|
+
To decide the first layer: click the repo name, switch to **OpenClaw** (first use), then **See first-layer cuts**. Picking one lands it on the canvas. Titles are still prepared; the cut is yours.
|
|
44
27
|
|
|
45
|
-
|
|
28
|
+
The workbench chrome is Chinese or English. Use **中 / EN** in the top bar. Map titles, purposes, and memories stay in the language they were written.
|
|
46
29
|
|
|
47
|
-
|
|
30
|
+
Start or stop it manually when needed:
|
|
48
31
|
|
|
49
32
|
```bash
|
|
50
|
-
|
|
33
|
+
context-guard workbench --root /path/to/project
|
|
34
|
+
context-guard workbench --root /path/to/project --stop
|
|
51
35
|
```
|
|
52
36
|
|
|
53
|
-
|
|
37
|
+
### Overview
|
|
54
38
|
|
|
55
|
-
|
|
56
|
-
git clone git@github.com:Michel-Johnson/Context-Guard-Skill.git
|
|
57
|
-
cd Context-Guard-Skill
|
|
58
|
-
mkdir -p ~/.codex/skills/context-guard
|
|
59
|
-
rsync -a --delete \
|
|
60
|
-
SKILL.md README.md README.zh-CN.md agents references scripts tests \
|
|
61
|
-
~/.codex/skills/context-guard/
|
|
62
|
-
```
|
|
39
|
+
Root catalog: 4–8 module cards. Click a card to enter. Bugs stay in the right-hand list.
|
|
63
40
|
|
|
64
|
-
|
|
41
|
+

|
|
65
42
|
|
|
66
|
-
|
|
67
|
-
~/.codex/skills/context-guard/SKILL.md
|
|
68
|
-
```
|
|
43
|
+
### Inside a module
|
|
69
44
|
|
|
70
|
-
|
|
45
|
+
Work units hang under the module. Hierarchy is parent–child solid curves.
|
|
71
46
|
|
|
72
|
-
|
|
47
|
+

|
|
73
48
|
|
|
74
|
-
|
|
75
|
-
<Codex project root>/.codex/context/
|
|
76
|
-
```
|
|
49
|
+
### Module relations
|
|
77
50
|
|
|
78
|
-
|
|
51
|
+
「关系」 highlights produce/consume partners and dims the rest. It does not enter the module.
|
|
79
52
|
|
|
80
|
-
|
|
81
|
-
- a chat/thread directory
|
|
82
|
-
- a temporary directory
|
|
83
|
-
- an SSH remote server path
|
|
53
|
+

|
|
84
54
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
```text
|
|
88
|
-
<Codex project root>/.codex/context/user-messages.md
|
|
89
|
-
```
|
|
55
|
+
### Session flow
|
|
90
56
|
|
|
91
|
-
|
|
57
|
+
Click a bug with an assigned session. The path from the root to that node lights up; current session beads run along the chain.
|
|
92
58
|
|
|
93
|
-
|
|
94
|
-
<Codex project root>/.codex/context/private/
|
|
95
|
-
```
|
|
59
|
+

|
|
96
60
|
|
|
97
|
-
|
|
61
|
+
### Auth / inspect mode
|
|
98
62
|
|
|
99
|
-
|
|
100
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py show-roadmap --root /path/to/project
|
|
101
|
-
```
|
|
63
|
+
「授权模式」 marks which slices this session’s agent may read. Grey cards are not authorized.
|
|
102
64
|
|
|
103
|
-
|
|
65
|
+

|
|
104
66
|
|
|
105
|
-
|
|
106
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-add \
|
|
107
|
-
--root /path/to/project \
|
|
108
|
-
--title "Markdown preview rendering" \
|
|
109
|
-
--command-text "npm test"
|
|
110
|
-
```
|
|
67
|
+
## Install
|
|
111
68
|
|
|
112
|
-
|
|
69
|
+
Install with npx. The installer detects Codex, Cursor, and Claude, then installs both the skill and lifecycle hooks while preserving existing configuration:
|
|
113
70
|
|
|
114
71
|
```bash
|
|
115
|
-
|
|
116
|
-
--root /path/to/project \
|
|
117
|
-
--title "GPU monitor button" \
|
|
118
|
-
--entry "Click the GPU monitor button" \
|
|
119
|
-
--exit-check "Open a monitoring page with a valid grafana_url"
|
|
72
|
+
npx @michelj/context-guard install
|
|
120
73
|
```
|
|
121
74
|
|
|
122
|
-
|
|
75
|
+
Or install globally and let the package configure detected clients automatically:
|
|
123
76
|
|
|
124
77
|
```bash
|
|
125
|
-
|
|
126
|
-
--root /path/to/project \
|
|
127
|
-
--chain-id FC-... \
|
|
128
|
-
--node-title "Backend returns monitor URL" \
|
|
129
|
-
--bad-case BC-... \
|
|
130
|
-
--check "grafana_url is non-empty and the frontend does not hang"
|
|
78
|
+
npm install -g @michelj/context-guard --registry=https://registry.npmjs.org
|
|
131
79
|
```
|
|
132
80
|
|
|
133
|
-
|
|
81
|
+
Force installation for all three clients:
|
|
134
82
|
|
|
135
83
|
```bash
|
|
136
|
-
|
|
137
|
-
--root /path/to/project \
|
|
138
|
-
--chain-id FC-... \
|
|
139
|
-
--command-text "npm test -- gpu-monitor"
|
|
84
|
+
npx @michelj/context-guard install --platform all
|
|
140
85
|
```
|
|
141
86
|
|
|
142
|
-
|
|
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:
|
|
87
|
+
Hooks are installed by default. To copy only the skill, opt out explicitly:
|
|
152
88
|
|
|
153
89
|
```bash
|
|
154
|
-
|
|
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"
|
|
90
|
+
npx @michelj/context-guard install --no-hooks
|
|
160
91
|
```
|
|
161
92
|
|
|
162
|
-
|
|
93
|
+
Default skill paths are `~/.codex/skills/context-guard`, `~/.cursor/skills/context-guard`, and `~/.claude/skills/context-guard`. The installer backs up and merges existing hook/settings files. For Codex it also enables `[features] hooks = true` and migrates the deprecated `codex_hooks` alias.
|
|
163
94
|
|
|
164
|
-
|
|
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:
|
|
95
|
+
Use from GitHub before the npm package is published:
|
|
171
96
|
|
|
172
97
|
```bash
|
|
173
|
-
|
|
174
|
-
--root /path/to/project \
|
|
175
|
-
--chain-id FC-... \
|
|
176
|
-
--run-policy relevant-only \
|
|
177
|
-
--reason "Only run when GPU monitor flow changes"
|
|
98
|
+
npx github:Michel-Johnson/Context-Guard-Skill install
|
|
178
99
|
```
|
|
179
100
|
|
|
180
|
-
|
|
101
|
+
Manual install is also supported:
|
|
181
102
|
|
|
182
103
|
```bash
|
|
183
|
-
|
|
104
|
+
git clone git@github.com:Michel-Johnson/Context-Guard-Skill.git
|
|
105
|
+
cd Context-Guard-Skill
|
|
106
|
+
mkdir -p ~/.codex/skills/context-guard
|
|
107
|
+
rsync -a --delete \
|
|
108
|
+
SKILL.md README.md README.zh-CN.md agents prototype references scripts \
|
|
109
|
+
~/.codex/skills/context-guard/
|
|
184
110
|
```
|
|
185
111
|
|
|
186
|
-
|
|
112
|
+
After installation, the matching clients should discover:
|
|
187
113
|
|
|
188
|
-
```
|
|
189
|
-
|
|
114
|
+
```text
|
|
115
|
+
~/.codex/skills/context-guard/SKILL.md
|
|
116
|
+
~/.cursor/skills/context-guard/SKILL.md
|
|
117
|
+
~/.claude/skills/context-guard/SKILL.md
|
|
190
118
|
```
|
|
191
119
|
|
|
192
|
-
|
|
120
|
+
## Publishing
|
|
193
121
|
|
|
194
|
-
|
|
195
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-list --root /path/to/project
|
|
196
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-disable --root /path/to/project --test-id TC-... --reason "not needed every time"
|
|
197
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-enable --root /path/to/project --test-id TC-...
|
|
198
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-set-policy --root /path/to/project --test-id TC-... --run-policy relevant-only --reason "only editor changes need it"
|
|
199
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py test-hub-remove --root /path/to/project --test-id TC-...
|
|
200
|
-
```
|
|
122
|
+
GitHub Releases are not part of this package's delivery path. Users install the skill from npm, so publishing is driven by a version tag:
|
|
201
123
|
|
|
202
|
-
|
|
124
|
+
1. Update `package.json` to the next stable version and merge that commit into `main`.
|
|
125
|
+
2. Create the matching `vX.Y.Z` tag on that commit.
|
|
126
|
+
3. Push the tag. `.github/workflows/npm-publish.yml` validates, packs, smoke-tests, and publishes that exact tarball to npm.
|
|
203
127
|
|
|
204
|
-
|
|
128
|
+
The workflow has no manual trigger. Pushing a matching version tag starts the complete publish pipeline automatically; the validated tarball is retained as a GitHub Actions artifact for 14 days. It reuses npm Trusted Publishing for `Michel-Johnson/Context-Guard-Skill`, workflow filename `npm-publish.yml`, with the `npm publish` action allowed. Local npm login is not required for Actions publishing. See the [release and recovery runbook](https://github.com/Michel-Johnson/Context-Guard-Skill/blob/main/docs/npm-release-runbook.md).
|
|
205
129
|
|
|
206
|
-
|
|
207
|
-
Use $context-guard to maintain this task context.
|
|
208
|
-
```
|
|
130
|
+
## Where Context Lives
|
|
209
131
|
|
|
210
|
-
|
|
132
|
+
Context stays under the opened local project, independent of the client:
|
|
211
133
|
|
|
212
134
|
```text
|
|
213
|
-
|
|
135
|
+
<project root>/.codex/context/
|
|
214
136
|
```
|
|
215
137
|
|
|
216
|
-
|
|
138
|
+
Do not write project context into:
|
|
217
139
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
140
|
+
- the skill install directory
|
|
141
|
+
- a chat/thread directory
|
|
142
|
+
- a temporary directory
|
|
143
|
+
- an SSH remote server path
|
|
221
144
|
|
|
222
|
-
|
|
145
|
+
Short user prompts that matter for future work are kept in:
|
|
223
146
|
|
|
224
|
-
```
|
|
225
|
-
|
|
147
|
+
```text
|
|
148
|
+
<project root>/.codex/context/user-messages.md
|
|
226
149
|
```
|
|
227
150
|
|
|
228
|
-
|
|
151
|
+
If the user provides a credential that future turns need, Context Guard records only a redacted pointer in public context. Raw durable secrets must stay local-only under:
|
|
229
152
|
|
|
230
|
-
```
|
|
231
|
-
|
|
153
|
+
```text
|
|
154
|
+
<project root>/.codex/context/private/
|
|
232
155
|
```
|
|
233
156
|
|
|
234
|
-
|
|
157
|
+
When running scripts manually, pass the project root:
|
|
235
158
|
|
|
236
159
|
```bash
|
|
237
|
-
|
|
160
|
+
python3 scripts/context_guard.py init --root /path/to/project
|
|
161
|
+
python3 scripts/context_guard.py set-language --root /path/to/project --language English
|
|
238
162
|
```
|
|
239
163
|
|
|
240
|
-
|
|
164
|
+
On the first session, if `record_language` is still `unset`, the hook instructs the agent to ask “中文 or English?” and persist the answer. Later sessions do not ask again. The `workbench` command starts the local server and returns its browser URL.
|
|
241
165
|
|
|
242
|
-
|
|
243
|
-
python3 ~/.codex/skills/context-guard/scripts/context_guard.py create-branch-task \
|
|
244
|
-
--root /path/to/project \
|
|
245
|
-
--title "branch task title" \
|
|
246
|
-
--branch "branch name" \
|
|
247
|
-
--parent-node NODE-YYYYMMDD-001
|
|
248
|
-
```
|
|
166
|
+
## Common Usage
|
|
249
167
|
|
|
250
|
-
|
|
168
|
+
```text
|
|
169
|
+
Use $context-guard. Four stores: sessions, bugs, tasks, map.
|
|
170
|
+
```
|
|
251
171
|
|
|
252
172
|
```bash
|
|
253
|
-
python3
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
--display-title "short human title" \
|
|
257
|
-
--user-request "what the user asked" \
|
|
258
|
-
--progress-summary "current progress" \
|
|
259
|
-
--method-summary "method used" \
|
|
260
|
-
--branch Main \
|
|
261
|
-
--level major \
|
|
262
|
-
--outcome "result"
|
|
173
|
+
python3 scripts/context_guard.py init --root /path/to/project
|
|
174
|
+
python3 scripts/context_guard.py set-language --root /path/to/project --language English
|
|
175
|
+
python3 scripts/context_guard.py workbench --root /path/to/project
|
|
263
176
|
```
|
|
264
177
|
|
|
178
|
+
Run `context-guard workbench --root /path/to/project` to see the map.
|
|
179
|
+
|
|
265
180
|
## Main Files
|
|
266
181
|
|
|
267
182
|
```text
|
|
268
183
|
.codex/context/
|
|
269
|
-
|--
|
|
270
|
-
|--
|
|
271
|
-
|--
|
|
272
|
-
|--
|
|
273
|
-
|--
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|--
|
|
278
|
-
|--
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
## Principles
|
|
284
|
-
|
|
285
|
-
- Record only meaningful progress, not every small action.
|
|
286
|
-
- Human-facing titles should read naturally, not like implementation logs.
|
|
287
|
-
- A bad case should help future Codex prevent recurrence.
|
|
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.
|
|
290
|
-
- Prefer feature chains as the durable testing unit: one clear entry, one real workflow, ordered checkpoints, and multiple covered bad cases.
|
|
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.
|
|
293
|
-
- User-approved tests default to `every-dev-completion`; Codex may lower that cadence only when the user asks.
|
|
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`.
|
|
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.
|
|
296
|
-
- Final Codex summaries should state the current Test Hub result: whether approved always-run tests all passed, failed, blocked, or do not exist.
|
|
297
|
-
- Verification should reuse existing commands, scripts, screenshots, or manual checks first.
|
|
298
|
-
- Do not create a new script for every bad case.
|
|
299
|
-
- For frontend or HTML changes, inspect the rendered page or screenshot before claiming success.
|
|
300
|
-
- For any new durable test case, draft a short task-case proposal and confirm with the user before making it active.
|
|
301
|
-
|
|
302
|
-
See [`SKILL.md`](SKILL.md) for the full behavior rules.
|
|
184
|
+
|-- FIND.md
|
|
185
|
+
|-- sessions.jsonl
|
|
186
|
+
|-- sessions/
|
|
187
|
+
|-- bugs-index.json
|
|
188
|
+
|-- bugs/ and fixes/
|
|
189
|
+
|-- tasks/
|
|
190
|
+
|-- map.json
|
|
191
|
+
|-- owns-index.json and cards/ # generated
|
|
192
|
+
|-- preferences.json
|
|
193
|
+
|-- user-messages.md
|
|
194
|
+
`-- private/ # gitignored
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
See [`SKILL.md`](SKILL.md) (one page) and `.codex/context/FIND.md`.
|