ワンクリックで
design-review
Solution selection and adversarial validation. Load when proposing solutions or evaluating architecture decisions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Solution selection and adversarial validation. Load when proposing solutions or evaluating architecture decisions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
External API evaluation and MCP server wrapper generation. Load when integrating a REST/GraphQL API as a workspace tool
Capability-based provider system patterns. Load when creating providers or wiring module-provider integration
Full-stack WebSocket subscription development. Load when adding WS routes, topic services, or debugging WS data flows
Systematic Python type error resolution (mypy/pyright). Load when fixing backend type check failures
Type-first Python with Pydantic, Protocol, and discriminated unions. Load when writing models or enforcing typing
Systematic type error resolution for Python (mypy/pyright) and TypeScript (vue-tsc). Use when fixing type errors, resolving type check failures, or optimizing type imports.
| name | design-review |
| description | Solution selection and adversarial validation. Load when proposing solutions or evaluating architecture decisions |
| user-invocable | false |
Two-phase design validation: select the right approach, then stress-test the proposal.
Before proposing new solutions, validate against existing assets.
┌─────────────────────────────────────────────────────────────┐
│ Can existing code be extended/configured? │
│ YES → Propose extension, skip new implementation │
│ NO ↓ │
│ │
│ Does a project-approved library solve this? │
│ YES → Use it, document integration approach │
│ NO ↓ │
│ │
│ Is there a well-maintained OSS solution? │
│ YES → Evaluate: adoption cost vs build cost │
│ NO ↓ │
│ │
│ Custom implementation justified? │
│ → Document why alternatives were rejected │
└─────────────────────────────────────────────────────────────┘
| Concern | Question | Required Output |
|---|---|---|
| Abstraction | Can we swap the underlying provider? | Interface/adapter pattern |
| Data | Can we export/migrate data if we switch? | Migration path |
| Stability | Is this a stable, well-maintained project? | Maintenance status |
Before finalizing, argue against your proposal. Genuine adversarial thinking, not a checkbox exercise.
| Level | Definition | Response |
|---|---|---|
| Critical | Blocking, breaking, or security risk | Mention prominently |
| Tech debt | Accumulating risk, worth tracking | Note in tradeoffs |
| Style | Low impact preference | Mention only if asked |
IMPORTANT: Flag issues only when relevant to the user's question — avoid unsolicited critiques.
Challenge your solution against these 6 concerns:
Challenge: Does this fit where the codebase is heading, or does it fight the grain?
| Detection Signal | Response |
|---|---|
| Module X imports from module Y's internals; bypassed abstractions | Note deviation, assess if intentional or erosion |
| Same problem solved 3+ different ways across codebase | Identify the canonical pattern, flag divergences |
| Naming, file structure, or API style doesn't match established patterns | Reference project conventions, suggest alignment |
Challenge: Is this the right abstraction level? What might leak?
| Anti-Pattern | Symptom | Guidance |
|---|---|---|
| Leaky abstraction | Implementation details exposed in interface | Suggest encapsulation boundaries |
| Wrong abstraction | Forced inheritance, awkward generics | Recommend composition or simpler design |
| Premature abstraction | Generic solution for single use case | Advise "rule of three" before abstracting |
Challenge: What new dependencies does this introduce? Will they hurt later?
| Signal | Guidance |
|---|---|
| Module A knows too much about Module B's internals | Identify dependency direction, suggest inversion |
| Circular or bidirectional dependencies | Break cycle with interface/event pattern |
Challenge: Would a new team member understand this interface? Is naming consistent?
Surface problems to flag:
getUserById vs fetch_user vs user.get)Challenge: Is the solution complexity proportionate to the problem?
IMPORTANT: Calibrate feedback to problem scope — avoid applying enterprise patterns to scripts or MVP shortcuts to production systems.
Over-engineering signals:
Under-engineering signals:
Challenge: What existing conventions does this break? Is breaking them justified?
For each relevant concern:
| Risk Level | Action |
|---|---|
| No risk identified | Briefly note why in thinking |
| Risk exists with mitigation | Document the mitigation |
| Accepted tradeoff | Document explicitly in output |
| Serious flaw revealed | REVISE SOLUTION before proceeding |
| Complexity | Requirement |
|---|---|
| Simple | Use judgment — skip if concerns clearly don't apply |
| Moderate | Mandatory — document even if all clear |
| Complex | Mandatory — full table with explicit assessments |
### Accepted Tradeoffs
- **[Concern]**: [Why acceptable. Mitigation if any. Known limitations.]
_If no tradeoffs: "None — solution aligns with all design concerns evaluated."_