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.
What this skill does
# 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: ```bash 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: ```bash 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
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.