
Assemble Panel
Wire multi-reviewer loops so `/review`, `/plan-review`, and `code-reviewer` get a consistent panel list and round limits without duplicating selection logic.
Install
npx skills add https://github.com/camacho/ai-skills --skill assemble-panelWhat is this skill?
- Frozen policy algebra v1: gate=P2 (fix P0–P2, record P3+), cap=3 review rounds, then escalate
- Always-on `technical-editor` on every panel; overrides cannot remove always members
- Scope-driven assembly from plan files or git diffs via file types, body keywords, and include/exclude overrides
- Structured return contract: ordered `panel` + `policy` for the caller to parse and dispatch—no agent dispatch or file wr
- Fallback when unavailable: `[technical-editor, code-reviewer]`, gate=P2, cap=3
Adoption & trust: 548 installs on skills.sh; 1 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Review panels converge code and plans before release; the canonical moment is Ship → review, where git diffs and implementation feedback dominate. Subphase `review` matches centralized reviewer selection, retention rules, and P2 gate policy that callers use during structured code and plan reviews.
Common Questions / FAQ
Is Assemble Panel safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Assemble Panel
# Assemble Panel Centralizes reviewer selection and loop governance. Returns a panel + policy to the caller; the caller dispatches. This skill produces data — it never dispatches agents or modifies files. ## Integration Contract Callers provide: - `scope`: a plan file path OR a git diff (the artifact under review) - `overrides` (optional): `{ include: [], exclude: [] }` Returns (structured text the caller parses): - `panel`: ordered list of reviewer agent names - `policy`: gate, cap, and the algebra below Fallback when unavailable: `[technical-editor, code-reviewer]`, gate=P2, cap=3. **Cross-tool note:** Codex/Cursor cannot invoke skills via the Skill tool. Read this file directly and apply the policy algebra inline. ## Policy Algebra (frozen — do not modify, version: 1) ``` DEFAULTS: gate = P2 # fix P0-P2, record P3+ cap = 3 # max rounds before escalate always = [technical-editor] # expandable, never reducible ASSEMBLE(scope: plan_file | diff): panel = always + select_by_scope(file_types(scope)) + select_by_keywords(body(scope)) + overrides.include - overrides.exclude # cannot remove `always` members RETAIN(reviewer, round_findings): keep(reviewer) while round_findings.any_above(gate) EXPAND(panel, prior_scope, current_scope): new_coverage = file_types(current_scope) - file_types(prior_scope) panel += select_by_scope(new_coverage) when new_coverage CONVERGE(round, panel, cap): APPROVE when all(reviewer.done for reviewer in panel) ESCALATE when round >= cap EXIT when any(reviewer.verdict == DROP) continue otherwise ESCALATE_RECURRING(finding, rounds_present): finding.severity += 1 when rounds_present >= 2 ``` ## Scope-to-Reviewer Map Used by `select_by_scope(file_types)`: | File pattern | Reviewer | |---|---| | `.ts`, `.js`, `src/`, `tests/` | code-reviewer | | `.yml`, `.github/workflows/` | code-reviewer, security-auditor | | `.sh`, `scripts/`, `hooks/` | code-reviewer, security-auditor | | `.md` (plans, ADRs, docs) | architect-reviewer | | `*.css`, `*.tsx`, UI components | design-reviewer, accessibility-tester | | `sync.sh`, `AGENTS.md`, `config.toml`, skills | codex-specialist | | `*.pem`, `*.key`, secrets patterns | security-auditor | When multiple patterns match, union all reviewers. Duplicates collapsed. ## Keyword-to-Reviewer Map Used by `select_by_keywords(body)`: | Keyword / phrase | Reviewer | |---|---| | "architecture", "ADR", "system design", "plan" | architect-reviewer | | "security", "auth", "token", "PAT", "OIDC" | security-auditor | | "WCAG", "accessibility", "a11y", "aria" | accessibility-tester | | "UI", "component", "layout", "design system" | design-reviewer | | "docs", "research", "ecosystem", "reference", "educational" | fact-checker | | "Codex", "cross-tool", "sync.sh" | codex-specialist | Keywords are case-insensitive substring matches against the scope body. ## Override Rules - `overrides.include` appends reviewers unconditionally. - `overrides.exclude` removes reviewers EXCEPT those in `always`. Attempting to exclude an `always` member is silently ignored. - Invalid reviewer names are rejected with an error listing valid names. ## Failure Modes - **Scope empty or unreadable**: return `always` panel only, warn caller. - **No file types detected**: fall back to keyword matching only. If neither matches, return `always` panel. - **Caller requests cap > 5**: clamp to 5. Non-negotiable ceiling. - **Panel exceeds 5 members**: warn caller — likely a sign the change is too broad. - **Reviewer unavailable at dispatch time**: caller skips that reviewer and notes the gap. ## Orchestrator Authority The panel recommends; the orchestrator (the agent