跳到正文
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(原文)

安装前可以查看交给 AI 代理的指令内容。

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 的全部技能

报告此技能的问题