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

nova-app-review

Review a robot cell application built on the Wandelbots NOVA Python SDK (wandelbots-nova) for safety, motion, PLC/IO, async runtime, performance, lifecycle, device handling and NOVA SDK usage, and report findings with severity, evidence and concrete fixes. Use when the user asks to review, audit, check, lint or harden a NOVA app, a @nova.program, a NOVAx app or any robot application; asks about best practices, common pitfalls, cycle time, safety or commissioning readiness; or asks 'is my robot code OK?'.

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

wandelbotsgmbh/wandelbots-novaスター 48(GitHub 48 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(16)

  • SKILL.md7.5 KB
  • references/nova-sdk-mapping.md9.3 KB
  • references/reference-numbers.md1007 B
  • references/rules/async.md4.2 KB
  • references/rules/configuration.md1.5 KB
  • references/rules/devices.md3.0 KB
  • references/rules/errors.md2.5 KB
  • references/rules/io.md3.5 KB
  • references/rules/lifecycle.md3.2 KB
  • references/rules/motion.md6.8 KB
  • references/rules/observability.md1.6 KB
  • references/rules/performance.md4.8 KB
  • references/rules/safety.md9.6 KB
  • references/rules/structure.md1.3 KB
  • references/rules/testing.md1.0 KB
  • scripts/scan.py38.4 KB

SKILL.md(原文)

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

NOVA app review

Review a customer robot application against the rule catalogue in references/rules/ and report findings in chat. This is a read-only review: do not edit project files unless the user asks for fixes afterwards.

Software rules are defence in depth. They never replace certified safety functions (safety PLC, light curtains, SafeOperation, collaborative modes). Say so once in the report.

All paths below are relative to this skill's directory (the folder containing this file).

Workflow

Track these steps with a todo list.

1. Establish context

  • Find the app root (the directory with pyproject.toml / requirements.txt / .nova).
  • Read the project's AGENTS.md, CLAUDE.md or README.md if present.
  • Note the installed SDK version: uv run python -c "import importlib.metadata as m; print(m.version('wandelbots-nova'))" (or the project's own interpreter). If an .installed-from.json file next to this SKILL.md names a different wandelbots-nova version, tell the user to refresh the skill with nova-skills install and continue with a note that SDK mappings may be stale.

2. Discover the architecture

Static search alone misses most safety findings. Locate and write down (file + line):

  • entry point and event loop setup (@nova.program, Novax, asyncio.run, FastAPI lifespan)
  • robot connection / session lifecycle (async with Nova(), cell.controller(...), motion group)
  • motion entry points (plan, execute, plan_and_execute, TrajectoryCursor)
  • IO layer (controller IO read/write/wait_for_bool_io, bus IO nova.utils.io, io_write)
  • state machine or supervisor (modes, fault handling, reset)
  • fault path (what happens between "error detected" and "robot stopped")
  • shutdown path and signal handling
  • job/program definitions and how they are selected
  • device plugins (gripper, vision, force sensor, ...)
  • configuration sources (env, config modules, datasets, PLC tag exports)

3. Run the scanner

uv run python <skill-dir>/scripts/scan.py <app-root>     # or: python3 <skill-dir>/scripts/scan.py <app-root>

The scanner needs only the Python standard library. It prints JSON with:

  • candidates: {rule, severity, confidence, file, line, excerpt, message, path_kind}
  • facts: project-wide signals (e.g. queries_tcp_names, uses_payload, nova_entry_points) that rules use to decide whether a feature is missing

Candidates are hints, not findings. Confirm each one by reading the code. Drop false positives silently; never report a candidate you have not confirmed.

4. Review every rule

Load the rule files for the areas you found in step 2. Load references/nova-sdk-mapping.md for every NOVA-specific rule (scope: nova) and whenever the fix involves an SDK call. It lists the SDK symbol to use, known SDK gaps and the recommended workaround for this SDK version.

FileRules
references/rules/safety.mdSAF-001 … SAF-014
references/rules/motion.mdMOT-001 … MOT-013
references/rules/io.mdIO-001 … IO-007
references/rules/async.mdASY-001 … ASY-009
references/rules/performance.mdPERF-001 … PERF-012
references/rules/lifecycle.mdLIFE-001 … LIFE-008
references/rules/errors.mdERR-001 … ERR-006
references/rules/devices.mdDEV-001 … DEV-008
references/rules/configuration.mdCFG-001 … CFG-004
references/rules/observability.mdOBS-001 … OBS-005
references/rules/testing.mdTST-001 … TST-003
references/rules/structure.mdSTR-001 … STR-003
references/nova-sdk-mapping.mdrule → SDK symbol, gaps, workarounds
references/reference-numbers.mdmeasured timeouts and loop rates for sizing fixes

Each rule has a detect hint: static (pattern is enough), review (read the control flow) or static+review (search, then confirm by reading).

Skip rules that cannot apply (e.g. DEV-002 in a cell without vision) and list them as "not applicable" in one line. Do not demand a feature the cell does not need.

5. Report in chat

Use the format below. Do not write a report file unless the user asks for one.

Severity

SeverityMeaningGate
errorCan injure people, damage hardware/parts, or leave the cell in an undefined state.Block release
warningMeasurable cycle-time loss, reliability risk, or recovery problems.Fix before commissioning
infoMaintainability, observability, ergonomics.Backlog

Raise severity by one level if the code path runs in automatic mode on real hardware; lower it by one if it is provably simulation/test-only. State the adjustment in the finding.

False-positive guidance

  • Tests, simulators and one-off scripts (tests/, scripts/, tools/) may break performance and async rules. Still report safety rules there if the script can move a real robot.
  • Generated files (e.g. IO symbol modules) are exempt from naming/structure rules.
  • A rule is satisfied if the requirement is met centrally (e.g. a shared run_job() wrapper that always returns home). Do not demand per-job duplication.
  • Hardware safety is outside software scope.
  • Code copied from SDK examples is not exempt: examples favour brevity over production rules.

Report format

## NOVA app review — <app name>

SDK: wandelbots-nova <version> · Scope: <dirs reviewed> · Rules checked: <n> · Not applicable: <ids>

> Software checks are defence in depth and do not replace certified safety functions.

| Severity | Count |
|---|---|
| error | n |
| warning | n |
| info | n |

### Top 5 fixes
1. RULE-ID — one line: what to change and why it matters most

### Safety
#### [ERROR] SAF-003 — Fault path stops motion first, with the shortest timeout
- **Location:** [app/supervisor.py](app/supervisor.py#L120-L134)
- **Evidence:** `await log_fault(...)` runs before the motion task is cancelled
- **Impact:** the robot keeps moving for the duration of the log call when a fault arrives
- **Fix:** cancel the execute task first, bounded by `asyncio.timeout(STOP_TIMEOUT_S)`; then log
  ```python
  motion_task.cancel()
  async with asyncio.timeout(STOP_TIMEOUT_S):
      await asyncio.gather(motion_task, return_exceptions=True)
  • Reference: references/rules/safety.md (SAF-003); SDK: nova-sdk-mapping.md (SAF-003)
  • Confidence: high

Motion

...


Rules for the report:

- Group findings by category in catalogue order; within a category order by severity.
- Every finding has file + line evidence. No evidence, no finding.
- **Fix** is the minimal concrete change, with a short code snippet where it helps. Use SDK symbols
  from `nova-sdk-mapping.md`; never invent SDK APIs. If the SDK lacks a feature, say so and give
  the workaround from the mapping.
- **Reference** names the rule file and rule ID, plus the SDK symbol or the SDK source/doc link
  from the mapping.
- If the same violation repeats, report it once and list all locations.
- End with a short "Next steps" list and offer to apply the fixes.

レビュー

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

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

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.

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

wandelbotsgmbh/wandelbots-nova482026年10月28日 更新

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-nova482026年10月28日 更新

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-nova482026年10月28日 更新

wandelbotsgmbh のスキルをすべて見る

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