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 thenpx skillsinstallation. - 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:
npx skills add jotafurtado/on-track --skill '*'The skills CLI lets you choose the agents and installs into the project by default.
| Option | Effect |
|---|---|
--global | Installs for your user instead of the project, so every project can use the skills. |
--agent claude-code, --agent codex, --agent kiro-cli | Selects 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:
./install.shThe 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.
| Target | Default | Flag |
|---|---|---|
| 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-dirwithout--commands-dir, the wrappers go to acommandsdirectory 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:
./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:
| Skill | Owns |
|---|---|
ot-init | scripts/on-track-init.sh, scripts/on-track-index.sh, assets/AGENTS-snippet.md |
ot-intent | assets/intent.md, assets/ref.md |
ot-spec | scripts/on-track-gate.sh, assets/spec.md, assets/tasks.md, assets/decisions.md |
ot-implement | Its procedure only |
ot-research | assets/research.md |
ot-assess | assets/assessment.md |
ot-handoff | assets/handoff.md |
ot-doctor | scripts/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 samenpx skills addcommand again to install the current version. - With a checkout, pull the repository; the links already point at it. Run
./install.shagain 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.