From praxis
Enforces architecture reasoning before structural decisions: classifies reversibility, maps existing systems, evaluates build-vs-buy, and validates module boundaries via cohesion, coupling, and data ownership tests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:architecture-reasoningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step.
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step. Do not skip steps. Do not combine steps. Do not summarize. Work through each gate in order.
You're making a structural decision. These are expensive to reverse. Reason carefully.
Type 1 (one-way door): Database schema, public API contract, core data model, infrastructure provider, primary language/framework choice. → Requires full protocol below. Do not rush.
Type 2 (two-way door): Internal module boundaries, library choices, config format, naming conventions, internal API between your own services. → Run abbreviated protocol (Steps 2 and 5 only). Decide fast, iterate.
Before designing anything new, understand what's already there.
If this is greenfield (nothing exists), state that and skip to Step 3.
For each major component in the design, ask:
| Question | If YES → |
|---|---|
| Does a well-maintained OSS/SaaS solution exist? | Evaluate adopting it |
| Is this a commodity capability (auth, email, storage, logging)? | Buy/adopt, don't build |
| Is this your core differentiator? | Build it — this is where your value lives |
| Will you need to customize it beyond what exists? | Build if you'd be modifying its core rather than configuring its edges — a deep fork costs more than owning the code |
State each component's classification: BUILD / BUY / ADOPT.
For every proposed module or service boundary, verify:
Cohesion test: "Can I describe this module's purpose in one sentence without 'and'?"
Coupling test: "If I change module A's internals, does module B need to change?"
Data ownership test: "Does exactly one module own each piece of data?"
Communication test: "How do these modules talk?"
Apply Theory of Constraints: which single component limits the system's overall capacity? Everything else is irrelevant until that bottleneck is addressed.
Name the bottleneck explicitly. Your architecture must address it.
ARCHITECTURE ANALYSIS
├── Decision type: [Type 1 / Type 2]
├── Components: [BUILD: x, y | BUY: z | ADOPT: w]
├── Boundaries: [cohesion ✓/✗ | coupling ✓/✗ | data ownership ✓/✗]
├── Bottleneck: [identified component and why]
├── Key risk: [the one thing most likely to require rework]
└── Confidence: [HIGH / MEDIUM / LOW]
For Type 1 decisions: do NOT proceed to implementation planning until all 5
steps are complete and the user has confirmed the architecture.
Type 1 decisions with MEDIUM or LOW confidence require explicit human sign-off with the risks stated clearly. Do not bury risks in optimistic framing.
After architecture analysis is complete and user confirms:
If Superpowers is installed → invoke Skill(superpowers:brainstorming) if design
exploration is needed, or Skill(superpowers:writing-plans) if the architecture is
confirmed. Pass your build/buy/adopt classifications, boundary analysis, and bottleneck
identification as context. Do NOT write the implementation plan inside this skill.
PRAXIS architected. Superpowers plans and builds.
If Superpowers is NOT installed → proceed to implementation planning yourself using the architecture analysis as the foundation.
npx claudepluginhub xd4o/praxis --plugin praxisAdvises on architectural decisions by asking questions, surfacing trade-offs, and presenting options without executing. Use when designing features, choosing approaches, or refactoring.
Translates product requirements into system architecture through iterative decision-making. Guides architectural decisions, trade-off analysis, and ADR-style documentation.
Architectural decision-making framework with requirements analysis, trade-off evaluation, and ADR documentation. Use when making architecture decisions or analyzing system design.