Spaces:
Sleeping
Sleeping
File size: 6,324 Bytes
cd53438 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | # Validation reporting β staging branch
## Install the Claude Code plugin
The `simready-report` plugin ships as a Claude Code marketplace under
`validation/.claude-plugin/`. From a checkout of this repo, run inside Claude Code:
```
/plugin marketplace add <path-to-repo>/validation
/plugin install simready-report@simready-playbook
```
That registers two slash commands: `/simready-report` and `/simready-package`.
You still need a Python with the SimReady runtime deps and the foundations + sdk
checkouts on disk β see [To run the demo as-is](#to-run-the-demo-as-is) below.
> [!IMPORTANT]
> ## Read [`PROBLEMS.md`](PROBLEMS.md) before trusting any report
>
> Reports produced by this prototype lean on a **local patch** for
> [PROBLEMS.md P1](PROBLEMS.md): without it, every Robot-Body profile
> silently drops 4 of its 5 declared features at load time, because
> the foundation `repo usd_profiles_codegen` step doesn't read the
> JSON variant definitions next to each feature's markdown. A
> "passing" report against `Robot-Body-Runnable` would only have
> checked 1 feature out of 5.
>
> The patch lives in
> `plugins/simready-report/skills/simready-report/validate.py` and is
> loud about itself β every run prints a `[PATCH P1]` line. With the
> patch active, `Robot-Body-Runnable` resolves to **5/5 features, 41
> requirements** instead of 1/8.
>
> The dashboard's **Caveats** panel still surfaces the gap if anyone
> runs without the patch.
>
> [`PROBLEMS.md`](PROBLEMS.md) **P1** has the full root cause, the
> patch walkthrough, and the upstream fix path. The patch is meant to
> be temporary β once foundations codegen is fixed, delete
> `_patch_register_json_variant_features()` and its call site.
---
> **Status: demo / review staging.** Not part of `simready-explorer` proper yet.
>
> This directory is a verbatim copy of the prototype work currently living at
> [`loginowskid/simready-playbook`](https://github.com/loginowskid/simready-playbook),
> dropped here on the `dev/dloginowski/validation-reporting` branch so the
> SimReady team can review the artifact before we refactor it into the repo's
> existing library + skills patterns.
## What this is
A Claude-Code-driven validation reporting pipeline for SimReady customer assets.
On top of the existing `omni.asset_validator` engine and SimReady profile registry,
it adds:
- **HTML dashboard** with summary cards, per-asset feature pass/fail, an
asset filter, and a "Other failed requirements" panel for issues outside the
loaded profile.
- **External-dependencies provenance report** β walks USD composition arcs per
asset, classifies each layer as internal/external relative to the target,
records actions taken to obtain each.
- **Foundation doc rendering** β renders the markdown source for every
feature/requirement code referenced by the report into HTML inside the output.
- **Auto-packaging convenience** β for a raw asset bundle under
`assets_to_validate/<name>/`, runs `simready ingest usd` per interface USD
before validating against the packaged tree.
- **Spec selector** β `--list-profiles` enumerates registered profiles so the
user can pick a SimReady profile interactively.
- **Parallel asset validation** β `ProcessPoolExecutor` workers, default auto.
Two slash commands ship together as a single Claude Code plugin:
- `/simready-report` β validate + dashboard + provenance + docs.
- `/simready-package` β standalone packaging (no validation).
## Layout (mirrors the source repo)
```
validation/
βββ bootstrap.ps1 # Windows convenience installer
βββ marketplace.json # Claude Code marketplace manifest
βββ plugins/simready-report/
β βββ plugin.json
β βββ skills/
β βββ simready-report/ # HTML dashboard + validation
β βββ simready-package/ # standalone packaging
βββ playbooks/
βββ foundations-deviations.md # observed gaps between specs and asset_validator
```
## Why it doesn't fit the repo's existing patterns yet
`simready-explorer` already ships `source/libraries/validate/` with a clean
public API (`validate_asset`, `validate_asset_list`, etc.) and three skills in
the `agentskills.io/specification` format (`validate-asset`, `validate-batch`,
`validate-metadata`). The work in this `validation/` directory:
- Reinvents a thinner version of `simready.validate.validate_asset_list` β
this is duplication that should be removed during integration.
- Uses a different skill format (Claude Code marketplace plugin) β should be
rewritten as `agentskills.io` skills that call into the library.
- Is a standalone-script architecture (`python validate.py β¦`) β should be
exposed via the existing `repo.bat` / library entry points.
## Proposed integration after review
1. New skill `validate-report` under
`source/libraries/validate/src/validate/skills/validate-report/` β
instructional doc that drives a new `simready.validate.report` module.
2. New module `source/libraries/validate/src/validate/report/` containing the
dashboard renderer, doc renderer, external-deps tracker, thumbnail mirrorer
β extracted from `report.py` + `external_deps.py` and adapted to consume
`AssetValidationResult` instead of the raw `omni.asset_validator` issue
stream.
3. Optional new skill `validate-package` β thin wrapper around
`simready ingest usd` (independent of validation).
4. Drop `bootstrap.ps1` / `marketplace.json` / Claude-Code-plugin layout β not
relevant here; the team uses `repo.bat` + `_build/` flow.
## To run the demo as-is
The scripts in this directory are self-contained and need a Python with the
SimReady runtime deps installed plus the foundations + sdk checkouts on disk.
Easiest path on Windows: `& bootstrap.ps1` (creates a venv at
`%LOCALAPPDATA%\simready\` and persists `SIMREADY_PYTHON` /
`SIMREADY_FOUNDATIONS_PATH` / `SIMREADY_SDK_PATH` env vars). On other systems
or custom layouts, install the deps into your Python and set those env vars
manually.
After that:
```
python plugins/simready-report/skills/simready-report/validate.py \
<path-to-asset-bundle> --profile Robot-Body-Isaac --version 1.0.0
```
Output lands at `<bundle>/.reports/<bundle-name>.<profile>/index.html`.
|