# Extension points — nextlevelbuilder/ui-ux-pro-max-skill

> Canonical page: https://codevetter.com/unpack/ui-ux-pro-max-skill/extension-points

# Extension points — nextlevelbuilder/ui-ux-pro-max-skill

Scanned commit dcc40ff5133ef78276117db0cc34e7b83cc8aeba (2026-09-21). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

Extension is deliberately data-driven: new search domains register in CSV_CONFIG, new stacks in STACK_CONFIG + STACK_CURRENT_* tables, new product categories as aligned rows across products/colors/ui-reasoning.csv, new decision-rule signals in CONDITION_SIGNALS, new dial tiers in DIAL_TIERS, new AI platforms via AI_TYPES + AI_TO_PLATFORM + a templates/platforms/*.json file, and new sub-skills via the subSkills array in sync-assets.mjs. Smoke tests and validators auto-enumerate these registries, so additions are picked up without wiring — but several guards (192-row parity, expected domain/stack counts, identity uniqueness) will fail CI if invariants are missed.
- New search domain = one CSV_CONFIG entry (file + search_cols + output_cols); --domain choices, smoke-domains.sh enumeration, and domain auto-detection all derive from it, though _DOMAIN_TIEBREAK_ORDER, _DOMAIN_QUERY_REWRITES, and _SEARCH_THRESHOLDS may need matching entries. — [src/ui-ux-pro-max/scripts/core.py#L18-79](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/core.py#L18-L79) [src/ui-ux-pro-max/scripts/core.py#L203-233](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/core.py#L203-L233) [scripts/smoke-domains.sh#L34-48](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/scripts/smoke-domains.sh#L34-L48)
- New stack = a data/stacks/<name>.csv plus a STACK_CONFIG entry; STACK_CURRENT_VERSIONS, STACK_CURRENT_APPLICABILITY, _STACK_QUERY_NAMES, and STACK_OFFICIAL_HOSTS in validate_data.py form the freshness/identity contract the validator enforces. — [src/ui-ux-pro-max/scripts/core.py#L89-193](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/core.py#L89-L193) [src/ui-ux-pro-max/scripts/validate_data.py#L111-134](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/validate_data.py#L111-L134)
- New product category requires exactly-aligned rows in products.csv, colors.csv, and ui-reasoning.csv — validate_data.py hard-fails unless each has exactly 192 rows with identical label sets. — [src/ui-ux-pro-max/scripts/validate_data.py#L331-358](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/validate_data.py#L331-L358)
- Decision-rule grammar extension points: add an if_* key to CONDITION_SIGNALS (regex-compiled signal phrases) or a prefix to ACTION_PREFIXES/TOKEN_ACTION_PREFIXES; apply_decision_rules produces only deterministic mutations (style_ids, constraints, pattern, mode) — data can never execute. — [src/ui-ux-pro-max/scripts/reasoning_contract.py#L7-55](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/reasoning_contract.py#L7-L55) [src/ui-ux-pro-max/scripts/reasoning_contract.py#L101-123](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/reasoning_contract.py#L101-L123)
- Style taxonomy extension: new styles get a kebab-case Style ID, a Status in {active,supplemental,deprecated}, and optional Parent Style ID or Replacement Domain/ID redirect; _check_style_contract enforces identity uniqueness, parent cycles, and vocabulary vocabularies (Performance/Accessibility/mode fields). — [src/ui-ux-pro-max/scripts/validate_data.py#L231-328](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/validate_data.py#L231-L328) [src/ui-ux-pro-max/data/styles.csv](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/data/styles.csv)
- Design dials extend via DIAL_TIERS buckets — variance injects style_keywords ahead of reasoning priorities, motion maps to an Intensity Tier in motion.csv, density swaps the spacing dict written into MASTER.md. — [src/ui-ux-pro-max/scripts/design_system.py#L67-98](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/design_system.py#L67-L98) [src/ui-ux-pro-max/scripts/design_system.py#L472-514](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/scripts/design_system.py#L472-L514)
- New AI platform = add the type to AI_TYPES + AI_FOLDERS + AI_TO_PLATFORM + getAITypeDescription, then drop a templates/platforms/<name>.json declaring folderStructure/scriptPath/frontmatter — the installer, dry-run planner, and uninstaller all derive paths from that JSON. — [cli/src/types/index.ts#L46-72](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/cli/src/types/index.ts#L46-L72) [cli/src/utils/template.ts#L37-58](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/cli/src/utils/template.ts#L37-L58) [src/ui-ux-pro-max/templates/platforms/claude.json](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/templates/platforms/claude.json) [cli/src/utils/detect.ts#L93-138](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/cli/src/utils/detect.ts#L93-L138)
- Template rendering is placeholder substitution on templates/base/skill-content.md ({{TITLE}}, {{DESCRIPTION}}, {{SCRIPT_PATH}}, {{SKILL_OR_WORKFLOW}}, {{QUICK_REFERENCE}}); new platforms reuse the same base — per-platform divergence lives only in the JSON config. — [cli/src/utils/template.ts#L132-163](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/cli/src/utils/template.ts#L132-L163) [src/ui-ux-pro-max/templates/base/skill-content.md#L1-80](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/src/ui-ux-pro-max/templates/base/skill-content.md#L1-L80)
- New bundled sub-skill = create .claude/skills/<name>/ and add the name to the subSkills array in sync-assets.mjs; the bundled-skill CI contract auto-derives its allowlist from the directory listing. — [cli/scripts/sync-assets.mjs#L26-28](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/cli/scripts/sync-assets.mjs#L26-L28) [.github/workflows/check-asset-sync.yml#L124-149](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/.github/workflows/check-asset-sync.yml#L124-L149)
- Catalog refresh scripts are CLI-arg driven (--input, --package-json, --curated-csv, --output, --verified-at, --expected-count) so a new upstream catalog can be added by scripting the same validate->normalize->manifest-write pattern used for Phosphor icons. — [scripts/refresh-icon-catalog.py#L208-236](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/scripts/refresh-icon-catalog.py#L208-L236) [.github/workflows/refresh-catalogs.yml#L159-203](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/.github/workflows/refresh-catalogs.yml#L159-L203)
- Gallery filter dimensions are computed from data via getUniqueValues over any StyleData key, so a new CSV column can become a filter facet with a small FilterBar change. (inferred) — [gallery/lib/filterStyles.ts#L19-61](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/gallery/lib/filterStyles.ts#L19-L61) [gallery/components/GalleryGrid.tsx#L25-52](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/blob/dcc40ff5133ef78276117db0cc34e7b83cc8aeba/gallery/components/GalleryGrid.tsx#L25-L52)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
