← All features

Extend the toolkitAvailable in v0.3.0

Skill selection and updates

Skills are instruction folders that Claude Code and Codex load. oah picks them for each brief by task kind, stage, risk and the file kinds in the Scope, with a reason for each. The kit cache updates at most once a day when no lease is active, and your project's tracked copies stay pinned until you run oah skills update --project.

When you need it

Choosing skills by hand for every task is tedious, and outdated skills can hold a newer model back or make results worse, so updates need to be checked and reversible.

How it works

  1. The selector reads the installed Claude and Codex skill folders (user, project and plugin skills) and the kit cache, without changing them.
  2. It picks by task kind, stage, risk and the Scope's file kinds, giving a reason for each. The brief names each skill and its path, or includes its text when [skills] mode = "attach".
  3. When the same skill is installed twice, the project's copy wins, then the kit cache, then user and plugin copies.
  4. With [skills] auto_update = true, the kit cache is checked at most once per update_interval_days (1 by default) and never while a lease is active.
  5. Every update must keep the same license, load, and pass the privacy scan before it is published; a failed or suspicious update keeps the last good copy and is reported.
  6. Project copies change only through oah skills update --project, run as its own leased task; global folders only with --global and your confirmation.

Example

Check for updates, then refresh the kit cache and MCP-pin notices (from Upgrade).

oah skills update --check
oah skills update
oah doctor

Requirements

  • Nothing extra; TypeSafe Jev re-ranking is optional.
  • oah skills schedule install adds a daily launchd agent (macOS) or Task Scheduler task (Windows) for the automatic check, with your consent.

Limits and recovery

  • An empty Scope warns OAH_SCOPE_EMPTY instead of quietly selecting nothing.
  • The re-ranker only re-orders; it never adds or drops a skill.
  • unlazy stays at the commit oah's gates are tested with; skill updates never move it.
  • Hold one skill where it is with pins = ["<name>"] under [skills].
  • The Toolkit page notes that wiring the automatic check into ordinary commands such as oah start is a follow-up; until then use a mutating skills command or the schedule.

Original documents

Related