The Build track is task-oriented. Every page answers "how do I do X" with a copy-pasteable code sample and a link to the canonical file in the repo. Concept material is moved out to the Deep dive — read it when you want depth, skip it when you want to ship.
The path
Scaffold an oracle
Follow the Quickstart — qiforge-cli new, env, pnpm dev, first message. Ten minutes.
Wire createOracleApp
Create your oracle app — what main.ts looks like, what every option does.
Turn bundled plugins on/off
Enable bundled plugins — the features map, auto-detect, force-on, force-off.
Write your first plugin
Write a plugin — centerpiece end-to-end recipe using the Weather plugin as the worked example.
Pick up one recipe at a time
Plugin recipes — atomic: add a tool, add a sub-agent, add a middleware, add HTTP endpoints, share state, declare dependencies, set visibility, add config + env.
Test it
Test your oracle — vitest setup, integration tests against a real boot.
Identity + observability
Identity and auth, then observability — LangSmith env vars, plugin status events.
Ship it
Deploy — Dockerfile, env, persistent volumes, health probes.
All recipes at a glance
PluginTool, boot-time vs per-request.
Nest agents with their own prompt + tools.
Add a middlewarebeforeModel / afterModel / wrapModelCall hooks.
Plugin-owned Nest controllers + auth-excluded routes.
Add config + envZod configSchema, PLUGINPREFIX_* convention.
getSharedState — read-only producer/consumer pattern.
dependsOn (hard) vs softDependsOn (soft) + topological order.
always / on-demand / silent + per-tool overrides.
What lives outside this track
- Concepts: Deep dive — mental model, runtime layers, plugins-vs-skills. Optional.
- Reference: Reference — every option, every env var, every bundled plugin in tables.
- For AI agents: Dense one-pager — every signature inlined, copy-pasteable.
- Troubleshooting: Common boot + runtime errors.