From dso
Detect feedback oscillation in iterative review loops using structural diff comparison. Invoke before implementing review feedback.
npx claudepluginhub navapbc/digital-service-orchestra --plugin dso-devThis skill is limited to using the following tools:
Detects when iterative review feedback would revert changes made by a previous
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Detects when iterative review feedback would revert changes made by a previous iteration -- preventing infinite fix-revert-fix loops.
Invoke as a sub-agent from:
/dso:review feedback on iteration 2+/dso:sprint Phase 8: Before creating remediation tasks from re-validation/dso:debug-everything Phase 6.1b: Before retrying a fix after critic CONCERNThe orchestrator provides:
files_targeted: List of files the current feedback wants to modifyiteration: Current iteration number (1-indexed)context: One of review, remediation, criticcommit_before_previous_fix: Git commit SHA from before the previous iteration's changes (optional -- if not provided, use HEAD~1)epic_id: (for remediation context only) The epic whose children to checkreview and critic context:CLEAR (no previous iteration to compare)git diff {commit_before_previous_fix}..HEAD -- {files_targeted}
b. If the diff is empty (previous iteration didn't touch these files) -> CLEAR
c. If the diff is non-empty: the current feedback targets files that were already
modified. Analyze the feedback direction:
OSCILLATIONCLEARremediation context:.claude/scripts/dso ticket deps {epic_id}
Filter for tasks with "Fix:" prefix and status=closed..claude/scripts/dso ticket show <id>) to find
modified files.files_targeted against the closed tasks' modified files.OSCILLATION (same files being re-remediated)CLEAROSCILLATION CHECK
=================
Context: {review|remediation|critic}
Iteration: {N}
Files checked: {file1}, {file2}, ...
Result: CLEAR | OSCILLATION
(If OSCILLATION):
Conflicting iterations:
Previous (iteration {N-1}): Changed {files} -- {summary of changes}
Current (iteration {N}): Wants to {summary of proposed changes}
Direction: REVERSAL -- current feedback undoes previous fix
Recommendation: Stop loop. Present both positions to user.
| Context | Max Iterations | On Limit |
|---|---|---|
/dso:review autonomous loop | review.max_resolution_attempts (default: 5) | Escalate to user (findings + actions taken) |
/dso:review total (with user) | review.max_resolution_attempts + 3 (user-driven buffer) | Stop, report to user |
/dso:debug-everything critic | 2 revert cycles per issue | Escalate to user |
/dso:sprint remediation | 2 loops | Flag to user |
git commit, git push, .claude/scripts/dso ticket transition, edit .tickets-tracker/ filesgit diff, git log, .claude/scripts/dso ticket show, .claude/scripts/dso ticket deps