Ai-software-architect 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.
git clone https://github.com/codenamev/ai-software-architect
T=$(mktemp -d) && git clone --depth=1 https://github.com/codenamev/ai-software-architect "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/pragmatic-guard" ~/.claude/skills/codenamev-ai-software-architect-pragmatic-guard && rm -rf "$T"
.claude/skills/pragmatic-guard/SKILL.mdPragmatic Guard Mode
Enables and configures the Pragmatic Guard Mode to actively challenge over-engineering.
Process
1. Check Current Configuration
- Read
to check current settings.architecture/config.yml - If config.yml doesn't exist, offer to create it from
.architecture/templates/config.yml - Check if
is truepragmatic_mode.enabled - 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
from template if it doesn't exist:.architecture/deferrals.mdcp .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
with deferred decisions.architecture/deferrals.md - 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