planning
Project planning and architecture decision-making workflow. Use when starting new projects, designing systems, choosing technologies, or making architectural decisions. Emphasizes simplicity, type-safety, and avoiding over-engineering while ensuring observability and maintainability.
What this skill does
# Planning Guidelines Workflow for project planning, architecture decisions, and technical design. ## When to Use - Starting new projects - Choosing technologies/frameworks - Designing system architecture - Planning refactoring efforts - Making technical decisions - Evaluating trade-offs ## Planning Process ### 1. Understand Requirements Ask: - What problem are we solving? - Who are the users? - What are the constraints? (time, performance, scale) - What are the non-negotiables? ### 2. Define Success Criteria Establish: - Measurable outcomes - Performance targets - Quality standards - Timeline constraints ### 3. Choose Technologies #### Decision Framework Evaluate based on: 1. **Type-safety**: Does it support e2e type-safety? 2. **Developer experience**: How easy to use and maintain? 3. **Ecosystem**: Libraries, tools, community support? 4. **Performance**: Meets requirements? 5. **Team knowledge**: Learning curve vs timeline? #### Prefer Technologies That Support - e2e type-safety - Built-in observability/monitoring - Active maintenance - Strong TypeScript support - Testing capabilities ### 4. Design Architecture #### Core Principles - **KISS** (Keep It Simple, Stupid) - **YAGNI** (You Aren't Gonna Need It) - Avoid premature optimization - No over-engineering #### Architecture Checklist - [ ] e2e type-safety (API → Database) - [ ] Error monitoring/observability - [ ] Automated testing strategy - [ ] Accessibility (a11y, WCAG 2.0) - [ ] Security (OWASP best practices) - [ ] Scalability path (if needed) #### Common Patterns **Frontend (React)** - React Query for data fetching - Suspense boundaries for loading states - Error boundaries with retry - TypeScript strict mode - Component library (shadcn/ui, etc.) **Backend (Node.js/TypeScript)** - Query builder (Prisma, Drizzle, Kysely) - Type-safe API layer (tRPC, GraphQL) - Error monitoring (Sentry, LogRocket) - Validation library (Zod, Yup) **Database** - Choose based on data model: - Relational: PostgreSQL (with Prisma/Drizzle) - Document: MongoDB (with type-safe client) - Key-value: Redis - Prioritize type-safe query builders ### 5. Plan Structure #### File Organization ``` src/ ├── features/ # Feature-based organization │ ├── auth/ │ ├── payments/ │ └── users/ ├── lib/ # Shared utilities ├── types/ # Shared types └── config/ # Configuration ``` Principles: - Co-locate related files - Feature-based over layer-based - No premature abstraction - Single-file folders should be files #### Naming Strategy Plan for: - Descriptive, specific names - Consistent conventions (`kebab-case` files, `camelCase` functions) - Context through nesting - No abbreviations ### 6. Plan Testing Strategy #### Coverage Goals - Critical paths: 100% - Business logic: 80%+ - UI components: Key interactions #### Test Types - **Unit**: Pure functions, utilities - **Integration**: API endpoints, database queries - **E2E**: Critical user flows #### Testing Rules - Test behavior, not implementation - Write tests for bugs before fixing - Use descriptive test names (3rd person verbs) ### 7. Plan Observability #### Monitoring Requirements - [ ] Error tracking (Sentry, Rollbar) - [ ] Performance monitoring (Web Vitals) - [ ] User analytics (if applicable) - [ ] Logging strategy - [ ] Alerting thresholds #### Instrumentation - Use Higher Order Functions for monitoring - Consistent error formatting - Structured logging - Performance profiling hooks ### 8. Security Planning #### OWASP Checklist - [ ] Input validation - [ ] SQL injection prevention (query builders) - [ ] XSS prevention - [ ] CSRF protection - [ ] Authentication/authorization - [ ] Secure dependencies - [ ] Environment variables handling ### 9. Accessibility Planning #### WCAG 2.0 Guidelines - [ ] Keyboard navigation - [ ] Screen reader support - [ ] Color contrast - [ ] Focus indicators - [ ] ARIA labels - [ ] Semantic HTML ## Decision Making ### Technology Choices #### When to Choose **Simple projects**: - Stick to basics - Proven technologies - Minimal dependencies **Complex projects**: - Invest in type-safety - Strong tooling - Robust ecosystem #### Red Flags - No TypeScript support - Poor documentation - Inactive maintenance - Complex API for simple tasks - Requires many plugins ### Avoid Over-Engineering #### Signs of Over-Engineering - Abstractions used once - Frameworks for simple tasks - Premature optimization - Complex patterns for simple problems - "Future-proofing" without requirements #### Keep It Simple - Start minimal, add as needed - One abstraction layer at a time - Refactor when patterns emerge (2-3 uses) - Concrete before abstract ## Planning Document Template Structure technical plans as: ### Project: [Name] #### Goal [One paragraph: what and why] #### Success Criteria - [Measurable outcome 1] - [Measurable outcome 2] #### Technology Stack - Frontend: [Choice + justification] - Backend: [Choice + justification] - Database: [Choice + justification] - Hosting: [Choice + justification] #### Architecture [High-level diagram or description] Key decisions: - [Decision 1]: [Rationale] - [Decision 2]: [Rationale] #### File Structure ``` [Proposed structure] ``` #### Testing Strategy - Unit: [Scope] - Integration: [Scope] - E2E: [Scope] #### Observability - Error tracking: [Tool] - Monitoring: [Tool] - Logging: [Strategy] #### Security - [Key consideration 1] - [Key consideration 2] #### Accessibility - [Key consideration 1] - [Key consideration 2] #### Timeline - Phase 1: [Scope + duration] - Phase 2: [Scope + duration] #### Risks - [Risk 1]: [Mitigation] - [Risk 2]: [Mitigation] ## Review Before Starting - [ ] Requirements clearly defined - [ ] Success criteria measurable - [ ] Technology choices justified - [ ] Architecture supports requirements - [ ] Type-safety end-to-end - [ ] Testing strategy defined - [ ] Observability planned - [ ] Security considered - [ ] Accessibility addressed - [ ] Timeline realistic - [ ] No over-engineering - [ ] KISS and YAGNI applied
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.