Skip to content

Installation ​

This page answers how to install On Track Method in a project, what the installation puts on your machine, and how to update it.

Requirements ​

  • Node.js 22.20 or later and npx, for the npx skills installation.
  • Git.
  • Bash. Every bundled script is local Bash with no network calls.
  • A coding agent that supports skills. The package is evaluated with Claude Code, Codex, and Kiro.

Install with npx skills ​

From the root of the project where you want to use the method, run:

bash
npx skills add jotafurtado/on-track --skill '*'

The skills CLI lets you choose the agents and installs into the project by default.

OptionEffect
--globalInstalls for your user instead of the project, so every project can use the skills.
--agent claude-code, --agent codex, --agent kiro-cliSelects one of the evaluated agents explicitly.

Install the whole set with --skill '*'. Each script and template has one owner skill, and the other skills reach it through sibling paths such as ../ot-init/scripts/on-track-index.sh. A partial installation can leave a skill pointing at a resource that is not there.

This installation puts the skills in place only, not the command wrappers. Call a skill by name the way your harness does it: /ot-intent in Claude Code, $ot-intent or the /skills picker in Codex, or in any harness a plain request such as Use the ot-intent skill to <goal>.

Install from a checkout ​

To develop the package, or to keep links to a local checkout, clone the repository and run from its root:

bash
./install.sh

The script links every skills/ot-* directory and every commands/ot-*.md wrapper into your harness directories. It is idempotent: running it again recreates the links.

TargetDefaultFlag
Harness skills~/.agents/skills--agents-dir DIR
Claude Code skill mirror~/.claude/skills--claude-dir DIR
Command wrappers~/.claude/commands--commands-dir DIR
  • The Claude Code mirror is updated only when the parent of the mirror directory exists (by default, when ~/.claude/ exists). Each mirror entry is a relative link to the entry in the harness skills directory.
  • When you pass --claude-dir without --commands-dir, the wrappers go to a commands directory next to that skills directory.
  • Any other argument stops the script with ERROR: unknown argument.

To also expose the skills to Kiro while keeping the default installation, run a second time with its directory:

bash
./install.sh --agents-dir "$HOME/.kiro/skills"

That directory receives links to the same checkout, not an independent copy.

What gets installed ​

Eight skills, each with the procedure an agent follows and the resources it owns:

SkillOwns
ot-initscripts/on-track-init.sh, scripts/on-track-index.sh, assets/AGENTS-snippet.md
ot-intentassets/intent.md, assets/ref.md
ot-specscripts/on-track-gate.sh, assets/spec.md, assets/tasks.md, assets/decisions.md
ot-implementIts procedure only
ot-researchassets/research.md
ot-assessassets/assessment.md
ot-handoffassets/handoff.md
ot-doctorscripts/on-track-doctor.sh

The checkout installation also links eight command wrappers, commands/ot-init.md through commands/ot-doctor.md. Each one tells the agent to run the skill of the same name. The ot-* names are the skill names, not aliases.

The checkout installer writes links to the configured harness directories. Run ot-init in a target project to create its on-track/ tree, managed block, and index (see Your first track).

Update ​

  • With npx skills, run the same npx skills add command again to install the current version.
  • With a checkout, pull the repository; the links already point at it. Run ./install.sh again when skills or commands were added or renamed.

After an update, the first skill that regenerates the index in a project warns when its managed block in AGENTS.md differs from the installed package, for example project v0.1.0, package v0.2.0. Then run ot-doctor in that project: it lists what is out of date (the block, new folders, files in an old layout), proposes the fixes, and applies them once you confirm.