@imdeadpool/guardex 7.0.8 → 7.0.11

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 CHANGED
@@ -1,28 +1,28 @@
1
- # GuardeX — Guardian T-Rex for your repo
1
+ # GitGuardex — Guardian T-Rex for your repo
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/%40imdeadpool%2Fguardex?color=cb3837&logo=npm)](https://www.npmjs.com/package/@imdeadpool/guardex)
4
- [![CI](https://github.com/recodeee/guardex/actions/workflows/ci.yml/badge.svg)](https://github.com/recodeee/guardex/actions/workflows/ci.yml)
5
- [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/recodeee/guardex/badge)](https://securityscorecards.dev/viewer/?uri=github.com/recodeee/guardex)
4
+ [![CI](https://github.com/recodeee/gitguardex/actions/workflows/ci.yml/badge.svg)](https://github.com/recodeee/gitguardex/actions/workflows/ci.yml)
5
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/recodeee/gitguardex/badge)](https://securityscorecards.dev/viewer/?uri=github.com/recodeee/gitguardex)
6
6
 
7
- GuardeX is a safety layer for parallel Codex/agent work in git repos.
7
+ **GitGuardex is a safety layer for parallel agent work in git repos.** If you're running more than one Codex or Claude agent on the same codebase, this is what keeps them from deleting each other's work.
8
8
 
9
9
  > [!WARNING]
10
- > Not affiliated with OpenAI or Codex. Not an official tool.
10
+ > Not affiliated with OpenAI, Anthropic, or Codex. Not an official tool.
11
11
 
12
- ## Frontend Repo
12
+ > [!IMPORTANT]
13
+ > GitGuardex is still being tested in real multi-agent repos. If something feels rough or broken, especially around cleanup, finish, merge, or recovery flows, sorry. We need to test those paths under real load first, and we'll patch issues as we find them.
13
14
 
14
- - Standalone frontend repository: https://github.com/Webu-PRO/guardex-frontend
15
- - This repository tracks/mirrors the frontend under `frontend/` as documented below.
15
+ ---
16
16
 
17
- ## The problem (what was going wrong)
17
+ ## The problem
18
18
 
19
- Multiple Codex agents worked on the same files at the same time.
20
- They started overwriting or deleting each other's changes.
21
- Progress became **de-progressive**: more activity, less real forward movement.
19
+ I was running ~30 Codex agents in parallel and hit a wall: they kept working on the same files at the same time — especially tests — and started overwriting or deleting each other's changes. More agents meant *less* forward progress, not more. Classic de-progressive loop.
22
20
 
23
- GuardeX exists to stop that loop.
21
+ GitGuardex exists to stop that loop. Every agent gets its own worktree, claims the files it's touching, and can't clobber files another agent has claimed. Your local branch stays clean; agents stay in their lanes.
24
22
 
25
- ![Multi-agent dashboard example](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/dashboard-multi-agent.png)
23
+ ![Multi-agent dashboard example](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/dashboard-multi-agent.png)
24
+
25
+ Coming soon: [recodee.com](https://recodee.com) — live account health, usage, routing, and capacity in one place.
26
26
 
27
27
  ```mermaid
28
28
  flowchart LR
@@ -38,15 +38,21 @@ flowchart LR
38
38
  I --> F
39
39
  ```
40
40
 
41
- ## What GuardeX enforces
41
+ ---
42
+
43
+ ## What it does
44
+
45
+ - **Isolated `agent/*` branch + worktree per task** — agents never share a working directory.
46
+ - **Explicit file lock claiming** — an agent declares which files it's editing before it edits them.
47
+ - **Deletion guard** — claimed files can't be removed by another agent.
48
+ - **Protected-base safety** — `main`, `dev`, `master` are blocked by default; agents must go through PRs.
49
+ - **Auto-merges agent configs into every worktree** — `oh-my-codex`, `oh-my-claudecode`, caveman mode, and OpenSpec all get applied automatically so every spawned agent starts tuned, not bare.
50
+ - **Repair/doctor flow** — when drift happens (and it will), `gx doctor` gets you back to a clean state.
51
+ - **Auto-finish** — when Codex exits a session, Guardex commits sandbox changes, syncs against the base, retries once if the base moved, and opens a PR.
42
52
 
43
- - isolated `agent/*` branch + worktree per task
44
- - explicit file lock claiming before edits
45
- - deletion guard for claimed files
46
- - protected-base branch safety (`main`, `dev`, `master` by default)
47
- - repair/doctor flow when drift appears
53
+ ---
48
54
 
49
- ## Copy-paste: install + bootstrap
55
+ ## Quick start
50
56
 
51
57
  ```sh
52
58
  npm i -g @imdeadpool/guardex
@@ -54,293 +60,351 @@ cd /path/to/your/repo
54
60
  gx setup
55
61
  ```
56
62
 
57
- Alias support:
63
+ That's it. Setup installs hooks, scripts, templates, and scaffolds OpenSpec/caveman/OMX wiring. Aliases: `gx` (preferred), `gitguardex` (full), `guardex` (legacy).
64
+
65
+ ---
66
+
67
+ ## What `gx` shows first
68
+
69
+ Before you branch, repair, or start agents, run plain `gx`. It gives you a one-screen status view for the CLI, global helpers, repo safety service, current repo path, and active branch.
58
70
 
59
- - preferred: `gx`
60
- - full: `guardex`
71
+ ![GitGuardex terminal status output](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-gx-terminal-status.svg)
61
72
 
62
- ## Copy-paste: daily workflow (per new user task)
73
+ Use `gx setup` the first time you wire GitGuardex into a repo. It bootstraps the managed hooks, scripts, templates, and optional workspace/OpenSpec wiring. If the repo drifts later, use `gx doctor` as the repair path: it reapplies the managed safety files, verifies the setup, and on protected `main` it auto-sandboxes the repair so your visible base branch stays clean.
74
+
75
+ ---
76
+
77
+ ## Daily workflow
78
+
79
+ Per new agent task:
63
80
 
64
81
  ```sh
65
82
  # 1) Start isolated branch/worktree
66
83
  bash scripts/agent-branch-start.sh "task-name" "agent-name"
67
84
 
68
- # 2) Claim ownership
69
- python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
85
+ # 2) Claim the files you're going to touch
86
+ python3 scripts/agent-file-locks.py claim \
87
+ --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
70
88
 
71
89
  # 3) Implement + verify
72
90
  npm test
73
91
 
74
- # 4) Finish (commit/push/PR/merge flow)
75
- bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)" --base dev --via-pr --wait-for-merge
92
+ # 4) Finish (commit + push + PR + merge)
93
+ bash scripts/agent-branch-finish.sh \
94
+ --branch "$(git rev-parse --abbrev-ref HEAD)" \
95
+ --base dev --via-pr --wait-for-merge
76
96
 
77
- # 5) Optional cleanup after merge
97
+ # 5) Optional: cleanup after merge
78
98
  gx cleanup --branch "$(git rev-parse --abbrev-ref HEAD)"
79
99
  ```
80
100
 
81
- If you use `scripts/codex-agent.sh`, the finish flow is auto-run after the Codex session exits.
82
- It auto-commits sandbox changes, retries once after syncing if the branch moved behind base during the run, then pushes/opens PR merge flow against `dev`.
101
+ If you use `scripts/codex-agent.sh`, the finish flow runs automatically when the Codex session exits — it auto-commits, retries once after syncing if the base moved during the run, then pushes and opens the PR.
83
102
 
84
- If you run Codex in multiple existing agent worktrees directly (for example from VS Code Source Control), finalize all completed branches with:
103
+ Running Codex across several existing worktrees (e.g. from VS Code Source Control)? Finalize everything ready at once:
85
104
 
86
105
  ```sh
87
106
  gx finish --all
88
107
  ```
89
108
 
90
- ## Visual workflow
91
-
92
- ### Setup status
93
-
94
- ![gx setup behavior screenshot](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/setup-success.svg)
95
-
96
- ### Service logs/status
109
+ ---
97
110
 
98
- ![gx status logs screenshot](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/status-tools-logs.svg)
111
+ ## Visual reference
99
112
 
100
- ### Branch/worktree start protocol
113
+ | | |
114
+ |---|---|
115
+ | ![Setup status](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/setup-success.svg) | **`gx setup`** — bootstraps everything in one command |
116
+ | ![Service logs](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/status-tools-logs.svg) | **`gx status`** — health check for tools, hooks, services |
117
+ | ![Branch start](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-branch-start.svg) | **Branch/worktree start protocol** |
118
+ | ![Lock guard](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-lock-guard.svg) | **Lock + delete-guard protocol** |
119
+ | ![VS Code layout](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-source-control.svg) | **VS Code Source Control view** with agent + OpenSpec files |
101
120
 
102
- ![gx branch start protocol screenshot](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/workflow-branch-start.svg)
121
+ ### How It Works In VS Code
103
122
 
104
- ### Lock + delete guard protocol
123
+ This is the real Source Control shape Guardex is aiming for: isolated agent branches, clear OpenSpec artifacts, and no pile-up on one shared checkout.
105
124
 
106
- ![gx lock and delete guard screenshot](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/workflow-lock-guard.svg)
125
+ ![Exact VS Code Source Control workflow screenshot](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-vscode-source-control-exact.png)
107
126
 
108
- ### VS Code Source Control layout (agent + OpenSpec files)
127
+ ---
109
128
 
110
- ![VS Code Source Control layout with OpenSpec files](https://raw.githubusercontent.com/recodeee/guardex/main/docs/images/workflow-source-control.svg)
129
+ ## Commands
111
130
 
112
- ## Copy-paste: common commands
131
+ ### Core
113
132
 
114
133
  ```sh
115
- # health check (default when run with no args)
116
- gx status
117
- gx status --strict # exit non-zero on findings (v6 name: gx scan)
118
-
119
- # bootstrap, repair, verify all in one
120
- gx setup
121
- gx setup --repair # repair only (v6 name: gx fix)
122
- gx setup --install-only # scaffold templates, skip global installs (v6 name: gx install)
134
+ gx status # health check (default)
135
+ gx status --strict # exit non-zero on findings
136
+ gx setup # full bootstrap
137
+ gx setup --repair # repair only
138
+ gx setup --install-only # scaffold templates, skip global installs
123
139
  gx doctor # repair + verify (auto-sandboxes on protected main)
140
+ ```
124
141
 
125
- # target another repo without switching your current checkout
142
+ ### Targeting other repos
143
+
144
+ ```sh
126
145
  gx setup --target /path/to/repo
127
146
  gx doctor --target /path/to/repo
128
- # optional VS Code workspace showing repo + agent worktrees
147
+
148
+ # optional: VS Code workspace showing repo + agent worktrees
129
149
  gx setup --target /path/to/repo --parent-workspace-view
150
+ ```
151
+
152
+ ### Monorepo support
153
+
154
+ Setup auto-installs into every nested git repo (e.g. `apps/*/.git`). Submodules and worktrees under `.omx/agent-worktrees/` are skipped.
130
155
 
131
- # monorepo with nested git repos (e.g. /mainfolder/.git + /mainfolder/apps/*/.git)
132
- # setup auto-installs into every nested repo; use --no-recursive to limit to the top-level
156
+ ```sh
133
157
  gx setup --target /mainfolder
134
158
  gx setup --target /mainfolder --no-recursive
159
+ ```
135
160
 
136
- # protected branch management
161
+ ### Protected branches
162
+
163
+ ```sh
137
164
  gx protect list
138
165
  gx protect add release staging
139
166
  gx protect remove release
167
+ gx protect set main release hotfix
168
+ gx protect reset
169
+ ```
170
+
171
+ Defaults: `dev`, `main`, `master`. Stored in git config key `multiagent.protectedBranches`.
140
172
 
141
- # sync current agent branch with origin/<base>
173
+ ### Sync current agent branch
174
+
175
+ ```sh
142
176
  gx sync --check
143
177
  gx sync
178
+ ```
144
179
 
145
- # background bots (review monitor + stale cleanup)
146
- gx agents start
180
+ ### Background bots
181
+
182
+ ```sh
183
+ gx agents start # review monitor + stale cleanup
147
184
  gx agents stop
148
185
  gx agents status
149
186
 
150
- # per-agent-branch lifecycle
187
+ # tuning
188
+ gx agents start --review-interval 30 --cleanup-interval 60 --idle-minutes 10
189
+ ```
190
+
191
+ ### Lifecycle
192
+
193
+ ```sh
151
194
  gx finish --all # commit + PR + merge every ready agent/* branch
152
195
  gx cleanup # prune merged/stale branches and worktrees
153
196
  gx cleanup --watch --interval 60
197
+ gx cleanup --idle-minutes 10
198
+ gx cleanup --watch --once --interval 60
199
+ ```
154
200
 
155
- # AI-ready setup prompt (paste into Codex/Claude)
156
- gx prompt # full checklist (v6 name: gx copy-prompt)
157
- gx prompt --exec # commands only (v6 name: gx copy-commands)
158
- gx prompt --snippet # AGENTS.md managed block template
201
+ ### Prompts for your agents
159
202
 
160
- # reports
161
- gx report scorecard --repo github.com/recodeee/guardex
203
+ ```sh
204
+ gx prompt # full checklist (paste into Codex/Claude)
205
+ gx prompt --exec # commands only
206
+ gx prompt --snippet # AGENTS.md managed-block template
162
207
  ```
163
208
 
164
- ### v6 → v7 command migration
209
+ ### Reports
165
210
 
166
- Five commands were consolidated into flags. Old names still work and print a one-line deprecation notice; they'll be removed in v8.
211
+ ```sh
212
+ gx report scorecard --repo github.com/recodeee/gitguardex
213
+ ```
167
214
 
168
- | v6 command | v7 replacement |
169
- | ---------------------- | ------------------------ |
170
- | `gx init` | `gx setup` |
171
- | `gx install` | `gx setup --install-only`|
172
- | `gx fix` | `gx setup --repair` |
173
- | `gx scan` | `gx status --strict` |
174
- | `gx copy-prompt` | `gx prompt` |
175
- | `gx copy-commands` | `gx prompt --exec` |
176
- | `gx print-agents-snippet` | `gx prompt --snippet` |
177
- | `gx review` | `gx agents start` (runs review + cleanup) |
215
+ ---
178
216
 
179
- ### Continuous stale branch cleanup bot
217
+ ## v6 v7 migration
180
218
 
181
- Use this to auto-prune idle `agent/*` worktrees created by Codex while keeping active worktrees untouched.
219
+ Five commands were consolidated into flags. Old names still work and print a deprecation notice; they'll be removed in v8.
182
220
 
183
- ```sh
184
- # watch cleanup loop every minute (default idle threshold is 10 minutes when --watch is enabled)
185
- gx cleanup --watch --interval 60
186
-
187
- # one-shot cleanup for branches idle at least 10 minutes
188
- gx cleanup --idle-minutes 10
221
+ | v6 | v7 |
222
+ | --------------------------- | ----------------------------- |
223
+ | `gx init` | `gx setup` |
224
+ | `gx install` | `gx setup --install-only` |
225
+ | `gx fix` | `gx setup --repair` |
226
+ | `gx scan` | `gx status --strict` |
227
+ | `gx copy-prompt` | `gx prompt` |
228
+ | `gx copy-commands` | `gx prompt --exec` |
229
+ | `gx print-agents-snippet` | `gx prompt --snippet` |
230
+ | `gx review` | `gx agents start` |
189
231
 
190
- # run a single watch cycle (helpful for cron/CI checks)
191
- gx cleanup --watch --once --interval 60
192
- ```
232
+ ---
193
233
 
194
- ### Repo Agent Supervisor (start both bots with one command)
234
+ ## Default behavior
195
235
 
196
- ```sh
197
- # starts review bot + cleanup bot in background for the current repo
198
- gx agents start
236
+ A few things worth knowing up front:
199
237
 
200
- # optional tuning
201
- gx agents start --review-interval 30 --cleanup-interval 60 --idle-minutes 10
238
+ - Running `gx` with no command opens the status/health view.
239
+ - `gx init` is just an alias for `gx setup`.
240
+ - Setup/doctor can install missing global companion CLIs (OMC runtime, OpenSpec, cavemem, codex-auth) — but only with explicit Y/N confirmation.
241
+ - Direct commits/pushes to protected branches are **blocked** by default. Agents must use the `agent/*` + PR flow.
242
+ - **Exception:** VS Code Source Control commits are allowed on protected branches that exist only locally (no upstream, no remote branch).
243
+ - On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree so it can't touch your real main.
244
+ - In-place agent branching is disabled. `scripts/agent-branch-start.sh` always creates a separate worktree so your visible local/base branch never changes.
245
+ - Fresh sandbox branches start with no git upstream. Guardex records the protected base in `branch.<name>.guardexBase`, and the first `git push -u` publishes the real upstream.
246
+ - Interactive self-update prompt defaults to **No** (`[y/N]`).
202
247
 
203
- # show whether both bots are running for this repo
204
- gx agents status
248
+ Optional override for manual VS Code protected-branch writes:
205
249
 
206
- # stop both bots and clear repo-local state
207
- gx agents stop
250
+ ```sh
251
+ git config multiagent.allowVscodeProtectedBranchWrites true
208
252
  ```
209
253
 
210
- ## Important behavior defaults
254
+ ---
211
255
 
212
- - No command defaults to `gx status`.
213
- - `gx init` is alias of `gx setup`.
214
- - Setup/doctor can install missing global OMX/OpenSpec/codex-auth with explicit Y/N confirmation.
215
- - `gx setup` checks GitHub CLI (`gh`) and prints install guidance if missing.
216
- - Optional parent-folder VS Code Source Control view: `gx setup --target /path/to/repo --parent-workspace-view` creates `../<repo>-branches.code-workspace`.
217
- - Monorepo-aware: when the target contains nested git repos (e.g. `apps/*/.git`), `gx setup` installs the workflow into every discovered repo. Git submodules (`.git` files) and guardex worktrees under `.omx/agent-worktrees/` are skipped. Opt out with `--no-recursive`; tune discovery with `--max-depth <n>`, `--skip-nested <dir>`, and `--include-submodules`.
218
- - Interactive self-update prompt defaults to **No** (`[y/N]`).
219
- - In initialized repos, `setup`/`install`/`fix` block protected-base writes unless explicitly overridden.
220
- - Direct commits/pushes to protected branches are blocked by default.
221
- - Exception: VS Code Source Control commits are allowed on protected branches that exist only locally (no upstream and no remote branch).
222
- - Optional repo override for manual VS Code protected-branch writes: `git config multiagent.allowVscodeProtectedBranchWrites true`.
223
- - Codex/agent sessions stay blocked on protected branches and must use `agent/*` branch + PR workflow.
224
- - On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree.
225
- - In-place agent branching is disabled; `scripts/agent-branch-start.sh` always creates a separate worktree to keep your visible local/base branch unchanged.
226
- - Fresh sandbox branches intentionally start without any git upstream; guardex records the protected base in `branch.<name>.guardexBase`, and the first `git push -u` publishes the real upstream branch.
227
- - `scripts/agent-branch-start.sh` hydrates `scripts/codex-agent.sh` into new sandbox worktrees when missing, so auto-finish launcher flow stays available.
256
+ ## Companion tools
228
257
 
229
- ## Configure protected branches
258
+ GitGuardex is designed to work alongside these. All optional — but if you're running many agents, you probably want them. `gx status` reports the machine-detectable global helpers; plugin/skills-first add-ons like `caveman` and `cavekit` are documented below for manual setup.
230
259
 
231
- Default protected branches:
260
+ ```text
261
+ ● oh-my-codex: active
262
+ ● oh-my-claude-sisyphus: active
263
+ ● @fission-ai/openspec: active
264
+ ● cavemem: active
265
+ ● @imdeadpool/codex-account-switcher: active
266
+ ● gh: active
267
+ ```
268
+
269
+ ### oh-my-codex — Codex config + skills framework
232
270
 
233
- - `dev`
234
- - `main`
235
- - `master`
271
+ Loads skills, slash commands, and session defaults into Codex. Guardex merges `oh-my-codex` into every agent worktree automatically, so every spawned agent starts with the same tuned config instead of vanilla Codex.
236
272
 
237
273
  ```sh
238
- gx protect list
239
- gx protect set main release hotfix
240
- gx protect reset
274
+ npm i -g oh-my-codex
241
275
  ```
242
276
 
243
- Stored in git config key:
277
+ Repo: <https://github.com/Yeachan-Heo/oh-my-codex>
244
278
 
245
- ```text
246
- multiagent.protectedBranches
279
+ ### oh-my-claudecode — Claude Code equivalent
280
+
281
+ Claude-side mirror of oh-my-codex. Same idea: skills, commands, and defaults loaded into every Claude Code session. Guardex merges it into worktrees alongside oh-my-codex so mixed Codex + Claude agent fleets behave consistently. For the npm CLI/runtime path, the published package name is `oh-my-claude-sisyphus`.
282
+
283
+ ```sh
284
+ npm i -g oh-my-claude-sisyphus@latest
247
285
  ```
248
286
 
249
- ## Companion dependency: GitHub CLI (`gh`)
287
+ Repo: <https://github.com/Yeachan-Heo/oh-my-claudecode>
250
288
 
251
- GuardeX PR/merge automation depends on GitHub CLI (`gh`), including
252
- `agent-branch-finish.sh` PR flows and `codex-agent.sh` auto-finish behavior.
289
+ ### Caveman output compression for long agent runs
253
290
 
254
- Install + verify:
291
+ Ultra-compressed response mode for Claude/Codex-style agents. Useful when you want less output-token churn during long reviews, debug loops, or multi-agent sessions.
255
292
 
256
293
  ```sh
257
- # install guide: https://cli.github.com/
258
- gh --version
259
- gh auth status
294
+ npx skills add JuliusBrussee/caveman
260
295
  ```
261
296
 
262
- ## Optional GitHub Apps: fork sync + PR review
263
-
264
- ### Pull app (Probot fork sync)
297
+ Repo: <https://github.com/JuliusBrussee/caveman>
265
298
 
266
- GuardeX setup now installs a starter file at `.github/pull.yml.example`.
299
+ ### Cavemem local persistent memory for agents
267
300
 
268
- To enable fork auto-sync:
301
+ Cross-agent memory with local SQLite + MCP. Helpful when you want Codex or Claude sessions to retain compressed history across runs. `gx setup` can install the CLI; you still run the IDE wiring once per machine.
269
302
 
270
303
  ```sh
271
- cp .github/pull.yml.example .github/pull.yml
304
+ npm install -g cavemem
305
+ cavemem install --ide codex
306
+ cavemem status
272
307
  ```
273
308
 
274
- Then edit `.github/pull.yml`:
309
+ Repo: <https://github.com/JuliusBrussee/cavemem>
275
310
 
276
- - set `rules[].base` to your fork branch (`main`, `master`, or `dev`)
277
- - set `rules[].upstream` to `<upstream-owner>:<branch>`
311
+ ### Cavekit spec-driven build loop
278
312
 
279
- Install the app: <https://github.com/apps/pull>
280
- Validate config: `https://pull.git.ci/check/<owner>/<repo>`
313
+ Spec-driven workflow layer for building from durable specs with explicit build/check commands. The current install path also brings in its `spec`, `build`, `check`, `caveman`, and `backprop` skills.
281
314
 
282
- ### CR-GPT code review app
315
+ ```sh
316
+ npx skills add JuliusBrussee/cavekit
317
+ ```
283
318
 
284
- Install app: <https://github.com/apps/cr-gpt>
319
+ Repo: <https://github.com/JuliusBrussee/cavekit>
285
320
 
286
- `gx setup` also installs `.github/workflows/cr.yml` (GitHub Actions review workflow).
321
+ ### OpenSpec spec-driven workflows
287
322
 
288
- Then in your repo:
323
+ Structured plan/change/apply/archive flow for agents. Prevents them from drifting off-task on long jobs. Full guide: [`docs/openspec-getting-started.md`](./docs/openspec-getting-started.md).
289
324
 
290
- 1. `Settings -> Secrets and variables -> Actions`
291
- 2. open `Variables`
292
- 3. add `OPENAI_API_KEY`
325
+ ```sh
326
+ npm i -g @fission-ai/openspec
327
+ ```
293
328
 
294
- After that, the app reviews new and updated pull requests automatically.
329
+ Repo: <https://github.com/Fission-AI/OpenSpec>
295
330
 
296
- ## Frontend mirror sync (`Webu-PRO/guardex-frontend`)
331
+ ### codex-auth multi-account switcher
297
332
 
298
- This repo includes `.github/workflows/sync-frontend-mirror.yml`, which mirrors
299
- the `frontend/` subtree to a separate repository whenever `main` receives
300
- changes under `frontend/**`.
333
+ For multi-identity Codex workflows. I built this because switching accounts manually for 30 agents was impossible. Auto-registers accounts to a dashboard on `codex login` so you can see every account and switch with one command.
301
334
 
302
- Default target:
335
+ ```sh
336
+ npm i -g @imdeadpool/codex-account-switcher
303
337
 
304
- - repo: `Webu-PRO/guardex-frontend`
305
- - branch: `main`
338
+ codex-auth save <name>
339
+ codex-auth use <name>
340
+ codex-auth list --details
341
+ codex-auth current
342
+ ```
306
343
 
307
- Required setup (in this repository):
344
+ Repo: [recodeecom/codex-account-switcher-cli](https://github.com/recodeecom/codex-account-switcher-cli)
308
345
 
309
- 1. `Settings -> Secrets and variables -> Actions`
310
- 2. Add repository secret `GUARDEX_FRONTEND_MIRROR_PAT`
311
- - value must be a token with `contents:write` access to `Webu-PRO/guardex-frontend`
346
+ ### GitHub CLI (`gh`)
312
347
 
313
- Optional overrides (Actions Variables):
348
+ Required for PR/merge automation. `agent-branch-finish.sh` and `codex-agent.sh` auto-finish both depend on it.
314
349
 
315
- - `GUARDEX_FRONTEND_MIRROR_REPO` (default `Webu-PRO/guardex-frontend`)
316
- - `GUARDEX_FRONTEND_MIRROR_BRANCH` (default `main`)
350
+ ```sh
351
+ # https://cli.github.com/
352
+ gh --version
353
+ gh auth status
354
+ ```
317
355
 
318
- Manual run:
356
+ ### Pull app — fork auto-sync
357
+
358
+ Guardex installs a starter config at `.github/pull.yml.example`.
319
359
 
320
360
  ```sh
321
- gh workflow run sync-frontend-mirror.yml
361
+ cp .github/pull.yml.example .github/pull.yml
362
+ # edit rules[].base and rules[].upstream
322
363
  ```
323
364
 
324
- ## Companion dependency: `codex-auth` account switcher
365
+ Install the app: <https://github.com/apps/pull>
366
+ Validate: `https://pull.git.ci/check/<owner>/<repo>`
325
367
 
326
- For multi-identity Codex workflows, GuardeX pairs with
327
- [`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli).
368
+ ### CR-GPT AI PR reviews
328
369
 
329
- Install:
370
+ Install: <https://github.com/apps/cr-gpt>
330
371
 
331
- ```sh
332
- npm i -g @imdeadpool/codex-account-switcher
372
+ `gx setup` installs `.github/workflows/cr.yml`. Add `OPENAI_API_KEY` under `Settings → Secrets and variables → Actions → Secrets`. After that, new and updated PRs get reviewed automatically.
373
+
374
+ ---
375
+
376
+ ## OpenSpec integration
377
+
378
+ If you installed OpenSpec during setup (`@fission-ai/openspec`), the full guide is at [`docs/openspec-getting-started.md`](./docs/openspec-getting-started.md).
379
+
380
+ Default flow:
381
+
382
+ ```text
383
+ /opsx:propose <change-name> → /opsx:apply → /opsx:archive
333
384
  ```
334
385
 
335
- Common commands:
386
+ Expanded flow:
336
387
 
337
- ```sh
338
- codex-auth save <name>
339
- codex-auth use <name>
340
- codex-auth list --details
341
- codex-auth current
388
+ ```text
389
+ /opsx:new <change-name> → /opsx:ff or /opsx:continue → /opsx:apply → /opsx:verify → /opsx:archive
342
390
  ```
343
391
 
392
+ ### OpenSpec in agent sub-branches
393
+
394
+ - `scripts/codex-agent.sh` enforces OpenSpec workspaces before launching Codex.
395
+ - `scripts/agent-branch-start.sh` can scaffold both `openspec/changes/<slug>/` and `openspec/plan/<slug>/` when `GUARDEX_OPENSPEC_AUTO_INIT=true`.
396
+
397
+ Environment variables:
398
+
399
+ | Var | Purpose |
400
+ |---|---|
401
+ | `GUARDEX_OPENSPEC_AUTO_INIT` | `true` to auto-bootstrap on branch start (default `false`) |
402
+ | `GUARDEX_OPENSPEC_PLAN_SLUG` | force a specific plan workspace name |
403
+ | `GUARDEX_OPENSPEC_CHANGE_SLUG` | force a specific change workspace name |
404
+ | `GUARDEX_OPENSPEC_CAPABILITY_SLUG` | override capability folder for `spec.md` scaffolding |
405
+
406
+ ---
407
+
344
408
  ## Files installed by setup
345
409
 
346
410
  ```text
@@ -354,8 +418,8 @@ scripts/install-agent-git-hooks.sh
354
418
  scripts/openspec/init-plan-workspace.sh
355
419
  .githooks/pre-commit
356
420
  .githooks/pre-push
357
- .codex/skills/guardex/SKILL.md
358
- .claude/commands/guardex.md
421
+ .codex/skills/gitguardex/SKILL.md
422
+ .claude/commands/gitguardex.md
359
423
  .github/pull.yml.example
360
424
  .github/workflows/cr.yml
361
425
  .omx/state/agent-file-locks.json
@@ -363,44 +427,51 @@ scripts/openspec/init-plan-workspace.sh
363
427
 
364
428
  If `package.json` exists, setup also adds `agent:*` helper scripts.
365
429
 
366
- ## OpenSpec quick start after `gx setup`
430
+ ---
367
431
 
368
- If you enabled global OpenSpec install during setup (`@fission-ai/openspec`), use the full guide here:
432
+ ## Frontend mirror
369
433
 
370
- - [`docs/openspec-getting-started.md`](./docs/openspec-getting-started.md)
434
+ - Standalone frontend repo: <https://github.com/Webu-PRO/guardex-frontend>
435
+ - This repo tracks the frontend under `frontend/` and auto-mirrors it via `.github/workflows/sync-frontend-mirror.yml` on changes to `main`.
371
436
 
372
- Default core flow:
437
+ Setup (in this repo):
373
438
 
374
- ```text
375
- /opsx:propose <change-name> -> /opsx:apply -> /opsx:archive
376
- ```
439
+ 1. `Settings → Secrets and variables → Actions`
440
+ 2. Add secret `GUARDEX_FRONTEND_MIRROR_PAT` with `contents:write` on `Webu-PRO/guardex-frontend`
441
+
442
+ Optional overrides (Actions Variables):
377
443
 
378
- Optional expanded flow:
444
+ - `GUARDEX_FRONTEND_MIRROR_REPO` (default `Webu-PRO/guardex-frontend`)
445
+ - `GUARDEX_FRONTEND_MIRROR_BRANCH` (default `main`)
446
+
447
+ Manual run:
379
448
 
380
449
  ```sh
381
- openspec config profile <profile-name>
382
- openspec update
450
+ gh workflow run sync-frontend-mirror.yml
383
451
  ```
384
452
 
385
- ```text
386
- /opsx:new <change-name> -> /opsx:ff or /opsx:continue -> /opsx:apply -> /opsx:verify -> /opsx:archive
387
- ```
453
+ ---
388
454
 
389
- ### OpenSpec in agent sub-branches
455
+ ## Known rough edges
456
+
457
+ Being honest about where this still has issues:
458
+
459
+ - **Usage limit mid-task.** When an agent hits its Codex/Claude usage limit partway through, the cleanup flow currently has to be handed to a different agent. It works, but the handoff is uglier than I'd like.
460
+ - **Conflict-stuck probes.** Fixed in v7.0.2 — earlier versions could leak `__source-probe-*` worktrees when the sync-guard rebase hit conflicts. If you're on an older release, `gx cleanup` sweeps these.
461
+ - **Windows.** Most of the hook surface assumes a POSIX shell. Use WSL or symlink-enabled git if you're on Windows.
390
462
 
391
- - `scripts/codex-agent.sh` enforces OpenSpec workspaces before it launches Codex in each sandbox branch/worktree.
392
- - `scripts/agent-branch-start.sh` can scaffold both `openspec/changes/<agent-branch-slug>/` and `openspec/plan/<agent-branch-slug>/` when you set `GUARDEX_OPENSPEC_AUTO_INIT=true`.
393
- - Set `GUARDEX_OPENSPEC_AUTO_INIT=false` (default for `agent-branch-start`) to skip branch-start auto-bootstrap.
394
- - Set `GUARDEX_OPENSPEC_PLAN_SLUG=<kebab-case-slug>` to force a specific plan workspace name.
395
- - Set `GUARDEX_OPENSPEC_CHANGE_SLUG=<kebab-case-slug>` to force a specific change workspace name.
396
- - Set `GUARDEX_OPENSPEC_CAPABILITY_SLUG=<kebab-case-slug>` to override the default capability folder used for `spec.md` scaffolding.
463
+ PRs and issues welcome.
397
464
 
398
- ## Security and maintenance posture
465
+ ---
399
466
 
400
- - CI matrix on Node 18/20/22 (`npm test`, `node --check`, `npm pack --dry-run`)
401
- - trusted publishing with provenance in GitHub Actions
467
+ ## Security & maintenance
468
+
469
+ - CI matrix on Node 18 / 20 / 22 (`npm test`, `node --check`, `npm pack --dry-run`)
470
+ - Trusted publishing with provenance via GitHub Actions
402
471
  - OpenSSF Scorecard + Dependabot for Actions
403
- - disclosure policy in [`SECURITY.md`](./SECURITY.md)
472
+ - Disclosure policy in [`SECURITY.md`](./SECURITY.md)
473
+
474
+ ---
404
475
 
405
476
  ## Local development
406
477
 
@@ -410,206 +481,138 @@ node --check bin/multiagent-safety.js
410
481
  npm pack --dry-run
411
482
  ```
412
483
 
484
+ ---
485
+
413
486
  ## Release notes
414
487
 
415
- ### v7.0.8
488
+ <details>
489
+ <summary><strong>v7.x</strong></summary>
416
490
 
417
- - **Added: repo toggle guidance in `gx` status/help output.** The command summary now shows a dedicated `REPO TOGGLE` section so operators can see the repo-local switch immediately: `GUARDEX_ON=0` disables Guardex for a repo and `GUARDEX_ON=1` turns it back on.
418
- - **Changed: package metadata advanced to the next publishable release.** Bumped `@imdeadpool/guardex` from `7.0.7` to `7.0.8` so the current `main` branch state can be published without colliding with the existing release number.
491
+ ### v7.0.11
492
+ - Fixed the npm release workflow trigger so publishes run from `release.published` or explicit manual dispatch, instead of double-firing on both the tag push and the release event.
493
+ - This keeps the GitHub `npm` environment from collecting duplicate cancelled deploy cards for the same version and leaves one canonical release deployment to monitor.
494
+ - Bumped `@imdeadpool/guardex` from `7.0.10` → `7.0.11` so the next release can publish cleanly after `7.0.10` was already taken on npm.
419
495
 
420
- ### v7.0.7
496
+ ### v7.0.10
497
+ - Primary user-facing long name is now **GitGuardex**. CLI/help presents `gitguardex` as the long-form command; `gx` stays the preferred short alias; `guardex` remains as legacy compatibility.
498
+ - Installed Codex/Claude startup files now use `gitguardex` paths: `.codex/skills/gitguardex/SKILL.md` and `.claude/commands/gitguardex.md`.
499
+ - Startup context shrunk further. Managed marker block + skill + command compressed from 4340 B → 1930 B across the three always-loaded template files.
500
+ - Bumped `@imdeadpool/guardex` from `7.0.9` → `7.0.10`.
421
501
 
422
- - **Fixed: next publish target now advances past npm.** Bumped `@imdeadpool/guardex` from `7.0.6` to `7.0.7` so the next `npm publish` does not collide with the already-published registry version.
423
- - **Fixed: root package metadata drift in `package-lock.json`.** The lockfile root version had fallen behind the package manifest (`7.0.4` vs. `7.0.6`), which made release metadata inconsistent. The bump resynchronized `package.json` and `package-lock.json` on `7.0.7`.
502
+ ### v7.0.9
503
+ - `gx doctor` and `gx setup` now refresh AGENTS with repo-toggle examples. Managed AGENTS block states Guardex is enabled by default and shows exact `.env` lines: `GUARDEX_ON=0` disables per repo, `GUARDEX_ON=1` re-enables.
504
+ - Bumped to `7.0.9`.
424
505
 
425
- ### v7.0.6
506
+ ### v7.0.8
507
+ - Added `REPO TOGGLE` section to `gx` status/help output. Operators see the repo-local switch immediately.
508
+ - Bumped to `7.0.8`.
509
+
510
+ ### v7.0.7
511
+ - Advanced next publish target past npm. Bumped to `7.0.7`.
512
+ - Fixed root package metadata drift in `package-lock.json` (root version had fallen behind manifest).
426
513
 
427
- - **Fixed: self-updater lied about success.** `gx`'s update prompt runs `npm i -g @imdeadpool/guardex@latest` and previously trusted npm's exit code. When npm's resolution cache made it report "changed 1 package" without actually overwriting the files (a known quirk triggered when the user just bumped from N-1 → N in the same session, or with a warm metadata cache), the prompt kept re-firing on every subsequent `gx` invocation because the on-disk `package.json` was still stale. `gx` now re-reads the globally installed `package.json` after the `@latest` install returns, compares its `version` field to the advertised latest, and if they don't match runs a pinned retry `npm i -g @imdeadpool/guardex@<latest>` to force the cache past the obstructing entry. If the pinned retry also fails to advance the on-disk version, the user gets a clear hint (`npm root -g && npm cache verify`) instead of a silent loop.
514
+ ### v7.0.6
515
+ - **Fixed: self-updater lied about success.** `gx`'s update prompt runs `npm i -g @imdeadpool/guardex@latest` and previously trusted npm's exit code. When npm's resolution cache reported "changed 1 package" without actually overwriting files (known quirk, triggers when user just bumped N-1 → N in the same session, or with a warm metadata cache), the prompt kept re-firing on every subsequent `gx` invocation because the on-disk `package.json` was stale. `gx` now re-reads the globally installed `package.json` after `@latest` returns, compares its `version` to the advertised latest, and if they don't match runs a pinned retry `npm i -g @imdeadpool/guardex@<latest>` to force past the obstructing cache entry. If the pinned retry also fails, the user gets a clear hint (`npm root -g && npm cache verify`) instead of a silent loop.
428
516
 
429
517
  ### v7.0.5
430
-
431
- - **Added: `oh-my-claude` to `gx status` global-toolchain check.** The Claude-side mirror of `oh-my-codex` is now reported alongside the existing services (`oh-my-codex`, `@fission-ai/openspec`, `@imdeadpool/codex-account-switcher`, `gh`). Users who have not yet installed it will see a clear "inactive" line instead of silent omission, matching the existing codex detection contract.
432
- - **Added: `.omc/` to the managed `.gitignore` block.** `gx setup` / `gx doctor` write a `.omc/` entry next to `.omx/` so Claude-specific runtime state (notepad, worktrees landing there in a follow-up) stays out of commits by default, parity with the existing `.omx/` treatment.
518
+ - Added `oh-my-claude` to `gx status` global-toolchain check. Claude-side mirror of `oh-my-codex` is reported alongside existing services (`oh-my-codex`, `@fission-ai/openspec`, `@imdeadpool/codex-account-switcher`, `gh`).
519
+ - Added `.omc/` to the managed `.gitignore` block so Claude-specific runtime state (notepad, worktrees) stays out of commits, parity with `.omx/`.
433
520
 
434
521
  ### v7.0.4
435
-
436
- - **Fixed: publish collision on npm.** Advanced the package metadata from `7.0.3` to `7.0.4` so `npm publish` no longer targets an already published version.
437
- - **Changed: release-note sync for versioning rule.** Added this versioned entry in README in the same change as the package bump to keep publish metadata and release notes aligned.
522
+ - Fixed publish collision on npm. Bumped `7.0.3` → `7.0.4`.
438
523
 
439
524
  ### v7.0.3
440
-
441
- - **Branch/worktree naming refactor.** `agent-branch-start.sh` now produces `agent/<role>/<task>-<YYYY-MM-DD>-<HH-MM>` instead of `agent/<role+account-email>/<snapshot-slug>-<task>-<cksum6>`. Codex account names (e.g. `Zeus Edix Hu`) and 6-hex checksums no longer leak into branch or worktree paths.
442
- - **Role normalization.** `AGENT_NAME` is collapsed to `{claude, codex, <explicit>}` via (in order) the `GUARDEX_AGENT_TYPE` env override, a substring match against `claude`/`codex`, the `CLAUDECODE=1` sentinel, or a fallback to `codex`. Other roles (`integrator`, `executor`, etc.) pass through when set via `GUARDEX_AGENT_TYPE`.
443
- - **New `--print-name-only` flag** on `agent-branch-start.sh` for deterministic tests; honours `GUARDEX_BRANCH_TIMESTAMP` for reproducible output.
444
- - **`--tier` flag accepted silently** for CLAUDE.md compatibility (scaffold sizing not wired through yet).
445
- - Tests `install.test.js` covering the old snapshot-slug format were rewritten to assert the new role-datetime shape.
525
+ - **Branch/worktree naming refactor.** `agent-branch-start.sh` now produces `agent/<role>/<task>-<YYYY-MM-DD>-<HH-MM>` instead of `agent/<role+account-email>/<snapshot-slug>-<task>-<cksum6>`. Account names and 6-hex checksums no longer leak into branch/worktree paths.
526
+ - **Role normalization.** `AGENT_NAME` collapses to `{claude, codex, <explicit>}` via (in order) `GUARDEX_AGENT_TYPE` env override, substring match against `claude`/`codex`, `CLAUDECODE=1` sentinel, or fallback to `codex`. Other roles (`integrator`, `executor`, etc.) pass through when set via `GUARDEX_AGENT_TYPE`.
527
+ - New `--print-name-only` flag for deterministic tests; honors `GUARDEX_BRANCH_TIMESTAMP` for reproducible output.
528
+ - `--tier` flag accepted silently for CLAUDE.md compatibility (scaffold sizing not wired through yet).
446
529
 
447
530
  ### v7.0.2
448
-
449
- - **Fix: `__source-probe-*` worktree leak on conflict exit.** `agent-branch-finish.sh` was registering its `cleanup()` trap *after* the sync-guard rebase block, so when that rebase hit conflicts and the script exited, the throwaway probe worktree was never removed. `gx doctor` sweeps against stalled branches accumulated one new probe per run.
450
- - The cleanup trap is now installed immediately after probe creation, and aborts any in-progress `rebase`/`merge` before `worktree remove --force` so conflict-stuck probes are cleaned up reliably.
531
+ - **Fix: `__source-probe-*` worktree leak on conflict exit.** `agent-branch-finish.sh` was registering its `cleanup()` trap *after* the sync-guard rebase block, so when rebase hit conflicts and the script exited, the throwaway probe worktree was never removed. `gx doctor` sweeps accumulated one new probe per run.
532
+ - Cleanup trap is now installed immediately after probe creation, and aborts any in-progress `rebase`/`merge` before `worktree remove --force`.
451
533
 
452
534
  ### v7.0.1
453
-
454
535
  - Maintenance release.
455
536
 
456
537
  ### v7.0.0
457
-
458
- - **Breaking (soft).** Consolidated 17 commands into 12 visible commands with flag-based subcommands. Five removed names (`init`, `install`, `fix`, `scan`, `copy-prompt`, `copy-commands`, `print-agents-snippet`, `review`) still work but print a one-line deprecation notice on stderr and will be removed in v8. See the migration table in "Copy-paste: common commands" above.
459
- - **Token-usage improvements.** Trimmed the auto-installed agent templates that live inside every consumer repo and get loaded into every Claude/Codex session:
538
+ - **Breaking (soft).** Consolidated 17 commands into 12 visible commands with flag-based subcommands. Removed names still work but print a deprecation notice; will be removed in v8.
539
+ - **Token-usage improvements.** Trimmed auto-installed agent templates that live in every consumer repo and get loaded into every session:
460
540
  - `templates/AGENTS.multiagent-safety.md`: 6990 B → 1615 B (−77%)
461
541
  - `templates/codex/skills/guardex/SKILL.md`: 2732 B → 1086 B (−60%)
462
542
  - `templates/claude/commands/guardex.md`: 472 B → 357 B (−24%)
463
543
  - Total: 10194 B → 3058 B per consumer repo (−70%, ~1.5k fewer tokens per agent session).
544
+ - New `gx prompt` command replaces three prompt-emitting commands.
545
+ - New flag surface on `gx setup`: `--install-only`, `--repair`.
546
+ - New `gx status --strict` mirrors old `gx scan`.
464
547
 
465
- The `AI_SETUP_PROMPT` and `AI_SETUP_COMMANDS` constants used by `gx prompt` are now compact checklists, so piping `gx prompt` into a model context is cheaper too.
466
- - **New `gx prompt` command** replaces three prompt-emitting commands: `gx prompt` (full checklist), `gx prompt --exec` (commands only), `gx prompt --snippet` (AGENTS.md managed-block template).
467
- - **New flag surface on `gx setup`**: `--install-only` (templates/hooks/locks only), `--repair` (fix drift), plus the existing `--target`, `--parent-workspace-view`, `--dry-run`, etc.
468
- - **New `gx status --strict`** mirrors the old `gx scan` behavior (exit non-zero on findings).
469
- - Updated internal `REQUIRED_PACKAGE_SCRIPTS` for consumer `package.json` so `agent:safety:scan` and `agent:safety:fix` helper scripts now invoke the new v7 surface (`gx status --strict`, `gx setup --repair`).
548
+ </details>
470
549
 
471
- ### v6.0.1
550
+ <details>
551
+ <summary><strong>v6.x</strong></summary>
472
552
 
473
- - Preserve existing repo-owned `AGENTS.md` marker content during `gx setup` / `gx doctor` by default; only rewrite marker blocks when `--force` is explicitly used.
474
- - Preserve existing `agent:*` package scripts during setup/doctor repairs by default so repo-local command customizations are not silently replaced.
475
- - Forward `--force` through sandboxed doctor execution so intentional canonical template/script rewrites still work end-to-end.
476
- - Added regression tests for both preservation behaviors (`setup` + `doctor`).
477
- - Bumped package version from `6.0.0` to `6.0.1` for the next npm publish.
553
+ ### v6.0.1
554
+ - Preserve existing repo-owned `AGENTS.md` marker content during `gx setup` / `gx doctor` by default; only rewrite marker blocks when `--force` is explicit.
555
+ - Preserve existing `agent:*` package scripts during setup/doctor repairs by default.
556
+ - Forward `--force` through sandboxed doctor execution.
557
+ - Added regression tests for both preservation behaviors.
478
558
 
479
559
  ### v6.0.0
560
+ - **Breaking** — removed legacy `musafety` bin alias and all `MUSAFETY_*` environment variables. Callers must migrate to `guardex` / `gx` and `GUARDEX_*`.
561
+ - **Breaking** — bootstrap manifest filename changed from `musafety-bootstrap-manifest.json` to `guardex-bootstrap-manifest.json`; existing sandbox worktrees must be pruned + re-bootstrapped.
562
+ - Rebranded `musafety` → `guardex` across scripts, templates, hooks, tests, docs.
563
+ - The descriptive phrase `multiagent-safety` (including `bin/multiagent-safety.js`) is preserved — only the short codename changed.
480
564
 
481
- - **Breaking** — removed the legacy `musafety` bin alias and all `MUSAFETY_*` environment variables. Callers must migrate to the `guardex` / `gx` bins and the `GUARDEX_*` env-var surface.
482
- - **Breaking** — bootstrap manifest filename changed from `musafety-bootstrap-manifest.json` to `guardex-bootstrap-manifest.json`; existing sandbox worktrees must be pruned + re-bootstrapped (or have their manifest manually renamed).
483
- - Rebranded all remaining `musafety` / `Musafety` / `MUSAFETY` codename tokens to `guardex` / `Guardex` / `GUARDEX` across scripts, templates, hooks, tests, and docs.
484
- - The descriptive phrase `multiagent-safety` (including `bin/multiagent-safety.js` and `templates/AGENTS.multiagent-safety.md`) is preserved intentionally — only the short codename changed.
485
- - Bumped package version from `5.0.17` to `6.0.0` for the next npm publish.
486
-
487
- ### v5.0.17
488
-
489
- - Bumped package version from `5.0.16` to `5.0.17` for the next npm publish.
490
-
491
- ### v5.0.16
492
-
493
- - Fixed `gx doctor` runtime crash (`parseDoctorArgs is not defined`) by restoring the doctor argument parser for `--target` and `--strict`.
494
- - Fixed `gx doctor` command routing so the repair-first doctor flow remains the active command path (duplicate legacy doctor definition no longer overrides it).
495
- - Updated worktree change detection to run `git status --porcelain --untracked-files=normal --` for consistent normal untracked-file behavior.
496
- - Added regression coverage that asserts the doctor parser function exists in `bin/multiagent-safety.js`.
497
- - Bumped package version from `5.0.15` to `5.0.16`.
498
-
499
- ### v5.0.15
500
-
501
- - Added `gx setup --parent-workspace-view` to generate a parent-folder VS Code workspace (`../<repo>-branches.code-workspace`) that shows both the base repo and `.omx/agent-worktrees` in Source Control.
502
- - Added dry-run-safe parent workspace operations (`would-create` / `would-update`) and setup output that prints the created workspace path.
503
- - Added regression coverage for parent workspace generation and dry-run behavior.
504
- - Bumped package version from `5.0.14` to `5.0.15`.
505
-
506
- ### v5.0.14
507
-
508
- - Changed release metadata for the next npm publish by bumping package version from `5.0.13` to `5.0.14`.
509
- - Kept Guardex release notes synchronized with the published package version.
510
-
511
- ### v5.0.13
512
-
513
- - Bumped package version from `5.0.12` to `5.0.13` for the next npm publish.
514
-
515
- ### v5.0.12
516
-
517
- - Bumped package version from `5.0.11` to `5.0.12` for the next npm publish.
518
- - Updated repository metadata and README links to the renamed GitHub repository (`recodeee/guardex`).
519
-
520
- ### v5.0.11
565
+ </details>
521
566
 
522
- - Updated the managed AGENTS contract wording to use `GX` naming and added an explicit OMX completion policy requiring commit + push + PR creation/update at task completion.
523
- - Ensured `gx install` explicitly configures the managed `AGENTS.md` policy block and added regression coverage for this install-path behavior.
524
- - Bumped package version from `5.0.10` to `5.0.11` for the next npm publish.
567
+ <details>
568
+ <summary><strong>v5.x</strong></summary>
525
569
 
526
- ### v5.0.10
527
-
528
- - Bumped package version from `5.0.9` to `5.0.10` for the next npm publish.
529
-
530
- ### v5.0.9
531
-
532
- - Enforced OpenSpec workspace bootstrap for sandbox agent execution: `scripts/codex-agent.sh` now initializes `openspec/plan/<agent-branch-slug>/` before launching Codex, and `scripts/agent-branch-start.sh` supports `GUARDEX_OPENSPEC_AUTO_INIT` plus `GUARDEX_OPENSPEC_PLAN_SLUG`.
533
- - Tightened doctor auto-finish correctness: sandbox finish now waits for merge and exits non-zero if the PR closes without merge, so repair flows are not reported as complete when policy blocks merge.
534
- - Updated package version from `5.0.8` to `5.0.9` for the next npm publish.
535
-
536
- ### v5.0.8
537
-
538
- - Fixed `bin/multiagent-safety.js` syntax regressions in the doctor sandbox flow (`Unexpected identifier` / `Unexpected end of input`) that were breaking CLI execution and CI tests.
539
- - Restored `scripts/codex-agent.sh` from `templates/scripts/codex-agent.sh` so critical runtime helper parity checks pass in clean CI clones.
540
- - Bumped package version from `5.0.7` to `5.0.8` for the next npm publish.
541
-
542
- ### v5.0.7
543
- ### Unreleased (generated draft, not versioned yet)
544
-
545
- - Add the user-facing changes for the next release here before assigning a version number.
546
- - Keep this section focused on behavior changes (`Added`, `Changed`, `Fixed`) rather than version-bump-only notes.
570
+ ### v5.0.17 – v5.0.10
571
+ Version bumps for npm publish continuity plus incremental fixes: doctor arg-parser restored (5.0.16), parent-workspace view added (5.0.15), OMX completion policy wording (5.0.11), OpenSpec sandbox bootstrap enforced (5.0.9), bin syntax regressions fixed (5.0.8).
547
572
 
548
573
  ### v5.0.6
549
-
550
- - `gx cleanup` and auto-finish cleanup now prune clean agent worktrees by default, so VS Code Source Control focuses on your local branch plus worktrees with active changes.
551
- - Added `gx cleanup --keep-clean-worktrees` to opt out and keep clean worktrees visible.
552
- - Bumped package version from `5.0.5` to `5.0.6` for the next npm publish.
553
-
554
- ### v5.0.5
555
-
556
- - Bumped package version from `5.0.4` to `5.0.5` so npm publish can proceed with the next patch release.
557
-
558
- ### v5.0.4
559
-
560
- - Bumped package version from `5.0.3` to `5.0.4` to stay one patch ahead of the current npm published version.
561
-
562
- ### v5.0.3
563
-
564
- - Bumped package version from `5.0.2` to `5.0.3` for the next npm publish.
574
+ - `gx cleanup` and auto-finish cleanup now prune clean agent worktrees by default. VS Code Source Control focuses on your local branch + worktrees with active changes.
575
+ - Added `gx cleanup --keep-clean-worktrees` to opt out.
565
576
 
566
577
  ### v5.0.2
567
-
568
- - Auto-closes Codex sandbox branches through PR workflow and keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
578
+ - Auto-closes Codex sandbox branches through PR workflow; keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
569
579
  - Runs `gx doctor` repairs from a sandbox when `main` is protected.
570
580
  - Allows tightly guarded Codex-only commits for `AGENTS.md` / `.gitignore` on protected branches.
571
- - Advanced package version to keep npm publishing unblocked.
572
581
 
573
582
  ### v5.0.0
574
-
575
- - Rebranded the CLI to **GuardeX** with `gx`-first command UX.
576
- - Published under scoped package name `@imdeadpool/guardex` to avoid npm name collisions.
577
- - Enforced a repeatable per-message agent branch lifecycle in setup/init flows.
583
+ - Rebranded CLI to **GuardeX** with `gx`-first command UX.
584
+ - Published under scoped package name `@imdeadpool/guardex`.
585
+ - Enforced repeatable per-message agent branch lifecycle in setup/init flows.
578
586
  - Added codex-auth-aware sandbox branch naming support.
579
587
 
580
- ### v0.4.6
588
+ </details>
581
589
 
582
- - Added repository metadata (`repository`, `bugs`, `homepage`, `funding`) in package manifest.
583
- - Added CI workflow for Node 18/20/22 with packaging and syntax verification.
584
- - Added npm provenance-oriented release workflow, OpenSSF Scorecard workflow, and Dependabot for Actions.
590
+ <details>
591
+ <summary><strong>v0.4.x</strong></summary>
592
+
593
+ ### v0.4.6
594
+ - Added repository metadata (`repository`, `bugs`, `homepage`, `funding`).
595
+ - Added CI workflow for Node 18/20/22.
596
+ - Added npm provenance release workflow, OpenSSF Scorecard, Dependabot for Actions.
585
597
  - Added explicit `SECURITY.md` and `CONTRIBUTING.md`.
586
598
 
587
599
  ### v0.4.5
588
-
589
600
  - Added optional pre-commit behind-threshold sync gate (`multiagent.sync.requireBeforeCommit`, `multiagent.sync.maxBehindCommits`).
590
- - Added `gx sync` workflow (`--check`, sync strategies, report mode).
591
- - `agent-branch-finish.sh` now blocks finishing when source branch is behind `origin/<base>` (config-aware).
601
+ - Added `gx sync` workflow (`--check`, strategies, report mode).
602
+ - `agent-branch-finish.sh` blocks finishing when source is behind `origin/<base>`.
592
603
 
593
604
  ### v0.4.4
594
-
595
605
  - Added `scripts/agent-worktree-prune.sh` to templates/install.
596
- - `agent-branch-finish.sh` now auto-runs prune after merge (best effort).
597
- - Added npm helper script: `agent:cleanup`.
606
+ - `agent-branch-finish.sh` auto-runs prune after merge.
607
+ - Added npm helper: `agent:cleanup`.
598
608
 
599
609
  ### v0.4.2
600
-
601
- - Setup now detects existing global OMX/OpenSpec installs first.
602
- - If tools are already present, setup skips global install automatically.
603
- - Interactive approval is strict `[y/n]` (waits for explicit answer).
604
- - Added setup screenshot to README.
605
- - Added workflow screenshots (branch start, lock/delete guard, source-control view).
610
+ - Setup detects existing global OMX/OpenSpec installs first; skips global install if tools are present.
611
+ - Interactive approval is strict `[y/n]`.
612
+ - Added setup + workflow screenshots.
606
613
 
607
614
  ### v0.4.0
615
+ - Added setup-time Y/N approval for optional global install of `oh-my-codex` and `@fission-ai/openspec`.
616
+ - Added setup flags: `--yes-global-install`, `--no-global-install`.
608
617
 
609
- - Added setup-time Y/N approval prompt for optional global install of:
610
- - `oh-my-codex`
611
- - `@fission-ai/openspec`
612
- - Added setup flags for automation:
613
- - `--yes-global-install`
614
- - `--no-global-install`
615
- - Added official repo links for OMX and OpenSpec.
618
+ </details>