Build-It-Yourself Guide — StackLog
You build StackLog. The prebuilt packages are your safety net. Across two days you'll develop the whole system yourself — an MCP server, a tool pipeline, then a spec'd app. The detailed steps live in each lab; this page is your self-paced build path. If you fall behind or hit a wall, every milestone has a 🆘 fallback: grab the matching prebuilt package, run it, and you're back in the race. Never stay stuck — and never stop building.
How the safety net works
- Every prebuilt package is on the Resources page → Download .zip
(
stacklog-mcp,mock-search-mcp,mcp-dashboard,stacklog-lab-companion, orall-code-bundles).node_modulesaren't included → runnpm installafter unzip. - Falling back is not failing. It keeps the whole room in sync so the next lab can start on time. Use the prebuilt to unblock, then come back and finish your own.
- Rule of thumb: spend ~10 minutes building it yourself. Still stuck? Drop in the fallback, keep moving, and circle back at the next break.
The real deliverable is your Git repo with your commits — the portfolio artifact you leave with. The fallbacks exist so a single bug never costs you the whole day.
Day 1 — Build the tools an agent uses
M0 · Setup & warm-up (Lab 0)
- 🎯 Antigravity open, toolchain green.
- 🔨 Run
setup-check(Resources → setup scripts). Open Antigravity; find the three surfaces (Editor · Terminal · Agent). - ✅ Done when:
node -v≥ 20, Git works, Antigravity Agent panel responds. - 🆘 Fallback: download
stacklog-lab-companion— the follow-along page with checkpoints so you can self-pace even if the room moves on.
M1 · Connect pre-built MCP servers (Lab 1)
- 🎯 The agent calls a tool you didn't write.
- 🔨 Add
filesystemand a search server (ddg-searchviauvx, ormock-search) to your Antigravitymcp_config.json. Refresh. Ask the agent to list your files and run a search. - ✅ Done when: both servers show green; the agent lists files and returns a result.
- 🆘 Fallback: download
mock-search-mcp→npm install→ registernode dist/index.jsas your search server. Keyless, offline, deterministic — use it ifuvx/Wi-Fi misbehaves so search never blocks you.
M2 · Build the StackLog MCP server (Lab 2 — the centerpiece)
- 🎯 Your own server exposing
create_entry+search_entriesover a JSON store. - 🔨 Scaffold a TypeScript project, define the two tools (clear names, full descriptions,
inputSchema+required), return a 200-char preview from search. Build, then registernode dist/index.jsin Antigravity. - ✅ Done when: MCP Inspector shows both tools;
create_entrywrites to~/stacklog-entries.json;search_entriesreturns it. - 🆘 Fallback: download
stacklog-mcp→npm install→npx tsx src/index.ts(ornpm run build+node dist/index.js) → register it. You continue Lab 3 with a working server, then come back and finish yours from the reference.
M3 · Multi-tool pipeline, then break it (Lab 3)
- 🎯 One autonomous run: research →
create_entry→ verify → write a report; then trigger failures and add the five guards. - 🔨 Write the
[ROLE] [TOOLS] [CONSTRAINTS] [OUTPUT]system prompt. Run it. Then break it on purpose (disable search → hallucination; drop a guard → loop) and harden. - ✅ Done when: a clean run + a retro with ≥2 breaks, each fixed by one guard.
- 🆘 Fallback: run the prebuilt
stacklog-mcp+mock-search-mcpas your tools so the pipeline works while you focus on the prompt and guards (the real lesson).
End of Day 1: commit and push your repo. Even if any box is a fallback, the prompt, guards, and retro must be yours.
Day 2 — Spec, then build the app
Day 2 generates code live with BMAD V6. Here the prebuilt fallback is mostly the
mcp-dashboard(a working "displays the data" reference) — the spec, stories, and generated app should be yours.
M4 · Spec sprint (Lab 4)
- 🎯 A signed-off spec: constitution → PRD → tech spec, assembled into
docs/spec.md. - 🔨 Run
project-context→bmad-prd→bmad-create-architecture. - ✅ Done when:
docs/spec.mddescribes the StackLog app (routes, schema, components). - 🆘 Fallback: the Lab 4 module has a full worked StackLog PRD + tech spec — copy its structure, then adapt. (A weak spec → weak code, so don't skip the thinking.)
M5 · Stories & tasks (Lab 5)
- 🎯 INVEST stories + a dependency-ordered task list.
- 🔨 Run
bmad-create-epics-and-stories. Aim for the 4 epics / 12 mandatory tasks. - ✅ Done when: every task names a file, an action, and the spec section it satisfies.
- 🆘 Fallback: the Lab 5 module lists the 12 tasks in order — use them as your backbone.
M6 · Code generation (Lab 6)
- 🎯 The StackLog app runs locally (React + Express + SQLite), showing your Day-1 entries.
- 🔨
bmad-dev-storyper task, spec section in context every time. Seed JSON → SQLite. - ✅ Done when: the app boots and lists entries from the store.
- 🆘 Fallback: download
mcp-dashboard→npm install→npm start(http://localhost:4555). It reads the same store and is your working reference for "an app that displays the agent's data" while you finish generating your own.
M7 · Review & showcase (S11 / S12)
- 🎯 Catch spec drift; demo the system.
- 🔨 Run
bmad-code-reviewon a real diff (FIX-CODE vs UPDATE-SPEC). Then show your app — or themcp-dashboardfinale: the same data over MCP, no AI in the loop. - ✅ Done when: one reviewed diff + a 4-minute demo + your "next Monday" change.
- 🆘 Fallback:
mcp-dashboardis a guaranteed-working showcase if your app stalls.
Checklist — what must be yours
Fallbacks unblock you; they don't replace the learning. By the close, make sure these are your own work, even if some boxes started as a prebuilt:
- [ ] Your Lab 2 tool descriptions (the prose that programs the model)
- [ ] Your Lab 3 system prompt + five guards + retro
- [ ] Your
docs/spec.md(constitution, PRD, tech spec) - [ ] Your stories & tasks
- [ ] A pushed Git repo with your commits — the artifact you take home
Download any package: Resources → Code bundles → ⬇ Download .zip (or all-code-bundles.zip for everything). Each bundle has its own README.