Studio Notebook

Claude Code Atlas

Bundled Skills And Startup Registration

Learn how bundled skills ship with the CLI and register during startup without a filesystem scan.

Why this matters

Bundled skills are command-shaped capabilities that ship with the CLI. They do not come from a repository scan. This chapter shows the startup path that registers them before any workspace scan. The runtime can use them as soon as the CLI starts.

Registered at startup inside the CLI

The bundled-skill entry point is an init function. It runs during startup and pushes the bundled skills into the registry one by one.

export function initBundledSkills(): void {
  registerUpdateConfigSkill()
  registerKeybindingsSkill()
  registerVerifySkill()
  registerDebugSkill()
  registerLoremIpsumSkill()
  registerSkillifySkill()
  registerRememberSkill()
  registerSimplifySkill()
  registerBatchSkill()
  registerStuckSkill()

The important bit is the first line: registerUpdateConfigSkill() happens at startup, not on demand. The CLI loads the bundled registry early so these skills are already available when the rest of the app asks for commands.

Feature flags decide which bundled skills appear

Some bundled skills stay behind feature gates. That lets the CLI ship the code without exposing every skill in every build.

if (feature('AGENT_TRIGGERS')) {
    /* eslint-disable @typescript-eslint/no-require-imports */
    const { registerLoopSkill } = require('./loop.js')
    /* eslint-enable @typescript-eslint/no-require-imports */
    // /loop's isEnabled delegates to isKairosCronEnabled() — same lazy
    // per-invocation pattern as the cron tools. Registered unconditionally;
    // the skill's own isEnabled callback decides visibility.
    registerLoopSkill()
  }

This is the plain-English version: the code checks a feature flag, then decides whether to register the skill. The skill can still have its own isEnabled logic after registration, but the CLI only even imports some of them when the flag is on.

Claude in Chrome follows the same startup pattern, but with a runtime check instead of a feature flag.

if (shouldAutoEnableClaudeInChrome()) {
    registerClaudeInChromeSkill()
  }

Bundled skills versus built-in plugins

Bundled skills are the direct skill path: the init function registers command- like capabilities into the skill registry. Built-in plugins are user-toggleable bundles, but bundled skills are registered directly into the skill registry.

If you remember one sentence, make it this one: bundled skills are registered as skills, while built-in plugins are loaded as plugin records and can later yield skills as part of that bundle.