← Lumen UICONTENT HISTORY

Update to Lumen UI

Snapshot Nov 9, 2026 · 18:08 UTC · version 1.1.0

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Instructions updated for lumen-ui

Full description — Now says: Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation...

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save Lumen UI and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Full description

Before

Sep 30, 2026 · 22:59 UTC

Build, restyle, review, or migrate product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use when a request mentions Lumen UI, Lumen packages or tokens, or asks an AI agent to creat...

After

Nov 9, 2026 · 18:08 UTC

Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces c...

Skill instructions

Before

Sep 30, 2026 · 22:59 UTC

description: Build, restyle, review, or migrate product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use when a request mentions Lumen UI, Lumen packages or tokens, or asks an AI a...

After

Nov 9, 2026 · 18:08 UTC

metadata: guidance-version: "5.1.0" description: Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, compo...

Supporting files

Before

Sep 30, 2026 · 22:59 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":259},{"relative_path":"references/component-selection.md","size_in_bytes":4633},{"relative_path":"references/design-system.md","size_in_bytes":3073},{"relative_path":"references/fram...

After

Nov 9, 2026 · 18:08 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":259},{"relative_path":"references/astro.md","size_in_bytes":1507},{"relative_path":"references/component-selection.md","size_in_bytes":5516},{"relative_path":"references/compose.md",...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,6 +1,8 @@
 ---
 name: lumen-ui
-description: Build, restyle, review, or migrate product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use when a request mentions Lumen UI, Lumen packages or tokens, or asks an AI agent to create an accessible interface that should use Lumen instead of inventing primitives.
+metadata:
+  guidance-version: "5.1.0"
+description: Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces composed from Lumen primitives. Use lumen-review for requested audits and lumen-migrate for version upgrades.
 ---
 
 # Lumen UI
@@ -11,7 +13,7 @@
 ## Workflow
 
 1. Inspect the app before editing. Identify the framework, package manager, global style entry,
-   existing Lumen packages, theme overrides, and local component conventions.
+   resolved installed Lumen versions, theme overrides, and local component conventions.
 2. Choose the matching target:
    - Astro: `@santi020k/lumen-astro`
    - React: `@santi020k/lumen-react`
@@ -20,34 +22,56 @@
    - SwiftUI or Apple platforms: `LumenUI`
    - Jetpack Compose or Android: `lumen-compose`
 3. Retrieve current contracts before guessing:
-   - For Astro, React, and Elements, prefer connected Lumen MCP tools: read snapshot metadata and diagnostics, read agent rules,
-     search with the target framework, then read the selected component's usage contract and tokens.
+   - Start discovery with `limit: 5` and the requested `framework` or native `platform`. Add
+     `kind: "component"` or `kind: "native-component"` when choosing primitives; use
+     `kind: "recipe"` for a complete composition. Widen the search only when those results do not
+     cover the requirement. Read `detail: "usage"` for the selected contracts; request source only
+     to resolve a specific missing detail. Reuse retrieved contracts within the same matching
+     catalog version instead of listing the full catalog for every component.
+   - For Astro, React, and Elements, when Lumen MCP is connected, read snapshot metadata and diagnostics, read agent rules,
+     compare resolved installed versions with `lumen_check_compatibility`, search with the target framework, then read the selected component's usage contract and tokens.
      Retain the catalog manifest when the client supports caching so a later catalog diff identifies
      only the contracts that changed.
    - For native targets, prefer `lumen_list_native_components` and `lumen_get_native_component`,
      then verify installed adapter source/types when the local package version may differ.
    - Otherwise inspect installed package types/source or use the Lumen CLI and online docs.
+   - On a version mismatch, use a matching published MCP version or installed public types and package documentation. Do not apply a newer catalog as the installed API or silently upgrade the app.
+   - For a requested upgrade, use the `lumen-migrate` workflow; for a requested audit, use `lumen-review`. Ordinary UI changes retain their requested scope.
    - Never invent a component, prop, variant, event, or import path from memory.
 4. Plan the interface as product structure and states, then map each part to the smallest suitable
    Lumen primitive. Read [references/component-selection.md](references/component-selection.md)
    when choosing components or composing a full screen.
-5. Read [references/frameworks.md](references/frameworks.md) for setup and runtime rules for the
-   selected target.
-6. Implement with Lumen components and platform-native semantics. Import a stylesheet once only for
-   web targets. Preserve the app's state, navigation, data, and domain logic.
+   For charts or analytics, read [references/data-visualization.md](references/data-visualization.md)
+   to choose the encoding and verify its data and accessibility contract.
+5. Read only the matching setup and runtime reference:
+   [Astro](references/astro.md), [React](references/react.md),
+   [Elements](references/elements.md), [React Native / Expo](references/react-native.md),
+   [SwiftUI](references/swiftui.md), or [Compose](references/compose.md).
+   Keep Tailwind optional, use public named imports, and retain state in the host application.
+6. Implement with Lumen components and platform-native semantics. Follow the installed version's
+   style contract: v5 Astro imports component CSS automatically; React/Elements load the foundation
+   once and selected component CSS. Full styles.css remains supported. Preserve the app's state, navigation, data, and domain logic.
 7. Customize through Lumen tokens and public props. Read
    [references/design-system.md](references/design-system.md) when theming, polishing, or reviewing
    visual quality.
-8. Verify the edited surface with the narrowest relevant typecheck, test, lint, and visual or
-   browser check available in the project.
+8. Verify the edited surface with the project's relevant typecheck, tests, zero-warning lint,
+   and build. Read [references/verification.md](references/verification.md) for interaction
+   and rendered checks; apply only the checks relevant to the changed behavior.
 
 ## Non-negotiable Rules
 
 - Prefer existing Lumen primitives over hand-built replacements.
+- For web product choices, default to `Select` for custom option lists and `Combobox` for
+  searchable choices. Use `NativeSelect` only when the product explicitly requires the native
+  platform picker. Keep Select's native fallback and verify the enhanced list, keyboard paths,
+  focus, and mobile layout with the matching framework runtime enabled.
 - Prefer Astro only for a new project with no requested framework; do not migrate an existing app
   merely because Astro is the reference implementation.
-- Load the matching package stylesheet once at the app boundary for web targets; native adapters do
-  not use CSS.
+- Match CSS setup to the installed major version. For v5, prefer component CSS; keep full styles.css
+  for existing setup or deliberate catalog-wide use. Native adapters do not use CSS.
+- Install the optional @santi020k/lumen CLI separately as a development dependency in v5.
+- Use verified public granular exports where available. Catalog fallbacks may traverse more code;
+  measure built and requested assets before claiming that a route loads only its components.
 - Mount `UIPrimitives` once in an Astro root layout when interactive primitives are present.
 - Use React behavior hooks for behavior-heavy React primitives; do not mount the Astro runtime.
 - Register Lumen custom elements once before using `lumen-*` elements.
Full technical diff · 3 changed fields

changed /description

BEFORE
"Build, restyle, review, or migrate product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use when a request mentions Lumen UI, Lumen packages or tokens, or asks an AI agent to create an accessible interface that should use Lumen instead of inventing primitives."
AFTER
"Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces composed from Lumen primitives. Use lumen-review for requested audits and lumen-migrate for version upgrades."

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 259
  },
  {
    "relative_path": "references/component-selection.md",
    "size_in_bytes": 4633
  },
  {
    "relative_path": "references/design-system.md",
    "size_in_bytes": 3073
  },
  {
    "relative_path": "references/frameworks.md",
    "size_in_bytes": 5427
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 259
  },
  {
    "relative_path": "references/astro.md",
    "size_in_bytes": 1507
  },
  {
    "relative_path": "references/component-selection.md",
    "size_in_bytes": 5516
  },
  {
    "relative_path": "references/compose.md",
    "size_in_bytes": 657
  },
  {
    "relative_path": "references/data-visualization.md",
    "size_in_bytes": 4466
  },
  {
    "relative_path": "references/design-system.md",
    "size_in_bytes": 6194
  },
  {
    "relative_path": "references/elements.md",
    "size_in_bytes": 2905
  },
  {
    "relative_path": "references/frameworks.md",
    "size_in_bytes": 1096
  },
  {
    "relative_path": "references/react-native.md",
    "size_in_bytes": 922
  },
  {
    "relative_path": "references/react.md",
    "size_in_bytes": 1379
  },
  {
    "relative_path": "references/swiftui.md",
    "size_in_bytes": 1108
  },
  {
    "relative_path": "references/verification.md",
    "size_in_bytes": 2527
  }
]

changed /skill_md_contents

BEFORE
"---\nname: lumen-ui\ndescription: Build, restyle, review, or migrate product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use when a request mentions Lumen UI, Lumen packages or tokens, or asks an AI agent to create an accessible interface that should use Lumen instead of inventing primitives.\n---\n\n# Lumen UI\n\nBuild interfaces from Lumen's real component contracts, semantic tokens, and framework adapters.\nTreat Astro as the reference surface, while following the user's existing stack.\n\n## Workflow\n\n1. Inspect the app before editing. Identify the framework, package manager, global style entry,\n   existing Lumen packages, theme overrides, and local component conventions.\n2. Choose the matching target:\n   - Astro: `@santi020k/lumen-astro`\n   - React: `@santi020k/lumen-react`\n   - Web Components or framework-neutral HTML: `@santi020k/lumen-elements`\n   - React Native or Expo: `@santi020k/lumen-react-native`\n   - SwiftUI or Apple platforms: `LumenUI`\n   - Jetpack Compose or Android: `lumen-compose`\n3. Retrieve current contracts before guessing:\n   - For Astro, React, and Elements, prefer connected Lumen MCP tools: read snapshot metadata and diagnostics, read agent rules,\n     search with the target framework, then read the selected component's usage contract and tokens.\n     Retain the catalog manifest when the client supports caching so a later catalog diff identifies\n     only the contracts that changed.\n   - For native targets, prefer `lumen_list_native_components` and `lumen_get_native_component`,\n     then verify installed adapter source/types when the local package version may differ.\n   - Otherwise inspect installed package types/source or use the Lumen CLI and online docs.\n   - Never invent a component, prop, variant, event, or import path from memory.\n4. Plan the interface as product structure and states, then map each part to the smallest suitable\n   Lumen primitive. Read [references/component-selection.md](references/component-selection.md)\n   when choosing components or composing a full screen.\n5. Read [references/frameworks.md](references/frameworks.md) for setup and runtime rules for the\n   selected target.\n6. Implement with Lumen components and platform-native semantics. Import a stylesheet once only for\n   web targets. Preserve the app's state, navigation, data, and domain logic.\n7. Customize through Lumen tokens and public props. Read\n   [references/design-system.md](references/design-system.md) when theming, polishing, or reviewing\n   visual quality.\n8. Verify the edited surface with the narrowest relevant typecheck, test, lint, and visual or\n   browser check available in the project.\n\n## Non-negotiable Rules\n\n- Prefer existing Lumen primitives over hand-built replacements.\n- Prefer Astro only for a new project with no requested framework; do not migrate an existing app\n  merely because Astro is the reference implementation.\n- Load the matching package stylesheet once at the app boundary for web targets; native adapters do\n  not use CSS.\n- Mount `UIPrimitives` once in an Astro root layout when interactive primitives are present.\n- Use React behavior hooks for behavior-heavy React primitives; do not mount the Astro runtime.\n- Register Lumen custom elements once before using `lumen-*` elements.\n- Use `CodeTabs` for related commands, languages, or configuration examples instead of building a\n  parallel tab controller.\n- Use accessible names, native semantics, visible focus, keyboard paths, and meaningful empty,\n  loading, error, success, disabled, and destructive states.\n- Use Lucide names through web Lumen `Icon`; React Native accepts application-provided native icon\n  components, SwiftUI uses SF Symbols, and Compose accepts `ImageVector`. Do not substitute emoji\n  for interface icons.\n- Use only the public semantic color vocabulary. Do not hardcode a second palette into component\n  markup.\n- Keep glass surfaces selective and legible. Decorative styling must not obscure behavior.\n- Do not replace working app architecture or add dependencies unrelated to the requested interface.\n\n## Discovery Without MCP\n\nIf Lumen is installed, inspect its exported types and package README. For the catalog, otherwise use:\n\n```bash\npnpm exec lumen list\npnpm exec lumen show Button\n```\n\nUse the project's package-manager equivalent of `lumen show <name>` before relying on an unfamiliar\nweb component. Component names also accept kebab-case aliases such as `data-table`. For a native\ncomponent, use the MCP native list/get tools or inspect the matching adapter and documentation. If the CLI is\nnot installed, use the public documentation or GitHub source below.\n\nCurrent public documentation:\n\n- `https://lumen.santi020k.com/docs`\n- `https://lumen.santi020k.com/docs/components`\n- `https://github.com/santi020k/lumen/blob/main/docs/ai-usage.md`\n\n## Completion Check\n\nBefore handing off, confirm that the chosen components and props exist, imports match the target,\nrequired providers or themes occur once, semantic tokens replace ad hoc colors, and the primary\ninteraction works with the target's keyboard, focus, touch, pointer, and assistive-technology paths.\n"
AFTER
"---\nname: lumen-ui\nmetadata:\n  guidance-version: \"5.1.0\"\ndescription: Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces composed from Lumen primitives. Use lumen-review for requested audits and lumen-migrate for version upgrades.\n---\n\n# Lumen UI\n\nBuild interfaces from Lumen's real component contracts, semantic tokens, and framework adapters.\nTreat Astro as the reference surface, while following the user's existing stack.\n\n## Workflow\n\n1. Inspect the app before editing. Identify the framework, package manager, global style entry,\n   resolved installed Lumen versions, theme overrides, and local component conventions.\n2. Choose the matching target:\n   - Astro: `@santi020k/lumen-astro`\n   - React: `@santi020k/lumen-react`\n   - Web Components or framework-neutral HTML: `@santi020k/lumen-elements`\n   - React Native or Expo: `@santi020k/lumen-react-native`\n   - SwiftUI or Apple platforms: `LumenUI`\n   - Jetpack Compose or Android: `lumen-compose`\n3. Retrieve current contracts before guessing:\n   - Start discovery with `limit: 5` and the requested `framework` or native `platform`. Add\n     `kind: \"component\"` or `kind: \"native-component\"` when choosing primitives; use\n     `kind: \"recipe\"` for a complete composition. Widen the search only when those results do not\n     cover the requirement. Read `detail: \"usage\"` for the selected contracts; request source only\n     to resolve a specific missing detail. Reuse retrieved contracts within the same matching\n     catalog version instead of listing the full catalog for every component.\n   - For Astro, React, and Elements, when Lumen MCP is connected, read snapshot metadata and diagnostics, read agent rules,\n     compare resolved installed versions with `lumen_check_compatibility`, search with the target framework, then read the selected component's usage contract and tokens.\n     Retain the catalog manifest when the client supports caching so a later catalog diff identifies\n     only the contracts that changed.\n   - For native targets, prefer `lumen_list_native_components` and `lumen_get_native_component`,\n     then verify installed adapter source/types when the local package version may differ.\n   - Otherwise inspect installed package types/source or use the Lumen CLI and online docs.\n   - On a version mismatch, use a matching published MCP version or installed public types and package documentation. Do not apply a newer catalog as the installed API or silently upgrade the app.\n   - For a requested upgrade, use the `lumen-migrate` workflow; for a requested audit, use `lumen-review`. Ordinary UI changes retain their requested scope.\n   - Never invent a component, prop, variant, event, or import path from memory.\n4. Plan the interface as product structure and states, then map each part to the smallest suitable\n   Lumen primitive. Read [references/component-selection.md](references/component-selection.md)\n   when choosing components or composing a full screen.\n   For charts or analytics, read [references/data-visualization.md](references/data-visualization.md)\n   to choose the encoding and verify its data and accessibility contract.\n5. Read only the matching setup and runtime reference:\n   [Astro](references/astro.md), [React](references/react.md),\n   [Elements](references/elements.md), [React Native / Expo](references/react-native.md),\n   [SwiftUI](references/swiftui.md), or [Compose](references/compose.md).\n   Keep Tailwind optional, use public named imports, and retain state in the host application.\n6. Implement with Lumen components and platform-native semantics. Follow the installed version's\n   style contract: v5 Astro imports component CSS automatically; React/Elements load the foundation\n   once and selected component CSS. Full styles.css remains supported. Preserve the app's state, navigation, data, and domain logic.\n7. Customize through Lumen tokens and public props. Read\n   [references/design-system.md](references/design-system.md) when theming, polishing, or reviewing\n   visual quality.\n8. Verify the edited surface with the project's relevant typecheck, tests, zero-warning lint,\n   and build. Read [references/verification.md](references/verification.md) for interaction\n   and rendered checks; apply only the checks relevant to the changed behavior.\n\n## Non-negotiable Rules\n\n- Prefer existing Lumen primitives over hand-built replacements.\n- For web product choices, default to `Select` for custom option lists and `Combobox` for\n  searchable choices. Use `NativeSelect` only when the product explicitly requires the native\n  platform picker. Keep Select's native fallback and verify the enhanced list, keyboard paths,\n  focus, and mobile layout with the matching framework runtime enabled.\n- Prefer Astro only for a new project with no requested framework; do not migrate an existing app\n  merely because Astro is the reference implementation.\n- Match CSS setup to the installed major version. For v5, prefer component CSS; keep full styles.css\n  for existing setup or deliberate catalog-wide use. Native adapters do not use CSS.\n- Install the optional @santi020k/lumen CLI separately as a development dependency in v5.\n- Use verified public granular exports where available. Catalog fallbacks may traverse more code;\n  measure built and requested assets before claiming that a route loads only its components.\n- Mount `UIPrimitives` once in an Astro root layout when interactive primitives are present.\n- Use React behavior hooks for behavior-heavy React primitives; do not mount the Astro runtime.\n- Register Lumen custom elements once before using `lumen-*` elements.\n- Use `CodeTabs` for related commands, languages, or configuration examples instead of building a\n  parallel tab controller.\n- Use accessible names, native semantics, visible focus, keyboard paths, and meaningful empty,\n  loading, error, success, disabled, and destructive states.\n- Use Lucide names through web Lumen `Icon`; React Native accepts application-provided native icon\n  components, SwiftUI uses SF Symbols, and Compose accepts `ImageVector`. Do not substitute emoji\n  for interface icons.\n- Use only the public semantic color vocabulary. Do not hardcode a second palette into component\n  markup.\n- Keep glass surfaces selective and legible. Decorative styling must not obscure behavior.\n- Do not replace working app architecture or add dependencies unrelated to the requested interface.\n\n## Discovery Without MCP\n\nIf Lumen is installed, inspect its exported types and package README. For the catalog, otherwise use:\n\n```bash\npnpm exec lumen list\npnpm exec lumen show Button\n```\n\nUse the project's package-manager equivalent of `lumen show <name>` before relying on an unfamiliar\nweb component. Component names also accept kebab-case aliases such as `data-table`. For a native\ncomponent, use the MCP native list/get tools or inspect the matching adapter and documentation. If the CLI is\nnot installed, use the public documentation or GitHub source below.\n\nCurrent public documentation:\n\n- `https://lumen.santi020k.com/docs`\n- `https://lumen.santi020k.com/docs/components`\n- `https://github.com/santi020k/lumen/blob/main/docs/ai-usage.md`\n\n## Completion Check\n\nBefore handing off, confirm that the chosen components and props exist, imports match the target,\nrequired providers or themes occur once, semantic tokens replace ad hoc colors, and the primary\ninteraction works with the target's keyboard, focus, touch, pointer, and assistive-technology paths.\n"
Full snapshot data
{
  "description": "Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces composed from Lumen primitives. Use lumen-review for requested audits and lumen-migrate for version upgrades.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 259
    },
    {
      "relative_path": "references/astro.md",
      "size_in_bytes": 1507
    },
    {
      "relative_path": "references/component-selection.md",
      "size_in_bytes": 5516
    },
    {
      "relative_path": "references/compose.md",
      "size_in_bytes": 657
    },
    {
      "relative_path": "references/data-visualization.md",
      "size_in_bytes": 4466
    },
    {
      "relative_path": "references/design-system.md",
      "size_in_bytes": 6194
    },
    {
      "relative_path": "references/elements.md",
      "size_in_bytes": 2905
    },
    {
      "relative_path": "references/frameworks.md",
      "size_in_bytes": 1096
    },
    {
      "relative_path": "references/react-native.md",
      "size_in_bytes": 922
    },
    {
      "relative_path": "references/react.md",
      "size_in_bytes": 1379
    },
    {
      "relative_path": "references/swiftui.md",
      "size_in_bytes": 1108
    },
    {
      "relative_path": "references/verification.md",
      "size_in_bytes": 2527
    }
  ],
  "name": "lumen-ui",
  "skill_md_contents": "---\nname: lumen-ui\nmetadata:\n  guidance-version: \"5.1.0\"\ndescription: Build or restyle product interfaces with Lumen UI for Astro, React, Web Components, React Native, SwiftUI, or Jetpack Compose. Use for implementation requests using Lumen packages, components, or tokens, including accessible interfaces composed from Lumen primitives. Use lumen-review for requested audits and lumen-migrate for version upgrades.\n---\n\n# Lumen UI\n\nBuild interfaces from Lumen's real component contracts, semantic tokens, and framework adapters.\nTreat Astro as the reference surface, while following the user's existing stack.\n\n## Workflow\n\n1. Inspect the app before editing. Identify the framework, package manager, global style entry,\n   resolved installed Lumen versions, theme overrides, and local component conventions.\n2. Choose the matching target:\n   - Astro: `@santi020k/lumen-astro`\n   - React: `@santi020k/lumen-react`\n   - Web Components or framework-neutral HTML: `@santi020k/lumen-elements`\n   - React Native or Expo: `@santi020k/lumen-react-native`\n   - SwiftUI or Apple platforms: `LumenUI`\n   - Jetpack Compose or Android: `lumen-compose`\n3. Retrieve current contracts before guessing:\n   - Start discovery with `limit: 5` and the requested `framework` or native `platform`. Add\n     `kind: \"component\"` or `kind: \"native-component\"` when choosing primitives; use\n     `kind: \"recipe\"` for a complete composition. Widen the search only when those results do not\n     cover the requirement. Read `detail: \"usage\"` for the selected contracts; request source only\n     to resolve a specific missing detail. Reuse retrieved contracts within the same matching\n     catalog version instead of listing the full catalog for every component.\n   - For Astro, React, and Elements, when Lumen MCP is connected, read snapshot metadata and diagnostics, read agent rules,\n     compare resolved installed versions with `lumen_check_compatibility`, search with the target framework, then read the selected component's usage contract and tokens.\n     Retain the catalog manifest when the client supports caching so a later catalog diff identifies\n     only the contracts that changed.\n   - For native targets, prefer `lumen_list_native_components` and `lumen_get_native_component`,\n     then verify installed adapter source/types when the local package version may differ.\n   - Otherwise inspect installed package types/source or use the Lumen CLI and online docs.\n   - On a version mismatch, use a matching published MCP version or installed public types and package documentation. Do not apply a newer catalog as the installed API or silently upgrade the app.\n   - For a requested upgrade, use the `lumen-migrate` workflow; for a requested audit, use `lumen-review`. Ordinary UI changes retain their requested scope.\n   - Never invent a component, prop, variant, event, or import path from memory.\n4. Plan the interface as product structure and states, then map each part to the smallest suitable\n   Lumen primitive. Read [references/component-selection.md](references/component-selection.md)\n   when choosing components or composing a full screen.\n   For charts or analytics, read [references/data-visualization.md](references/data-visualization.md)\n   to choose the encoding and verify its data and accessibility contract.\n5. Read only the matching setup and runtime reference:\n   [Astro](references/astro.md), [React](references/react.md),\n   [Elements](references/elements.md), [React Native / Expo](references/react-native.md),\n   [SwiftUI](references/swiftui.md), or [Compose](references/compose.md).\n   Keep Tailwind optional, use public named imports, and retain state in the host application.\n6. Implement with Lumen components and platform-native semantics. Follow the installed version's\n   style contract: v5 Astro imports component CSS automatically; React/Elements load the foundation\n   once and selected component CSS. Full styles.css remains supported. Preserve the app's state, navigation, data, and domain logic.\n7. Customize through Lumen tokens and public props. Read\n   [references/design-system.md](references/design-system.md) when theming, polishing, or reviewing\n   visual quality.\n8. Verify the edited surface with the project's relevant typecheck, tests, zero-warning lint,\n   and build. Read [references/verification.md](references/verification.md) for interaction\n   and rendered checks; apply only the checks relevant to the changed behavior.\n\n## Non-negotiable Rules\n\n- Prefer existing Lumen primitives over hand-built replacements.\n- For web product choices, default to `Select` for custom option lists and `Combobox` for\n  searchable choices. Use `NativeSelect` only when the product explicitly requires the native\n  platform picker. Keep Select's native fallback and verify the enhanced list, keyboard paths,\n  focus, and mobile layout with the matching framework runtime enabled.\n- Prefer Astro only for a new project with no requested framework; do not migrate an existing app\n  merely because Astro is the reference implementation.\n- Match CSS setup to the installed major version. For v5, prefer component CSS; keep full styles.css\n  for existing setup or deliberate catalog-wide use. Native adapters do not use CSS.\n- Install the optional @santi020k/lumen CLI separately as a development dependency in v5.\n- Use verified public granular exports where available. Catalog fallbacks may traverse more code;\n  measure built and requested assets before claiming that a route loads only its components.\n- Mount `UIPrimitives` once in an Astro root layout when interactive primitives are present.\n- Use React behavior hooks for behavior-heavy React primitives; do not mount the Astro runtime.\n- Register Lumen custom elements once before using `lumen-*` elements.\n- Use `CodeTabs` for related commands, languages, or configuration examples instead of building a\n  parallel tab controller.\n- Use accessible names, native semantics, visible focus, keyboard paths, and meaningful empty,\n  loading, error, success, disabled, and destructive states.\n- Use Lucide names through web Lumen `Icon`; React Native accepts application-provided native icon\n  components, SwiftUI uses SF Symbols, and Compose accepts `ImageVector`. Do not substitute emoji\n  for interface icons.\n- Use only the public semantic color vocabulary. Do not hardcode a second palette into component\n  markup.\n- Keep glass surfaces selective and legible. Decorative styling must not obscure behavior.\n- Do not replace working app architecture or add dependencies unrelated to the requested interface.\n\n## Discovery Without MCP\n\nIf Lumen is installed, inspect its exported types and package README. For the catalog, otherwise use:\n\n```bash\npnpm exec lumen list\npnpm exec lumen show Button\n```\n\nUse the project's package-manager equivalent of `lumen show <name>` before relying on an unfamiliar\nweb component. Component names also accept kebab-case aliases such as `data-table`. For a native\ncomponent, use the MCP native list/get tools or inspect the matching adapter and documentation. If the CLI is\nnot installed, use the public documentation or GitHub source below.\n\nCurrent public documentation:\n\n- `https://lumen.santi020k.com/docs`\n- `https://lumen.santi020k.com/docs/components`\n- `https://github.com/santi020k/lumen/blob/main/docs/ai-usage.md`\n\n## Completion Check\n\nBefore handing off, confirm that the chosen components and props exist, imports match the target,\nrequired providers or themes occur once, semantic tokens replace ad hoc colors, and the primary\ninteraction works with the target's keyboard, focus, touch, pointer, and assistive-technology paths.\n"
}

SHA-256 of public snapshot: e8ddb4ca9a9f4cc339147c5964f3eff0a5120cc6eebbe36f974c62e0092bda61