Spaces:
Sleeping
Sleeping
| # 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`. | |