name: review-against-solid-principles description: "Ensemble SOLID review — fans the ruleset across overlapping focused workers over the same code, then reduces by corroboration."
Review Against SOLID Principles — Ensemble (Arm B)
Fixed paths (relative to this arm directory, the claude -p working directory):
- Ruleset:
../ruleset/solid-rules.json - Targets: every
*.pyunder../corpus/cases/ - Worker reports:
./findings/workers/(absolute path when calling the planner/workers) - Final output:
./findings/findings.md - Ensemble scripts:
plan_ensemble.pyandreduce.pyfrom the ensemble-rule-review skill. From this arm directory they are at../../../plugins/plugin-creator/skills/ensemble-rule-review/scripts/; the runner may pass an absolute path instead — use whichever it provides.
Plan (deterministic). Run the planner over the shared ruleset, with
./findings/workers/(as an ABSOLUTE path) as the report dir:uv run <scripts>/plan_ensemble.py ../ruleset/solid-rules.json \ --report-dir "$(pwd)/findings/workers" --window 2 --jsonUse the worker assignment and recommended keep-threshold from the planner's output.
Map (parallel). Spawn the
principles-revieweragent once per worker in the plan. Give each itsgroups+ per-grouprulesas YOUR RULE SLICE, the identical targets (all files under../corpus/cases/), and its planneroutfile. Run all workers in one parallel batch. Workers writelocationascorpus/cases/<file>:<line>.Reduce (deterministic). Merge by corroboration on
(group, location)and write the ranked result to./findings/findings.md:uv run <scripts>/reduce.py "$(pwd)/findings/workers" --glob 'worker-*.md' \ --keep-threshold 2 > ./findings/findings.md
The reduced, ranked findings in ./findings/findings.md are the arm's output — the scorer parses
them against ../corpus/gold.json.
Each principles-reviewer worker emits the fixed candidate schema.