oamg/leapp-repository/leapp-actor-dev

Claude Code and agent skill by oamg/leapp-repository

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Develop or modify leapp-repository actors. Covers actor structure, phase selection, placement rules, and key constraints.

Install

npx vskill@latest install oamg/leapp-repository/leapp-actor-dev

SKILL.md

Developing Leapp Actors

Actor structure

Every actor follows layout:

repos/system_upgrade/<leapp_repo_dir>/actors/<actor_name>/
├── actor.py # Actor class (thin wrapper)
├── libraries/
│ └── <actor_name>.py # Implementation logic
└── tests/
└── test_<actor_name>.py

Keep actor.py minimal — delegate the real implementation to the library for testability:

python
from leapp.actors import Actor
from leapp.libraries.actor import <actor_name>
from leapp.models import <ConsumedModel>, <ProducedModel>
from leapp.tags import <PhaseTag>, IPUWorkflowTag
class MyActor(Actor):
"""Brief description of what this actor does."""
name = '<actor_name>'
consumes = (<ConsumedModel>,)
produces = (<ProducedModel>,)
tags = (IPUWorkflowTag, <PhaseTag>)
def process(self):
<actor_name>.process()

Phase selection

IntentPhase tagRules
Collect system factsFactsPhaseTagProduce messages only, no decisions
Check compatibility / inhibitChecksPhaseTagConsume facts, no direct system interaction
Modify application configApplicationsPhaseTagOnly after RPM upgrade is complete
Modify third-party configThirdPartyApplicationsPhaseTagSame as above, for non-Red Hat apps
Common multi-actor patterns

Inhibiting an incompatible system (2 actors):

  1. Scanner in FactsCollectionPhase — produces a facts message.
  2. Checker in ChecksPhase — consumes facts, creates report / inhibits.

Modifying incompatible config (3 actors):

  1. Scanner in FactsCollectionPhase — collects info.
  2. Checker in ChecksPhase — decides and reports planned change.
  3. Modifier in ApplicationsPhase — performs the change.

Placement rules

  • Reusable across upgrade paths → repos/system_upgrade/common/
  • Specific to one path → repos/system_upgrade/el8toel9/ or el9toel10/
  • Same rule applies to models and shared libraries.

Before writing new code

  • Search existing actors/models/libraries — reuse before creating.
  • Check if a model already provides the message you need (search model class names in repos/).
  • Discover repos/system_upgrade/common/libraries/ for shared utilities.
  • Prefer using stdlib functions over shell commands.
  • If introduce envars, use LEAPP and LEAPP_DEVEL.
  • Write unit-testable code (see skills/leapp-unit-tests/).

Key constraints

  • Avoid running code on a module level to avoid slow downs during this load phase
  • Never use subprocess — use leapp.libraries.stdlib.run() instead.
  • Never interact with the system during ChecksPhase.
  • Do not introduce new dependencies, unless it's strongly justified.

Python compatibility

RepositoryRequired Python versions
common3.6, 3.9, 3.12
el8toel93.6, 3.9
el9toel103.9, 3.12

Reference

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
63
Repository forks
170
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/oamg/leapp-repository/leapp-actor-dev/badge)](https://verified-skill.com/skills/oamg/leapp-repository/leapp-actor-dev)

Something wrong with this skill or its page? Tell us.