Builder Handbook
For the shortlisted builders of nmg.labs Forge Sprint 01 · Claude Code Edition.
Sprint Day: Saturday 6 June 2026 · NMG Gurgaon · 09:00 to 20:00 IST.
Table of Contents
Forge 1 Official Playlist
Forge 1 by NMG Labs is live on Spotify — 30 songs, about 2 hours, public playlist. The cover art auto-generated from the tracks looks great too.
01 Welcome to Forge Sprint 01
You are one of the builders shortlisted from across India to compete in person in Forge Sprint 01, the inaugural fortnightly building tournament from nmg.labs. On Saturday 6 June 2026 you will spend six hours building a real, working AI-powered digital marketing automation using Claude Code at our Gurgaon office.
What is at stake:
- Champion: a structured paid NMG apprenticeship, internships and full-time opportunities with a clear performance-driven path to a software engineering career.
- Runners-up: priority fast-track invitations to apply directly to future Forge Sprints.
- All shortlisted builders: lifetime membership of the private Forge Alumni developer network and standing invitations to NMG masterclasses.
We test your ability to orchestrate AI agent loops, run parallel sub-agents, drive a local model well and ship clean client-ready reports. This is a digital marketing sprint, so you are expected to arrive with working knowledge of SEO and digital marketing fundamentals.
There is no cheat sheet on Sprint Day. Nobody will hand you the domain knowledge. You research and study it yourself before the event. Section 05 links every resource you need. Come prepared.
02 Your official stack (Claude Code + Ollama)
Forge Sprint 01 runs on one stack: Claude Code driven by an open model through Ollama. No Anthropic API key, no paid subscription, no router and no alternative coding tool. Claude Code is the agent, Ollama serves the model, and the same ollama launch claude command wires them together with web search and sub-agents built in, so you never configure an MCP server.
There are two ways to run the model, and you pick the one that fits your laptop. Both are free. Track A runs the model on Ollama's servers (best for low-RAM laptops). Track B runs the model fully on your own machine (best if you have 16 GB+ RAM). Whichever you pick, Claude Code behaves the same.
Track A · Ollama Cloud (free), for laptops under 16 GB RAM
The model runs on Ollama's GPUs, so even an 8 GB laptop works. You sign in to a free Ollama account, no card, no API key. The free tier is metered by compute time, not tokens or requests, so the trick is to use a low-usage model and spend that compute only on real file edits (see Section 06, Sprint-day strategy).
| Model (free cloud) | Usage level | Context | Use it for |
|---|---|---|---|
| gemma4:31b-cloud | Low | 256K | Primary. Lowest free-tier burn of any capable agentic model. Best mileage. |
| nemotron-3-nano:30b-cloud | Low | 1M | Equal fallback. Also low burn, huge context. |
| qwen3-coder-next:cloud | Medium | 256K | Optional quality boost for one hard feature. Spends more quota. |
| glm / kimi / deepseek :cloud | Heavy | large | Avoid on free. These drain the free quota in a handful of calls. |
Track B · Local model (free, unlimited), for laptops with 16 GB+ RAM
The model runs entirely on your machine. Running on your own hardware is always unlimited, there is no quota at all, just RAM and speed. Pick the largest size your RAM can hold:
| Model (local) | Download | RAM | Notes |
|---|---|---|---|
| qwen3.5:9b | 6.6 GB | 16 GB | Minimum viable local agent. Tool-trained, 256K context. |
| gemma4:26b | 18 GB | 24 to 32 GB | Strong tool use, carries a full Claude Code session well. |
| qwen3.5:27b | 17 GB | 24 GB | Tools plus reasoning, 256K context. |
| qwen3-coder-next | 52 GB | 32 GB+ | Best local coder, built for Claude Code. Only if your RAM can hold it. |
Permitted vs not permitted. Permitted: any tool-trained open model run through Ollama, on Track A (cloud-free) or Track B (local). Not permitted and not judged: a hosted Anthropic API key, Claude Pro, Groq, Cerebras, Google Antigravity, Gemini, OpenAI, Cursor or any non-Ollama routing tool. The whole build must run on Claude Code + Ollama.
Why open models on purpose
These models do not do all the thinking for you, so the Sprint actually tests your skill, not the model's:
- It tests your prompting. You break a big build into small, modular prompts (schema first, then an endpoint, then a UI piece) instead of asking for everything at once. Tight prompts also save cloud compute.
- It tests your debugging. The model will occasionally produce a minor bug or a deprecated call. The builders who win read the error, understand the code and fix the model's mistakes.
Learn Claude Code and Ollama (start before Sprint Day)
- Anthropic Skilljar: Claude Code 101
- Anthropic Skilljar: Claude Code in Action
- Anthropic Academy (free courses)
- DeepLearning.AI: Claude Code, a Highly Agentic Coding Assistant
- Anthropic: Claude Code Best Practices
- Anthropic: Claude Code Docs
- YouTube: Anthropic channel
- Ollama Docs: Claude Code integration
- Ollama: web search and sub-agents in Claude Code
- Ollama Docs: Cloud models (free tier)
- Ollama: all cloud models and their usage levels
- Ollama: qwen3-coder-next model card
03 Set up Claude Code with Ollama on your laptop
Do all of this at home before Sprint Day. Downloads and sign-ins on venue Wi-Fi waste your build time. Arrive with a working, verified setup. If anything fails, read Section 03b (errors) first, then email labs@nmgdigital.com.
Step 1 · Install Node.js 18+ and Git (both tracks)
If you do not already have them, install the Node.js LTS build from nodejs.org/en/download and Git from git-scm.com/downloads. Verify:
node --version # must be v18.0.0 or higher git --version # any recent version is fine
Step 2 · Install a code editor (both tracks)
VS Code is recommended: code.visualstudio.com. Any editor you are comfortable with is fine.
Step 3 · Install Ollama and Claude Code (both tracks)
Install Ollama for your OS from ollama.com/download (Windows, macOS, Linux), then install Claude Code. Verify both:
ollama --version # confirms Ollama npm install -g @anthropic-ai/claude-code claude --version # confirms Claude Code
Step 4 · Set the context window (mandatory, both tracks)
Claude Code needs a large context window or it degrades and prints raw tool JSON instead of running tools. Set this once, then open a new terminal so it takes effect. Full details are in Section 03a.
# Windows (PowerShell), then reopen the terminal: setx OLLAMA_CONTEXT_LENGTH 65536 # macOS / Linux: export OLLAMA_CONTEXT_LENGTH=65536
Now do Step 5 for your track. Track A if your laptop has under 16 GB RAM. Track B if it has 16 GB or more.
Step 5 (Track A) · Cloud-free model, for under 16 GB RAM
Sign in to a free Ollama account (no card, no API key), then launch Claude Code on a low-usage cloud model:
ollama signin ollama launch claude --model gemma4:31b-cloud # fallback (also free, also low usage): # ollama launch claude --model nemotron-3-nano:30b-cloud
Check your remaining free usage any time at ollama.com/settings. Reserve cloud usage for real file edits, plan and scaffold elsewhere (Section 06).
Step 5 (Track B) · Local model, for 16 GB+ RAM
Pull the largest model your RAM can hold (do this on good Wi-Fi at home, the download is several GB), then launch Claude Code on it. Local is unlimited, no quota:
ollama pull qwen3.5:9b # 16 GB RAM. Use gemma4:26b or qwen3-coder-next if you have more. ollama list # confirm the model is downloaded ollama launch claude --model qwen3.5:9b
Step 6 · Test it (both tracks)
From any project folder, ask Claude Code to read your current folder or create a small file. If it runs the command instead of printing JSON, your stack works.
Prefer to wire it up by hand, or ollama launch is unavailable on your build? Point Claude Code at the Anthropic-compatible endpoint directly (works for a local model; for cloud, run ollama signin first):
export ANTHROPIC_BASE_URL=http://localhost:11434 export ANTHROPIC_AUTH_TOKEN=ollama export ANTHROPIC_API_KEY="" claude --model qwen3.5:9b
03a Environment variables, exactly how to set them
Environment variables tell Claude Code and Ollama how to behave. You only need a few. Set them before you launch, and open a fresh terminal after setting a permanent one or it will not apply.
| Variable | Set it to | Why |
|---|---|---|
| OLLAMA_CONTEXT_LENGTH | 65536 | Mandatory. Gives the model enough context to follow tool-calling instructions. Too small, and you get raw JSON. |
| ANTHROPIC_BASE_URL | http://localhost:11434 | Only for the manual launch in Step 6. Points Claude Code at Ollama instead of Anthropic. |
| ANTHROPIC_AUTH_TOKEN | ollama | Only for the manual launch. A placeholder so Claude Code stops asking for a key. |
| ANTHROPIC_API_KEY | "" (empty) | Only for the manual launch. Leave empty, you are not using a paid key. |
Windows (PowerShell)
Permanent (recommended), then close and reopen the terminal:
setx OLLAMA_CONTEXT_LENGTH 65536
Just for the current window (temporary):
$env:OLLAMA_CONTEXT_LENGTH = "65536"
Check it worked: echo $env:OLLAMA_CONTEXT_LENGTH should print 65536.
macOS / Linux (bash or zsh)
For the current session:
export OLLAMA_CONTEXT_LENGTH=65536
To make it permanent, add that same line to ~/.zshrc (macOS) or ~/.bashrc (Linux), then run source ~/.zshrc.
Check it worked: echo $OLLAMA_CONTEXT_LENGTH should print 65536.
Make the model use it. On most setups Ollama reads OLLAMA_CONTEXT_LENGTH automatically. If a model still ignores it, restart the Ollama service (quit and reopen the Ollama app, or stop and restart ollama serve) so it picks up the new value, then relaunch Claude Code.
03b If you hit an error, do this
Work down this list in order. Most Sprint-morning problems are one of these.
| Symptom | Cause | Fix |
|---|---|---|
| Claude Code prints raw JSON like {"name":"Read","arguments":...} instead of doing anything | Model is not a tool model, or context window is too small | 1) Confirm OLLAMA_CONTEXT_LENGTH=65536 and reopen the terminal. 2) Make sure you are on a tool-trained model from Section 02 (not qwen2.5-coder). Restart Ollama, relaunch. |
| command not found: ollama or claude | Not installed, or terminal opened before install | Reinstall from Section 03, then open a brand new terminal. Re-run ollama --version and claude --version. |
| Connection refused / cannot reach localhost:11434 | The Ollama service is not running | Start it: open the Ollama app, or run ollama serve in a separate terminal. Leave it running while you build. |
| Cloud model says you are out of usage, or it suddenly stops (Track A) | Free-tier compute used up for this window | Switch to the other low-usage model (nemotron-3-nano:30b-cloud). If still stuck and you have 16 GB+ RAM, switch to a local model (Track B, unlimited). Check usage at ollama.com/settings. |
| Model is extremely slow or the laptop freezes (Track B) | Model is too big for your RAM | Use a smaller local model (qwen3.5:9b), close other heavy apps and browser tabs, or move to Track A cloud-free. |
| Out of memory while pulling or running a model | Not enough disk or RAM | Free disk space, pick a smaller model size, or use Track A so nothing runs locally. |
| Tool calls work but answers are weak or it loops | Prompts too broad, or context bloated | Give one precise instruction per call. Run /clear between unrelated tasks. Work in a small folder, not your whole repo. |
Still stuck after the table? Email labs@nmgdigital.com with: your OS, ollama --version, claude --version, the exact command you ran and the full error text. Vague reports slow us down.
04 Pre-Sprint mandatory checklist
Hardware to bring on Sprint Day
- ☐Your own laptop with at least 8 GB RAM, a working keyboard and a working battery.
- ☐Your charger and power adapter.
- ☐A government photo ID (Aadhaar, College ID, Passport or Driving Licence).
- ☐Headphones (optional but recommended for the six-hour build).
Note: builders bring their own laptops. NMG provides a small number of backup laptops in genuine emergencies only.
Software installed and verified
- ☐Node.js v18.0.0+, verified with node --version.
- ☐Git, verified with git --version.
- ☐Ollama, verified with ollama --version.
- ☐Claude Code, verified with claude --version.
- ☐OLLAMA_CONTEXT_LENGTH=65536 set, terminal reopened, confirmed with echo (Section 03a).
- ☐Track A (under 16 GB RAM): signed in with ollama signin, and ollama launch claude --model gemma4:31b-cloud opens a working session that runs tools (not raw JSON).
- ☐Track B (16 GB+ RAM): model pulled at home (ollama list shows it), and ollama launch claude --model qwen3.5:9b opens a working session that runs tools.
- ☐Your editor of choice (VS Code recommended): code.visualstudio.com.
Accounts created
- ☐GitHub account with at least one public repo. Required for your Sprint Day submission.
- ☐Free Ollama account at ollama.com (run ollama signin). Needed for Track A cloud-free. No card.
- ☐Loom account (free) at loom.com. Required for your Sprint Day walkthrough video.
No Anthropic, Groq or other paid AI provider account is needed. Track A runs the model free on Ollama's servers, Track B runs it free on your own machine.
05 Learn the domain: Claude Code, SEO and digital marketing
There is no cheat sheet and no day-of crash course. You are expected to self-study before Sprint Day until you can build with Claude Code and reason about SEO and digital marketing on your own. Work through every module below.
Module 1 · Claude Code fundamentals
Install Claude Code, launch it on your Ollama model (Track A cloud or Track B local) and write your first Skill.
- Anthropic Skilljar: Claude Code 101
- Anthropic Skilljar: Claude Code in Action
- DeepLearning.AI: Claude Code, a Highly Agentic Coding Assistant
- Anthropic: Claude Code Best Practices
- Anthropic: Claude Code Docs
Practice: build a SKILL.md that takes a web address, reads the HTML and returns the page title.
Module 2 · Skills and sub-agents
Split work across a supervisor agent and sub-agents. With Ollama, web search and sub-agents are built in, so you trigger them by prompting rather than wiring an MCP server.
- Anthropic: Agent Skills Docs
- DeepLearning.AI: Agent Skills with Anthropic
- Model Context Protocol (MCP) official spec
- Anthropic Cookbook (agent examples)
- github.com/anthropics/courses
Practice: extend Module 1 into a three-agent pipeline. Agent 1 fetches HTML, Agent 2 parses headings, Agent 3 returns clean JSON.
Module 3 · SEO fundamentals
Learn how search works, what to audit and how to read a site like an SEO does.
Module 4 · Digital marketing and analytics
Understand campaigns, content, PPC and the analytics that prove results.
Module 5 · Client-ready reports (PDF, HTML and PPTX)
Your Sprint Day output must be a polished report in three formats. Learn the tooling now.
- PDF: WeasyPrint or Puppeteer (HTML to PDF).
- PPTX: python-pptx.
- HTML: clean, responsive HTML and CSS, generated from your data.
Practice: take one dataset and output the same report as a PDF, an HTML page and a PPTX deck.
06 The Sprint Day challenge and quota strategy
On Sprint morning we release the challenge brief and real, live client data at the venue. The exact task stays secret until then so nobody can pre-build a solution. It will be a real-world digital marketing automation. There is no cheat sheet, so arrive having studied Section 05.
Architecture prerequisites
To be eligible for scoring, your build must include:
- A central Claude Code Skill acting as the master coordinator.
- At least 2 sub-agents (for example one for extraction and one for formatting), triggered through Claude Code on Ollama.
- Use of Ollama web search to pull in live information during the build.
- A clean output pipeline that produces client-ready reports.
Required outputs
Your final submission must generate the same analysis in all three formats:
- A PDF report.
- An HTML report.
- A PPTX report.
Make your free compute last the whole six hours
If you are on Track A (cloud-free), the free tier is metered by compute time and it resets on a rolling window, so a careless builder can run out mid-build. Track B (local) has no quota, but a weak prompt still wastes time. Either way, work like this and you will finish:
- Plan and design off the clock model. Do your architecture, file structure, schema and copy in a normal free browser chat (claude.ai free, Gemini, ChatGPT) or on paper. Spend Claude Code only on actually writing and editing files.
- Scaffold before Sprint Day. Project setup, dependencies, empty components and config are allowed to be ready in advance. Then Sprint compute goes only to the new feature logic, not boilerplate.
- One precise instruction per call. "Write only the GA4 fetch function with this signature." Vague prompts make the agent loop and re-read files, which burns compute and time. This is the skill we are testing.
- Keep context tight. Work in a small focused folder. Run /clear between unrelated tasks. Do not hold a 50-file repo in context, it makes every call heavier.
- Use your own account. Each builder has their own free quota. Never share an account, a shared account drains instantly.
- Know your fallback ladder. Track A running low, switch to the other low-usage cloud model. Still stuck and you have 16 GB+ RAM, drop to a local model (unlimited). Worst case, finish the last edits by hand.
Check your remaining cloud usage any time at ollama.com/settings. Ollama emails you at 90%.
07 Sprint Day schedule (Saturday 6 June 2026)
| Time (IST) | Block | Details |
|---|---|---|
| 09:00 to 09:30 | Check-in | Reception and photo ID check. Set up your own laptop. Mentors help verify your stack. |
| 09:30 to 10:00 | Ignition briefing | Welcome, judging board overview and a live SEO and AEO primer. |
| 09:50 | Client data released | Real client URLs and data published in a shared drive. |
| 10:00 | Build window opens | The six-hour countdown begins. |
| 13:00 to 14:00 | Catered lunch | Provided at the venue. Builders, mentors and partners eat together. |
| 14:00 | First check-in | A Forge Captain walks the floor to review architectures. |
| 15:30 | Scope or cut check-in | Stabilise core scripts and drop anything that will not ship. |
| 16:30 | 30-minute warning | Check your PDF, HTML and PPTX output. Record your Loom walkthrough. |
| 17:00 | Submission lock | GitHub commit frozen. A surprise extra dataset is released to judges. |
| 17:00 to 17:30 | Auto-tester run | Judges run every build against the surprise dataset. |
| 17:30 to 19:00 | Finalist demos | 3-minute demo, 2-minute Q&A and a 30-second code reading. |
| 19:30 | Champions announced | Offer letters signed on the night. |
08 Rules and disqualification triggers
We enforce strict submission rules to keep things fair. Full legal and behavioural detail lives on our Terms and Conditions and Code of Conduct pages.
The 8 disqualification triggers
- Private repo: the GitHub repository is private at the deadline. It must be public.
- Missing Loom: the Loom video is missing, heavily edited or features another presenter.
- No logs: the unedited agent-log.md chat file is missing from the repository.
- No commit history: a single giant initial commit instead of clear, logical building phases.
- Auto-tester failure: the skill fails to run in the auto-tester within 5 minutes.
- Code reading score of 0: you cannot explain any block of your own code during demos.
- Plagiarism: 75% or more code duplication with any existing public repository.
- Conduct violation: breach of anti-harassment, safety or intellectual honesty rules at the venue.
Have questions? Read our Main Page FAQ or email us at labs@nmgdigital.com.