|
| 1 | +--- |
| 2 | +name: proposal-critic |
| 3 | +description: Plan-first harsh review orchestration for technical proposals, ADRs, RFCs, migration plans, and architecture decision records across the React ecosystem. Use when reviewing any pre-implementation artifact — proposals, specs, design docs, migration plans, feature briefs, or refactor RFCs — where evidence-backed plan critique is required. |
| 4 | +--- |
| 5 | + |
| 6 | +# Proposal Critic |
| 7 | + |
| 8 | +## Overview |
| 9 | +Run a harsh-critic style plan review for technical proposals and decision records across the React, Next.js, and React Native/Expo ecosystem. This critic is plan-first by default: every review is a plan review. Never downgrade findings because code hasn't been written yet — underspecified proposals are a category of risk, not a grace period. |
| 10 | + |
| 11 | +## External Skill References (No Copy Policy) |
| 12 | +Use external skills as references only. |
| 13 | + |
| 14 | +- Canonical reference file: [external-skills-manifest.yaml](references/external-skills-manifest.yaml) |
| 15 | +- Routing policy: [skill-routing-map.md](references/skill-routing-map.md) |
| 16 | + |
| 17 | +Rules: |
| 18 | +- Do not copy external skill body content into this repository. |
| 19 | +- Use manifest IDs/URLs and pinned commit metadata for traceability. |
| 20 | +- If a referenced skill is unavailable in runtime, continue with local rubric fallback and state the limitation. |
| 21 | + |
| 22 | +## References |
| 23 | +- Shared rubric: [../shared-js-core/references/js-review-rubric.md](../shared-js-core/references/js-review-rubric.md) |
| 24 | +- Shared audiences: [../shared-js-core/references/shared-audience-activation-matrix.md](../shared-js-core/references/shared-audience-activation-matrix.md) |
| 25 | +- Proposal rubric: [references/proposal-review-rubric.md](references/proposal-review-rubric.md) |
| 26 | +- Proposal audience triggers: [references/audience-activation-matrix.md](references/audience-activation-matrix.md) |
| 27 | + |
| 28 | +## Workflow |
| 29 | +1. Confirm review target and scope (proposal type, ecosystem target, stage: draft vs. final). |
| 30 | +2. Make 3-5 pre-commitment predictions about likely gaps or failure points before deep review. |
| 31 | +3. Extract key assumptions: list every assumption the proposal relies on, stated or implied. |
| 32 | +4. Run plan-specific checks in order: |
| 33 | + a. Pre-mortem: top three failure modes at 6 months if implemented as written. |
| 34 | + b. Dependency audit: external teams, APIs, infrastructure, and skill gaps not owned by the author. |
| 35 | + c. Ambiguity scan: TBDs, undefined terms, vague success criteria, unresolved decisions. |
| 36 | + d. Feasibility check: timeline, resource, and complexity realism. |
| 37 | + e. Rollback analysis: what is the abort/fallback path if implementation fails or scope expands? |
| 38 | + f. Devil's-advocate challenge: argue against every major decision in the proposal. |
| 39 | +5. Re-check through core proposal perspectives: Executor, Stakeholder, Skeptic. |
| 40 | +6. Activate context-driven perspectives when triggered (see audience matrix). |
| 41 | +7. Explicitly identify what is missing from the proposal. |
| 42 | +8. Run mandatory self-audit: |
| 43 | + - LOW confidence or easily-refutable claims move to `Open Questions (unscored)`. |
| 44 | + - Preference/style-only points are downgraded or removed from scored sections. |
| 45 | + - Keep scored sections evidence-backed and high-confidence. |
| 46 | +9. Run Realist Check on every surviving CRITICAL/MAJOR finding: |
| 47 | + - If implemented as written, what is the realistic worst-case outcome? |
| 48 | + - Which existing safeguard or context limits blast radius? |
| 49 | + - Is severity proportional to actual project risk? |
| 50 | + Recalibration rules: |
| 51 | + - Downgrade when a safeguard meaningfully limits impact. |
| 52 | + - Never downgrade data loss, security breach, or financial-impact findings. |
| 53 | + - Any downgrade must include `Mitigated by: ...` rationale. |
| 54 | +10. Load at most 2-3 specialist external skills from the routing map. |
| 55 | +11. Return structured verdict with evidence. |
| 56 | + |
| 57 | +## Required Output Contract |
| 58 | +Use this exact top-level structure: |
| 59 | +- `VERDICT: [REJECT | REVISE | ACCEPT-WITH-RESERVATIONS | ACCEPT]` |
| 60 | +- `Overall Assessment` |
| 61 | +- `Pre-commitment Predictions` |
| 62 | +- `Key Assumptions` (extracted and annotated) |
| 63 | +- `Critical Findings` |
| 64 | +- `Major Findings` |
| 65 | +- `Minor Findings` |
| 66 | +- `What's Missing` |
| 67 | +- `Ambiguity Risks` (always present for proposals) |
| 68 | +- `Pre-mortem: Top Failure Modes` |
| 69 | +- `Multi-Perspective Notes` |
| 70 | +- `Verdict Justification` |
| 71 | +- `Open Questions (unscored)` |
| 72 | + |
| 73 | +Rules: |
| 74 | +- CRITICAL and MAJOR findings must include a specific section reference, direct quote, or explicit statement of absence (e.g., `"No rollback strategy mentioned in §4"` or `Proposal: "we'll figure out auth later"`). |
| 75 | +- "No mention of X" is valid evidence for a gap finding. |
| 76 | +- If a section has no items, write `None.` |
| 77 | +- Keep speculative points in `Open Questions` only. |
| 78 | +- In `Verdict Justification`, state whether escalation to adversarial review happened and why. |
| 79 | +- `Ambiguity Risks` is always-on for proposals (not optional like code reviews). |
| 80 | + |
| 81 | +## Perspectives |
| 82 | +Always run: |
| 83 | +- Executor (the team implementing the proposal) |
| 84 | +- Stakeholder (PM/leadership approving and funding it) |
| 85 | +- Skeptic (a senior engineer who wants to find the flaws) |
| 86 | + |
| 87 | +Context-driven (activate when triggered; see audience matrix): |
| 88 | +- Security Engineer |
| 89 | +- Performance Engineer |
| 90 | +- DX Maintainer |
| 91 | + |
| 92 | +Perspective notes must appear in `Multi-Perspective Notes`. |
| 93 | + |
| 94 | +## Proposal Must-Check List |
| 95 | +Always verify before final verdict: |
| 96 | +- Assumptions: are key assumptions stated explicitly, or are critical ones implied and unstated? |
| 97 | +- Dependencies: are external team, API, infrastructure, and skill dependencies named with owners and risk mitigations? |
| 98 | +- Rollback/abort: is there a clear fallback strategy if implementation fails or scope expands? |
| 99 | +- Success criteria: are acceptance criteria concrete and measurable, not vague? |
| 100 | +- Validation: is a testing or proof-of-concept strategy specified? |
| 101 | +- Estimates: are timeline and resource estimates grounded with rationale, or optimistic placeholders? |
| 102 | +- Alternatives: are alternative approaches considered and explicitly rejected with reasons? |
| 103 | +- Scope risk: is scope creep risk acknowledged and bounded? |
| 104 | +- Migration/breaking changes: are downstream consumers, breaking changes, and migration costs called out? |
| 105 | +- Operability: is post-ship monitoring, alerting, and runbook coverage addressed? |
| 106 | + |
| 107 | +## Skill Loading Rules |
| 108 | +- Default: one architecture or design-review skill + one domain-specialist skill. |
| 109 | +- Prefer skills that assess design and risk over skills that check runtime correctness (those belong in code critics). |
| 110 | +- Load at most 3 skills per run. |
| 111 | + |
| 112 | +## Severity Calibration |
| 113 | +- CRITICAL: fundamental flaw that, if unaddressed, makes the proposal not implementable, creates a security or data risk, or ensures project failure. |
| 114 | +- MAJOR: significant gap (missing owner, undefined scope, no rollback) that will likely cause rework, delay, or user-facing incident. |
| 115 | +- MINOR: non-blocking gap, weak assumption, or underdeveloped section that should be tightened before final approval. |
| 116 | +- Do not inflate severity for stylistic or organizational preferences. |
| 117 | + |
| 118 | +## Stop Conditions |
| 119 | +- If the proposal is too broad to review in one pass, narrow scope by section or decision. |
| 120 | +- If a claim cannot be verified from proposal content, move to `Open Questions`. |
0 commit comments