Build Docs
Build documentation packages from configs in vault/configs/.
Usage
/build-docs # All configs, all versions /build-docs prisma # All versions for prisma config /build-docs prisma@latest # Specific version only /build-docs prisma zod # Multiple configs /build-docs prisma --force # Re-download even if exists
Workflow
Phase 1: Parse Arguments
Parse $ARGUMENTS:
- •No args → Process all configs in
vault/configs/*.json - •
namewithout@→ All versions for that config - •
name@version→ Specific version only - •
--forceflag → Re-download even if exists
Phase 2: Discover Work
For each config, list versions and check what needs building:
# List configs
ls vault/configs/*.json
# Get versions from a config
jq -r '.versions | keys[]' vault/configs/{name}.json
# Check if version is built (olore-lock.json exists)
test -f vault/packages/{name}/{version}/olore-lock.json
Built = vault/packages/{name}/{version}/olore-lock.json exists
Work = versions without olore-lock.json (unless --force)
Phase 3: Report Plan and Confirm
Show what will be built and ask for confirmation:
Build plan: prisma@latest - not built zod@latest - exists (skip) nextjs@16.1.3 - not built Will build 2 packages. Proceed?
Phase 4: Spawn Subagents (PARALLEL)
CRITICAL: Spawn ALL subagents in a SINGLE message for parallel execution.
For each package that needs building, spawn a package-builder subagent:
Use package-builder agent: prisma@latest Use package-builder agent: nextjs@16.1.3
If --force flag was set, pass it to subagents:
Use package-builder agent: prisma@latest --force
Example with 3 packages: In ONE message, spawn THREE subagents:
- •
package-builder: prisma@latest - •
package-builder: zod@latest - •
package-builder: nextjs@16.1.3
All subagents run in parallel. Each handles:
- •Download docs from source
- •Filter files (if needed)
- •Generate TOC.md
- •Generate SKILL.md
Phase 5: Summary
Collect results from all subagents and report:
Build complete: ✅ prisma@latest - 312 files (126 filtered), tier 3 ✅ zod@latest - 17 files, tier 1 ⏭️ nextjs@16.1.3 - skipped (exists) Install with: olore install ./vault/packages/prisma/latest
Config Structure
Config file: vault/configs/prisma.json
{
"name": "prisma",
"_source": { "type": "github", "repo": "prisma/docs", "path": "content" },
"versions": {
"latest": { "ref": "main" }
}
}
Package Structure (after build)
vault/packages/{name}/{version}/
├── olore-lock.json # Build metadata
├── SKILL.md # Skill definition (generated)
├── TOC.md # Table of contents (generated)
└── contents/
└── *.md # Documentation files
After Build
For development (changes immediately visible):
olore link ./vault/packages/prisma/latest
For testing final package (copies to ~/.olore):
olore install ./vault/packages/prisma/latest
After install/link, skills are available as /olore-<name>-<version> (e.g., /olore-prisma-latest).
Standalone Skills
Individual phases can be run independently without the full pipeline:
/download-docs prisma@latest # Download + filter only /build-artifacts prisma@latest # Regenerate SKILL.md + TOC.md only /build-index prisma@latest # Regenerate INDEX.md only
Use --force on any standalone skill to regenerate even if output exists.
Dependencies:
- •
/download-docshas no dependencies (runs first) - •
/build-artifactsrequirescontents/from/download-docs - •
/build-indexrequirescontents/from/download-docs - •
/build-artifactsand/build-indexare independent of each other
Reference
- •Adding new documentation - Config file format, GitHub/URL sources
- •Conventions - Config vs lock files, naming rules
- •Templates:
vault/packages/docs-packager/1.0.0/templates/(single source of truth)
Requirements
- •
jq- JSON parsing - •
git- GitHub cloning - •
curl- URL downloads