OSADO AI Assistant

AI-powered developer skills for os-autoinst-distri-opensuse

Use Cases

Verification planning
Log analysis
Local checks
Documentation
Unit tests
PR creation
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

Installation

Gemini CLI
Claude Code
Antigravity CLI
OpenCode (OCX)
Skills CLI
Install Script

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

Migration from the old repository

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.

Gemini CLI
Claude Code
Antigravity CLI
OpenCode (OCX)
Skills CLI
Install Script

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.

Skills

vr-planner

Plans verification runs: unit tests, affected modules, YAML schedules, and openqa-clone-job commands.

openqa-log-analyzer

Triage openQA failures, measure command timing, detect infrastructure lag, compare runs.

openqa-log-fetcher

Fetch, cache, and inspect logs, test artifacts, and job metadata from openQA instances.

local-lint-test

Recommends the fastest local commands to validate edited OSADO code before pushing.

test-catalog

Add or audit Perldoc documentation headers following the test catalog standard.

unit-test-wizard

Writes and reviews OSADO Perl unit tests for library modules in lib/.

git-commit

Writes OSADO-compliant git commit messages for staged changes.

github-pr-create

Creates a GitHub pull request handling commit, push, and PR creation in one step.