Skip to content

Troubleshooting — Runtime & Skills

/orchestrator (or another slash command) not found in Claude Code

  1. Confirm skills are installed where Claude Code looks:

    bash
    ls .claude/skills/          # project scope (default)
    ls ~/.claude/skills/        # user scope (--global installs)
  2. If empty, run the init from the project root:

    bash
    sdtk init --runtime claude --force
  3. Restart the Claude Code session — skills are loaded at session start.

Codex doesn't see the skills

Codex resolves skills from $CODEX_HOME/skills/ (default ~/.codex/skills/).

bash
echo $CODEX_HOME
ls "${CODEX_HOME:-$HOME/.codex}/skills/"

Common causes:

  • Project-scope install, user-scope launch. If you initialized with CODEX_HOME=<project>/.codex, you must also launch Codex with that same variable: CODEX_HOME=$(pwd)/.codex codex. See the launch contract.
  • Skills never installed. Run sdtk init --runtime codex (user scope) and check again.

Expecting an /agent or wiki slash command

There isn't one — by design. SDTK-WIKI and SDTK-AGENT install no skills; they are CLI-driven:

bash
sdtk-wiki atlas open
sdtk-agent run status --run-id <run_id>

If a session invents an /agent command, that's a hallucination — the supported surface is the sdtk-agent CLI.

Skills are stale after sdtk update

Updating npm packages does not touch installed skills. Refresh them per project:

bash
sdtk update
sdtk init --runtime claude --force    # or --runtime codex

Skills installed to the wrong scope

Re-run init with an explicit scope; --force overwrites the previous install:

bash
sdtk init --runtime claude --runtime-scope user --force     # move to ~/.claude/skills/
sdtk init --runtime claude --runtime-scope project --force  # move into the repo

(Remove the old location's sdtk-* skill folders if you want a clean single-scope setup.)

Status line missing on one account but not the other

Almost always one of two deliberate no-ops in sdtk statusline install, not a broken install. Ask the CLI which:

bash
sdtk statusline status
  • not installed on the account you expected — install targets only the account you ran it under ($CLAUDE_CONFIG_DIR, else ~/.claude), so running it once does not cover a second account. Since v1.51.0 the install output names the accounts it skipped.
  • other command: … — that account already has a statusLine pointing somewhere else (typically a hand-written script predating SDTK). Install refuses to clobber it.

One command covers both. Each settings.json is backed up to settings.json.bak.<timestamp> first:

bash
sdtk statusline install --all --force

Then open a new session — the status line is read at session start, so an already-open one will not pick it up. Note that logging out and back in changes nothing here: the status line lives in settings.json, which is config, not credentials.

If a row says installed and you still see nothing, check sdtk statusline render runs (it needs sdtk on PATH — see sdtk: command not found), and confirm your Claude Code version supports statusLine.

Sessions ignore SDTK routing

Init writes session guidance (CLAUDE.md for Claude Code, AGENTS.md for Codex) at the project root. If routing (discovery gate, phase pipeline, orchestrator intake) isn't happening:

  • confirm those files exist at the project root and are not overridden by conflicting instructions;
  • start the session from the project root, not a subdirectory;
  • invoke the orchestrator explicitly (/orchestrator in Claude Code, "Use the orchestrator skill." in Codex).

sdtk init refuses a repo that already has AGENTS.md / CLAUDE.md / SDTK config

Full init writes those managed files, so it refuses roots where they are repo-owned rather than SDTK-managed. If you only need the slash-command skills there, use the skills-only path — it touches nothing but the skills directory:

bash
sdtk runtime install --runtime claude    # skills into <repo>/.claude/skills, nothing else
sdtk runtime status --runtime claude     # verify per-kit install state

See sdtk runtime for all options.

A command the docs don't list

If a session suggests a verb that isn't in the command reference — e.g. sdtk-ops deploy (no such verb) — check Maturity & Versions. SDTK docs only document the installable surface; anything else is either unpublished, gated, or invented.

Diagnostics to attach to a bug report

bash
sdtk --version
sdtk-spec runtime status
sdtk-code doctor
node --version

Issues: github.com/codexsdtk/sdtk-toolkit

SDTK — governed, auditable, resumable AI-assisted engineering.