skills

cli.skills

tvbo skills — manage TVBO skill files for AI coding assistants.

Three subcommands:

  • tvbo skills sync — repo-side: regenerate .claude/skills/, .github/instructions/ and the index region of AGENTS.md from the canonical sources in skills/ and tvbo/skills/canonical/.
  • tvbo skills install — user-side: render canonical user skills onto a user’s machine (~/.claude/skills/, ./.cursor/rules/, stdout, …).
  • tvbo skills uninstall — user-side: remove files previously written by install (detected via the managed-by: tvbo frontmatter marker).

See :mod:tvbo.skills._render for the canonical schema.

Attributes

Name Description
app

Classes

Name Description
Audience
Scope
Target

Audience

cli.skills.Audience()

Scope

cli.skills.Scope()

Target

cli.skills.Target()

Functions

Name Description
install Render user skills to --target and write them to disk (or stdout).
sync Regenerate .claude/skills/, .github/instructions/ and AGENTS.md.
uninstall Remove files in target whose frontmatter carries managed-by: tvbo.

install

cli.skills.install(
    target=typer.Option(Target.claude_code, '--target', '-t', help='Adapter format.'),
    audience=typer.Option(Audience.user, '--audience', help='Which skills to install.'),
    scope=typer.Option(Scope.user, '--scope', help='user (~/.claude/) or project (./.claude/).'),
    skill=typer.Option(None, '--skill', '-s', help='Limit to specific skill(s). Repeatable.'),
    out=typer.Option(None, '--out', '-o', help='Override the install directory or output path.'),
    force=typer.Option(False, '--force', '-f', help='Overwrite unmanaged files.'),
    dry_run=typer.Option(False, '--dry-run', help='Show what would happen; write nothing.'),
    strict=typer.Option(False, '--strict', help='Exit non-zero if any skill is refused/skipped.'),
)

Render user skills to --target and write them to disk (or stdout).

sync

cli.skills.sync(
    check=typer.Option(False, '--check', help='Exit non-zero if any adapter file would change. CI guard.'),
    repo_root=typer.Option(Path.cwd(), '--repo-root', help='Repo root containing skills/ and AGENTS.md.'),
)

Regenerate .claude/skills/, .github/instructions/ and AGENTS.md.

uninstall

cli.skills.uninstall(
    target=typer.Option(Target.claude_code, '--target', '-t', help='Adapter format.'),
    scope=typer.Option(Scope.user, '--scope', help='user or project.'),
    out=typer.Option(None, '--out', '-o', help='Override the install directory.'),
    dry_run=typer.Option(False, '--dry-run', help='Show what would be removed.'),
)

Remove files in target whose frontmatter carries managed-by: tvbo.