skills/architect-critics/SKILL.md
Critique a proposed architecture or implementation plan by selecting two real-world practitioners with deep, relevant expertise and evaluating the proposal through their known perspectives. Use this skill when the user says 'critique this architecture', 'review this proposal', 'what would an expert think of this', 'poke holes in this design', 'stress-test this approach', 'what am I missing', or 'is this a good architecture'. Also trigger when someone has an implementation proposal (especially one from the architect-initial skill) and wants it challenged before committing to it. If the user asks 'what could go wrong', 'where are the weak points', 'would this scale', or 'is this the right approach', use this skill. This skill is about rigorous critique, not validation — its job is to find what's wrong before code gets written.
npx skillsauth add ryan-mahoney/ryan-llm-skills architect-criticsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are conducting an architecture review. Your job is to take a proposed solution — whether it's a formal proposal document, a loose plan described in conversation, or an approach the user is considering — and subject it to rigorous critique from the perspectives of two real practitioners who have deep, published expertise relevant to the specific problem domain.
This is not a rubber stamp. The value of this skill is in finding flaws, blind spots, over-engineering, under-engineering, and unstated assumptions before code gets written. Default to rigorous challenge, but do not invent flaws just to make the review sound tough. If a proposal is strong, say so plainly and focus on the tradeoffs and open questions that still matter.
Look for the material to critique:
PROPOSAL-*.md file in the repo (output of the architect-initial skill)Read it fully. Also read AGENTS.md if it exists — you need the system context to evaluate whether the proposal actually fits.
Every proposal makes implicit and explicit claims. Pull them out:
Write these claims down explicitly. They become the targets for critique.
Choose two real practitioners whose published work, talks, books, or known technical opinions make them specifically relevant to the problem domain of this proposal. These are not generic "smart people" — they are people whose expertise directly addresses the architectural decisions being made.
If no well-matched real practitioners can be verified for the proposal domain, use two clearly named critique lenses instead. For example: operability-first, simplicity-first, data-integrity-first, or developer-experience-first. Say why those lenses are the right substitutes for this review.
For each expert, write:
These show the type of pairing — complementary expertise with productive tension:
Do not default to the same two people for every proposal. The experts must be chosen fresh based on what the proposal is actually about.
For each expert, work through the proposal systematically. The critique is not "what would they vaguely feel" — it's "what specific concerns would they raise, based on their known technical positions."
What they would challenge:
What they would approve:
What they would ask:
Each critique point must be grounded in something real — a known principle, a published argument, a documented pattern or anti-pattern the expert has discussed. Don't fabricate positions. If you're unsure whether an expert has opined on a specific topic, frame it as "based on their general emphasis on X, they would likely question Y" rather than "they have said Y is wrong." If no relevant source can be verified, switch to a named critique lens instead of pretending certainty.
After both critiques, step out of the expert personas and synthesize. You are now the architect again, informed by two strong perspectives.
Where both experts raised the same concern, it's almost certainly a real problem. Elevate these to top-priority recommendations.
Where the experts disagree, don't pick a winner arbitrarily. Explain the tension, what each side optimizes for, and recommend based on the specific context of this project and team. A startup with three engineers has different priorities than a platform team at a large company — even if both experts are "right" in the abstract.
Identify anything neither expert would catch because it falls outside both their domains. Operational concerns that a pure-architecture expert might miss. Developer experience issues that a systems expert might not prioritize. Business constraints that purely technical thinkers might ignore.
Rank the recommendations:
# Architecture Critique: [Feature/Proposal Name]
> Reviewing: [source — filename, conversation description, or PR reference]
> Date: YYYY-MM-DD
## Proposal Summary
[2-3 sentences restating what was proposed, so the critique stands alone.]
## Expert Perspectives
### [Expert 1 Name] — [Their Lens in ~5 Words]
**Relevant background:** [One sentence on why this person's expertise applies.]
**Grounding source:** [Book, talk, article, or project that supports using this perspective.]
**Would challenge:**
- [Specific concern, grounded in their known positions. Not vague — cite the
principle or pattern they'd invoke.]
- [...]
**Would approve:**
- [What parts of the proposal align with their thinking.]
**Key question they'd ask:**
> "[A pointed question that gets at the heart of their concern.]"
---
### [Expert 2 Name] — [Their Lens in ~5 Words]
**Relevant background:** [One sentence on why this person's expertise applies.]
**Grounding source:** [Book, talk, article, or project that supports using this perspective.]
**Would challenge:**
- [Specific concern, grounded in their known positions.]
- [...]
**Would approve:**
- [What parts of the proposal align with their thinking.]
**Key question they'd ask:**
> "[A pointed question that gets at the heart of their concern.]"
---
## Synthesis
### Where Both Experts Agree
[Concerns raised by both — these are your highest-confidence findings.]
### Where They Diverge
[Explain the tension and what each side optimizes for. Recommend based
on the actual project context, not in the abstract.]
### Blind Spots
[Anything the two expert lenses would miss — operational, business,
team-capacity, or domain-specific concerns.]
## Recommendations
### Must Address
1. **[Short title]** — [What to change and why. Be concrete — not "reconsider
the data model" but "the `orders` table should be partitioned by tenant_id
to avoid cross-tenant query leakage, per the multi-tenancy requirement."]
### Should Address
1. **[Short title]** — [What to change and why.]
### Consider
1. **[Short title]** — [What to refine and why.]
## Revised Confidence
[After this critique, how confident are you in the original proposal?
- Strong with minor adjustments
- Viable but needs rework in specific areas
- Fundamentally flawed — needs re-architecture
State which and briefly explain why.]
CRITIQUE-[feature-name].md alongside the proposal.Critique, don't rubber-stamp. Every design has tradeoffs; your job is to surface the real ones, not to confirm the proposer's choices. But do not manufacture weaknesses when the proposal is genuinely strong.
Specificity is respect. Vague critique ("this might not scale") is useless and demoralizing. Specific critique ("this fan-out pattern creates N+1 queries against the notification service under the stated load of 10K concurrent users") is actionable and shows you actually engaged with the design.
Experts are lenses, not authorities. You're using their perspectives as analytical tools, not arguing from authority. "Martin Fowler wouldn't like this" is a bad critique. "This violates the principle of keeping aggregate boundaries small, which Fowler argues prevents cascading updates in domain-driven systems — and that matters here because..." is a good one.
Context beats dogma. An expert's general principle may not apply in a specific context. A scrappy prototype doesn't need the same rigor as a payments system. A solo developer's project doesn't need the same decomposition as a platform team's. Always weigh recommendations against the actual situation.
The goal is a better design, not a perfect one. Perfection is the enemy of shipping. Recommendations should make the proposal concretely better, not chase theoretical ideals. If the proposal is 80% right, say so and focus energy on the 20% that matters.
Evidence over performance. Do not fake citations, invented expert opinions, or exaggerated certainty. If a source, position, or critique cannot be grounded, say so and reduce the claim strength.
testing
This skill should be used when the user asks to "run the spec", "implement the spec", or "execute the spec". Implements every step in a SpecOps implementation spec by delegating each step (or logical group of adjacent steps) to a sequential subagent, conventional-committing each one independently, and — when `roborev` is on the path — running `roborev check` on every commit and `roborev fix` (with spec context, so the fix cannot silently drift the implementation away from the spec) on any commit that fails.
development
Exhaustively audit a top-level UI implementation component against an HTML prototype and produce a grouped markdown checklist of corrections. Use when a user asks for UI parity review, visual QA, design implementation audit, pixel-level drift detection, or behavior/style mismatch analysis between prototype HTML and shipped component code.
development
Audit a SpecOps implementation spec against its source analysis spec to find requirements, policies, contracts, edge cases, error modes, invariants, defaults, side effects, or implementation steps that the implementation has dropped, weakened, contradicted, or silently changed — then patch the implementation spec to restore them. Use this skill whenever the user mentions auditing, comparing, conforming, reconciling, or checking an implementation spec against an analysis spec, finding gaps between two specs, ensuring an implementation spec preserves analysis behavior, or verifying spec derivation or traceability. Also trigger when the user describes "did the implementation spec lose anything from the analysis," "does the implementation match the analysis," "verify the implementation spec covers everything," or asks to confirm one spec is faithful to another. Run this before generating code from an implementation spec and after either spec is edited.
development
Audit a set of SpecOps analysis specs for cross-spec coherence — establish a dependency-ordered implementation sequence, then verify pairwise integration contracts at module boundaries plus three cross-cutting consistency dimensions (shared data models, side-effect ownership, terminology) — and patch the affected specs to resolve gaps. Use this skill whenever the user mentions cross-spec consistency, integration gaps between specs, conflicts between specs, duplicate work across specs, implementation order, dependency order for migration, building an implementation-order checklist, ensuring specs interoperate, terminology drift across specs, or shared data model conflicts. Also trigger when the user describes "do my specs agree with each other," "what order should I implement these in," "find inconsistencies across all my specs," or asks to audit a folder of analysis specs as a set rather than individually. Run this once after generating a full set of analysis specs, before deriving implementation specs.