UI Pack Maintain
Self-contained authoring and publication workflow for UI Packs. This skill owns the pack
contract, schema version rules, registry format, validator, and release metadata. It does not
own consumer-side discovery, download, or prototype generation.
Quick start
Create a Pack, then validate and resolve it:
node scripts/validate-pack.mjs --pack=<pack-directory> --strict
node scripts/resolve-pack.mjs --pack=<pack-directory> --entry=<id>[,<id>...]
Before publishing pack changes:
node scripts/generate-registry.mjs
node scripts/generate-registry.mjs --check
Landing paths, create/update steps, and the consumer resolver smoke test are in
Pack authoring.
Responsibility split
Owns ui-pack-maintain |
Owns html-prototype-build |
pack contract, schemaVersion, validate-pack.mjs, registry generation |
pack lookup chain, install-pack.mjs, deliver[] copy-out |
in-pack resolve-pack.mjs (--pack=<dir> --entry=) |
consumer resolve-pack.mjs (--list / --select) |
| pack lifecycle: create → validate → version → publish |
prototype generation |
Workflow
- Read
references/contract.md for structure and responsibility boundaries.
In creation mode, stop here for evidence. In maintenance mode,
continue to step 2.
- Read the target Pack's
PACK.md and manifest.json, plus only the resource
entries this task touches (maintenance only).
- Classify the change as Pack creation, Foundation, Component, Pattern, Preset,
registry/publication, or repair.
- Read Pack authoring and implement the smallest
reusable change.
- Update
manifest.json, then run deterministic validation.
- For a new Pack or substantial semantic change, run the isolated review in
Isolated semantic review.
- Regenerate
registry.json when publishing or changing downloadable metadata.
- Apply only verified findings, then rerun validation and the resolver smoke test.
Evidence priority is documented in Evidence authority.
Publication references:
- Registry format
- schemaVersion contract
Hard boundaries
- Keep a UI Pack inside the directory passed as
--pack=; this skill owns only
the workflow, contract, registry format, resolver, and validator. It does not
hard-code a consumer's pack install location.
- Keep the Foundation DOM-free; include only shared tokens and a document-level
CSS baseline.
- Keep each Component as one leaf implementation with a local contract.
- Compose Components through Patterns without copying their implementations.
- Keep Presets business-fact-free.
- Keep state adapters to projecting passed local state only; never access
PrototypeViewers, persist state, parse URLs, or register global event handlers.
- Treat
manifest.json as the only machine-readable index and dependency source.
- Declare only required dependencies in
requires; keep conditional capabilities
in optional.
- Patterns and Presets must not select internal components directly.
- Do not implement consumer download flows here; point users to
html-prototype-build Pack install.
Deterministic validation
node scripts/validate-pack.mjs --pack=<pack-directory> --strict
The validator enforces the pack contract, including pack-local
vendor / runtime / assets and manifest.delivery. Fix every error before semantic
review. Warnings must be resolved or explicitly reported as evidence gaps.
It cannot judge whether a component boundary is useful or whether visual evidence
is sufficient; delegate those questions to the semantic reviewer.
Resolver smoke test
node scripts/resolve-pack.mjs --pack=<pack-directory> --entry=<id>[,<id>...] [--optional=<id>[,<id>...]]
This covers in-pack requires/uses closures only. After validation, also run the
consumer resolver check in Pack authoring.
Cross-pack references are out of scope and must be reported as a ponytail: evidence gap.
Completion report
Report:
- changed Pack entries
- evidence used
- provisional decisions and missing evidence
- validator and resolver test results
- registry regeneration status
- unresolved independent-review findings
1---2name: ui-pack-maintain3description: Creates, extends, repairs, validates, versions, and publishes reusable UI Packs. Use when adding or changing UI Pack Foundations, Components, Patterns, Presets, design tokens, state adapters, manifests, or registry metadata, or when extracting a reusable visual system from screenshots, existing pages, or computed styles. Creating a Pack relies only on the self-contained contract plus user intent; maintenance may additionally read existing Packs. Do not use for generating business prototypes, editing production frontend code, installing packs for end users, or ordinary page styling.4---56# UI Pack Maintain78Self-contained authoring and publication workflow for UI Packs. This skill owns the pack9contract, schema version rules, registry format, validator, and release metadata. It does not10own consumer-side discovery, download, or prototype generation.1112## Quick start1314Create a Pack, then validate and resolve it:1516```bash17node scripts/validate-pack.mjs --pack=<pack-directory> --strict18node scripts/resolve-pack.mjs --pack=<pack-directory> --entry=<id>[,<id>...]19```2021Before publishing pack changes:2223```bash24node scripts/generate-registry.mjs25node scripts/generate-registry.mjs --check26```2728Landing paths, create/update steps, and the consumer resolver smoke test are in29[Pack authoring](references/pack-authoring.md).3031## Responsibility split3233| Owns `ui-pack-maintain` | Owns `html-prototype-build` |34|---|---|35| pack contract, `schemaVersion`, `validate-pack.mjs`, registry generation | pack lookup chain, `install-pack.mjs`, `deliver[]` copy-out |36| in-pack `resolve-pack.mjs` (`--pack=<dir> --entry=`) | consumer `resolve-pack.mjs` (`--list` / `--select`) |37| pack lifecycle: create → validate → version → publish | prototype generation |3839## Workflow40411. Read `references/contract.md` for structure and responsibility boundaries.42 In **creation** mode, stop here for evidence. In **maintenance** mode,43 continue to step 2.442. Read the target Pack's `PACK.md` and `manifest.json`, plus only the resource45 entries this task touches (maintenance only).463. Classify the change as Pack creation, Foundation, Component, Pattern, Preset,47 registry/publication, or repair.484. Read [Pack authoring](references/pack-authoring.md) and implement the smallest49 reusable change.505. Update `manifest.json`, then run deterministic validation.516. For a new Pack or substantial semantic change, run the isolated review in52 [Isolated semantic review](references/semantic-review.md).537. Regenerate `registry.json` when publishing or changing downloadable metadata.548. Apply only verified findings, then rerun validation and the resolver smoke test.5556Evidence priority is documented in [Evidence authority](references/evidence.md).5758Publication references:5960- [Registry format](references/registry-format.md)61- [schemaVersion contract](references/schema-version.md)6263## Hard boundaries6465- Keep a UI Pack inside the directory passed as `--pack=`; this skill owns only66 the workflow, contract, registry format, resolver, and validator. It does not67 hard-code a consumer's pack install location.68- Keep the Foundation DOM-free; include only shared tokens and a document-level69 CSS baseline.70- Keep each Component as one leaf implementation with a local contract.71- Compose Components through Patterns without copying their implementations.72- Keep Presets business-fact-free.73- Keep state adapters to projecting passed local state only; never access74 `PrototypeViewers`, persist state, parse URLs, or register global event handlers.75- Treat `manifest.json` as the only machine-readable index and dependency source.76- Declare only required dependencies in `requires`; keep conditional capabilities77 in `optional`.78- Patterns and Presets must not select internal components directly.79- Do not implement consumer download flows here; point users to80 `html-prototype-build` [Pack install](../html-prototype-build/references/pack-install.md).8182## Deterministic validation8384```bash85node scripts/validate-pack.mjs --pack=<pack-directory> --strict86```8788The validator enforces [the pack contract](references/contract.md), including pack-local89`vendor` / `runtime` / `assets` and `manifest.delivery`. Fix every error before semantic90review. Warnings must be resolved or explicitly reported as evidence gaps.9192It cannot judge whether a component boundary is useful or whether visual evidence93is sufficient; delegate those questions to the semantic reviewer.9495## Resolver smoke test9697```bash98node scripts/resolve-pack.mjs --pack=<pack-directory> --entry=<id>[,<id>...] [--optional=<id>[,<id>...]]99```100101This covers in-pack `requires`/`uses` closures only. After validation, also run the102consumer resolver check in [Pack authoring](references/pack-authoring.md#resolver-smoke-tests).103Cross-pack references are out of scope and must be reported as a `ponytail:` evidence gap.104105## Completion report106107Report:108109- changed Pack entries110- evidence used111- provisional decisions and missing evidence112- validator and resolver test results113- registry regeneration status114- unresolved independent-review findings