fix(gates): one --gates rule in every command, run through the shim, and no executor pause the executor lacks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e2fcf4060c
commit
af36578f12
11 changed files with 190 additions and 52 deletions
|
|
@ -40,15 +40,27 @@ Parse `$ARGUMENTS`:
|
|||
2. Otherwise: **mode = default**. Interview probes each section until the
|
||||
completeness gate (Phase 3) and brief-review gate (Phase 4) both pass.
|
||||
|
||||
3. `--gates` flag (autonomy control, may combine with any mode): when
|
||||
present, set `gates_mode = true`. This re-enables approval pauses at
|
||||
every phase boundary in the downstream pipeline (research, plan,
|
||||
execute) and at every wave in the executor. Default `gates_mode = false`
|
||||
3. `--gates` flag (autonomy control, may combine with any mode): `--gates`
|
||||
takes the next token as its value only when it is `true`, `false`,
|
||||
`closed` or `open` (strip both); any other next token is not its value
|
||||
(strip only the flag). Run the shim once to map the value, bare when
|
||||
there is no value:
|
||||
|
||||
```bash
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state idle --event start --gates [value]
|
||||
```
|
||||
|
||||
`next_state: gates_on` sets `gates_mode = true`, `auto_running` sets it
|
||||
false, and nothing else reads the state. On exit 1 or no JSON (a broken
|
||||
shim; the four values cannot cause it), print the error in one line and
|
||||
map in prose instead: bare, `true`, `closed` → true; `false`, `open` →
|
||||
false. The run goes on either way. `gates_mode = true` re-enables
|
||||
approval pauses at every phase boundary in the downstream pipeline
|
||||
(research, plan). Default `gates_mode = false`
|
||||
means auto mode runs continuously until the main-merge gate (which is
|
||||
the one boundary that ALWAYS pauses, regardless of `gates_mode`). Strip
|
||||
the flag from `$ARGUMENTS` before further parsing. The flag is consumed
|
||||
by the autonomy-gate state machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
the flag (and its value, when it has one) from `$ARGUMENTS` before
|
||||
further parsing.
|
||||
|
||||
4. `--approve <project-dir | brief-file>`: set **mode = approve**. No
|
||||
interview, no drafting. Set `APPROVE_ARG` to the argument and resolve it:
|
||||
|
|
|
|||
|
|
@ -56,10 +56,22 @@ Parse `$ARGUMENTS` for mode flags:
|
|||
Set **mode = step**, **target-step = N**.
|
||||
7. If arguments contain `--session N` (N is a positive integer): extract N and the file path.
|
||||
Set **mode = session**, **target-session = N**.
|
||||
8. If arguments contain `--gates`: set `gates_mode = true`. Default
|
||||
`gates_mode = false`. The flag is consumed by the autonomy-gate state
|
||||
machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
8. If arguments contain `--gates`: `--gates` takes the next token as its
|
||||
value only when it is `true`, `false`, `closed` or `open` (strip both);
|
||||
any other next token is not its value (strip only the flag). Run the shim
|
||||
once to map the value, bare when there is no value:
|
||||
|
||||
```bash
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state idle --event start --gates [value]
|
||||
```
|
||||
|
||||
`next_state: gates_on` sets `gates_mode = true`, `auto_running` sets it
|
||||
false, and nothing else reads the state. On exit 1 or no JSON (a broken
|
||||
shim; the four values cannot cause it), print the error in one line and
|
||||
map in prose instead: bare, `true`, `closed` → true; `false`, `open` →
|
||||
false. The run goes on either way. Default `gates_mode = false`.
|
||||
`/trekexecute` records `gates_mode`; no phase of it pauses on it. The one
|
||||
stop is the merge into main, which always asks (Phase 8).
|
||||
It no longer adds a question of the executor's own before a merge. The
|
||||
wave merge-back (Phase 2.6 Step 3) and the merge into main (Phase 8) are
|
||||
asked by the guard, which asks before every merge into main and every push,
|
||||
|
|
|
|||
|
|
@ -124,12 +124,23 @@ Parse `$ARGUMENTS` for mode flags. Order of precedence:
|
|||
7. **`--quick`** — set **mode = quick**. Skip agent swarm; use lightweight
|
||||
Glob/Grep scan and go directly to planning + adversarial review.
|
||||
|
||||
8. **`--gates`** — autonomy control. When present, set `gates_mode = true`.
|
||||
Pause for operator confirmation after Phase 5 (exploration), Phase 7
|
||||
(synthesis), and Phase 9 (adversarial review). Default `gates_mode =
|
||||
false` lets phases flow continuously. The flag is consumed by the
|
||||
autonomy-gate state machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
8. **`--gates`** — autonomy control. `--gates` takes the next token as its
|
||||
value only when it is `true`, `false`, `closed` or `open` (strip both);
|
||||
any other next token is not its value (strip only the flag). Run the shim
|
||||
once to map the value, bare when there is no value:
|
||||
|
||||
```bash
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state idle --event start --gates [value]
|
||||
```
|
||||
|
||||
`next_state: gates_on` sets `gates_mode = true`, `auto_running` sets it
|
||||
false, and nothing else reads the state. On exit 1 or no JSON (a broken
|
||||
shim; the four values cannot cause it), print the error in one line and
|
||||
map in prose instead: bare, `true`, `closed` → true; `false`, `open` →
|
||||
false. The run goes on either way. With `gates_mode = true`, pause for
|
||||
operator confirmation after Phase 5 (exploration), Phase 7 (synthesis),
|
||||
and Phase 9 (adversarial review). Default `gates_mode = false` lets
|
||||
phases flow continuously.
|
||||
|
||||
9. **`--min-brief-version <ver>`** — (optional) version floor. Set
|
||||
**min_brief_version = {ver}** (e.g. `2.2`). Forwarded to the brief-validator
|
||||
|
|
|
|||
|
|
@ -72,12 +72,23 @@ Supported flags:
|
|||
node ${CLAUDE_PLUGIN_ROOT}/lib/profiles/resolver.mjs --resolve-phase-model --phase research --brief-path "{dir}/brief.md" [--profile {profile}] --json
|
||||
```
|
||||
|
||||
6. `--gates` — autonomy control. When present, set `gates_mode = true`. The
|
||||
6. `--gates` — autonomy control. `--gates` takes the next token as its
|
||||
value only when it is `true`, `false`, `closed` or `open` (strip both);
|
||||
any other next token is not its value (strip only the flag). Run the shim
|
||||
once to map the value, bare when there is no value:
|
||||
|
||||
```bash
|
||||
node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state idle --event start --gates [value]
|
||||
```
|
||||
|
||||
`next_state: gates_on` sets `gates_mode = true`, `auto_running` sets it
|
||||
false, and nothing else reads the state. On exit 1 or no JSON (a broken
|
||||
shim; the four values cannot cause it), print the error in one line and
|
||||
map in prose instead: bare, `true`, `closed` → true; `false`, `open` →
|
||||
false. The run goes on either way. With `gates_mode = true`, the
|
||||
research command will pause after each topic completes ("Topic N
|
||||
complete. Proceed to topic N+1? (yes/no)"). Default `gates_mode = false`
|
||||
means topics run continuously. The flag is consumed by the autonomy-gate
|
||||
state machine via the CLI shim:
|
||||
`node ${CLAUDE_PLUGIN_ROOT}/lib/util/autonomy-gate.mjs --state X --event Y --gates {true|false}`.
|
||||
means topics run continuously.
|
||||
|
||||
7. `--min-brief-version <ver>` — (optional) version floor for an attached
|
||||
`--project` brief. Set **min_brief_version = {ver}** (e.g. `2.2`). Forwarded
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue