# A2ui Catalog Extractor

> A2ui Catalog Extractor is an Agent Skill for documents published in the lynx-family/lynx-stack repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Generate or maintain A2UI catalog JSON from TypeDoc reflections for TypeScript interfaces marked with @a2uiCatalog.

- Skill name: `a2ui-catalog-extractor`
- Category: [Documents](https://www.openparable.com/skill/documents/1)
- Source: https://github.com/lynx-family/lynx-stack/blob/HEAD/packages/genui/a2ui-catalog-extractor/skills/a2ui-catalog-extractor/SKILL.md
- Repository: lynx-family/lynx-stack (719 GitHub stars when collected)

## SKILL.md

# A2UI Catalog Extractor

Use this skill when a task involves authoring, updating, debugging, or generating A2UI catalog JSON from TSX/TypeScript component interfaces.

## Workflow

1. Mark only the catalog-facing TypeScript interface with `@a2uiCatalog <ComponentName>`.
2. Use only standard TypeDoc-supported tags besides `@a2uiCatalog`: summaries, `@remarks`, `@defaultValue`, and `@deprecated`.
3. Keep catalog-facing shapes inline in the marked interface. The extractor consumes TypeDoc reflection data and does not parse source files itself.
4. Generate component catalog files with:

```bash
a2ui-catalog-extractor --catalog-dir src/catalog --out-dir dist
```

## Supported Type Shapes

- `string`, `number`, `boolean`
- string literal unions, emitted as JSON Schema `enum`
- mixed unions, emitted as `oneOf`
- arrays with `T[]`, `Array<T>`, or `ReadonlyArray<T>`
- inline object type literals
- `Record<string, T>`

Developers should not write JSON Schema in comments. If extraction fails because a reference is unsupported, inline the component's catalog contract in the marked interface.

---

Source: https://www.openparable.com/skill/documents/a2ui-catalog-extractor (OpenParable). Cite the canonical URL above.
