testing-gate
Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).
What this skill does
# Gate 6: Testing Verification > "Tests are proof of understanding. If you can't test it, do you really understand it?" ## Purpose This gate encourages juniors to write tests for their features. Unlike the Ownership Gate, this does NOT block completion - it issues warnings to encourage the testing habit. ## Gate Status - **PASS** — Tests exist and cover critical paths - **WARNING** — No tests or insufficient coverage (can proceed with note) **Note:** This gate does NOT block. The goal is to build the testing habit through encouragement, not enforcement. --- ## Gate Questions Ask in sequence: ### Question 1: Test Existence > "What tests did you write for this feature?" **Looking for:** - At least one test file exists - Tests are actually running (not skipped) - Tests are meaningful (not just `expect(true).toBe(true)`) **If no tests:** > "I noticed there aren't tests for this feature. Testing isn't required to complete, but it's a habit worth building. What would you test if you had time?" ### Question 2: Coverage Strategy > "What does your test prove about this feature?" **Looking for:** - Happy path covered - At least one edge case considered - Error states (if applicable) **Follow-up:** > "If I broke [specific part], which test would catch it?" ### Question 3: Test Quality > "Show me your most important test. What behavior does it verify?" **Looking for:** - Testing behavior, not implementation - Clear test names - AAA pattern (Arrange, Act, Assert) --- ## Response Templates ### If PASS (Tests Exist) ``` ✅ TESTING GATE: PASSED Nice work including tests! I see you covered: - [Specific test they wrote] - [Edge case they handled] Key strength: [Something they did well] Consider adding: [One suggestion for future] Moving to code review... ``` ### If WARNING (No Tests) ``` ⚠️ TESTING GATE: WARNING No tests found for this feature. That's okay - we can proceed. But here's why tests matter: 1. **Interview Gold**: "I implemented tests for critical flows..." 2. **Confidence**: Know your changes don't break things 3. **Documentation**: Tests show how code should be used Quick win for next time: - Test the happy path first - Add one edge case - That's already better than most! Proceeding to code review... ``` ### If WARNING (Weak Tests) ``` ⚠️ TESTING GATE: WARNING Tests exist but could be stronger: **Issue**: [What's missing or weak] **Question**: "If [scenario], would your tests catch it?" This doesn't block you, but consider: - [Specific improvement suggestion] Proceeding to code review... ``` --- ## What Makes a Good Test Suite? | Level | Coverage | Characteristics | |-------|----------|-----------------| | Minimal | 1-2 tests | Happy path only | | Good | 3-5 tests | Happy path + main edge cases | | Strong | 5-10 tests | Happy path + edge cases + error states | | Interview-Ready | Full pyramid | Unit + Integration + E2E for critical flows | --- ## Socratic Guidance If they want to add tests but don't know where to start: 1. "What's the ONE thing that would be really bad if it broke?" 2. "What input would a user never send but a hacker might?" 3. "What happens when the server is slow or returns an error?" --- ## Stack-Specific Hints | Stack | Suggestion | |-------|------------| | Vite + React | "Vitest + React Testing Library is fast and integrated" | | Next.js | "Vitest or Jest works great with Next" | | API/Backend | "Test your endpoints with supertest or native HTTP" | | Python | "pytest is the standard - simple and powerful" | --- ## Interview Connection > "Testing is interview gold." When they pass this gate with tests: - Note it for their STAR story - "You can talk about your testing strategy in interviews" - "What percentage coverage did you achieve?" (for resume) When they skip tests: - "Next time, even 2-3 tests makes a huge difference for your portfolio" - "Employers love seeing test files in your repo" --- ## Why WARNING Not BLOCKING? 1. **Encouragement > Enforcement**: Build the habit through positive reinforcement 2. **Some features are trivial**: Not everything needs tests 3. **Time constraints exist**: Production pressure is real 4. **Learning curve**: Testing has a learning curve; don't block progress The goal is to make testing feel valuable, not punitive.
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.