Repository navigation
Phase 8: hand off to deslop 2 - #63
Conversation
deslop 2 drops thoroughness levels and returns fixes in simple-fixer's action format. Findings it cannot fix mechanically go into the review loop instead of being dropped. Claude-Session: https://claude.ai/code/session_014HwAaKYLFFmSEaWiDe4K3V
There was a problem hiding this comment.
This is an auto review done by revuto.
Revuto completed the review and found no evidence-backed concerns.
avifenesh
left a comment
There was a problem hiding this comment.
Self-review (fresh-context subagent)
Checked against deslop#85 (skills/deslop/SKILL.md, agents/deslop-agent.md, detector/ on rewrite/current-model-slop), deslop 1.3.0 on main, agents/simple-fixer.md and Phases 8-9 of commands/next-task.md on this head.
What matches: deslop 2 fixes (file, line, action remove-line / replace with old+new / insert-after / insert-before, reason) is exactly simple-fixer's input. deslop-agent takes Mode and Scope, Scope: diff is valid in both versions, and dropping Thoroughness is safe on 1.x (its skill defaults to normal).
Blocking: finding 1, unless this ships only after deslop 2 and only to users who have it. Findings 2-4 are not blocking on their own, but they decide whether the carry works at all.
-
commands/next-task.md:91 - with deslop 1.x installed, "findings that have no fix" are every MEDIUM and LOW certainty pattern hit, which 1.x keeps out of
fixeson purpose ("MEDIUM and LOW stay in findings for a human"). This PR turns each one into a high finding that Phase 9 must fix before it can approve. deslop#85's own CHANGELOG measures 1.x at 3,367 findings over 39 PRs at 0.5% precision, so a typical run pushes dozens of mostly false findings into the review loop and tells the fixer to act on them. Before this PR they were dropped. 1.3.0 is the released deslop, and users can update next-task without updating deslop. The PR body's "this also works before the deslop release" holds only for the Thoroughness change. Fix: carry findings only when the result has the deslop 2 shape (findings havecheck, notcertainty/pattern), and keep the old behavior (apply fixes, drop findings) otherwise. -
commands/next-task.md:91 vs 102-104 - carried findings do not fit how Phase 9 works. The format differs (
{file, line, check, message}vs{file, line, severity, description, suggestion}). Phase 9 re-reviews "only what changed", so a carried finding the fix pass skipped is never reported again: the loop counts as approved with it still unfixed and not inremaining. If the orchestrator keeps them open instead, nothing can dismiss a false one, so the loop runs into the stall rule or the 3-round cap. Every other high finding has passed a reviewer's judgment; these skip it, and Phase 9 says fix every high. Suggest: give them to the round-1 reviewer(s) as known issues to confirm and grade in Phase 9's format. Confirmed ones then go through the normal fix and re-review, and dismissed ones go in the report. -
commands/next-task.md:91 - "as high" erases deslop 2's own severity levels. The detector marks em-dash, lint, dropped-rule, no-caller, unread-setting, test-swallows-failure and history-based missing-companion as
review, nothigh, but DESLOP_RESULT has no severity field, so all of them gate approval. em-dash is on by default in any repo without.deslop.json, so a house style rule blocks approval in third-party repos. Some findings cannot be fixed by an edit and a commit:file: "(PR text)", line: 0(scope-claim, em-dash or merge-residue in commit messages, which would need history rewritten) and file-levelline: 0missing-companion. Suggest: ask deslop#85 to keepseverityin findings, map high to high and review to medium, and send(PR text)findings to the report or the Phase 12 PR text, not to Phase 9. -
commands/next-task.md:91 - failed fixes are lost. simple-fixer marks a fix
failedwhen the line text does not match, and the simplify skill runs in parallel on the same diff and moves lines, so some fixes will fail. Those findings had a fix, so "findings that have no fix" leaves them out and nothing picks them up. Fix: carry findings whose fix is missing or came backfailed(match on file, line and check/reason). -
commands/next-task.md:91 - the base is not passed. next-task supports
--base=BRANCH(line 21), but deslop 2 diff scope defaults to origin's default branch (detector/git.jsdefaultBase). With any other base, deslop diffs against the wrong merge base, so stale-mention, missing-path and scope-claim fire on commits from other work, and with this PR they become high findings. deslop-agent accepts a base ref. Fix: passBase: origin/<base>. -
commands/next-task.md:91 - a failed scan counts as clean. deslop 2 returns empty arrays plus an
errorfield when the scan fails (detector exit 1). Phase 8 should treat that like "not installed": run the inline check and list it under "Skipped or substituted". -
commands/next-task.md:91 - the carry instruction comes after the semicolon in "If it lists
fixes, ...". A run with findings and zero fixes can read it as covered by that condition and skip it. Make it a separate sentence. -
CHANGELOG.md:6, README.md:64, README.md:109 - these describe deslop 2 ("Its fixes now match simple-fixer's actions", "leftovers of the change: stale mentions, dead references, tests that cannot fail"), but the released deslop is 1.3.0 and #85 is still open. They are only true with deslop 2 installed. Say "with deslop 2", or release after it. "dead references" can also be read as dead code; "missing paths and anchors" is the deslop 2 term.
-
agents/simple-fixer.md:20-24 - the example still uses deslop 1.x terms (
"commitMessage": "fix: clean up AI slop", reasons "debug log" and "stale TODO"). It does not break anything, because Phase 8 passes its own message, but the example teaches the old terms. -
commands/next-task.md:91 - the fallback without deslop is narrower than deslop 2's HIGH checks. It leaves out paths and links the diff adds that do not exist, and review history in code comments. It also does not say whether the orchestrator fixes what it finds or carries it into Phase 9.
…havior Self-review on #63: carrying every finding without a fix would push deslop 1.x's low-precision MEDIUM/LOW hits into the review loop as high. Only deslop 2 findings (they carry check) are carried, and they go to the round-1 reviewers to confirm and grade instead of straight into the fix list. Failed fixes are carried too, PR-text findings go to the PR description, the base is passed, and an error result counts as not installed. Claude-Session: https://claude.ai/code/session_014HwAaKYLFFmSEaWiDe4K3V
There was a problem hiding this comment.
This is an auto review done by revuto.
Revuto completed the review and found no evidence-backed concerns.
deslop 2 (agent-sh/deslop#85) checks a change for leftovers instead of debug prints and TODOs. Phase 8 follows it:
deslop:deslop-agentwithModeandScopeonly; deslop 2 has no thoroughness levels (1.x defaults to normal when it is absent, so this also works before the deslop release).fixesinsimple-fixer's own action format (remove-line,replacewithold/new,insert-*). 1.x used a differentfixTypevocabulary, so the handoff only worked when the fixer guessed.Prompt-only change; no code paths touched.
https://claude.ai/code/session_014HwAaKYLFFmSEaWiDe4K3V