implement-paper-from-scratch
Guides you through implementing a research paper step-by-step from scratch. Use when asked to implement a paper, code up a paper, reproduce research results, or build a model from a paper. Focuses on building understanding through implementation with checkpoint questions.
What this skill does
# Implement Paper From Scratch The best way to truly understand a paper is to implement it. This skill guides you through that process methodically. ## Philosophy - **No copy-pasting from reference implementations** - We build understanding, not just working code - **Checkpoint questions verify understanding** - You should be able to answer "why" at each step - **Minimal dependencies** - Use NumPy/PyTorch fundamentals, not high-level wrappers - **Deliberate debugging** - Bugs are learning opportunities, not obstacles ## Process ### Phase 1: Pre-Implementation Analysis Before writing any code: 1. **Identify the core algorithm** - Strip away ablations, extensions, bells and whistles. What's the minimal version? 2. **List the components** - Break into modules: - Data pipeline - Model architecture - Loss function(s) - Training loop - Evaluation metrics 3. **Find the tricky parts** - What's non-obvious? - Custom layers or operations - Numerical stability concerns - Hyperparameter sensitivity - Implementation details buried in appendices 4. **Gather reference numbers** - What should we expect? - Training loss trajectory - Validation metrics at convergence - Compute requirements (if stated) ### Phase 2: Scaffolded Implementation Build up the implementation in this order: #### Step 1: Data ```python # Start with synthetic/toy data # Verify shapes and types before touching real data ``` **Checkpoint:** Can you describe what each tensor represents and its expected shape? #### Step 2: Model Architecture ```python # Build layer by layer # Print shapes at each stage # Verify parameter counts match paper ``` **Checkpoint:** If you randomly initialize and do a forward pass, do the output shapes match what the paper describes? #### Step 3: Loss Function ```python # Implement exactly as described # Test with known inputs/outputs # Check gradient flow ``` **Checkpoint:** Can you explain each term in the loss and why it's there? #### Step 4: Training Loop ```python # Minimal loop first (no logging, checkpointing, etc.) # Verify loss decreases on tiny overfit test # Then add bells and whistles ``` **Checkpoint:** Can you overfit a single batch? If not, something is broken. #### Step 5: Evaluation ```python # Implement paper's exact metrics # Compare against reported numbers ``` **Checkpoint:** On the same data split, how close are you to paper's numbers? ### Phase 3: The Debugging Gauntlet When it doesn't work (and it won't at first): 1. **The Overfit Test** - Can you memorize 1 example? 10? 100? - If not, architecture or gradient bug 2. **The Gradient Check** - Are gradients flowing to all parameters? - Any NaN or exploding gradients? 3. **The Initialization Check** - Match paper's initialization exactly - This matters more than people think 4. **The Learning Rate Sweep** - Log scale: 1e-5 to 1e-1 - Loss should decrease for some range 5. **The Ablation Debug** - Remove components until it works - Add back one at a time ### Phase 4: Checkpoint Questions At each stage, you should be able to answer: **Understanding:** - Why does this component exist? - What would happen without it? - What alternatives were considered? **Implementation:** - Why this specific implementation choice? - Where could numerical issues arise? - What's the computational complexity? **Debugging:** - What would it look like if this was broken? - How would you test this in isolation? - What are the most likely bugs? ## Output Format For each implementation session, provide: ```markdown ## Today's Implementation Goal [Specific component we're building] ## Prerequisites Check - [ ] Previous components working - [ ] Understand what we're building - [ ] Know expected behavior ## Implementation ### Code [Code blocks with extensive comments] ### Checkpoint Questions 1. [Question] <details><summary>Answer</summary>[Answer]</details> 2. [Question] <details><summary>Answer</summary>[Answer]</details> ### Verification Steps - [ ] Test 1: [What to check] - [ ] Test 2: [What to check] ### Common Bugs at This Stage 1. [Bug pattern]: [How to identify and fix] ## What's Next [Preview of next component and how it connects] ``` ## Tips for Specific Paper Types ### Transformer-based - Attention mask shapes are the #1 bug source - Verify positional encoding is applied correctly - Check layer norm placement (pre vs post) ### RL/Policy Gradient - Sign errors in policy gradient are silent killers - Advantage normalization matters - Verify discount factor handling ### Generative Models - KL term balancing is finicky - Check latent space distribution - Verify reconstruction looks reasonable before training ### Computer Vision - Normalization (ImageNet stats, batch norm) is crucial - Data augmentation can make or break results - Verify input preprocessing matches paper exactly ## Success Criteria You're done when: 1. **Numbers match** - Within reasonable variance of paper's results 2. **Understanding is deep** - You can explain every line of code 3. **You found the gotchas** - You know what breaks and why 4. **You could modify it** - Confident to try your own variations ## Anti-Patterns to Avoid - ❌ Copying code you don't understand - ❌ Skipping checkpoint questions - ❌ Using pre-built components for core algorithm - ❌ Ignoring discrepancies with paper - ❌ Moving on before current step works
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.