repomatic.skills module¶

The bundled Claude Code skills, as list-skills and the launchers show them.

The skills component of COMPONENTS declares which skills ship and where they land. This module reads what each skill says about itself, its frontmatter, for the two places a person meets the skills: the list-skills table, and the launcher command a closing hint or a pull request body hands over.

repomatic.skills.AUDIT_SKILL: str = 'repomatic-audit'¶

The bundled skill auditing a repository against the release it pins.

repomatic.skills.RECOMMENDED_MODEL_RE = re.compile('Recommended model: (?P<model>\\w+)\\.')¶

The model recommendation a skill’s compatibility field carries.

The Agent Skills spec has no model: field, so the recommendation rides in compatibility as prose, and this is the one shape every bundled skill writes it in. tests/test_skills.py holds each skill to it.

repomatic.skills.SKILL_LIST_HEADER_DEFS: tuple[ColumnSpec, ...] = (ColumnSpec(id='phase', label='Phase', description='', max_width=None, optional=False, sortable=True), ColumnSpec(id='skill', label='Skill', description='', max_width=None, optional=False, sortable=True), ColumnSpec(id='description', label='Description', description='', max_width=60, optional=False, sortable=True))¶

Column definitions for the repomatic list-skills table.

Lives beside skill_catalog(), whose triples these columns render, so the two cannot drift apart. The columns mirror the hand-maintained roster of docs/agent-skills.md, which the page renders this command right above.

repomatic.skills.SKILL_PHASE_ORDER: tuple[str, ...] = ('Setup', 'Development', 'Quality', 'Maintenance', 'Release')¶

Canonical display order for lifecycle phases in list-skills output.

repomatic.skills.SKILL_PHASES: dict[str, str] = {'av-false-positive': 'Release', 'awesome-triage': 'Maintenance', 'babysit-ci': 'Quality', 'benchmark-update': 'Development', 'brand-assets': 'Development', 'file-bug-report': 'Maintenance', 'github-housekeeping': 'Maintenance', 'probe-workflow': 'Quality', 'repomatic-audit': 'Maintenance', 'repomatic-changelog': 'Release', 'repomatic-deps': 'Development', 'repomatic-init': 'Setup', 'repomatic-ship': 'Release', 'repomatic-test-matrix': 'Quality', 'repomatic-topics': 'Development', 'repomatic-upgrade': 'Maintenance', 'sphinx-docs-sync': 'Maintenance', 'translation-sync': 'Maintenance', 'upstream-audit': 'Maintenance'}¶

Maps skill names to lifecycle phases for display grouping.

repomatic.skills.UPGRADE_SKILL: str = 'repomatic-upgrade'¶

The bundled skill reviewing what a newer upstream release lets a repo adopt.

repomatic.skills.skill_catalog()[source]¶

Read every bundled skill’s display metadata off its frontmatter.

Return type:

list[tuple[str, str, str]]

Returns:

One (phase, name, description) tuple per bundled skill, in SKILL_PHASE_ORDER, then in registry order within a phase. The description’s trailing period is stripped for table display. Phases are keyed by the registry file_id, not the frontmatter name, so a skill renamed in frontmatter still lands in its phase.

repomatic.skills.skill_launcher(skill_id, *arguments)[source]¶

The shell command launching one bundled skill in a fresh Claude Code session.

Rendered wherever the toolkit hands a maintainer a next step to run (init’s closing hint, a sync pull request body), so the invocation is spelled once. The model comes off the skill’s own compatibility field, so a changed recommendation never leaves a stale --model behind.

Note

Claude Code is the only agent the launcher targets today. The skill folder itself follows the Agent Skills spec and loads in any agent honouring it; only this one line is agent-specific, which keeps a second launcher a config key away rather than a rewrite.

Parameters:
  • skill_id (str) – The registry file_id of a bundled skill.

  • arguments (str) – Extra words passed to the skill as $ARGUMENTS.

Return type:

str

Returns:

The command line, ready to paste into a shell.

Raises:

KeyError – When the registry ships no skill named skill_id.