# skmtc describe



`describe` loads the project's `bundle.js` and the schema, then asks
each installed generator what it *would* act on — without writing any
files. It's the introspection half of `generate`: the same
subject-support decisions, reported instead of executed.

## Synopsis [#synopsis]

```
skmtc describe [project] [schema] [--json]
```

Like `clean` and `doctor`, `describe` has no interactive Ink variant —
it always runs headless and emits text or `--json`.

## Arguments [#arguments]

### `[project]` [#project]

The target project name. Required — when omitted, the CLI exits with a
recipe error (exit 2) pointing at `ls .skmtc/` to discover valid
project names. (Declared optional in the parser only so the recipe
error fires instead of a terse "missing argument".)

### `[schema]` [#schema]

Schema source (URL or local path). Optional; falls back to
`client.json#source`, exactly like [`generate`](/docs/reference/cli/generate).

## Options [#options]

### `--json` [#--json]

Write the metadata as a single structured JSON object to stdout.
Implies `--no-input`.

## Output [#output]

Per generator:

* **Supported subjects** — the operations (path + method) or models
  (ref names) the generator's `isSupported` accepts for this schema.
* **Enrichment descriptors** — the generator's enrichment schema in a
  form-renderable shape (what a UI would render to collect enrichment
  values).
* **Enrichment defaults** — the schema-derived default enrichment
  values.

## See also [#see-also]

* [generate](/docs/reference/cli/generate) — the write half of the same pipeline
* [Enrichments concept](/docs/concepts/enrichments)
