adding-skill-program
Adding a Skill-Based Program
A skill-based program installs a context-mill skill and runs the agent against it. Examples in the codebase: the audit program (clean factory call), the revenue-analytics program (factory + custom intro screen + detect step).
Before reading this, read wizard-development/SKILL.md for the architectural context — particularly principle 4 ("New capability is a new program, not a new branch").
Architecture
The wizard's runner pipeline is fixed. What varies between programs is a ProgramRun configuration object that controls the skill ID, prompt, success message, abort cases, and post-run hooks. A ProgramConfig ties together: the CLI command, the step list, and the ProgramRun. The program registry derives all downstream wiring — CLI subcommands, TUI programs, the router — from a single array. Adding a program is configuration, not code.
The common case: createSkillProgram
For programs that just install a skill and let the agent run it (most programs), use the factory in agent-skill/index.ts:
// src/lib/programs/error-tracking/index.ts
import { createSkillProgram } from '../agent-skill/index.js';