Repository navigation
Adapt the community implement and review workflows into delivery skills (closes #3720) - #3767
Conversation
Pragmatic Code Review: PR #3767 (issue #3720)Review Type: Initial review (no prior reviews or comments on the PR). 32 files, +668/-88. SummarySound, well-scoped change. The issue-scoped queues and the issue findings Play are written against Requirements Check
Code Review FindingsBlockers
Suggested Improvements
Nitpicks
Standards checkNo RecommendationREQUEST CHANGES. The design is right and the change is a clear net positive; the blockers are cheap: (1) show each new rule condition reverted makes a named test fail, (2) post the per-skill source/licence comment, (3) resolve the "In progress" criterion (amend the issue or fix the query), and ideally (4) anchor the finding/decision matching so rule 1 cannot fail open. The rest is optional polish. |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review: REQUEST CHANGES (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
Review addressedAddressed
Skipped: project-filter snippet test (generic filter, covered by core tests); Addressing STEP 2 wording (reachable when the Play is switched off); module-doc width nit. Not resolved, needs the owner
Re-Review DecisionDecision: RE-REVIEW NEEDED — the Play's conditions changed (logic, not style), and two acceptance items remain open. |
fae1fc3 to
45e2491
Compare
Open items resolved"In progress" no longer lists a sent-back issue. A property filter takes Mutation check. Each condition was reverted in turn and a named test failed:
Evals (gemma-4-e4b-q4km, one rep, isolated daemon):
The merge-base run was degraded by many 100–180 s timeouts with no tool calls, so it is not a quality comparison. Every failure on this branch except Rebase
Re-Review DecisionRE-REVIEW NEEDED: new engine surface ( |
Pragmatic Code Review: PR #3767 (issue #3720), Re-ReviewReview Type: Re-Review of head 6950415 (rebased; commits "Address review: anchor finding...", "Leave a sent-back issue out of In progress...", "Rebase fixes...", "Describe the issue-scoped queues..."). Previous Review SummaryFirst review: 2 blockers, 6 improvements, 5 nits. Now: 2 blockers addressed, 4 improvements addressed, 2 skipped fairly, 1 not fully addressed (eval evidence is thin but present), nits 3/5 addressed.
Requirements Check (#3720)All acceptance criteria are now met in code, tests or docs:
FindingsCritical / BlockersNone. Suggested Improvements
Anchored matching (HAS_UNDECIDED_FINDING / HAS_OPEN_FIX)Correct for the stated cases: Nitpicks
Standards Check
RecommendationAPPROVE. Both prior blockers are resolved, all #3720 criteria are now met, and the rules are correct. The remaining items are all about hardening the new |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review (re-review): APPROVE (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
Re-review addressedAddressed
Skipped
Re-Review DecisionDecision: NO RE-REVIEW NEEDED Rationale: The re-review already approved the design and the logic. These changes move one validation to the shared validator, add a test, and document the flag; no rule condition or query behaviour changed. |
…elivery skills (closes #3720) Implementing a Task is test-first and the user chooses the work; Reviewing a Task is a separate session's two passes with a recorded decision per finding; Addressing Review Findings is the implementing session's procedure on the Changes requested queue. Awaiting review, Changes requested and Ready to merge are written against issue, and an issue findings Play refuses leaving review with an undecided finding or returning with an open fix. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ts then reads - A finding is a checkbox whose text starts with its marker and Finding (; a decision is one of the three tokens Decision: fix. / defer. / reject., so a finding that quotes the word Decision: is still undecided (test added). - Reviewing's take rule lists the queue and reads the chosen issue, so a session that implemented the first one can reach the next. - Stale test name fixed; ADR-092 gained the token wording and the known self-review gap (nodespace-docs). Skipped: project-filter snippet test (generic filter, covered by core tests); Addressing STEP 2 wording (reachable when the rule is switched off); eval run and mutation evidence (see the PR); retargeting In progress (empties it for non-development teams). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… flag A query for task reads an issue's changes_requested as in_progress, so In progress listed it beside Changes requested and gave it two procedures. A property filter now takes stored: true to compare each row's stored value, and In progress excludes changes_requested with it. Plain tasks are unaffected. Mutation check: each new rule condition, both status arms, the stored handling and the In progress exclusion was reverted in turn and a named test failed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… goldens Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ded query sentences Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ent it for agents and the CLI - stored is refused on a non-property filter in the validator every path runs, beside relative_date; the input-struct check is removed. - Engine-level test: a task query with and without stored, negated, a plain task row, and the refusal on another filter type. - stored is in run_query's filter item schema and the CLI help (and the generated command reference). - The finding rule's message names the tokens with their trailing period. Skipped: description sentence naming the stored comparison (the sentence is already true to a reader); uppercase [X] markers (the skills write lowercase). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
afc4d53 to
4ae5100
Compare
Closes #3720.
What ships
ready_to_merge, a plain taskdone.in_review.issue; new "Changes requested" and "Ready to merge" targetissue.issue): refuses leaving review while a finding has no decision, and refusesin_review/ready_to_mergewhile a finding decided fix is unchecked.Finding (; the existing criteria rule keeps an unfixed one from reachingdone. Documented, with the alternatives not chosen, in ADR-092 §8 (nodespace-docs, pushed before the code).Needs your call
changes_requestedissues. It is written againsttask, where that status reads asin_progress, so such an issue carries both Implementing a Task and Addressing Review Findings (Implementing hands over to Addressing). Retargeting it toissuewould empty the queue for teams that do not write software. This misses the acceptance criterion "not in In progress"; a fix needs either a per-filter scope or a type-split of the queue.an_issue_moves_through_review_by_its_findings,an_unfixed_finding_cannot_reach_done,a_plain_task_is_touched_by_none_of_the_review_rules) have not been shown to fail with the condition reverted.Verification
bun run test:changed(rust, scripts, types, node-types): passed. Confusion matrix and prompt goldens re-recorded.🤖 Generated with Claude Code