@imdeadpool/guardex 5.0.1 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CONTRIBUTING.md CHANGED
@@ -23,3 +23,4 @@ npm pack --dry-run
23
23
  - Keep `main` green (CI passing)
24
24
  - Prefer trusted publishing (`npm publish --provenance`)
25
25
  - Use a clean working tree and tag-based releases when possible
26
+ - When version changes, update `README.md` release notes in the same PR/commit
package/README.md CHANGED
@@ -4,377 +4,182 @@
4
4
  [![CI](https://github.com/recodeecom/multiagent-safety/actions/workflows/ci.yml/badge.svg)](https://github.com/recodeecom/multiagent-safety/actions/workflows/ci.yml)
5
5
  [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/recodeecom/multiagent-safety/badge)](https://securityscorecards.dev/viewer/?uri=github.com/recodeecom/multiagent-safety)
6
6
 
7
- GuardeX is a short-command, hardened multi-agent safety setup for any git repo.
7
+ GuardeX is a safety layer for parallel Codex/agent work in git repos.
8
8
 
9
9
  > [!WARNING]
10
10
  > Not affiliated with OpenAI or Codex. Not an official tool.
11
11
 
12
- ## Why this tool exists
12
+ ## The problem (what was going wrong)
13
13
 
14
- If you run multiple agents at the same time, it is easy to get collisions:
15
- two agents editing the same files, unsafe deletes, broken branch flow, or
16
- confusing ownership.
14
+ Multiple Codex agents worked on the same files at the same time.
15
+ They started overwriting or deleting each other's changes.
16
+ Progress became **de-progressive**: more activity, less real forward movement.
17
17
 
18
- `GuardeX` adds strict guardrails so parallel agent work stays safe and predictable.
18
+ GuardeX exists to stop that loop.
19
19
 
20
20
  ![Multi-agent dashboard example](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/dashboard-multi-agent.png)
21
21
 
22
- The dashboard above is the exact kind of parallel workflow GuardeX is built for.
23
-
24
- It also includes an OpenSpec planning scaffold script so plan-mode workspaces
25
- can be bootstrapped consistently across repos.
26
-
27
- ## Install
28
-
29
- ```sh
30
- npm i -g @imdeadpool/guardex
22
+ ```mermaid
23
+ flowchart LR
24
+ A[Agent A edits file X] --> C[Conflict / overwrite]
25
+ B[Agent B edits file X] --> C
26
+ C --> D[Deleted or lost code]
27
+ D --> E[Rework and confusion]
28
+ E --> C
31
29
  ```
32
30
 
33
- Package page: https://www.npmjs.com/package/@imdeadpool/guardex
34
-
35
-
36
- ## Command aliases
37
-
38
- - Preferred short command: `gx`
39
- - Full command: `guardex`
40
- - Legacy aliases still supported: `musafety`, `multiagent-safety`
41
-
42
- ## Security + maintenance posture
31
+ ## What GuardeX enforces
43
32
 
44
- - CI matrix on Node 18/20/22 (`npm test`, `node --check`, `npm pack --dry-run`)
45
- - trusted publishing workflow uses `npm publish --provenance` in GitHub Actions
46
- - OpenSSF Scorecard workflow and weekly Dependabot for GitHub Actions
47
- - Dedicated security disclosure policy in [`SECURITY.md`](./SECURITY.md)
48
-
49
- Related tools:
50
-
51
- - [oh-my-codex (OMX)](https://github.com/Yeachan-Heo/oh-my-codex)
52
- - [OpenSpec](https://github.com/Fission-AI/OpenSpec)
53
- - [codex-account-switcher-cli](https://github.com/recodeecom/codex-account-switcher-cli)
33
+ - isolated `agent/*` branch + worktree per task
34
+ - explicit file lock claiming before edits
35
+ - deletion guard for claimed files
36
+ - protected-base branch safety (`main`, `dev`, `master` by default)
37
+ - repair/doctor flow when drift appears
54
38
 
55
- ## Fast setup (recommended)
39
+ ## Copy-paste: install + bootstrap
56
40
 
57
41
  ```sh
58
- # inside your repo
42
+ npm i -g @imdeadpool/guardex
43
+ cd /path/to/your/repo
59
44
  gx setup
60
- # alias:
61
- gx init
62
45
  ```
63
46
 
64
- That one command runs:
65
-
66
- 1. detects whether OMX/OpenSpec/codex-auth are already globally installed,
67
- 2. asks strict Y/N approval only if something is missing,
68
- 3. installs guardrail scripts/hooks,
69
- 4. repairs common safety problems,
70
- 5. installs local Codex + Claude gx helper skill files if missing,
71
- 6. scans and reports final status.
72
-
73
- ## Setup behavior screenshot
74
-
75
- ![gx status/setup behavior screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/setup-success.svg)
76
-
77
- ## Status logs screenshot
78
-
79
- ![gx service status screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/guardex-service-status.svg)
47
+ Alias support:
80
48
 
81
- ## AI helper skills installed by setup/doctor
49
+ - preferred: `gx`
50
+ - full: `guardex`
82
51
 
83
- `gx setup` and `gx doctor` also ensure these local helper files exist:
84
-
85
- - Codex skill: `.codex/skills/guardex/SKILL.md`
86
- - Claude command: `.claude/commands/guardex.md` (use as `/guardex`)
87
-
88
- ## Scorecard report generation
89
-
90
- Create/update markdown reports from OpenSSF Scorecard JSON:
52
+ ## Copy-paste: daily workflow (per new user task)
91
53
 
92
54
  ```sh
93
- gx report scorecard --repo github.com/recodeecom/multiagent-safety
94
- ```
95
-
96
- By default this writes:
97
-
98
- - `docs/reports/openssf-scorecard-baseline-YYYY-MM-DD.md`
99
- - `docs/reports/openssf-scorecard-remediation-plan-YYYY-MM-DD.md`
100
-
101
- ## Workflow protocol screenshots
102
-
103
- ### 1) Start isolated agent branch/worktree
104
-
105
- ![gx branch start protocol screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/workflow-branch-start.svg)
106
-
107
- ### 2) Lock claim + deletion guard protocol
108
-
109
- ![gx lock and delete guard screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/workflow-lock-guard.svg)
110
-
111
- ### 3) Multi-agent branch visibility (IDE/source control style)
112
-
113
- ![gx source control multi-agent screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/workflow-source-control.svg)
114
-
115
- #### Real VS Code Source Control example (after `gx setup`)
55
+ # 1) Start isolated branch/worktree
56
+ bash scripts/agent-branch-start.sh "task-name" "agent-name"
116
57
 
117
- ![GuardeX real VS Code Source Control layout](./docs/images/workflow-vscode-guardex-real.png)
118
-
119
- This is the exact layout you should expect in VS Code Source Control after setup
120
- and a few `agent-branch-start` runs:
121
-
122
- ```text
123
- GuardeX (your preferred local branch: main/dev)
124
- agent_codex_<timestamp>-<snapshot>-<task>
125
- agent_bot_<timestamp>-<snapshot>-<task>
126
- agent_bot_<timestamp>-<snapshot>-<task>
127
- ```
128
-
129
- That gives you one stable main repo view plus parallel agent worktrees in the
130
- same VS Code window, so branch ownership and progress stay visible at once.
131
-
132
- ## Companion tool: `codex-auth` account switcher
133
-
134
- If you run multiple Codex identities, this workflow pairs well with
135
- [`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli/tree/main),
136
- a CLI that snapshots `~/.codex/auth.json` per account and lets you switch fast
137
- without repeated login/logout loops.
138
-
139
- > [!WARNING]
140
- > Not affiliated with OpenAI or Codex. Not an official tool.
141
-
142
- How `codex-auth` works:
143
-
144
- - stores named snapshots in `~/.codex/accounts/*.json`
145
- - switches by replacing active `~/.codex/auth.json`
146
- - keeps lightweight per-terminal session memory (default key is shell PPID),
147
- so older terminals can keep their original account context
58
+ # 2) Claim ownership
59
+ python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
148
60
 
149
- Requirements: Node.js 18+
61
+ # 3) Implement + verify
62
+ npm test
150
63
 
151
- Install:
64
+ # 4) Finish (commit/push/PR/merge flow)
65
+ bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
152
66
 
153
- ```sh
154
- npm i -g @imdeadpool/codex-account-switcher
67
+ # 5) Optional cleanup after merge
68
+ gx cleanup --branch "$(git rev-parse --abbrev-ref HEAD)"
155
69
  ```
156
70
 
157
- Common commands:
71
+ If you use `scripts/codex-agent.sh`, the finish flow is auto-run after the Codex session exits.
158
72
 
159
- ```sh
160
- codex-auth login [name]
161
- codex-auth save <name>
162
- codex-auth use <name>
163
- codex-auth list --details
164
- codex-auth current
165
- codex-auth status
166
- codex-auth self-update --check
167
- ```
73
+ ## Visual workflow
168
74
 
169
- Optional shell-hook helpers:
75
+ ### Setup status
170
76
 
171
- ```sh
172
- codex-auth setup-login-hook
173
- codex-auth hook-status
174
- codex-auth remove-login-hook
175
- ```
77
+ ![gx setup behavior screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/setup-success.svg)
176
78
 
177
- ## Copy prompt for your AI (Codex / Claude)
79
+ ### Service logs/status
178
80
 
179
- ```sh
180
- gx copy-prompt
181
- ```
81
+ ![gx status logs screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/status-tools-logs.svg)
182
82
 
183
- This prints a ready-to-paste prompt.
83
+ ### Branch/worktree start protocol
184
84
 
185
- ### Prompt preview (SVG)
85
+ ![gx branch start protocol screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/workflow-branch-start.svg)
186
86
 
187
- ![gx copy prompt screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/copy-prompt-output.svg)
87
+ ### Lock + delete guard protocol
188
88
 
189
- ### Commands-only copy mode
89
+ ![gx lock and delete guard screenshot](https://raw.githubusercontent.com/recodeecom/multiagent-safety/main/docs/images/workflow-lock-guard.svg)
190
90
 
191
- If you only want executable commands (without explanatory text):
91
+ ## Copy-paste: common commands
192
92
 
193
93
  ```sh
194
- gx copy-commands
195
- ```
196
-
197
- Example output:
94
+ # health / safety status
95
+ gx status
198
96
 
199
- ```sh
200
- npm i -g @imdeadpool/guardex
97
+ # setup and repair
201
98
  gx setup
202
99
  gx doctor
203
- bash scripts/codex-agent.sh "task" "agent-name"
204
- bash scripts/agent-branch-start.sh "task" "agent-name"
205
- python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
206
- bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
207
- bash scripts/openspec/init-plan-workspace.sh "<plan-slug>"
100
+
101
+ # protected branch management
102
+ gx protect list
208
103
  gx protect add release staging
104
+ gx protect remove release
105
+
106
+ # sync with base branch
209
107
  gx sync --check
210
108
  gx sync
211
- ```
212
-
213
- Full checklist output:
214
-
215
- ```text
216
- Use this exact checklist to setup multi-agent safety in this repository for Codex or Claude.
217
109
 
218
- 1) Install (if missing):
219
- npm i -g @imdeadpool/guardex
110
+ # cleanup merged agent branches/worktrees
111
+ gx cleanup
220
112
 
221
- 2) Bootstrap safety in this repo:
222
- gx setup
223
- # alias: gx init
224
-
225
- - Setup detects global OMX/OpenSpec/codex-auth first.
226
- - If one is missing and setup asks for approval, reply explicitly:
227
- - y = run: npm i -g oh-my-codex @fission-ai/openspec @imdeadpool/codex-account-switcher (missing ones only)
228
- - n = skip global installs
229
-
230
- 3) If setup reports warnings/errors, repair + re-check:
231
- gx doctor
232
-
233
- 4) Confirm next safe agent workflow commands:
234
- bash scripts/codex-agent.sh "task" "agent-name"
235
- bash scripts/agent-branch-start.sh "task" "agent-name"
236
- python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
237
- bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
238
- - For every new user message/task, repeat the same cycle:
239
- start isolated agent branch/worktree -> claim file locks -> implement/verify ->
240
- finish via PR/merge cleanup with scripts/agent-branch-finish.sh.
241
-
242
- 5) Optional: create OpenSpec planning workspace:
243
- bash scripts/openspec/init-plan-workspace.sh "<plan-slug>"
244
-
245
- 6) Optional: protect extra branches:
246
- gx protect add release staging
247
-
248
- 7) Optional: sync your current agent branch with latest base branch:
249
- gx sync --check
250
- gx sync
251
-
252
- 8) Optional (GitHub remote cleanup): enable:
253
- Settings -> General -> Pull Requests -> Automatically delete head branches
113
+ # scan/report
114
+ gx scan
115
+ gx report scorecard --repo github.com/recodeecom/multiagent-safety
254
116
  ```
255
117
 
256
- ## Basic commands
118
+ ## Important behavior defaults
257
119
 
258
- ```sh
259
- gx status [--target <path>] [--json]
260
- gx setup [--target <path>] [--dry-run] [--yes-global-install|--no-global-install] [--no-gitignore] [--allow-protected-base-write]
261
- gx init [--target <path>] [--dry-run] [--yes-global-install|--no-global-install] [--no-gitignore] [--allow-protected-base-write]
262
- gx doctor [--target <path>] [--dry-run] [--json] [--keep-stale-locks] [--no-gitignore] [--allow-protected-base-write]
263
- gx copy-prompt
264
- gx copy-commands
265
- gx protect list [--target <path>]
266
- gx protect add <branch...> [--target <path>]
267
- gx protect remove <branch...> [--target <path>]
268
- gx protect set <branch...> [--target <path>]
269
- gx protect reset [--target <path>]
270
- gx sync --check [--target <path>] [--base <branch>] [--json]
271
- gx sync [--target <path>] [--base <branch>] [--strategy rebase|merge] [--ff-only]
272
- gx report scorecard [--target <path>] [--repo github.com/<owner>/<repo>] [--scorecard-json <file>] [--output-dir <path>] [--date YYYY-MM-DD]
273
- bash scripts/agent-worktree-prune.sh # manual stale worktree cleanup (auto base detection)
274
- bash scripts/agent-worktree-prune.sh --force-dirty # remove stale dirty worktrees too
275
- bash scripts/openspec/init-plan-workspace.sh <plan-slug> # optional OpenSpec plan scaffold
276
- ```
120
+ - No command defaults to `gx status`.
121
+ - `gx init` is alias of `gx setup`.
122
+ - Setup/doctor can install missing global OMX/OpenSpec/codex-auth with explicit Y/N confirmation.
123
+ - `gx setup` checks GitHub CLI (`gh`) and prints install guidance if missing.
124
+ - Interactive self-update prompt defaults to **No** (`[y/N]`).
125
+ - In initialized repos, `setup`/`install`/`fix` block protected-base writes unless explicitly overridden.
126
+ - On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree.
127
+ - `scripts/agent-branch-start.sh` hydrates `scripts/codex-agent.sh` into new sandbox worktrees when missing, so auto-finish launcher flow stays available.
277
128
 
278
- No command defaults to `gx status` (non-mutating health/status view).
279
- `gx status` reports CLI/runtime info, global OMX/OpenSpec/codex-auth service status, and repo safety service state.
280
- `gx init` is an alias of `gx setup`.
281
- When run in an interactive terminal, default `GuardeX` checks npm for a newer version first
282
- and asks `[y/N]` whether to update immediately (default is `N`).
129
+ ## Configure protected branches
283
130
 
284
- - Interactive setup: prompts for Y/N approval before global OMX/OpenSpec/codex-auth install.
285
- - Interactive prompt is strict (`[y/n]`) and waits for explicit answer.
286
- - Non-interactive setup: skips global installs by default; use `--yes-global-install` to force.
287
- - In already-initialized repos, `setup` / `install` / `fix` / `doctor` block writes on protected `main` by default; start an agent branch first. Use `--allow-protected-base-write` only for emergency in-place maintenance.
288
- - `scripts/codex-agent.sh` now auto-runs worktree prune after a Codex session; clean sandbox branches are removed automatically, dirty ones are kept.
131
+ Default protected branches:
289
132
 
290
- ## Advanced commands
133
+ - `dev`
134
+ - `main`
135
+ - `master`
291
136
 
292
137
  ```sh
293
- gx install [--target <path>] [--force] [--skip-agents] [--skip-package-json] [--no-gitignore] [--dry-run] [--allow-protected-base-write]
294
- gx fix [--target <path>] [--dry-run] [--keep-stale-locks] [--no-gitignore] [--allow-protected-base-write]
295
- gx scan [--target <path>] [--json]
296
- gx report help
138
+ gx protect list
139
+ gx protect set main release hotfix
140
+ gx protect reset
297
141
  ```
298
142
 
299
- ## Keep agent branches synced with your base branch
300
-
301
- Use sync checks before finishing agent branches:
143
+ Stored in git config key:
302
144
 
303
- ```sh
304
- gx sync --check
305
- gx sync
145
+ ```text
146
+ multiagent.protectedBranches
306
147
  ```
307
148
 
308
- Defaults:
309
-
310
- - `gx sync` base branch: `dev` (or `multiagent.baseBranch`)
311
- - strategy: `rebase` (or `multiagent.sync.strategy`)
312
-
313
- `agent-branch-start.sh` and `agent-branch-finish.sh` resolve base branch in this order:
314
-
315
- 1. explicit `--base`
316
- 2. `multiagent.baseBranch`
317
- 3. branch-linked base metadata / source upstream / current checked-out branch (context-dependent)
318
- 4. fallback `dev`
149
+ ## Companion dependency: GitHub CLI (`gh`)
319
150
 
320
- Useful variants:
151
+ GuardeX PR/merge automation depends on GitHub CLI (`gh`), including
152
+ `agent-branch-finish.sh` PR flows and `codex-agent.sh` auto-finish behavior.
321
153
 
322
- ```sh
323
- gx sync --strategy merge
324
- gx sync --all-agent-branches --check
325
- ```
326
-
327
- By default, `agent-branch-finish.sh` also blocks finishing when your branch is behind `origin/<base>` and points to `gx sync`.
328
-
329
- Optional pre-commit behind-threshold gate (off by default):
154
+ Install + verify:
330
155
 
331
156
  ```sh
332
- git config multiagent.sync.requireBeforeCommit true
333
- git config multiagent.sync.maxBehindCommits 0
157
+ # install guide: https://cli.github.com/
158
+ gh --version
159
+ gh auth status
334
160
  ```
335
161
 
336
- With that enabled, agent-branch commits are blocked if the branch is behind `origin/<base>` by more than the configured threshold.
162
+ ## Companion dependency: `codex-auth` account switcher
337
163
 
338
- ## Configure protected branches
339
-
340
- Default protected branches are:
341
-
342
- - `dev`
343
- - `main`
344
- - `master`
164
+ For multi-identity Codex workflows, GuardeX pairs with
165
+ [`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli).
345
166
 
346
- You can manage additional protected branches via CLI:
167
+ Install:
347
168
 
348
169
  ```sh
349
- gx protect list
350
- gx protect add release staging
351
- gx protect remove dev
352
- gx protect set main release hotfix
353
- gx protect reset
170
+ npm i -g @imdeadpool/codex-account-switcher
354
171
  ```
355
172
 
356
- Configuration is stored in local git config key:
173
+ Common commands:
357
174
 
358
- ```text
359
- multiagent.protectedBranches
175
+ ```sh
176
+ codex-auth save <name>
177
+ codex-auth use <name>
178
+ codex-auth list --details
179
+ codex-auth current
360
180
  ```
361
181
 
362
- ## What is protected
363
-
364
- - direct commits to protected branches (defaults: `dev`, `main`, `master`; configurable via `gx protect ...`)
365
- - protected-branch commits are blocked regardless of commit client (including VS Code Source Control)
366
- - Codex-session commits on non-`agent/*` branches are blocked by default (`multiagent.codexRequireAgentBranch=true`)
367
- - Codex commits attempted on protected branches trigger `guardex-preedit-guard` and require starting work via `scripts/codex-agent.sh`
368
- - overlapping file ownership between agents
369
- - unapproved deletions of claimed files
370
- - risky stale/missing lock state
371
- - accidental loss of critical guardrail files
372
- - in-place branch bootstrap requires explicit opt-in (`--in-place --allow-in-place`)
373
- - setup also writes a managed `.gitignore` block so generated gx scripts/hooks stay out of normal git status noise by default
374
- - includes `oh-my-codex/` by default to keep local OMX source clones out of repo status
375
- - pass `--no-gitignore` if you want to keep tracking these files in git
376
-
377
- ## Files it installs
182
+ ## Files installed by setup
378
183
 
379
184
  ```text
380
185
  scripts/agent-branch-start.sh
@@ -390,7 +195,14 @@ scripts/openspec/init-plan-workspace.sh
390
195
  .omx/state/agent-file-locks.json
391
196
  ```
392
197
 
393
- If `package.json` exists, it also adds helper scripts (`agent:*`).
198
+ If `package.json` exists, setup also adds `agent:*` helper scripts.
199
+
200
+ ## Security and maintenance posture
201
+
202
+ - CI matrix on Node 18/20/22 (`npm test`, `node --check`, `npm pack --dry-run`)
203
+ - trusted publishing with provenance in GitHub Actions
204
+ - OpenSSF Scorecard + Dependabot for Actions
205
+ - disclosure policy in [`SECURITY.md`](./SECURITY.md)
394
206
 
395
207
  ## Local development
396
208
 
@@ -402,6 +214,24 @@ npm pack --dry-run
402
214
 
403
215
  ## Release notes
404
216
 
217
+ ### v5.0.3
218
+
219
+ - Bumped package version from `5.0.2` to `5.0.3` for the next npm publish.
220
+
221
+ ### v5.0.2
222
+
223
+ - Auto-closes Codex sandbox branches through PR workflow and keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
224
+ - Runs `gx doctor` repairs from a sandbox when `main` is protected.
225
+ - Allows tightly guarded Codex-only commits for `AGENTS.md` / `.gitignore` on protected branches.
226
+ - Advanced package version to keep npm publishing unblocked.
227
+
228
+ ### v5.0.0
229
+
230
+ - Rebranded the CLI to **GuardeX** with `gx`-first command UX.
231
+ - Published under scoped package name `@imdeadpool/guardex` to avoid npm name collisions.
232
+ - Enforced a repeatable per-message agent branch lifecycle in setup/init flows.
233
+ - Added codex-auth-aware sandbox branch naming support.
234
+
405
235
  ### v0.4.6
406
236
 
407
237
  - Added repository metadata (`repository`, `bugs`, `homepage`, `funding`) in package manifest.
@@ -425,9 +255,9 @@ npm pack --dry-run
425
255
 
426
256
  - Setup now detects existing global OMX/OpenSpec installs first.
427
257
  - If tools are already present, setup skips global install automatically.
428
- - Interactive approval is now strict `[y/n]` (waits for explicit answer).
258
+ - Interactive approval is strict `[y/n]` (waits for explicit answer).
429
259
  - Added setup screenshot to README.
430
- - Added 3 additional workflow screenshots (branch start, lock/delete guard, source-control view).
260
+ - Added workflow screenshots (branch start, lock/delete guard, source-control view).
431
261
 
432
262
  ### v0.4.0
433
263