AI Agent-driven Kaggle competition workflow. Learn from real competition experience:
score stabilization patterns, submission troubleshooting, kernel workflows, GPU task delegation,
and the spec-driven development approach that achieved top leaderboard positions.
Use when: working on any Kaggle competition, analyzing submission failures, setting up
automated pipelines, or replicating top notebook solutions.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
AI Agent-driven Kaggle competition workflow. Learn from real competition experience:
score stabilization patterns, submission troubleshooting, kernel workflows, GPU task delegation,
and the spec-driven development approach that achieved top leaderboard positions.
Use when: working on any Kaggle competition, analyzing submission failures, setting up
automated pipelines, or replicating top notebook solutions.
「The agent doesn't just submit — it learns from failures, adapts strategies, and iterates autonomously.」
Core Philosophy
This skill distills practical patterns from real competition experience:
Agents as teammates — Not just tools, but collaborators that can research, debug, and iterate
Spec-driven development — Document before coding, delegate with clear constraints
Fail fast, learn faster — Early scores are misleading; systematic debugging wins
Automation where it matters — Cronjobs for monitoring, delegation for complex work
Quick Reference
When to Use This Skill
Trigger
Action
Starting a new competition
→ Read "Project Setup" section
Submission returns 400 error
→ Check "Troubleshooting" section
Score dropped unexpectedly
→ Read "Score Stabilization" section
Need to replicate top notebook
→ Use "Replication Workflow"
Kernel push fails
→ Check "Kernel Workflow" section
GPU required but unavailable
→ Use "Delegation Strategy"
Key Commands
# Submit to competition
kaggle competitions submit <name> -f <file> -m "<message>"# Check submission status
kaggle competitions submissions <name>
# Pull top notebook WITH metadata
kaggle kernels pull <owner>/<kernel> -p ./path/ -m
# Push kernel to Kaggle
kaggle kernels push -p ./path/
# Monitor kernel status
kaggle kernels status <username>/<kernel-name>
Score Stabilization Pattern
Critical insight: Kaggle scores take time to stabilize after submission.
|| Time | Score Behavior | What To Do ||
|------|----------------|------------||
| Start | Baseline | Submit early to start evaluation ||
| +2 hours | Peak (inflated) | Don't trust! Often artificially high ||
| +4 hours | Stabilized | True score — make decisions now ||
Lesson: Never celebrate early highs. Wait 4+ hours before judging performance.
Submission Troubleshooting
400 Bad Request Error
Check submission format (with/without header, quotes)
Verify IDs match test set exactly
Try .zip format — some competitions require zipping the CSV
Check if competition requires model submission vs answer submission
Zip Submission Format (Critical!)
Common mistake: Zipping everything in the folder (including __notebook__.ipynb)
Correct way:
import zipfile
with zipfile.ZipFile('submission.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
zf.write('submission.csv', 'submission.csv') # Only the CSV!
Competition Types
Type
What You Submit
Examples
Answer Submission
CSV with predictions
Most competitions
Model Submission
Trained model weights (LoRA, checkpoints)
Some LLM competitions
Detection: Look at top notebooks — do they train models or just generate predictions?
Kernel Workflow
Run Mode vs Commit Mode
Mode
Test Set
Use Case
Run
Hidden
Development, debugging
Commit ("Save & Run All")
Mounted
Production, final submission
Why this matters: kaggle kernels push runs in Run mode. Test set is NOT mounted. Use sample_submission.csv for placeholder.
Data Path Pattern
/kaggle/input/competitions/<competition-name>/ ← Correct!
NOT /kaggle/input/<competition-name>/ ← Wrong!
Kernel Metadata Best Practices
{"id":"username/kernel-name","is_private":true,// ← Always true by default!"enable_internet":false,// ← Check competition rules"competition_sources":["competition-name"],"dataset_sources":["dataset-with-dependencies"]}
Replicating Top Notebooks
Workflow
# 1. Pull with metadata (-m flag is critical!)
kaggle kernels pull <owner>/<kernel> -p ./solution/ -m
# 2. Edit kernel-metadata.json# - Change "id" to your username/new-name# - KEEP all dataset_sources, model_sources, kernel_sources# 3. Push
kaggle kernels push -p ./solution/
# 4. Monitor
kaggle kernels status <your-username>/<new-kernel-name>
Critical Points
Always use -m flag — gets kernel-metadata.json with dependencies
Preserve ALL dependencies — dataset_sources, model_sources, kernel_sources
Only change id and title — everything else should match original
Check enable_internet — if original has false, keep it false