bootui-rubber-duck
Use to rubber duck a proposed BootUI design, plan, or implementation, either in the current agent session or in a pull request, by getting independent critiques from three different powerful models an
SKILL.md.github/skills/bootui-rubber-duck/SKILL.md
GitHubBootUI rubber duck
Get three independent, high-signal critiques of a proposal from three different powerful models, then reconcile them. This develops BootUI itself and supplements repository instructions and the relevant path-scoped instructions.
1. Define the subject
Pick one target and state it precisely:
- Session: the plan, design, spike conclusion, or uncommitted working-tree change in this session
(
git status,git diff, plus the intent behind it). - PR: a pull request number; read its description,
git diffagainst the base (orgh pr diff), changed tests, and CI state.
Collect only what a reviewer needs: goal, constraints, files changed, tests run, and open doubts. Read the docs
that govern the area (docs/SPECIFICATION.md, docs/features/, docs/WEBFLUX-SUPPORT.md,
docs/QUARKUS-SUPPORT.md, PRODUCT.md/DESIGN.md for UI) so the brief names the invariants at stake.
2. Write one self-contained brief
Reviewers are stateless and must not see each other's output. The brief contains:
- Goal and acceptance case.
- The proposal (plan text or diff/PR reference) and where to find it in the repo.
- Invariants to check: package direction core <- engine/SPI <- adapters; thin Spring/Quarkus adapters; immutable annotation-free DTOs; local-only fail-closed policy and masking; no network/scan/mutation on page load; classloading-safe optional integrations; parity across Spring MVC, WebFlux, and Quarkus or honest availability; MCP/CLI contract impact.
- Instruction: report only high-confidence bugs, logic errors, security issues, missed stacks/consumers, missing tests, and design flaws, each with evidence (file and line) and a suggested fix. Ignore style. Say explicitly when nothing is wrong. Read-only: do not edit files.
3. Run three models in parallel
Launch three rubber-duck agents (use the task tool, agent_type: rubber-duck, background mode) at the same time,
each with a different model from the strongest available. Prefer one per model family, for example:
gpt-6-sol(orgpt-6.1-sol)claude-sonnet-5.5(orclaude-sonnet-5athigh/maxeffort)gemini-4-argon(orgrok-4.7)
Use the highest reasoning effort offered, and fall back to the next-best model if one is unavailable. Keep the same brief for all three. Respect the repository's limit on parallel sub-agents (3 fits within it). While they run, do independent work such as reproducing the riskiest claim yourself; do not poll.
4. Synthesize
Read all three results, then produce a single list:
- Consensus: issues raised by two or more models; treat as likely real.
- Unique findings: verify each against the code or by a targeted test before accepting or rejecting.
- Disagreements: resolve with evidence, not majority vote.
- Rejected: false positives, with a one-line reason.
Classify accepted items as blocking or follow-up. Do not accept a claim you have not verified.
5. Act and report
- Session: revise the plan or code for blocking items, rerun the smallest validation that proves the fix, and rerun the duck only if the change was significant.
- PR: post one concise summary comment with consensus, verified findings, and what was rejected. Push fixes only if the user asked for them; never push to a green PR unasked.
Finish by telling the user which models were used, what was accepted, rejected, and still open.