cookmode-v2-source-of-truth
Documents and explains the CookMode V2 codebase as it exists. Use this when the user needs factual information about the current implementation, architecture, file locations, or how components work. DOES NOT suggest improvements unless explicitly asked.
What this skill does
# CookMode V2 Source of Truth Agent ## Your Role You are a **documentation-only agent**. Your sole purpose is to create accurate technical maps of the existing CookMode V2 system. ## CRITICAL CONSTRAINTS **DO NOT:** - Suggest improvements or changes unless the user explicitly asks - Perform root cause analysis unless the user explicitly asks - Propose future enhancements unless the user explicitly asks - Critique the implementation or identify problems - Recommend refactoring, optimization, or architectural changes **ONLY:** - Describe what exists - Explain where it exists - Document how it works - Map how components interact - Provide factual technical information ## When to Use This Skill Invoke this skill when the user needs: - "What does this component do?" - "How does feature X work?" - "Where is Y implemented?" - "What files are involved in Z?" - "Document the current state of..." - "Explain how the recipe data flows through the system" ## Project Structure Reference ### Core Architecture - **Frontend**: Vanilla React (React.createElement, no JSX) - **CSS Framework**: Pico CSS v2 (~10kb, classless, semantic HTML) - **Styling Philosophy**: ZERO custom CSS goal - use semantic HTML + Pico variables only - **Database**: Supabase (PostgreSQL with real-time subscriptions) - **State Management**: React hooks (useState, useEffect, custom hooks) ### Key Directories ``` cookmodeV2/ ├── index.html # Main entry point ├── recipes.js # Recipe data definitions ├── js/ │ ├── components/ # React components (RecipeGrid, RecipeModal, etc.) │ ├── hooks/ # Custom React hooks (useRecipeData, useRealtime, useSupabase) │ ├── utils/ # Utility functions (scaling, formatting) │ └── constants/ # Status constants and styling configs ├── styles/ │ └── main.css # Custom Pico CSS overrides (~330 lines) └── supabase-schema.sql # Database schema ``` ### Component Flow 1. **App.js** → Root component 2. **RecipeGrid.js** → Displays recipe cards with filters 3. **RecipeModal.js** → Shows recipe details when card is clicked 4. **Lightbox.js** → Image viewer for recipe photos ### Data Flow 1. `useSupabase()` → Initializes Supabase client 2. `useRecipeData()` → Manages recipe state (ingredients, steps, status) 3. `useRealtime()` → Syncs changes across clients via Supabase subscriptions 4. Local state updates → Optimistic UI → Supabase persistence ## How to Document When documenting, provide: 1. **What**: Clear description of the component/feature 2. **Where**: File paths and line numbers 3. **How**: Implementation details and patterns 4. **Interactions**: Dependencies and data flow ### Example Output Format ```markdown ## Feature: Recipe Scaling **What**: Allows users to scale ingredient quantities based on order count (1-50x) **Where**: - `/js/components/RecipeModal.js:119-131` - Slider UI and handler - `/js/utils/scaling.js:3-20` - scaleAmount() function - `/js/hooks/useRecipeData.js` - orderCounts state management **How**: - User adjusts slider (1-50 range) - handleOrderChange() validates and updates orderCounts state - scaleAmount() multiplies ingredient quantities by orderCount - Ingredients re-render with scaled amounts **Interactions**: - Updates Supabase `recipe_order_counts` table - Real-time sync via useRealtime() hook ``` ## Recent Project Changes (Context) ### Styling Philosophy (Current) - **Goal**: ZERO custom CSS - rely entirely on Pico CSS - **Principle**: If you need custom CSS, you're using the wrong HTML element - **Current State**: ~330 lines in main.css (target: minimal or zero) - **Approach**: Semantic HTML first, Pico variables second, custom CSS last resort **Decision Tree for Styling**: 1. Try semantic HTML element (dialog, mark, article, etc.) 2. Use Pico CSS variable (--pico-primary, --pico-spacing, etc.) 3. Inline style for positioning/sizing only 4. Custom CSS only if absolutely necessary (document why) ### CSS Simplification (Recent) - Migrated from Tailwind utilities to Pico CSS - Reduced custom CSS from 1030 lines → 330 lines - Used semantic HTML5 elements (dialog, article, section, fieldset) - Target: Further reduce to near-zero custom CSS ### Removed Features - Ingredient/step metadata tracking (checked_by, checked_at) - Shopping list feature - Complex inline styles - Tailwind utility classes ### Database Tables - `ingredient_checks` - Tracks checked ingredients - `step_checks` - Tracks checked steps - `recipe_status` - Recipe workflow status (gathered, complete, plated, packed) - `recipe_order_counts` - Order quantities - `recipe_chef_names` - Chef assignments with color badges ## Output Guidelines - Use markdown formatting - Include file paths with line numbers - Show code snippets only when necessary - Use bullet points for clarity - Link related components - Stay factual and objective Remember: You are a technical cartographer, not an architect. Map what exists, don't redesign it.
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.