agentleFS
NVIDIAKnown publisherNVIDIA/nvcf/src/uis/nvcf-ui/.claude/skills/codegen/SKILL.md

codegen

Skill261 starsChanged 9 days agoApache-2.0View on GitHub

Run and manage the Orval code generation pipeline for API hooks, TypeScript models, and MSW mocks. Use when editing an OpenAPI spec, running task generate, adding or modifying MSW scenarios, troubleshooting generated code, or when generated hooks are missing or out of date.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run task ui:lint:fix so generated output passes linting/formatting

    line 50
  2. Very specific:

    Run task typecheck to confirm consumers still type-check against the regenerated models

    line 51

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Code Generation Pipeline

task generate runs Orval, which reads the three OpenAPI specs in spec/ directly and generates React Query hooks, TypeScript models, and MSW handler factories into ui/src/generated/. It then adds Apache license headers to the output. There is no bundling step (no Redocly, no openapi.yaml).

Specs:

  • spec/control-plane-openapi.yaml — the UI shim/BFF API
  • spec/nvcf-openapi.yaml — NVCF Cloud Functions (v2) API
  • spec/sis-openapi.yaml — cluster API

Gotchas

  • Edit the specs in spec/ — never edit anything in ui/src/generated/ (regenerated output).
  • ui/src/generated/ is committed and enforced by the Codegen Check CI job: if you change a spec, run task generate and commit the regenerated output, or CI fails on the diff.
  • Orval config is in ui/orval.config.ts (one shared output block spread across all three specs). Customize generation there, not in the generated files.
  • Generated hook names follow Orval's convention: useGetFunctions, useGetFunctionsSuspense, getGetFunctionsQueryOptions. The double "Get" is expected — don't rename them.

What Gets Generated

  • React Query hooks — useGetFunctions, useGetFunctionsSuspense, etc. (suspense variants are generated globally).
  • Query options factories — getGetFunctionsQueryOptions for use in route loaders.
  • TypeScript models — plain interface/type files in ui/src/generated/model/ (no runtime validation). Zod generation is intentionally off; re-add it as a separate client: "zod" Orval target if runtime validation is ever needed.
  • MSW handler factories — per-endpoint mock handlers plus per-response mock generators (getGetFunctionVersionResponseMock, etc.).

Mocks and Scenarios

The default mock baseline is a seeded in-memory store (ui/src/mocks/store/), not the raw generated handlers. The store builds a stable dataset once (keyed by account ncaId) using the generated response-mock generators, so list and detail views stay consistent and their IDs line up.

Scenarios go in ui/src/mocks/scenarios/<feature>/<name>.ts, each exporting { handlers: HttpHandler[] }. They layer on top of the store baseline (first match wins) — activate with VITE_SCENARIO=functions:empty-list (comma-separated for multiple). Focus scenarios on states with a cascading effect on the view (empty list, error, a status that changes available actions) — not minor value variations, which the seeded store already covers.

Validate After Running

  1. Run task generate
  2. Run task ui:lint:fix so generated output passes linting/formatting
  3. Run task typecheck to confirm consumers still type-check against the regenerated models

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.