Skip to content

/pragmatic-guard

Enables and configures Pragmatic Guard Mode (YAGNI Enforcement) to prevent over-engineering. Use when the user requests "Enable pragmatic mode", "Turn on YAGNI enforcement", "Activate simplicity guard", "Challenge complexity", or similar phrases.

From plugin
ai-software-architect
777 skills8 agents2 hooks1 MCP
Install
$ npx -y skills add codenamev/ai-software-architect --skill pragmatic-guard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/pragmatic-guard

Context preview

The summary Claude sees to decide when to auto-load this skill.

Enables and configures Pragmatic Guard Mode (YAGNI Enforcement) to prevent over-engineering. Use when the user requests "Enable pragmatic mode", "Turn on YAGNI enforcement", "Activate simplicity guard", "Challenge complexity", or similar phrases.

SKILL.md

pragmatic-guard.SKILL.md
name: pragmatic-guard
description: Enables and configures Pragmatic Guard Mode (YAGNI Enforcement) to prevent over-engineering. Use when the user requests "Enable pragmatic mode", "Turn on YAGNI enforcement", "Activate simplicity guard", "Challenge complexity", or similar phrases.
allowed-tools: Read,Edit
disable-model-invocation: true

Pragmatic Guard Mode

Enables and configures the Pragmatic Guard Mode to actively challenge over-engineering.

Process

1. Check Current Configuration

  • Read `.architecture/config.yml` to check current settings
  • If config.yml doesn't exist, offer to create it from `.architecture/templates/config.yml`
  • Check if `pragmatic_mode.enabled` is true
  • Note the intensity level (strict/balanced/lenient)
  • Review exemption categories and triggers

2. Enable Pragmatic Mode (if requested)

If user wants to enable:

  • If config.yml doesn't exist:
  cp .architecture/templates/config.yml .architecture/config.yml
  • Set `pragmatic_mode.enabled: true`
  • Confirm intensity level with user or use default (balanced)
  • Create `.architecture/deferrals.md` from template if it doesn't exist:
  cp .architecture/templates/deferrals.md .architecture/deferrals.md
  • Inform user about mode activation and current settings

3. Configure Intensity Level

Ask user which intensity they prefer if not specified:

**Strict Mode**:

  • Challenges aggressively, requires strong justification for any complexity
  • Questions every "should" and "could"
  • Pushes for absolute minimal implementation
  • Best for: New projects, MVPs, startups with limited resources

**Balanced Mode** (RECOMMENDED):

  • Challenges thoughtfully, accepts justified complexity
  • Seeks middle ground between simplicity and best practices
  • Questions "should" but accepts reasonable "must"
  • Best for: Most projects, growing teams, moderate complexity

**Lenient Mode**:

  • Raises concerns without blocking
  • Suggests simpler alternatives as options
  • Focuses on major complexity additions only
  • Best for: Established projects, teams with strong architecture practices

4. Configure Triggers (optional)

Ask if user wants to customize which situations trigger pragmatic analysis:

  • New abstraction layers (interfaces, base classes, DI containers)
  • New external dependencies (libraries, frameworks, services)
  • New architectural patterns (repository, strategy, observer)
  • Scope expansion beyond initial requirements
  • Performance optimizations without evidence
  • Test infrastructure upfront
  • Flexibility/configurability additions

5. Configure Exemptions (optional)

Confirm exemption categories where best practices should be maintained:

  • Security-critical features (always exempt by default)
  • Data integrity (always exempt by default)
  • Compliance requirements (always exempt by default)
  • Accessibility (always exempt by default)

6. Understanding the Pragmatic Enforcer

Explain how the Pragmatic Enforcer will participate:

**In Architecture Reviews**:

  • Reviews each architect's recommendations
  • Applies necessity assessment (0-10 scoring)
  • Applies complexity assessment (0-10 scoring)
  • Proposes simpler alternatives
  • Calculates pragmatic score (complexity/necessity ratio, target <1.5)

**In ADR Creation**:

  • Challenges proposed decisions
  • Questions whether complexity is justified by current needs
  • Suggests phased approaches or deferrals
  • Documents trigger conditions for deferred decisions

**Question Framework**:

  • **Necessity**: "Do we need this right now?" "What breaks without it?"
  • **Simplicity**: "What's the simplest thing that could work?"
  • **Cost**: "What's the cost of implementing now vs waiting?"
  • **Alternatives**: "What if we just...?" "Could we use existing tools?"
  • **Best Practices**: "Does this best practice apply to our context?"

7. Deferrals Tracking

If `behavior.track_deferrals` is true:

  • Maintain `.architecture/deferrals.md` with deferred decisions
  • Include trigger conditions for each deferral
  • Track when deferrals are implemented or remain deferred

8. Report to User

Pragmatic Guard Mode: [Enabled | Disabled]

Configuration:
- Intensity: [strict | balanced | lenient]
- Apply to: [List of phases where it applies]
- Deferrals tracking: [enabled | disabled]

Exemptions:
- Security-critical: [enabled | disabled]
- Data integrity: [enabled | disabled]
- Compliance: [enabled | disabled]
- Accessibility: [enabled | disabled]

Triggers:
[List of active triggers]

The Pragmatic Enforcer will now:
- Challenge recommendations from other architects
- Question complexity and abstractions
- Propose simpler alternatives
- Calculate pragmatic scores (target ratio <1.5)
- [If enabled] Track deferred decisions in .architecture/deferrals.md

Next Steps:
- Create an ADR: "Create ADR for [topic]" (will include pragmatic analysis)
- Start a review: "Start architecture review for [target]" (will include pragmatic challenges)
- Adjust settings: Edit .architecture/config.yml

When to Use Pragmatic Mode

**Enable for**:

  • New projects or MVPs
  • Teams prone to over-engineering
  • Resource-constrained environments
  • Learning environments (teaching YAGNI)
  • Projects with tight deadlines

**Consider disabling for**:

  • Mature systems with established patterns
  • High-complexity domains requiring abstractions
  • Teams already practicing strong YAGNI principles
  • Projects with specific architectural requirements

Notes

  • Pragmatic mode is about finding balance, not blocking progress
  • The Pragmatic Enforcer's role is to question and challenge, not to veto
  • Intensity level should match team maturity and project complexity
  • Exemptions ensure critical areas maintain appropriate rigor
  • Deferrals can always be implemented when triggered by actual needs
Read more
Ships withai-software-architect

A markdown-based framework for implementing rigorous software architecture practices in any project, with specialized AI assistant integration. Introducing AI Software Architect 🚀 - Watch Video

Get the whole plugin, auto-invoked

Other skills on ai-software-architect.