Cruncher Skill
Guides users through Crunch competition lifecycle: setup, quickstarter discovery, solution development, local testing, and submission.
Prerequisites
- Python 3.9+ with
venv module (included in standard Python)
pip for package installation
Package Installation
This skill installs Python packages from PyPI into isolated virtual environments:
| Package |
Source |
Purpose |
crunch-cli |
PyPI |
CrunchDAO competition CLI (setup, test, submit) |
jupyter |
PyPI |
Notebook support (optional) |
ipykernel |
PyPI |
Jupyter kernel registration (optional) |
Competition SDKs (e.g. crunch-synth, birdgame) |
PyPI |
Competition-specific libraries (varies) |
Agent rules for package installation:
- Always use a virtual environment — never install into system Python
- Only install known packages listed above or referenced in competition docs (PACKAGES.md)
- Ask the user before installing any package not listed here
- All packages are from PyPI — no custom URLs, no
--index-url overrides, no .whl files from unknown sources
Credentials
Submission Token (required for setup & submit)
- How to get: User logs into CrunchDAO Hub, navigates to the competition's submit page (
/competitions/<competition>/submit), and copies their token
- How it's used: Passed once via
--token <TOKEN> during crunch setup
- Persistence: After setup, the CLI stores the token in the project's
.crunch/ config directory. All subsequent commands (crunch test, crunch push, crunch download) authenticate automatically — no need to pass the token again
- If token expires: Run
crunch update-token inside the project directory to refresh it
Agent rules for tokens:
- Always ask the user to provide the token — never assume, guess, or reuse tokens from other projects
- Never write tokens into source files, scripts, notebooks, or any committed file
- Never log or echo tokens in shell output (use
--token <TOKEN> placeholder in examples shown to user)
- Tokens are user-specific and project-scoped — each
crunch setup call requires the user to supply one
GitHub API (optional, unauthenticated)
- Used only for browsing quickstarter listings via
api.github.com (public repo, no auth needed)
- Rate-limited to 60 requests/hour per IP; sufficient for normal use
Network Access
| Operation |
Requires network |
Endpoint |
crunch setup |
Yes |
hub.crunchdao.com |
crunch push |
Yes |
hub.crunchdao.com |
crunch download |
Yes |
hub.crunchdao.com |
crunch test |
No |
Local only |
crunch list |
Yes |
hub.crunchdao.com |
pip install |
Yes |
pypi.org |
| Quickstarter browsing |
Yes |
api.github.com |
Quick Setup
Each competition needs its own virtual environment (dependencies can conflict).
mkdir -p ~/.crunch/workspace/competitions/<competition>
cd ~/.crunch/workspace/competitions/<competition>
python -m venv .venv && source .venv/bin/activate
pip install crunch-cli jupyter ipykernel --upgrade --quiet --progress-bar=off
python -m ipykernel install --user --name <competition> --display-name "Crunch - <competition>"
# Get token from: https://hub.crunchdao.com/competitions/<competition>/submit
crunch setup <competition> <project-name> --token <TOKEN>
cd <competition>-<project-name>
For competition-specific packages and full examples, see references/competition-setup.md.
Core Workflow
1. Discover
crunch list # List competitions
2. Explain
Read the quickstarter code (main.py or notebook) and competition's SKILL.md/README.md. Provide walkthrough covering: Goal, Interface, Data flow, Approach, Scoring, Constraints, Limitations, Improvement ideas.
3. Propose Improvements
Analyze current approach, cross-reference competition docs (SKILL.md, LITERATURE.md, PACKAGES.md), generate concrete code suggestions:
- Model: mixture densities, NGBoost, quantile regression, ensembles
- Features: volatility regimes, cross-asset correlation, seasonality
- Architecture: online learning, Bayesian updating, horizon-specific models
4. Test
crunch test # Test solution locally
5. Submit
crunch test # Always test first
crunch push -m "Description" # Submit
Phrase Mapping
| User says |
Action |
what competitions are available |
crunch list |
show quickstarters for <name> |
Fetch from GitHub API |
set up <competition> |
Full workspace setup |
download the data |
crunch download |
get the <name> quickstarter |
crunch quickstarter --name |
explain this quickstarter |
Structured code walkthrough |
propose improvements |
Analyze and suggest code improvements |
test my solution |
crunch test |
compare with baseline |
Run both, side-by-side results |
submit my solution |
crunch push |
Important Rules
- Entrypoint must be
main.py (default for crunch push/crunch test)
- Model files go in
resources/ directory
- Respect competition interface and constraints (time limits, output format)
- Ask before installing new packages
Reference
- CLI commands: references/cli-reference.md
- Setup examples: references/competition-setup.md
1---2name: crunch-compete3description: Use when working with Crunch competitions - setting up workspaces, exploring quickstarters, testing solutions locally, or submitting entries.4---5
6# Cruncher Skill
7
8Guides users through Crunch competition lifecycle: setup, quickstarter discovery, solution development, local testing, and submission.
9
10## Prerequisites
11- Python 3.9+ with `venv` module (included in standard Python)
12- `pip` for package installation
13
14## Package Installation
15
16This skill installs Python packages from [PyPI](https://pypi.org) into isolated virtual environments:
17
18| Package | Source | Purpose |
19|---------|--------|---------|
20| `crunch-cli` | [PyPI](https://pypi.org/project/crunch-cli/) | CrunchDAO competition CLI (setup, test, submit) |
21| `jupyter` | [PyPI](https://pypi.org/project/jupyter/) | Notebook support (optional) |
22| `ipykernel` | [PyPI](https://pypi.org/project/ipykernel/) | Jupyter kernel registration (optional) |
23| Competition SDKs (e.g. `crunch-synth`, `birdgame`) | PyPI | Competition-specific libraries (varies) |
24
25**Agent rules for package installation:**
26- **Always use a virtual environment** — never install into system Python
27- **Only install known packages** listed above or referenced in competition docs (PACKAGES.md)
28- **Ask the user before installing** any package not listed here
29- **All packages are from PyPI** — no custom URLs, no `--index-url` overrides, no `.whl` files from unknown sources
30
31
32## Credentials
33
34### Submission Token (required for setup & submit)
35- **How to get:** User logs into [CrunchDAO Hub](https://hub.crunchdao.com), navigates to the competition's submit page (`/competitions/<competition>/submit`), and copies their token
36- **How it's used:** Passed once via `--token <TOKEN>` during `crunch setup`
37- **Persistence:** After setup, the CLI stores the token in the project's `.crunch/` config directory. All subsequent commands (`crunch test`, `crunch push`, `crunch download`) authenticate automatically — no need to pass the token again
38- **If token expires:** Run `crunch update-token` inside the project directory to refresh it
39
40**Agent rules for tokens:**
41- **Always ask the user** to provide the token — never assume, guess, or reuse tokens from other projects
42- **Never write tokens** into source files, scripts, notebooks, or any committed file
43- **Never log or echo tokens** in shell output (use `--token <TOKEN>` placeholder in examples shown to user)
44- Tokens are user-specific and project-scoped — each `crunch setup` call requires the user to supply one
45
46### GitHub API (optional, unauthenticated)
47- Used only for browsing quickstarter listings via `api.github.com` (public repo, no auth needed)
48- Rate-limited to 60 requests/hour per IP; sufficient for normal use
49
50## Network Access
51
52| Operation | Requires network | Endpoint |
53|-----------|-----------------|----------|
54| `crunch setup` | Yes | hub.crunchdao.com |
55| `crunch push` | Yes | hub.crunchdao.com |
56| `crunch download` | Yes | hub.crunchdao.com |
57| `crunch test` | **No** | Local only |
58| `crunch list` | Yes | hub.crunchdao.com |
59| `pip install` | Yes | pypi.org |
60| Quickstarter browsing | Yes | api.github.com |
61
62## Quick Setup
63
64**Each competition needs its own virtual environment** (dependencies can conflict).
65
66```bash
67mkdir -p ~/.crunch/workspace/competitions/<competition>
68cd ~/.crunch/workspace/competitions/<competition>
69python -m venv .venv && source .venv/bin/activate
70pip install crunch-cli jupyter ipykernel --upgrade --quiet --progress-bar=off
71python -m ipykernel install --user --name <competition> --display-name "Crunch - <competition>"
72
73# Get token from: https://hub.crunchdao.com/competitions/<competition>/submit
74crunch setup <competition> <project-name> --token <TOKEN>
75cd <competition>-<project-name>
76```
77
78For competition-specific packages and full examples, see [references/competition-setup.md](references/competition-setup.md).
79
80## Core Workflow
81
82### 1. Discover
83```bash
84crunch list # List competitions
85```
86
87
88### 2. Explain
89Read the quickstarter code (`main.py` or notebook) and competition's SKILL.md/README.md. Provide walkthrough covering: Goal, Interface, Data flow, Approach, Scoring, Constraints, Limitations, Improvement ideas.
90
91### 3. Propose Improvements
92Analyze current approach, cross-reference competition docs (SKILL.md, LITERATURE.md, PACKAGES.md), generate concrete code suggestions:
93- Model: mixture densities, NGBoost, quantile regression, ensembles
94- Features: volatility regimes, cross-asset correlation, seasonality
95- Architecture: online learning, Bayesian updating, horizon-specific models
96
97### 4. Test
98```bash
99crunch test # Test solution locally
100```
101
102### 5. Submit
103```bash
104crunch test # Always test first
105crunch push -m "Description" # Submit
106```
107
108## Phrase Mapping
109
110| User says | Action |
111|-----------|--------|
112| `what competitions are available` | `crunch list` |
113| `show quickstarters for <name>` | Fetch from GitHub API |
114| `set up <competition>` | Full workspace setup |
115| `download the data` | `crunch download` |
116| `get the <name> quickstarter` | `crunch quickstarter --name` |
117| `explain this quickstarter` | Structured code walkthrough |
118| `propose improvements` | Analyze and suggest code improvements |
119| `test my solution` | `crunch test` |
120| `compare with baseline` | Run both, side-by-side results |
121| `submit my solution` | `crunch push` |
122
123## Important Rules
124
125- Entrypoint must be `main.py` (default for `crunch push`/`crunch test`)
126- Model files go in `resources/` directory
127- Respect competition interface and constraints (time limits, output format)
128- Ask before installing new packages
129
130## Reference
131
132- CLI commands: [references/cli-reference.md](references/cli-reference.md)
133- Setup examples: [references/competition-setup.md](references/competition-setup.md)