decide
Formal decision-making interview for architectural choices
What this skill does
# Decision Mode **Recommended model tier:** smart (opus) - this skill requires complex reasoning Formal decision-making workflow for architectural and technical choices. ## Purpose When facing a significant technical decision, this workflow guides you through structured analysis to make an informed choice that will be recorded and respected by all future sessions and agents. ## Workflow ### Phase 1: IDENTIFY Ask the user to clarify: - What decision needs to be made? - What is the context? (new system, migration, constraint?) - What are the requirements? (scale, team, timeline?) - Are there any hard constraints? **Example questions:** - "What technical decision do you need to make?" - "What problem are you trying to solve?" - "Are there any constraints I should know about?" ### Phase 2: EXPLORE Research and propose options: - List 3-5 viable alternatives - Include the obvious choices AND less common ones - For each option, note what it's best suited for **Output format:** ```markdown ## Options 1. **[Option A]** - Brief description - Best for: [use case] 2. **[Option B]** - Brief description - Best for: [use case] 3. **[Option C]** - Brief description - Best for: [use case] ``` ### Phase 3: ANALYZE For each option, evaluate: - **Pros**: What are the benefits? - **Cons**: What are the drawbacks? - **Fit**: How well does it match the requirements? **Output format:** ```markdown ## Analysis | Option | Pros | Cons | Fit | | -------- | ------------ | -------------- | --------------------- | | Option A | Fast, simple | Limited scale | Good for MVP | | Option B | Scalable | Complex setup | Good for growth | | Option C | Flexible | Learning curve | Good if team knows it | ``` Consider: - Complexity (implementation, maintenance) - Team familiarity - Scalability - Security implications - Cost (time, money, resources) - Reversibility (how hard to change later?) ### Phase 4: RECOMMEND Provide a clear recommendation with rationale: ```markdown ## Recommendation I recommend **[Option]** because: 1. [Primary reason tied to requirements] 2. [Secondary benefit] 3. [Risk mitigation] This choice [addresses constraint X] while [enabling future Y]. ``` Ask for confirmation: - "Does this recommendation align with your goals?" - "Would you like to proceed with this decision?" - "Any concerns before we record this?" ### Phase 5: CONFIRM Wait for explicit user approval before recording: - User says "yes", "go ahead", "let's do it" → proceed to record - User has concerns → address them, refine recommendation - User wants different option → adjust and confirm ### Phase 6: RECORD Store the decision using the `./.aide/bin/aide decision set` CLI command via Bash: ```bash ./.aide/bin/aide decision set "<topic-slug>" "<decision summary>" --rationale="<why this was chosen>" ``` **Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly. **Topic naming:** - Use kebab-case: `auth-strategy`, `database-choice`, `api-design` - Be specific: `user-auth-method` not just `auth` - Include scope if relevant: `payments-queue-strategy` **Verify** the decision was stored: ```bash ./.aide/bin/aide decision get "<topic-slug>" ``` ## Example Session ```` User: help me decide how to handle background jobs Claude: [IDENTIFY] What kind of background jobs do you need to handle? - Scheduled tasks (cron-like)? - Async processing (triggered by events)? - Long-running workers? What's your current stack and scale expectations? User: Async processing for email sending and webhook deliveries. Stack is Node.js/TypeScript, expecting 10K jobs/day initially. Claude: [EXPLORE] ## Options 1. **BullMQ (Redis)** - Production-ready Node.js queue - Best for: Node.js apps needing reliability + Redis features 2. **AWS SQS + Lambda** - Serverless queue - Best for: AWS-native apps, variable load 3. **Database-backed queue** - Simple polling - Best for: Low volume, no new infrastructure 4. **RabbitMQ** - Enterprise message broker - Best for: Complex routing, multi-language [ANALYZE] | Option | Pros | Cons | Fit | |--------|------|------|-----| | BullMQ | Native TS, retries, dashboard | Needs Redis | Excellent | | SQS+Lambda | Serverless, scales | Cold starts, AWS lock-in | Good | | DB queue | Simple, no new infra | Polling overhead, scale limits | MVP only | | RabbitMQ | Powerful routing | Overkill, operational burden | Over-engineered | [RECOMMEND] I recommend **BullMQ with Redis** because: 1. Native TypeScript support matches your stack 2. Built-in retries, delays, and rate limiting for email/webhooks 3. Bull Board provides visibility without custom tooling 4. 10K/day is well within comfortable range, scales to millions Redis adds infrastructure but enables other features (caching, sessions). Do you want to proceed with this decision? User: yes, let's go with BullMQ Claude: [RECORD] [Calls ./.aide/bin/aide decision set via Bash] ```bash ./.aide/bin/aide decision set "background-jobs-queue" "Use BullMQ with Redis for background job processing (emails, webhooks)" --rationale="Native TypeScript support, built-in retries/delays/rate-limiting, Bull Board for visibility, 10K/day well within capacity. Rejected: SQS+Lambda (AWS lock-in, cold starts), DB queue (limited scale), RabbitMQ (over-engineered)" ```` Decision recorded. Future sessions will follow this architectural choice. ``` ## Integration Decisions stored via `./.aide/bin/aide decision set` are: 1. Persisted in the aide memory database 2. Injected into future session contexts at startup 3. Visible to swarm agents (they won't contradict decisions) 4. Queryable via `./.aide/bin/aide decision get`, `./.aide/bin/aide decision list`, or the MCP tools `decision_get`/`decision_list` ## When to Use This Skill **Good candidates for formal decisions:** - Authentication/authorization strategy - Database technology choice - API design patterns - State management approach - Testing strategy - Deployment architecture - Third-party service selection **NOT needed for:** - Minor implementation details - Obvious choices with no trade-offs - Temporary/experimental code - Personal preferences (use memories instead) ## Changing Decisions Decisions can be superseded: 1. Run `/aide:decide` again for the same topic 2. New decision replaces old (history preserved) 3. Use `mcp__plugin_aide_aide__decision_history` to see evolution ```
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.