decision-log
Use when making architectural choices, adding entities, choosing patterns, or resolving non-obvious technical trade-offs in a project that may have a DECISIONS.md file
What this skill does
# Decision Log
Check `DECISIONS.md` before making architectural choices. Past decisions exist for reasons that aren't obvious from code alone.
## The Rule
**Before any architectural choice, check for DECISIONS.md.** This includes:
- Adding new entities or data models
- Choosing between implementation patterns
- Selecting libraries or approaches
- Any non-obvious technical trade-off
## Red Flags - STOP and Check DECISIONS.md
- Adding an ID field to any entity
- Creating shared behavior (inheritance vs composition?)
- Adding user-facing changes (feature flags?)
- Choosing data formats, protocols, or storage
- "This is simple, I'll just..."
**Time pressure is not an excuse.** Urgent tasks still require checking. A wrong choice made quickly creates more work than checking first.
| Rationalization | Reality |
|-----------------|---------|
| "This is too small to check" | Small choices compound. ID format affects entire codebase. |
| "I already know there's nothing relevant" | You don't know what you don't know. Check anyway. |
| "The file probably doesn't exist" | Takes 2 seconds to verify. Check. |
| "Checking will slow me down" | Wrong choice creates more rework than checking. |
| "This is obvious/standard" | Project-specific decisions override industry defaults. |
## Workflow
```dot
digraph decision_flow {
"Architectural choice needed" [shape=box];
"DECISIONS.md exists?" [shape=diamond];
"Relevant precedent?" [shape=diamond];
"Apply and cite decision" [shape=box];
"Uncertain if applies?" [shape=diamond];
"Ask user" [shape=box];
"Proceed with choice" [shape=box];
"Offer to log if non-obvious" [shape=box];
"Architectural choice needed" -> "DECISIONS.md exists?";
"DECISIONS.md exists?" -> "Relevant precedent?" [label="yes"];
"DECISIONS.md exists?" -> "Proceed with choice" [label="no"];
"Relevant precedent?" -> "Apply and cite decision" [label="yes"];
"Relevant precedent?" -> "Uncertain if applies?" [label="no exact match"];
"Uncertain if applies?" -> "Ask user" [label="yes"];
"Uncertain if applies?" -> "Proceed with choice" [label="no"];
"Proceed with choice" -> "Offer to log if non-obvious";
}
```
## When Applying a Decision
Cite it explicitly:
> "Per DECISIONS.md (2024-11-15), using UUID for the product ID rather than auto-increment integer."
## After Resolving Non-Obvious Choices
If you and the user worked through a technical trade-off, offer:
> "This decision about X might be worth logging in DECISIONS.md for future reference. Want me to add it?"
## What Belongs in DECISIONS.md
- Foundational architectural choices with rationale
- Conditional trade-offs (when X, do Y because Z)
- Domain knowledge not obvious from code
## What Doesn't Belong
- Patterns already visible in existing code
- Temporary fixes or debugging choices
- Style preferences (put in CLAUDE.md)
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.