Skip to content

Close #54 and #41; release 0.21.2 - #69

Merged
b10x-bot[bot] merged 7 commits into
mainfrom
wave/close-54-41
Oct 7, 2026
Merged

b10x-bot[bot] merged 7 commits into
mainfrom
wave/close-54-41

Conversation

@b10x-bot

@b10x-bot b10x-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Closes two issues in one wave and releases 0.21.2.

story change
story:legacy-store-refused aep:planning and aep:implementing say the newest aep refuses an aep.project/1 store with [unsupported_protocol_version] before any write; store work stops until the user approves aep plan store migrate git --dry-run, then --verify, and commits. agentplugins-check tools probes the newest aep on a generated /1 store and flags a skill row that disagrees
story:commands-agent-invocable aep:wave, aep:drive, aep:decompose, aep:review-plan, worktree:cleanup drop disable-model-invocation and the Codex allow_implicit_invocation: false. R3, authoring-plugins, routing and the b10x, aep and worktree pages teach the new rule. The gate allows an operator-only skill only with both flags and an Operator-only: sentence. Five eval cases start each command from an agent turn

No command keeps the flag: aep:wave stops at its stage-1 proposal, aep:decompose writes drafts only, aep:review-plan is read-only, aep:drive hands off to aep:implementing drive mode, and worktree:cleanup applies only after a dry-run. Without an operator request it stops after the dry-run.

check result
adversary on the commands unit 8 findings: 6 introduced, fixed in ba946f9; 1 pre-existing doc line fixed; 1 pre-existing left (below)
agentplugins-check tools (unit) aep 0.68.0: refuses an aep.project/1 store; 2 rows checked
task check on c1774e5's parent 26834f6 fmt 0, clippy 0, test 0 (174 tests), agentplugins-check 0 (22 eval cases)

Left open: the git regexes in the wave-claim-verdict, adversary-panel-one-family and adversary-tests-only eval cases miss git -C <dir> <verb>. That gap predates this change.

Fixes #54
Fixes #41

b10x-bot Bot added 7 commits October 7, 2026 10:07
- story:legacy-store-refused: the AEP planning and implementing skills
  say the newest aep refuses an aep.project/1 store and name
  `aep plan store migrate git`; `tools` checks the claim
- story:commands-agent-invocable: the five command skills drop
  disable-model-invocation; R3, the gate and one eval per command follow
- both active, scoped, one wave with no collision
- planning and implementing store-version tables: aep refuses a /1
  store with [unsupported_protocol_version] before any write; a
  journal.jsonl plan with no project.yaml is refused naming the
  migration; `aep plan store migrate git` is the one verb that opens it
- store work stops until the user approves; --dry-run, then --verify,
  then commit; no older aep, no hand edits
- agentplugins-check tools probes the newest aep on a generated /1
  fixture and flags a skill row that disagrees; offline tests for the
  row and answer readers (5 new)

Fixes #54
Five command skills set disable-model-invocation and, for Codex,
allow_implicit_invocation false. Claude Code's Skill tool refused them to
an agent and told it not to follow the steps by other means, so an agent
asked in words for exactly what a command does had to stop and ask the
operator to type it. Each command's risky step is already gated inside
its procedure.

- aep:wave, aep:drive, aep:decompose, aep:review-plan, worktree:cleanup:
  flag and Codex policy removed; descriptions say the operator or an
  agent acting on the operator's request starts them
- worktree:cleanup: the operator's request (the command, or the same
  request in words) authorizes the apply; without one it stops after the
  dry-run
- R3 (structure page), authoring-plugins, routing and the b10x, aep and
  worktree plugin pages teach the new rule; a skill kept operator-only
  sets both flags and states why in an `Operator-only:` sentence
- agentplugins-check: the two flags must agree with each other and with
  an `Operator-only:` sentence, on every skill; tests 98 -> 107
- evals: one case per command that starts it from an agent turn and
  accepts its documented stop, never a refusal at invocation; 17 -> 22

Fixes #41
- the flag is read from the parsed frontmatter with Claude Code's truthy
  rule: true, or 1/true/yes/on in any case, quoted or with a comment
- an `Operator-only:` sentence may start a line of a block-scalar
  description
- the wave, cleanup and drive eval rows match `git -C <dir> <verb>` and
  other leading git options, and a quoted METAHARNESS_LIVE value
- a test runs plugin() over a fixture plugin, so dropping the
  invocation() call turns the suite red
- website/docs/plugins/worktree.md:15 no longer says cleanup removes only
  the ids the operator approves
- four adversary tests kept as written; tests 107 -> 112
- e4628fd: an agent can start every command skill
- ba946f9: the adversary's invocation-rule and eval-regex findings fixed
- CHANGELOG: the aep.project/1 refusal and the agent-invocable commands
- workspace, Cargo.lock, every carried plugin manifest and every
  Skill version line: 0.21.1 -> 0.21.2
- review-result:adversary-commands-agent-invocable-pass-1: the
  adversary's report as returned; 8 outcomes (7 fixed, 1 no-op: the
  pre-existing git -C gap in three older eval cases)
- verification and test_result evidence for both stories; task check
  steps fmt, clippy, test (174 tests) and agentplugins-check exit 0
- Scope sections and typed scope rewritten from the implementors'
  confirmation tables
- story:legacy-store-refused and story:commands-agent-invocable move
  active -> implemented
@b10x-bot
b10x-bot Bot merged commit 542ccca into main Oct 7, 2026
6 checks passed
@b10x-bot
b10x-bot Bot deleted the wave/close-54-41 branch October 7, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

0 participants