@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.
Files changed (74) hide show
  1. package/README.md +103 -208
  2. package/README.zh-CN.md +103 -208
  3. package/SKILL.md +27 -678
  4. package/agents/openai.yaml +2 -2
  5. package/bin/context-guard-skill.js +159 -56
  6. package/bin/postinstall.js +1 -1
  7. package/hooks.json +11 -11
  8. package/package.json +9 -6
  9. package/prototype/workbench.html +4933 -0
  10. package/references/bug-record-template.md +37 -0
  11. package/references/context-template.md +14 -336
  12. package/scripts/context_guard.py +577 -7655
  13. package/scripts/context_guard_hook.py +179 -731
  14. package/scripts/map_owns.py +769 -0
  15. package/references/feature-chain-methodology.md +0 -228
  16. package/references/register-template.md +0 -85
  17. package/references/task-case-template.md +0 -63
  18. package/tests/BC-20260618-063.sh +0 -116
  19. package/tests/BC-20260618-065.sh +0 -66
  20. package/tests/BC-20260626-080.sh +0 -48
  21. package/tests/BC-20260626-081.sh +0 -40
  22. package/tests/BC-20260626-082.sh +0 -32
  23. package/tests/BC-20260626-083.sh +0 -66
  24. package/tests/BC-20260627-084.sh +0 -74
  25. package/tests/BC-20260630-086.sh +0 -50
  26. package/tests/BC-20260630-087.sh +0 -103
  27. package/tests/BC-20260630-088.sh +0 -32
  28. package/tests/BC-20260630-089.sh +0 -63
  29. package/tests/BC-20260701-090.sh +0 -84
  30. package/tests/BC-20260702-096.sh +0 -48
  31. package/tests/BC-20260706-098.sh +0 -66
  32. package/tests/BC-20260707-099.sh +0 -47
  33. package/tests/BC-20260707-100.sh +0 -46
  34. package/tests/BC-20260707-101.sh +0 -47
  35. package/tests/BC-20260707-102.sh +0 -68
  36. package/tests/BC-20260707-103.sh +0 -59
  37. package/tests/BC-20260707-104.sh +0 -103
  38. package/tests/BC-20260707-105.sh +0 -109
  39. package/tests/BC-20260707-106.sh +0 -80
  40. package/tests/BC-20260707-107.sh +0 -74
  41. package/tests/BC-20260707-108.sh +0 -48
  42. package/tests/BC-20260707-109.sh +0 -56
  43. package/tests/BC-20260707-110.sh +0 -71
  44. package/tests/BC-20260707-111.sh +0 -70
  45. package/tests/BC-20260707-112.sh +0 -45
  46. package/tests/BC-20260707-113.sh +0 -73
  47. package/tests/BC-20260707-115.sh +0 -77
  48. package/tests/BC-20260707-116.sh +0 -77
  49. package/tests/BC-20260707-118.sh +0 -115
  50. package/tests/BC-20260707-119.sh +0 -47
  51. package/tests/BC-20260707-120.sh +0 -60
  52. package/tests/BC-20260707-121.sh +0 -66
  53. package/tests/BC-20260707-122.sh +0 -48
  54. package/tests/BC-20260707-123.sh +0 -43
  55. package/tests/BC-20260707-124.sh +0 -56
  56. package/tests/BC-20260707-125.sh +0 -64
  57. package/tests/BC-20260707-126.sh +0 -80
  58. package/tests/BC-20260707-127.sh +0 -88
  59. package/tests/BC-20260707-129.sh +0 -59
  60. package/tests/BC-20260707-130.sh +0 -69
  61. package/tests/BC-20260707-131.sh +0 -140
  62. package/tests/BC-20260707-132.sh +0 -150
  63. package/tests/BC-20260707-133.sh +0 -70
  64. package/tests/BC-20260708-136.sh +0 -210
  65. package/tests/BC-20260708-137.sh +0 -106
  66. package/tests/BC-20260708-138.sh +0 -168
  67. package/tests/BC-20260708-139.sh +0 -79
  68. package/tests/BC-20260709-002.sh +0 -63
  69. package/tests/BC-20260709-003.sh +0 -239
  70. package/tests/BC-20260709-006.sh +0 -76
  71. package/tests/BC-20260709-008.sh +0 -168
  72. package/tests/BC-20260710-001.sh +0 -61
  73. package/tests/BC-20260710-002.sh +0 -111
  74. 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 Codex skill for durable project memory. It keeps the task route, branches, bad cases, and verification paths inside the project's own `.codex/context/` folder, so Codex can understand where the work is, what went wrong before, and how to avoid repeating fixed mistakes across sessions.
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
- - **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/`.
12
- - **Records the roadmap**: tracks main routes, side routes, branch points, and progress.
13
- - **Tracks bad cases**: records symptoms, triggers, causes, fixes, and recurrence checks.
14
- - **Generates Roadmap HTML**: shows clickable node details with card and compact high-density views.
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
- ## Install
26
-
27
- Install with npx:
16
+ v1 does **not** include Roadmap HTML, Test Hub, or feature chains.
28
17
 
29
- ```bash
30
- npx @michelj/context-guard install
31
- ```
18
+ ## Human workbench
32
19
 
33
- Or install globally and let the package copy the skill into Codex's skill directory automatically:
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
- ```bash
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
- Install hooks only when you explicitly want Context Guard reminders at Codex lifecycle events:
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
- ```bash
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
- This also enables the current `[features] hooks = true` setting in `~/.codex/config.toml` and migrates the deprecated `codex_hooks` alias without changing other settings.
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
- Use from GitHub before the npm package is published:
30
+ Start or stop it manually when needed:
48
31
 
49
32
  ```bash
50
- npx github:Michel-Johnson/Context-Guard-Skill install
33
+ context-guard workbench --root /path/to/project
34
+ context-guard workbench --root /path/to/project --stop
51
35
  ```
52
36
 
53
- Manual install is also supported:
37
+ ### Overview
54
38
 
55
- ```bash
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
- After installation, Codex should discover:
41
+ ![Workbench overview](docs/shots/workbench/overview.png)
65
42
 
66
- ```text
67
- ~/.codex/skills/context-guard/SKILL.md
68
- ```
43
+ ### Inside a module
69
44
 
70
- ## Where Context Lives
45
+ Work units hang under the module. Hierarchy is parent–child solid curves.
71
46
 
72
- Context must be saved under the local project currently opened in Codex:
47
+ ![Inside a module](docs/shots/workbench/module.png)
73
48
 
74
- ```text
75
- <Codex project root>/.codex/context/
76
- ```
49
+ ### Module relations
77
50
 
78
- Do not write project context into:
51
+ 「关系」 highlights produce/consume partners and dims the rest. It does not enter the module.
79
52
 
80
- - the skill install directory
81
- - a chat/thread directory
82
- - a temporary directory
83
- - an SSH remote server path
53
+ ![Module relations](docs/shots/workbench/relations.png)
84
54
 
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
- ```
55
+ ### Session flow
90
56
 
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:
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
- ```text
94
- <Codex project root>/.codex/context/private/
95
- ```
59
+ ![Session flow](docs/shots/workbench/session-flow.png)
96
60
 
97
- When running scripts manually, pass the project root explicitly:
61
+ ### Auth / inspect mode
98
62
 
99
- ```bash
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
- Register a user-approved automated test:
65
+ ![Auth mode](docs/shots/workbench/auth-mode.png)
104
66
 
105
- ```bash
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
- Create a proposed feature-chain test:
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
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-add \
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
- Attach a bad case to a specific feature-chain checkpoint:
75
+ Or install globally and let the package configure detected clients automatically:
123
76
 
124
77
  ```bash
125
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py feature-chain-attach-bc \
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
- After the user confirms the flow, approve that same chain:
81
+ Force installation for all three clients:
134
82
 
135
83
  ```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"
84
+ npx @michelj/context-guard install --platform all
140
85
  ```
141
86
 
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:
87
+ Hooks are installed by default. To copy only the skill, opt out explicitly:
152
88
 
153
89
  ```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"
90
+ npx @michelj/context-guard install --no-hooks
160
91
  ```
161
92
 
162
- Audit which checkpoints are required or optional:
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
- ```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:
95
+ Use from GitHub before the npm package is published:
171
96
 
172
97
  ```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"
98
+ npx github:Michel-Johnson/Context-Guard-Skill install
178
99
  ```
179
100
 
180
- After development, hand completion to the Test Hub:
101
+ Manual install is also supported:
181
102
 
182
103
  ```bash
183
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py dev-complete --root /path/to/project --jobs 2
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
- Open the read-only Test Hub page:
112
+ After installation, the matching clients should discover:
187
113
 
188
- ```bash
189
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py show-test-hub --root /path/to/project --open
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
- Manage tests lightly:
120
+ ## Publishing
193
121
 
194
- ```bash
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
- ## Common Usage
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
- Ask Codex to maintain context:
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
- ```text
207
- Use $context-guard to maintain this task context.
208
- ```
130
+ ## Where Context Lives
209
131
 
210
- Show the current roadmap:
132
+ Context stays under the opened local project, independent of the client:
211
133
 
212
134
  ```text
213
- Use $context-guard to show the roadmap.
135
+ <project root>/.codex/context/
214
136
  ```
215
137
 
216
- Initialize project context:
138
+ Do not write project context into:
217
139
 
218
- ```bash
219
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py init --root /path/to/project
220
- ```
140
+ - the skill install directory
141
+ - a chat/thread directory
142
+ - a temporary directory
143
+ - an SSH remote server path
221
144
 
222
- Set the record language:
145
+ Short user prompts that matter for future work are kept in:
223
146
 
224
- ```bash
225
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py set-language --root /path/to/project --language English
147
+ ```text
148
+ <project root>/.codex/context/user-messages.md
226
149
  ```
227
150
 
228
- Generate the roadmap:
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
- ```bash
231
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py show-roadmap --root /path/to/project
153
+ ```text
154
+ <project root>/.codex/context/private/
232
155
  ```
233
156
 
234
- Or use the npm CLI as a thin wrapper:
157
+ When running scripts manually, pass the project root:
235
158
 
236
159
  ```bash
237
- npx @michelj/context-guard show-roadmap --root /path/to/project
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
- Create a branch task:
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
- ```bash
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
- Record a roadmap checkpoint:
168
+ ```text
169
+ Use $context-guard. Four stores: sessions, bugs, tasks, map.
170
+ ```
251
171
 
252
172
  ```bash
253
- python3 ~/.codex/skills/context-guard/scripts/context_guard.py checkpoint-roadmap-node \
254
- --root /path/to/project \
255
- --title "source title for Codex" \
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
- |-- index.md # quick index and active task
270
- |-- roadmap.md # agent-readable roadmap
271
- |-- bad-cases.md # bad-case register
272
- |-- preferences.json # language and project preferences
273
- |-- roadmap/
274
- | |-- roadmap.html # human-facing roadmap
275
- | |-- roadmap.md # agent-readable export
276
- | `-- roadmap.json # structured index
277
- |-- tasks/ # task-level context
278
- |-- task-cases/ # task-oriented test cases
279
- |-- test-hub/ # test registry, latest result, and failed evidence
280
- `-- bad-case-tests/ # reusable bad-case checks
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`.