Acceptance Criteria
- Each preset declares
scope (syntax | palette) in the manifest entry; a declared syntax preset that sets chrome tokens is a validation warning (reusing filterScopeEligible) tunedFor (preset → themes) is advisory; absence means universal; applying a preset outside its set is never an error- Pack-manifest validation checks each
module resolves, scope-vs-actual-tokens agreement, and tunedFor well-formedness - Validation folds into the existing config/theme validation surface (and the scaffold's
manifest-validate)
Approach
Reuse the engine's existing filterScopeEligible classification (packages/transform/src/token-stylesheet.ts) to compare a preset's actual token namespaces against its declared scope. Wire the checks into the shared validation surface.
Dependencies
- WORK-456 — the pack format / manifest
- WORK-457 — loading a preset to inspect its tokens
References
- SPEC-111 §2, §3, §4;
packages/transform/src/token-stylesheet.ts (filterScopeEligible)