本文へ移動
cccskills
無料GitHub で公開

ci

Read GitHub Actions CI for the current branch or open PR, triage failing checks, reproduce locally, and fix scoped issues until green. Use whenever the user mentions CI failures, red checks, failed pipeline, GitHub Actions, merge blocked, fix the build, babysit CI, gh run failed, ruff/ty errors, failing pytest, example run failed, or asks to check CI on this branch — even if they only paste a log snippet. Also use after implementing a feature when tests, lint, or typecheck might have broken.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md6.6 KB
  • evals/evals.json1.1 KB
  • references/gh-commands.md1.3 KB
  • references/nova-ci.md3.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Fix branch CI

Get the current branch green on GitHub Actions. Work in a loop: read pipeline → reproduce locally → fix → verify → re-check CI.

Read root AGENTS.md and CLAUDE.md before changing code — especially the code style rules, the async conventions, and the exact lint/typecheck/test commands.

Do not weaken CI workflows or skip checks to get green. Do not fix unrelated pre-existing failures unless merging main into the branch resolves them.

Phase 1 — Read the pipeline

1. Establish git context

Run in parallel when possible:

git branch --show-current
git status -sb
gh pr view --json url,headRefName,baseRefName,statusCheckRollup 2>/dev/null || true
  • No open PR: use gh run list --branch "$(git branch --show-current)" --limit 15
  • Open PR: prefer statusCheckRollup from gh pr view for a single summary

2. List failing checks

From statusCheckRollup, collect every item with conclusion: FAILURE or state: FAILURE. Note:

  • Workflow name (e.g. @wandelbots/wandelbots-nova: Typecheck, Lint and Format)
  • Job name (e.g. test, yamllint, validate-title)
  • detailsUrl (link to the run)

For each failure, fetch logs:

gh run view <run-id> --log-failed

If the URL is a job link, extract run-id from the path or use:

gh run list --branch "$(git branch --show-current)" --workflow "<workflow-file-name>" --limit 3

See references/gh-commands.md for more patterns.

3. Build a failure table (show the user)

Before editing code, summarize:

CheckJobLikely scopeLocal repro command
……paths touched on branchuv run …

Map workflow → local command using references/nova-ci.md.

Prioritize: the fast Typecheck, Lint and Format gate first (format → import order → lint → typecheck → unit tests), then integration/example jobs.

Phase 2 — Reproduce locally

Run the same command CI runs. Make sure the environment matches first:

uv sync --extra "nova-rerun-bridge" --extra "wandelscript" --extra "novax"

Common repro commands (from nova-dev.yaml):

uv run ruff format --check .          # formatting gate
uv run ruff check --select I          # import order
uv run ruff check .                   # lint
uv run ty check                       # typecheck
PYTHONPATH=. LOG_LEVEL=WARNING uv run pytest -rs -v -m "not integration"   # unit tests

Single test file / test:

PYTHONPATH=. uv run pytest -rs -v path/to/test_file.py
PYTHONPATH=. uv run pytest -rs -v path/to/test_file.py::test_name

If local passes but CI fails: check Python version (3.12 in the workflows), missing extras in uv sync, PYTHONPATH=., or a required env var (CELL_NAME, NOVA_API, NOVA_ACCESS_TOKEN).

Phase 3 — Fix (surgical)

Failure patterns in this repo

CI signalUsual causeFix direction
ruff format --check failsUnformatted codeuv run ruff format .
ruff check --select I failsImport orderuv run ruff check --select I --fix
ruff check . failsLint violationsFix the reported rule; avoid blanket # noqa
ty check errorsType drift / bad annotationFix types (modern list[T] syntax); do not add # type: ignore to silence real issues
Unit test failureReal bug or stale testFix code or test logic; keep tests async-correct (await, async with)
Integration test failure (-m integration)Needs live NOVA instanceUsually CI-infra; only debug locally if you have NOVA_API + NOVA_ACCESS_TOKEN
Example run failed (python examples/…)API/SDK change broke an exampleUpdate the example to the current SDK, or fix the regression
PR title checkTitle not Conventional CommitsRetitle PR to chore|feat|fix[(scope)][!]: Description
YAML Lint.github/workflow YAML styleFix per .yamllint; run yamllint . locally if installed
uv audit (SAST)Vulnerable dependencyBump the dependency in pyproject.toml; escalate if no fix available

Fix rules

  1. Match the failure — only change what the failing check implies.
  2. Prefer local verify before telling the user to push.
  3. Never disable a check (no removing ty errors with ignores, no --no-verify, no deleting/relaxing tests) to force green without understanding the diff.
  4. Async: everything in this SDK is async — keep await / async with correct when touching runtime code or tests.
  5. Escalate when: failure is on main too, needs a running NOVA instance or secrets you don't have, or the fix would weaken a check.

Phase 4 — Verify and loop

After fixes, re-run the exact failing command(s):

uv run ruff format --check . && uv run ruff check --select I && uv run ruff check . && uv run ty check
PYTHONPATH=. LOG_LEVEL=WARNING uv run pytest -rs -v -m "not integration"

Optional — re-query CI (user must push first for new runs):

gh pr view --json statusCheckRollup
gh run list --branch "$(git branch --show-current)" --limit 5

Tell the user:

  • What failed and why (one sentence per check)
  • What you changed
  • What you ran locally
  • Whether they need to push for CI to re-run
  • Anything still red or outside scope

Phase 5 — Multi-failure ordering

When several checks fail:

  1. Format (ruff format --check) — cheapest
  2. Import order (ruff check --select I)
  3. Lint (ruff check .)
  4. Typecheck (ty check)
  5. Unit tests (pytest -m "not integration")
  6. Integration tests / examples (need a live NOVA instance; slow, often infra)

Fix one cluster at a time; re-run the local check before moving on.

Reference files

  • references/gh-commands.md — gh CLI for runs, logs, PR checks
  • references/nova-ci.md — workflow → local command mapping and env notes

Output format

End with a short status block:

## CI status
- Branch: …
- PR: … (if any)

## Fixed
- [workflow/job]: cause → change → verified with …

## Still failing / needs you
- …

## Next step
Push and re-watch CI, or run: …

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Authoritative reference for working with the released Wandelbots NOVA API v2 in the wandelbots-nova Python SDK. Use whenever a task touches the NOVA API, the generated `wandelbots_api_client` models (`nova.api.models.*`), motion planning requests (`plan_trajectory`, `MotionGroupSetup`, `LimitSet`, `LimitsOverride`), robot limits, or torque/velocity/acceleration/jerk limits. Reach for this skill before guessing field names or assuming a field exists — the installed client reflects the RELEASED API, while nightly specs may contain unreleased fields. Especially relevant for controller-reported limits (e.g. KUKA torque) and any "does field X exist / how is it forwarded to the planner?" question.

日本語の概要は準備中です。原文の説明を表示しています。

wandelbotsgmbh/wandelbots-nova462026年10月5日 更新

pr

無料

Open or update one GitHub pull request for the current work: a conventional-commits title and a description that always includes why and benefits, and never a second PR for the same head. Use when the user asks to open a PR, create a pull request, update or refresh the PR description, ship the branch, or "make a PR". On the default branch, create a new branch first. If this head already has a PR, edit it — do not create another. Do not open a PR unless the user asked.

日本語の概要は準備中です。原文の説明を表示しています。

wandelbotsgmbh/wandelbots-nova462026年10月5日 更新

wandelbotsgmbh のスキルをすべて見る

このスキルの問題を報告する