fix(work-items): reconcile triage step-2 wait-gate with autonomous mode (#459) - #564
Conversation
…de (#459) Step 2 ("Recommend category + state") ended with a flat "Wait for the user's direction before mutating anything," while the AI disclaimer section presupposed the opposite — autonomous/agent sessions that mutate without a human turn. No branch selected between them, so an operator following step 2 could not triage autonomously and an autonomous lane necessarily violated step 2. Replace the single wait-line with an explicit two-branch direction gate: interactive sessions (a human present, no standing lane rules) keep the wait-gate; autonomous /loop / /schedule AFK lanes treat their standing rules as the direction the gate requires and proceed without a human turn — the mode the AI disclaimer already anticipates — so the gate is satisfied by the lane's mandate rather than silently ignored. Add an eval covering the autonomous-lane branch, bump plugin version to 0.12.3, and record the change in the changelog. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 58s —— View job PR Review
Overall AssessmentThis is a clean, minimal, well-targeted fix. The logic is sound, the contradiction is correctly diagnosed, and the resolution uses the plugin family's existing vocabulary without inventing new terms. No correctness bugs, security issues, or architectural problems. The findings below are minor nits.
|
Post-green review pass (work lane)
Bot review concluded "no blockers... good to merge" — both findings are non-blocking documentation nits, consistent with the PR's deliberately minimal scope. Moving this out of draft. 🤖 Generated with Claude Code |
|
Claude finished @kyle-sexton's task in 1m 49s —— View job PR Review
Overall AssessmentClean, minimal, and correct. The contradiction is accurately diagnosed and resolved with minimal scope: the interactive gate is preserved verbatim; only the autonomous carve-out is added. No correctness bugs, security issues, or architectural concerns. The two findings from the previous bot pass are confirmed as non-blocking nits (both filed as #570); I have one additional minor observation below.
|
Summary
The
triageskill contradicted itself for autonomous/agent sessions. Step 2 ("Recommend category + state") ended with a flat "Wait for the user's direction before mutating anything," while the "AI disclaimer" section explicitly presupposed the opposite — sessions that "[create] comments or items during autonomous/agent triage sessions", i.e. mutate without a human turn. No branch selected between them, so an operator following step 2 literally could not triage autonomously, and an autonomous lane necessarily violated step 2.Fix
Replace the single wait-line at the end of step 2 with an explicit, checkable two-branch direction gate:
/loop//scheduleAFK session whose standing rules (the directive supplied with the invocation) already authorize triage mutations. Those standing rules are the direction the gate requires: the gate is treated as satisfied and triage proceeds without a human turn, prefixing every comment and item with the AI disclaimer. Blocking here would deadlock the lane, so the gate is met by the lane's mandate rather than silently ignored.A closing sentence names the autonomous branch as the exact mode the AI disclaimer already anticipates, so the two sections read as one mode instead of a contradiction. This is the minimal reconciliation the issue asks for — the interactive gate is preserved verbatim; only the autonomous carve-out is added. It uses the plugin family's existing vocabulary (
/loop,/schedule, AFK, standing rules, interactive vs unattended) rather than inventing new terms, and points at the real operative signal (standing rules supplied with the invocation) rather than auserConfig/session flag the plugin does not ship.An eval (
triage-autonomous-lane-treats-standing-rules-as-direction) guards the new branch against regression; the existing interactive-PR eval (which asserts the wait-gate) is unchanged.Verification
Repo lint gates, run against the changed files in the worktree (all pass):
plugins/work-items/.claude-plugin/plugin.jsonbumped0.12.2→0.12.3(patch — documentation/behavioral clarification, no new capability) with a matchingCHANGELOG.mdentry. No other file pins the version (marketplace.jsonreferences the plugin by source path, not version).Closes #459
Related
🤖 Generated with Claude Code
https://claude.ai/code/session_011V31qpAHP3jfs76B9d5Rfo