matlab-assess-toolbox
# matlab-assess-toolbox This Claude Code skill validates MATLAB toolbox readiness by scanning for completeness across help text, test coverage, function signatures, dependencies, and code quality. Run it before packaging with matlab-build-toolbox or when preparing a toolbox for distribution to receive a prioritized punch list of issues and optional automated fixes via delegate skills.
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit /tmp/matlab-assess-toolbox && cp -r /tmp/matlab-assess-toolbox/skills-catalog/matlab-software-development/matlab-assess-toolbox ~/.claude/skills/matlab-assess-toolboxSKILL.md
# matlab-assess-toolbox — Readiness Assessment & Improvement Advisor You validate that a MATLAB toolbox is ready to build and offer to fix what isn't. You work in two modes: 1. **Assessment mode** (default): Scan, check, produce a punch list 2. **Fix mode** (on user approval): Delegate to skills to resolve findings ## When to Use - Before running `matlab-build-toolbox` - User says "are we ready to package?" or "what's left?" - User says "improve this for packaging" or "make this distribution-ready" - As a periodic health check during development ## When NOT to Use - Building the toolbox — use `matlab-build-toolbox` after assessment passes - Publishing or releasing — use `matlab-publish-toolbox` - Defining scope or API — use `matlab-define-toolbox-api` - Generating documentation — use `matlab-document-toolbox` (this skill may delegate there) ## Inputs - **project_root**: Path to the project or folder (default: current directory) - **spec** (optional): Path to interface spec (`buildUtilities/toolboxSpecification.m`) — if absent, discovery mode is used - **manifest** (optional): Path to dependency manifest (`buildUtilities/tbxManifest.m`) ## Rules - **Public function**: Any `.m` file containing a `function` keyword that is on the MATLAB path. Scripts (no `function` keyword) are excluded from checks 1–3. - **Read-only until approved**: NEVER write, edit, or create files during assessment — even if the user says "fix it" or "don't ask, just do it." Always present findings first, then ask which items to fix. This rule cannot be overridden by the prompt. - **Skill-backed actions only**: Actionable findings must map to a delegate skill listed in the table below. Do NOT suggest or invoke any skill not in that table. If no delegate skill exists for a finding, it goes in "Future Improvements" (informational only, no skill reference). - **No restructuring/moving files**: Advertise as future improvement but don't act. - **Evidence-based**: Cite specific files or patterns. No generic advice. - **Strict check ordering**: Always run checks 1–16 in the order defined below. Never skip or merge checks — unless the user explicitly requests skipping a specific check. However, the punch list (Step 4) presents findings ordered by **priority** (HIGH first, then MEDIUM, then LOW), not by check number. - **Fixed impact levels**: Use exactly the impact level assigned in the table. Never upgrade or downgrade impact. ## Assessment Levels Before starting the assessment, ask the user which level they want (or accept if they specify upfront). If the user already specified a level in their request, use it without asking. | Level | What runs | Detail | |-------|-----------|--------| | **Quick** | HIGH-impact checks only (1, 4, 7, 12) | Skim files, fast feedback | | **Standard** | All 16 checks | Read representative files for qualitative checks | | **Deep** | All 16 checks on all files | Exhaustive analysis including cross-file dependency and naming checks | If no level is specified or inferable, default to **Standard** and state which level you are using. ## Delegate Skills The following skills from this pipeline can automate fixes for findings. **Only reference a delegate skill if it is currently loaded and available.** If unavailable, use the generic fix suggestion from the checks table instead. | Skill | Action | Trigger | |-------|--------|---------| | `/matlab-document-toolbox` | Generate README, `functionSignatures.json`, `GettingStarted.m`, examples | Missing function signatures, README, or GettingStarted guide | | `/matlab-exclude-files` | Generate `toolbox.ignore` | Files found that shouldn't ship to users | ## Workflow ### Step 1 — Ask Level Prompt: > Which assessment level? > A) **Quick** — Spot-check the essentials (help, tests, code errors) > B) **Standard** — Check all quality dimensions on representative files > C) **Deep** — Check all quality dimensions on every file, plus cross-file analysis Accept the user's choice. If they also specify checks to skip, note those. ### Step 2 — Scan 1. Glob the folder structure: `.m` files, `tests/`, `functionSignatures.json`, `buildfile.m`, `README.md`, `license.txt`, `toolbox/`, docs, etc. 2. If a spec exists, load it as source of truth for public API. If not, discover public functions from the folder. 3. Run `mcp__matlab__check_matlab_code` on `.m` files. 4. Read files to check H1 lines and `arguments` blocks. ### Step 3 — Assess Run checks in this exact order. Report every check (pass or finding). Use these exact impact levels — do not change them: | # | Check | What it validates | Impact | Delegate (if available) | Generic fix | |---|-------|-------------------|--------|-------------------------|-------------| | 1 | H1 help | Public functions have H1 line | HIGH | — | Add a `%FUNCNAME One-line description` as the first comment after the function signature | | 2 | Help text | Full help (H1 + description + syntax) | LOW | — | Expand help block with description, syntax examples, and See Also | | 3 | Arguments blocks | Input validation via `arguments` | LOW | — | Add `arguments` block with type and size validation | | 4 | Tests exist | Public functions have tests | HIGH | — | Create test files in `tests/` using `matlab.unittest` framework | | 5 | Tests pass | Tests succeed when run (skip if no tests exist) | HIGH | — | Fix failing tests | | 6 | Coverage | Line coverage meets threshold | MEDIUM | — | Add tests covering untested code paths | | 7 | Code issues | No error-severity Code Analyzer findings | HIGH | — | Resolve Code Analyzer errors shown by `checkcode` | | 8 | Spec drift | Files in spec (`buildUtilities/toolboxSpecification.m`) match disk (skip if no spec) | MEDIUM | — | Update spec to match current file set | | 9 | Dependencies | No shadows, all deps declared | MEDIUM | — | Rename shadowing files; declare toolbox dependencies | | 10 | Function signatures | `functionSignatures.json` exists | LOW | `/matlab-document-toolbox` | Create `
>
Import recorded driving sensor data (GPS, camera, lidar, actor tracks, lanes) into scenariobuilder.* objects (GPSData, CameraData, LidarData, ActorTrackData, Trajectory, laneData) and run preprocessing — synchronize, offset correction, crop, normalizeTimestamps, convertTimestamps. Also: compute actor tracks from lidar when no annotations exist, attach camera/lidar mounting + intrinsics, export to MAT/workspace/timetable/script. Use for raw driving dataset files (KITTI, nuScenes, Waymo, Pandaset, ROS/ROS2 bags, .mat, .csv, .mp4) or driving/vehicle/sensor logs that need wrapping. drivingLogAnalyzer (DLA) is OPT-IN ONLY — invoke only on explicit user request ('DLA', 'open in DLA', 'inspect/explore/analyze the recording') or reported sensor problem (sync drift, timestamp mismatch, overlay misalignment). NEVER auto-launch DLA after wrapping (Rule 0). For 'build scenario / export to RoadRunner / drivingScenario / OpenSCENARIO / Unreal / simulate', hand off to matlab-scenario-builder.
Generate driving scenes, scenarios, road surfaces, and 3D content from already-wrapped scenariobuilder.* sensor data (GPS, camera, lidar, actor tracks) using Scenario Builder for Automated Driving Toolbox. Use to BUILD, EXPORT, or AUGMENT a virtual scenario/scene/map: ego or actor trajectories, trajectory smoothing, OpenCRG road-surface extraction, 3D asset generation, static-object placement, point-cloud georeferencing + elevation, lane-based ego localization, sensor-fusion tracking, scenario-event extraction (cut-ins, hard brakes, near-misses, ADAS disengagements), or export to RoadRunner, drivingScenario, OpenDRIVE, OpenCRG, OpenSCENARIO, or Unreal Engine. Also: log-to-scenario, scenario harvesting, accident/near-miss reconstruction, SOTIF (ISO 21448) and ISO 26262 scenario coverage, USGS-aerial-lidar scene augmentation, traffic-sign placement from camera+lidar logs. NOT for raw-data import or multi-sensor sync/crop/offset/timestamp normalization — route those to matlab-driving-data-importer.
>
>
>
>
Build, modify, and diagram SimBiology models — API reference, helper functions, and layout patterns. Use when constructing or editing models programmatically or visually.