Repository navigation
feat(work-items): route an idea issue to an interview before triage explores it - #11918
Conversation
Lane-Activity: work-resolve-issue/resolve-issue
Lane-Activity: pr-unblock/address-feedback Lane-Thread: PRRT_kwDOTCGFQM6yYIKA Lane-Thread: PRRT_kwDOTCGFQM6yYIKF
…69-idea-issue-interview-route
Add needs-spec to the tracker's human floor (lib/labels.sh) so list-frontier --autonomous drops a parked idea issue the way it drops status: needs-decision and status: needs-info items. The frontier test's STATUS fixture gains a needs-spec item, and CONTRACT.md's floor sentence names the label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c1085fb6ab
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-security-review reviewed Security review (incremental, since fd819b9)This review covers one file: The file is not on a trusted path, and it is not a plugin manifest or a standing instruction surface. It only documents how an eval grader behaves. Nothing in it reaches a credentialed lane, token scope, merge hold or manifest. It does not change the trusted-actor list, the kill switch or the token broker. The skip gate applies (item 2): the change has no surface a security review needs to examine. No security issues found. critical-findings: 0 |
|
claude-review reviewed Incremental review (fd819b9 → a7a8476): no findings. The only change since the last review is the scope comment above the I checked the new comment against the
The fix is a comment only, so no test could fail if it were wrong. Nothing in this change bears on the closing issue's (#11869) acceptance criteria. The PR context contains no embedded instructions aimed at the lane. |
…ea issue's labels Nothing removed needs-spec once an idea issue's interview was done, and the "already triaged, stop" rule refused a re-run on an item without the raw marker, so a specified item stayed off the autonomous frontier for good. Triage step 1, the side-exit line and the state diagram now return the item to raw once an interview records its intent: one label edit removes needs-spec and restores the raw marker, then triage runs from step 1. A signal-marked idea issue's labels are now named in place of a pointer whose paragraph also applies the human-gated role label: it gets provenance: signal and work-class: untrusted-provenance (provenance: signal alone in a lane barred from recording a class), and never the human-gated role label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeBVgcHpe4YpFuL5b24Ft2
…nd item-store reads The no-bash-search grader in tr-idea-issue-routes-to-interview failed a run that grepped the plugin's own references, listed the item store, or filtered the tracker seam's output, while no-grep and no-glob pass the same reads. It now carries the same exemption (.work, /work-items/, and the work-item-tracker.sh seam), and each of those three commands is a pass sample. The six fail samples still fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d in the idea-issue grader The no-bash-search exemption applied to the whole Bash input, so a command that also named the item store, the plugin cache or the seam hid a code search chained after it (cat .work-items/1.md && grep -rn plugin src), and the bare .work prefix exempted .workspace. The grader now checks each command segment split on ;, &, ( and newlines, exempts a segment only when it names .work-items (not as an --exclude-dir= value), /work-items/ or work-item-tracker.sh, and keeps a pipe inside its segment so a filtered seam read still passes. Four fail samples pin the boundary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gment The segment split treated the & of 2>&1, >&2 and &>/dev/null as a command separator, so a seam read piped through 2>&1 | grep failed the grader. A lone & still splits; an & next to > stays in the segment. Add pass samples for the three redirect forms and fail samples for a redirected source listing and a grep after a redirected seam read, and state the grader's scope above it: heredoc bodies and quoting are not parsed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gment The scope comment listed || as a separator; the pattern has no || starter and its segment class admits |, so a search after `store-read ||` is exempt. Correct the comment; the pattern is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #11869
Summary
Triage now recognizes an idea issue: a feature request that names something to build but says nothing about what it is for. Such an item skips the redundancy, ledger and cluster checks and steps 2 to 4 (step 2's direction gate still applies). Triage runs the needs-spec label preflight, posts a comment naming /planning:interview as the next step, then in one edit applies needs-spec and removes the raw marker. A lane does not run the interview; an interactive session offers to. A new eval case checks the route and that triage does no exploration.
The tracker's human floor now holds
needs-spec, solist-frontier --autonomousdrops a parked idea issue the way it dropsstatus: needs-decisionandstatus: needs-infoitems.This carries the work of #11893 (merged in unchanged) plus the floor fix its open review thread asked for, which that PR's fix lane could not take: its scope check refused
lib/frontier.test.sh.Not verified
scripts/fixtures/rule-admit/cases.jsonrefusesstatus: needs-infothrough the rule-admit script, a separate mechanism from the frontier floor; it was not changed forneeds-spec, since the label-path lanes already need the autonomous-eligible labelFix
## Nexttrimmed to four bulletsneeds-specadded toWIT_HUMAN_FLOOR_STATUS_LABELS, with a comment that it is a bare Meta label, not astatus:valueneeds-specitem; the autonomous frontier drops it and the default frontier keeps itneeds-specVerification
bash plugins/work-items/tools/work-item-tracker/lib/frontier.test.sh: 25 of 25 pass. With the labels.sh change stashed, case 20 fails (expected github:o/r#1 got github:o/r#1,github:o/r#11), so the test covers the fixpython3 plugins/evals/skills/validate/scripts/validate-cases.py plugins/work-items/evals: exit 0, warnings only (none new beyond the allowed_tools grant notes every Bash/Edit/Write case carries)bash plugins/skill-quality/scripts/check-skill.sh plugins/work-items/skills: 10 passed, 0 failed; triage SKILL.md is 499/500 linesscripts/check-changelog-fragments.sh --check: all 75 fragments validcheck-affected: passedRelated
🤖 Generated with Claude Code