WORK-456
ID:WORK-456Status:ready

Preset-pack format and presets.json manifest (capability not kind)

SPEC-111 §1,§3 — define the standalone preset-pack format and the presets.json manifest. A pack is a capability a package adds, not a kind it becomes, so it coexists with a theme contract / template.json.

Priority:highComplexity:moderateMilestone:v0.25.0Source:SPEC-111
claude/v0.25.0-workitems View source

Criteria completion

Criteria completion: 0 of 5 (0%) checked; tracking started on Jun 23, no incremental history yet0%25%50%75%100%Jun 23Jul 11

Tracking started Jun 23 — check back for trends.

Branches 3
claude/v0.25.0-workitems current ready
main donechangeset-release/main doneclaude/v0.25.0-impl done
History 2
  1. c36d24c
    Content editedby bjornolofandersson
  2. a6bdcba
    Created (ready)by bjornolofandersson

Acceptance Criteria

  • A preset-pack is a package shipping one or more ThemeTokensConfig presets + a standalone presets.json, resolvable independently of any theme
  • presets.json records per-preset id, title, scope, module, optional tunedFor, and a refrakt range
  • Packs are a capability, not a kind: a package may declare presets.json alongside a theme contract / template.json; Lumina (theme + 9 presets) is expressible as a theme that also declares a pack — no ThemeManifest change
  • Distributable discovery scans for each capability (theme contract, template.json, presets.json) independently
  • Lumina's existing presets remain exported/functional and are expressible in the pack format without altering their data

Approach

Add the presets.json type in packages/types. Reframe distributable discovery to scan per-capability. No engine/loader change here — the carrier + validation land in their own work items (JSON carrier, scope/validation).

Dependencies

  • WORK-465 — the refrakt range field

References

  • SPEC-111 §1, §3; packages/lumina/src/presets/*