AI-powered developer skills for os-autoinst-distri-opensuse
You: I changed lib/sles4sap/azure_cli.pm -- what do I need to test? AI: Your change touches 1 library file. Here's the verification plan: - Unit test: prove -l -Ios-autoinst/ t/sles4sap/azure_cli.t - Affected tests: tests/sles4sap/hana_install.pm, tests/sles4sap/azure_deploy.pm - Schedules: schedule/sles4sap/hana_node.yaml To get a clonable openQA job, confirm the target instance (osd or o3).
You: I have the autoinst-log.txt from a failed job. The hana_install module timed out -- was it a real failure or infrastructure lag? AI: Running health check on autoinst-log.txt... 1 timeout detected in hana_install. Running lag detection... backend loop count: 243,891 (threshold: 100,000). Verdict: infrastructure stress on the worker host. The SUT likely had no issue. Recommend: re-run the job on a different worker.
You: I edited lib/sles4sap/azure_cli.pm and schedule/sles4sap/hana_node.yaml -- what should I run locally? AI: Analysing 2 changed files... TIER 1 (instant): perl -c lib/sles4sap/azure_cli.pm ... PASS yamllint schedule/sles4sap/hana_node.yaml ... PASS TIER 2 (before commit): prove -lv -Ios-autoinst/ t/sles4sap/azure_cli.t ... 12 tests passed make tidy ... no changes needed All local checks passed. Ready to push.
You: Add a documentation header to tests/sles4sap/qesap_ansible.pm AI: Reading file... identified 3 openQA variables (ANSIBLE_PLAYBOOK, PUBLIC_CLOUD_PROVIDER, QESAP_DEPLOYMENT_DIR) and 2 library dependencies (lib/sles4sap/qesapdeployment.pm, lib/publiccloud/utils.pm). Header generated from template. Running audit... PASS. Metadata check... OK. POD whitespace... OK.
You: I added a new function az_disk_create to lib/sles4sap/azure_cli.pm. Generate a unit test for it. AI: Scanning az_disk_create... 3 mandatory args (resource_group, name, size_gb), 1 optional (sku). Generating test skeleton with @calls capture pattern, dies_ok for mandatory args, and separate subtest for the optional arg. Written to t/21_sles4sap_azure_cli.t (appended 3 new subtests). Run: prove -lv -Ios-autoinst/ t/21_sles4sap_azure_cli.t
You: Create a PR for my staged changes. AI: Inspecting staged changes... 2 files modified. Proposed commit message: "Add retry logic to azure_cli resource group creation" Written to commit_message.txt -- please review and confirm. You: Looks good, go ahead. AI: Committed. Pushing to origin/add-retry-azure-cli... Creating PR against os-autoinst/os-autoinst-distri-opensuse... PR #18742 created: https://github.com/os-autoinst/.../pull/18742
Install as a native Gemini CLI extension:
gemini extensions install https://github.com/os-autoinst/osado-skills
Update:
gemini extensions update osado-ai-assistant # or update all extensions: gemini-cli extensions update --all
Uninstall:
gemini extensions uninstall osado-ai-assistant
Subscribe to the marketplace (one-time):
claude plugin marketplace add os-autoinst/osado-skills
Then in a Claude Code session:
/plugin install osado-ai-assistant@openqa-tools
Update:
claude plugins update osado-ai-assistant@openqa-tools
For full OSADO guidelines in every interaction, add to your project's CLAUDE.md:
@OSADO_AGENTS.md
Install as a native Antigravity CLI plugin:
agy plugin install https://github.com/os-autoinst/osado-skills.git
Verify:
agy plugin list
Update:
agy plugin uninstall osado-ai-assistant agy plugin install https://github.com/os-autoinst/osado-skills.git
Uninstall:
agy plugin uninstall osado-ai-assistant
OCX Registry (Global)
Initialize global config (one-time), add the registry, and install skills:
ocx init -g ocx registry add https://os-autoinst.github.io/osado-skills/ocx --name osado -g ocx add -g osado/local-lint-test
Update:
ocx update -g osado/local-lint-test # or update all components: ocx update -g --all
Universal Skills CLI (skills.sh)
Install skills directly into supported AI coding assistants (Claude Code, Cursor, OpenCode, Codex, etc.):
List available skills:
npx skills add os-autoinst/osado-skills --list
Install globally:
npx skills add os-autoinst/osado-skills -g
Install a specific skill:
npx skills add os-autoinst/osado-skills --skill local-lint-test -g
Update skills:
npx skills update -g
Global Install Script (all harnesses)
Clone the repository and install skills for any supported tool:
git clone https://github.com/os-autoinst/osado-skills cd osado-skills ./tools/install.sh antigravity install # Antigravity CLI ./tools/install.sh opencode install # OpenCode ./tools/install.sh gemini install /path/to/osado-repo ./tools/install.sh claude install /path/to/osado-repo
Update / Uninstall (replace install with update or uninstall):
./tools/install.sh antigravity update ./tools/install.sh opencode uninstall
The project moved from mpagot/os-autoinst-distri-opensuse-skills
(first named mpagot/os-autoinst-distri-opensuse-gemini) to
os-autoinst/osado-skills.
Installations from the old repository do not get updates any more. Remove the old installation, then install again from the new repository.
Check the source of the installed extension. Look for mpagot in the Source: line of osado-ai-assistant:
gemini extensions list
Remove the old extension:
gemini extensions uninstall osado-ai-assistant
Install from the new repository:
gemini extensions install https://github.com/os-autoinst/osado-skills
Check the source of the openqa-tools marketplace. The old one shows GitHub (mpagot/...):
claude plugin marketplace list
Remove the plugin and the old marketplace. The new marketplace has the same name (openqa-tools), so you must remove the old one first:
claude plugin uninstall osado-ai-assistant@openqa-tools claude plugin marketplace remove openqa-tools
Install from the new repository:
claude plugin marketplace add os-autoinst/osado-skills claude plugin install osado-ai-assistant@openqa-tools
Start a new Claude Code session to load the plugin.
agy plugin list does not show where a plugin comes from. If you installed osado-ai-assistant before the move, reinstall it.
Remove the old plugin:
agy plugin uninstall osado-ai-assistant
Install from the new repository:
agy plugin install https://github.com/os-autoinst/osado-skills.git
If you imported the plugin from Gemini CLI or Claude Code with agy plugin import, migrate that tool first, then import again.
Check the URL of the osado registry. The old one starts with https://mpagot.github.io/:
ocx registry list -g
Remove the installed skills and the old registry (repeat ocx remove for each skill you installed):
ocx remove osado/local-lint-test ocx registry remove osado -g
Install from the new registry:
ocx registry add https://os-autoinst.github.io/osado-skills/ocx --name osado -g ocx add -g osado/local-lint-test
Check the source of the installed skills. The old ones show Source: mpagot/...:
npx skills ls -g
Remove the old skills (name the skills you installed; npx skills remove -g without names asks interactively):
npx skills remove -g local-lint-test vr-planner test-catalog unit-test-wizard \ openqa-log-analyzer openqa-log-fetcher git-commit github-pr-create
Install from the new repository:
npx skills add os-autoinst/osado-skills -g
Remove the old installation, from your clone of the old repository:
cd /path/to/os-autoinst-distri-opensuse-gemini ./tools/install.sh antigravity uninstall ./tools/install.sh opencode uninstall ./tools/install.sh gemini uninstall /path/to/osado-repo ./tools/install.sh claude uninstall /path/to/osado-repo
Run only the lines for the tools you installed. Then delete the old clone.
Install from a new clone:
git clone https://github.com/os-autoinst/osado-skills cd osado-skills ./tools/install.sh antigravity install
See the Install Script tab in Installation for the other tools.
Plans verification runs: unit tests, affected modules, YAML schedules, and openqa-clone-job commands.
Triage openQA failures, measure command timing, detect infrastructure lag, compare runs.
Fetch, cache, and inspect logs, test artifacts, and job metadata from openQA instances.
Recommends the fastest local commands to validate edited OSADO code before pushing.
Add or audit Perldoc documentation headers following the test catalog standard.
Writes and reviews OSADO Perl unit tests for library modules in lib/.
Writes OSADO-compliant git commit messages for staged changes.
Creates a GitHub pull request handling commit, push, and PR creation in one step.