Runtimes & Skills
SDTK does not run models itself. It targets execution runtimes — today Claude Code and Codex — and drives them through skills: markdown-defined workflows the runtime loads and executes. The runtimes execute; SDTK governs.
The division of labor
| Layer | Owns | Examples |
|---|---|---|
| Runtime (Claude Code / Codex) | Model access, tool execution, session UX | Running /orchestrator, editing files, executing shell commands |
| Skills (installed by SDTK) | Role behavior, phase workflow, output contracts | /pm, /ba, /arch, /dev, /qa, /orchestrator, design & ops journeys |
| SDTK CLIs | Scaffolding, state, validation, ledgers, viewers | sdtk-spec generate, sdtk-wiki atlas open, sdtk-agent run continue |
Which kits install skills
Only the four phase toolkits are runtime-aware:
| Toolkit | Installs skills? | Notes |
|---|---|---|
| sdtk-spec | ✅ | Orchestrator + role skills (/pm, /ba, /arch, /dev, /qa) + sub-skills |
| sdtk-ops | ✅ | Ops journey skills (ops-discover, ops-plan … ops-verify) |
| sdtk-code | ✅ | Governed coding flow support |
| sdtk-design | ✅ | Design journey skills (brief, prototype, review, handoff) |
| sdtk-wiki | ❌ | CLI-driven; plain init only |
| sdtk-agent | ❌ | CLI-driven; plain init only — there is deliberately no /agent slash command |
sdtk init --runtime <claude|codex> handles all six in the right order — see Installation.
Skill scopes
Skills can live at project scope (inside the repo, versionable, per-project) or user scope (shared across all projects on the machine):
| Runtime | Default | Project scope | User scope |
|---|---|---|---|
| Claude Code | project | .claude/skills/ | ~/.claude/skills/ (via --global) |
| Codex | user | CODEX_HOME=<project>/.codex launch contract | $CODEX_HOME/skills/ (default ~/.codex/skills/) |
Project scope keeps skill versions pinned to the repo (good for teams); user scope installs once for every project (good for solo work). The Codex project-scope contract is explained in Codex integration.
How a session flows
- You open your runtime in an initialized project.
- Session-start guidance (
CLAUDE.md/AGENTS.md, written by init) points the model at SDTK's routing rules. - Unprefixed requests go to Orchestrator Intake, which classifies the intent and picks the smallest sufficient workflow — discovery for raw ideas, the phase pipeline for formal delivery, a single skill for bounded tasks.
- Skills write real artifacts into
docs/and shared state files; CLIs validate and track them.
Keeping skills current
After sdtk update bumps kit versions, refresh each project's runtime assets:
sdtk init --runtime claude --force # or --runtime codexPer-kit control is available too: sdtk-spec runtime install|status|uninstall (same for ops/code).