From 394049464a0aa0c0bb06d532080c23df8d4db37f Mon Sep 17 00:00:00 2001 From: Seth Schneider Date: Wed, 9 Sep 2026 14:21:00 -0700 Subject: [PATCH 01/54] docs: add roadmap and development team to README Signed-off-by: Seth Schneider --- README.md | 71 ++++++++++++++++++++++++++++++++----------- docs/architecture.mdx | 2 +- docs/known-issues.mdx | 2 +- 3 files changed, 55 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 0f0a72420..963824435 100644 --- a/README.md +++ b/README.md @@ -252,24 +252,59 @@ Component references, for when you already know what you are looking for: See the [releases page](https://github.com/NVIDIA/Personal-AI-Router/releases) for what changed in each release. -## Where PAIR is going - -We have plenty of ideas about where to take PAIR, and no fixed commitments about -which of them land or when. If you have a thought about the product's direction, -something that would make it more useful to you, a workflow it does not support -yet, or a use we have not considered — we would like to hear it. Open an issue -and start the conversation. - -**Routing is the clearest example.** Today PAIR ships a single scheduling policy -that combines queued work with a coarse, smoothed GPU-utilization signal. It does -not consider GPU model, available memory, model warmness, or how expensive a -request looks, which still makes it a better fit for similar machines than a -highly mixed cluster. Making that smarter, and likely letting you choose a -policy, is something we want to do — and hearing which of those signals matters -on your hardware is exactly the kind of input that would shape it. - -Feedback from people running PAIR on their own hardware is more useful to us than -any plan written in advance. +## Roadmap + +These are features we want to add to PAIR. This list is a direction for the +project, not a commitment to delivery or implementation order. Community +feedback and contributions will help shape priorities. + +### Platform support + +- [ ] Full support for Windows ARM64 systems. +- [ ] DGX Station support. + +### Engines and integrations + +- [ ] llama.cpp support. +- [ ] vLLM support. +- [ ] EXO support. +- [ ] ComfyUI integration. +- [ ] Unsloth support. +- [ ] Tailscale integration. + +### Routing and clusters + +- [ ] Route OpenAI-compatible API requests across different inference engines. +- [ ] Inference request queuing. +- [ ] Increase number of scheduler variables for better QoS. +- [ ] A "cluster as a node" view. +- [ ] KV cache-aware scheduling. + +### Usability and reliability + +- [ ] Requester-only clients that send work without hosting an inference engine. +- [ ] Launch PAIR automatically on system startup. +- [ ] Configure engine launch options and environment variables from PAIR. +- [ ] Stability and reliability improvements informed by real-world use. + +Have a feature request or a workflow you want PAIR to support? Open an +[issue](https://github.com/NVIDIA/Personal-AI-Router/issues) and tell us how you +would use it. + +## Development Team + +NVIDIA team members working on PAIR: + +| Name | GitHub | Role | +| --- | --- | --- | +| Noah Tervalon (Terve) | [@Noah-Tervalon-Nvidia](https://github.com/Noah-Tervalon-Nvidia) | PAIR Developer - Community Lead | +| Chris Kelsey | [@ckelseynv](https://github.com/ckelseynv) | PAIR Developer - UI/UX Lead | +| Sherief Farouk | [@sherief-nv](https://github.com/sherief-nv) | PAIR Developer - Scheduling, Team Lead | +| Preston Goode | [@nv-pgoode](https://github.com/nv-pgoode) | PAIR Developer - Engine Management Lead | +| Kaylee Lubick | | PAIR Developer - Security Lead | +| Lucas Brodzinski | [@LB-NV](https://github.com/lb-nv) | PAIR Technical Program Manager | +| Ambrish Dantrey | | PAIR Engineering Manager | +| Seth Schneider | [@NV-sschneider](https://github.com/NV-sschneider) | PAIR Product Manager | ## Contributing and governance diff --git a/docs/architecture.mdx b/docs/architecture.mdx index f7e7ffed4..5e3bca6d7 100644 --- a/docs/architecture.mdx +++ b/docs/architecture.mdx @@ -451,7 +451,7 @@ value and stays in the normal ranking. Improving this, and likely offering a choice of policies, is planned work. Which of these gaps matters most depends on the hardware people actually run, so reports from real deployments are more useful than guesses. Refer to -[Where PAIR is going](../README.md#where-pair-is-going). +[Roadmap](../README.md#roadmap). ## Engines and Ports diff --git a/docs/known-issues.mdx b/docs/known-issues.mdx index 3ed3a0d90..6853f0cb7 100644 --- a/docs/known-issues.mdx +++ b/docs/known-issues.mdx @@ -43,7 +43,7 @@ The full list of gaps is in [Scheduler Limitations](architecture.mdx#scheduler-limitations). Improving this is on the roadmap, and knowing which signals matter on your hardware would help. Refer to -[Where PAIR is going](../README.md#where-pair-is-going). +[Roadmap](../README.md#roadmap). ## PAIR Does Not Detect a Stuck Service Automatically From 799797659bc2ba3ce8ad870a85c234873aba575f Mon Sep 17 00:00:00 2001 From: Seth Schneider Date: Wed, 9 Sep 2026 15:23:07 -0700 Subject: [PATCH 02/54] docs: add Ambrish Dantrey GitHub handle Signed-off-by: Seth Schneider --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 963824435..3359eccc2 100644 --- a/README.md +++ b/README.md @@ -303,7 +303,7 @@ NVIDIA team members working on PAIR: | Preston Goode | [@nv-pgoode](https://github.com/nv-pgoode) | PAIR Developer - Engine Management Lead | | Kaylee Lubick | | PAIR Developer - Security Lead | | Lucas Brodzinski | [@LB-NV](https://github.com/lb-nv) | PAIR Technical Program Manager | -| Ambrish Dantrey | | PAIR Engineering Manager | +| Ambrish Dantrey | [@adantrey](https://github.com/adantrey) | PAIR Engineering Manager | | Seth Schneider | [@NV-sschneider](https://github.com/NV-sschneider) | PAIR Product Manager | ## Contributing and governance From c76aefab7f76934af4c77b03e96172d71a7f6fca Mon Sep 17 00:00:00 2001 From: Seth Schneider Date: Thu, 10 Sep 2026 08:09:00 -0700 Subject: [PATCH 03/54] docs: polish roadmap wording Signed-off-by: Seth Schneider --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3359eccc2..47c1bbea7 100644 --- a/README.md +++ b/README.md @@ -301,7 +301,7 @@ NVIDIA team members working on PAIR: | Chris Kelsey | [@ckelseynv](https://github.com/ckelseynv) | PAIR Developer - UI/UX Lead | | Sherief Farouk | [@sherief-nv](https://github.com/sherief-nv) | PAIR Developer - Scheduling, Team Lead | | Preston Goode | [@nv-pgoode](https://github.com/nv-pgoode) | PAIR Developer - Engine Management Lead | -| Kaylee Lubick | | PAIR Developer - Security Lead | +| Kaylee Lubick | [@kjlubick](https://github.com/kjlubick) | PAIR Developer - Security Lead | | Lucas Brodzinski | [@LB-NV](https://github.com/lb-nv) | PAIR Technical Program Manager | | Ambrish Dantrey | [@adantrey](https://github.com/adantrey) | PAIR Engineering Manager | | Seth Schneider | [@NV-sschneider](https://github.com/NV-sschneider) | PAIR Product Manager | From 5365a486c3e9291960b59377b42638cd7ac352b9 Mon Sep 17 00:00:00 2001 From: Kaylee Lubick Date: Tue, 15 Sep 2026 08:15:45 -0400 Subject: [PATCH 04/54] Tighten CSP I don't see any pdf.js code, so I presume we don't need this. Signed-off-by: Kaylee Lubick --- desktop/src/electron/csp.ts | 10 ++++------ desktop/tests/modular/csp.test.ts | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 desktop/tests/modular/csp.test.ts diff --git a/desktop/src/electron/csp.ts b/desktop/src/electron/csp.ts index 06414b71e..f7070d369 100644 --- a/desktop/src/electron/csp.ts +++ b/desktop/src/electron/csp.ts @@ -2,13 +2,14 @@ // SPDX-License-Identifier: Apache-2.0 export function buildCspHeader(): string { - const connectSrc = ["'self'", 'http://127.0.0.1:*', 'http://localhost:*'] + // https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html + // https://www.w3.org/TR/CSP/ return ( [ "default-src 'none'", "script-src 'self'", "style-src 'self' 'unsafe-inline'", - `connect-src ${connectSrc.join(' ')}`, + "connect-src 'self'", // `blob:` is needed so the SVG rasterizer can assign a blob URL // to `` for decode (see `extract-svg.ts`). `data:` covers // the inline previews we generate from base64 attachments. @@ -18,10 +19,7 @@ export function buildCspHeader(): string { // fallbacks only, so no remote font origin is needed. "font-src 'self'", "manifest-src 'self'", - // `'self'` covers the Vite-served pdf.js worker module; `blob:` - // is the pdf.js fallback when the worker module can't be loaded - // directly (some Chromium builds spin up a blob-URL shim). - "worker-src 'self' blob:", + "worker-src 'none'", "object-src 'none'", "frame-src 'none'", "base-uri 'self'", diff --git a/desktop/tests/modular/csp.test.ts b/desktop/tests/modular/csp.test.ts new file mode 100644 index 000000000..a5a27e65d --- /dev/null +++ b/desktop/tests/modular/csp.test.ts @@ -0,0 +1,20 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { describe, expect, it } from 'vitest' +import { buildCspHeader } from '@/electron/csp' + +describe('content security policy', () => { + it('keeps security-critical directives restrictive', () => { + const directives = buildCspHeader() + .split(';') + .map(directive => directive.trim()) + + expect(directives).toContain("default-src 'none'") + expect(directives).toContain("script-src 'self'") + expect(directives).toContain("connect-src 'self'") + expect(directives).toContain("worker-src 'none'") + expect(directives).toContain("base-uri 'self'") + expect(directives).toContain("object-src 'none'") + }) +}) From ab59120e5e90f9c918f8e3fee9febe0f8d0f7f1d Mon Sep 17 00:00:00 2001 From: Terve Date: Mon, 21 Sep 2026 15:00:27 -0400 Subject: [PATCH 05/54] Add engineering guidance and service specifications Brings the repository's architecture and discipline rules, agent skills, and normative service specifications into the public tree, so contributors and their tooling work from the same conventions the code is held to. The read-before-write hook and its recorder are omitted, along with their hooks.json entries. Signed-off-by: Terve --- .agents/skills/kaizen-ui/SKILL.md | 171 ++++ .../references/components/Accordion.md | 107 +++ .../kaizen-ui/references/components/Anchor.md | 72 ++ .../references/components/AnimatedChevron.md | 51 ++ .../kaizen-ui/references/components/AppBar.md | 79 ++ .../kaizen-ui/references/components/Avatar.md | 79 ++ .../kaizen-ui/references/components/Badge.md | 77 ++ .../kaizen-ui/references/components/Banner.md | 122 +++ .../kaizen-ui/references/components/Block.md | 64 ++ .../references/components/Breadcrumbs.md | 80 ++ .../kaizen-ui/references/components/Button.md | 121 +++ .../references/components/ButtonGroup.md | 86 ++ .../kaizen-ui/references/components/Card.md | 185 ++++ .../references/components/Checkbox.md | 92 ++ .../references/components/CodeSnippet.md | 125 +++ .../references/components/Collapsible.md | 104 +++ .../references/components/Combobox.md | 240 ++++++ .../references/components/DatePicker.md | 237 ++++++ .../references/components/Divider.md | 80 ++ .../references/components/Dropdown.md | 433 ++++++++++ .../kaizen-ui/references/components/Flex.md | 97 +++ .../references/components/FormField.md | 195 +++++ .../kaizen-ui/references/components/Grid.md | 142 ++++ .../kaizen-ui/references/components/Group.md | 101 +++ .../kaizen-ui/references/components/Hero.md | 153 ++++ .../references/components/HorizontalNav.md | 145 ++++ .../kaizen-ui/references/components/Inline.md | 56 ++ .../references/components/InputShell.md | 193 +++++ .../kaizen-ui/references/components/Label.md | 61 ++ .../kaizen-ui/references/components/List.md | 69 ++ .../kaizen-ui/references/components/Menu.md | 288 +++++++ .../kaizen-ui/references/components/Modal.md | 212 +++++ .../references/components/Notification.md | 157 ++++ .../references/components/PageHeader.md | 152 ++++ .../references/components/Pagination.md | 209 +++++ .../kaizen-ui/references/components/Panel.md | 113 +++ .../references/components/Popover.md | 162 ++++ .../references/components/ProgressBar.md | 65 ++ .../references/components/RadioGroup.md | 222 +++++ .../references/components/RangeSlider.md | 166 ++++ .../references/components/SegmentedControl.md | 146 ++++ .../kaizen-ui/references/components/Select.md | 291 +++++++ .../references/components/SidePanel.md | 343 ++++++++ .../references/components/Skeleton.md | 78 ++ .../kaizen-ui/references/components/Slider.md | 146 ++++ .../references/components/Spinner.md | 51 ++ .../kaizen-ui/references/components/Stack.md | 110 +++ .../references/components/StatusIndicator.md | 83 ++ .../references/components/StatusMessage.md | 109 +++ .../references/components/Stepper.md | 228 +++++ .../kaizen-ui/references/components/Switch.md | 107 +++ .../kaizen-ui/references/components/Table.md | 261 ++++++ .../kaizen-ui/references/components/Tabs.md | 159 ++++ .../kaizen-ui/references/components/Tag.md | 175 ++++ .../kaizen-ui/references/components/Text.md | 75 ++ .../references/components/TextArea.md | 177 ++++ .../references/components/TextInput.md | 177 ++++ .../references/components/ThemeProvider.md | 116 +++ .../kaizen-ui/references/components/Toast.md | 114 +++ .../references/components/Tooltip.md | 124 +++ .../references/components/TreeNav.md | 307 +++++++ .../kaizen-ui/references/components/Upload.md | 216 +++++ .../references/components/VerticalNav.md | 194 +++++ .../references/guides/CONFIGURATION.md | 49 ++ .../references/guides/DESIGN_TOKENS.md | 579 +++++++++++++ .../kaizen-ui/references/guides/ICONS.md | 794 ++++++++++++++++++ .agents/skills/sync-backend/SKILL.md | 57 ++ .cursor/hooks.json | 16 + .cursor/hooks/enforce-commit-signoff.js | 119 +++ .cursor/hooks/session-start.js | 17 + .cursor/rules/absolute-imports.mdc | 50 ++ .cursor/rules/agent-onboarding.mdc | 27 + .cursor/rules/architecture.mdc | 114 +++ .cursor/rules/backend-constants.mdc | 54 ++ .cursor/rules/build-and-typecheck.mdc | 53 ++ .cursor/rules/commit-sign-off.mdc | 71 ++ .cursor/rules/communication-layers.mdc | 57 ++ .cursor/rules/engines-vs-backends-naming.mdc | 19 + .cursor/rules/file-editing.mdc | 57 ++ .cursor/rules/imports-discipline.mdc | 26 + .cursor/rules/ipc-patterns.mdc | 52 ++ .cursor/rules/model-registry.mdc | 57 ++ .cursor/rules/no-legacy-fallbacks.mdc | 24 + .cursor/rules/no-push-to-main.mdc | 54 ++ .cursor/rules/platform-helpers.mdc | 21 + .cursor/rules/proxy-inference-routing.mdc | 78 ++ .cursor/rules/readme-ownership.mdc | 22 + .cursor/rules/renderer-stores.mdc | 53 ++ .cursor/rules/security.mdc | 37 + .cursor/rules/service-contracts.mdc | 95 +++ .cursor/rules/services-agent-onboarding.mdc | 26 + .cursor/rules/services-change-propagation.mdc | 54 ++ .cursor/rules/state-and-auto-start.mdc | 42 + .cursor/rules/system-architecture.mdc | 244 ++++++ .cursor/rules/test-type-discipline.mdc | 49 ++ .cursor/rules/type-discipline.mdc | 34 + .cursor/rules/type-safety.mdc | 19 + services/nvpair-cluster-manager/spec.md | 595 +++++++++++++ services/nvpair-engine-manager/MANIFEST.md | 364 ++++++++ services/nvpair-engine-manager/spec.md | 210 +++++ services/nvpair-job-scheduler/spec.md | 446 ++++++++++ services/nvpair-workload-manager/spec.md | 258 ++++++ 102 files changed, 14343 insertions(+) create mode 100644 .agents/skills/kaizen-ui/SKILL.md create mode 100644 .agents/skills/kaizen-ui/references/components/Accordion.md create mode 100644 .agents/skills/kaizen-ui/references/components/Anchor.md create mode 100644 .agents/skills/kaizen-ui/references/components/AnimatedChevron.md create mode 100644 .agents/skills/kaizen-ui/references/components/AppBar.md create mode 100644 .agents/skills/kaizen-ui/references/components/Avatar.md create mode 100644 .agents/skills/kaizen-ui/references/components/Badge.md create mode 100644 .agents/skills/kaizen-ui/references/components/Banner.md create mode 100644 .agents/skills/kaizen-ui/references/components/Block.md create mode 100644 .agents/skills/kaizen-ui/references/components/Breadcrumbs.md create mode 100644 .agents/skills/kaizen-ui/references/components/Button.md create mode 100644 .agents/skills/kaizen-ui/references/components/ButtonGroup.md create mode 100644 .agents/skills/kaizen-ui/references/components/Card.md create mode 100644 .agents/skills/kaizen-ui/references/components/Checkbox.md create mode 100644 .agents/skills/kaizen-ui/references/components/CodeSnippet.md create mode 100644 .agents/skills/kaizen-ui/references/components/Collapsible.md create mode 100644 .agents/skills/kaizen-ui/references/components/Combobox.md create mode 100644 .agents/skills/kaizen-ui/references/components/DatePicker.md create mode 100644 .agents/skills/kaizen-ui/references/components/Divider.md create mode 100644 .agents/skills/kaizen-ui/references/components/Dropdown.md create mode 100644 .agents/skills/kaizen-ui/references/components/Flex.md create mode 100644 .agents/skills/kaizen-ui/references/components/FormField.md create mode 100644 .agents/skills/kaizen-ui/references/components/Grid.md create mode 100644 .agents/skills/kaizen-ui/references/components/Group.md create mode 100644 .agents/skills/kaizen-ui/references/components/Hero.md create mode 100644 .agents/skills/kaizen-ui/references/components/HorizontalNav.md create mode 100644 .agents/skills/kaizen-ui/references/components/Inline.md create mode 100644 .agents/skills/kaizen-ui/references/components/InputShell.md create mode 100644 .agents/skills/kaizen-ui/references/components/Label.md create mode 100644 .agents/skills/kaizen-ui/references/components/List.md create mode 100644 .agents/skills/kaizen-ui/references/components/Menu.md create mode 100644 .agents/skills/kaizen-ui/references/components/Modal.md create mode 100644 .agents/skills/kaizen-ui/references/components/Notification.md create mode 100644 .agents/skills/kaizen-ui/references/components/PageHeader.md create mode 100644 .agents/skills/kaizen-ui/references/components/Pagination.md create mode 100644 .agents/skills/kaizen-ui/references/components/Panel.md create mode 100644 .agents/skills/kaizen-ui/references/components/Popover.md create mode 100644 .agents/skills/kaizen-ui/references/components/ProgressBar.md create mode 100644 .agents/skills/kaizen-ui/references/components/RadioGroup.md create mode 100644 .agents/skills/kaizen-ui/references/components/RangeSlider.md create mode 100644 .agents/skills/kaizen-ui/references/components/SegmentedControl.md create mode 100644 .agents/skills/kaizen-ui/references/components/Select.md create mode 100644 .agents/skills/kaizen-ui/references/components/SidePanel.md create mode 100644 .agents/skills/kaizen-ui/references/components/Skeleton.md create mode 100644 .agents/skills/kaizen-ui/references/components/Slider.md create mode 100644 .agents/skills/kaizen-ui/references/components/Spinner.md create mode 100644 .agents/skills/kaizen-ui/references/components/Stack.md create mode 100644 .agents/skills/kaizen-ui/references/components/StatusIndicator.md create mode 100644 .agents/skills/kaizen-ui/references/components/StatusMessage.md create mode 100644 .agents/skills/kaizen-ui/references/components/Stepper.md create mode 100644 .agents/skills/kaizen-ui/references/components/Switch.md create mode 100644 .agents/skills/kaizen-ui/references/components/Table.md create mode 100644 .agents/skills/kaizen-ui/references/components/Tabs.md create mode 100644 .agents/skills/kaizen-ui/references/components/Tag.md create mode 100644 .agents/skills/kaizen-ui/references/components/Text.md create mode 100644 .agents/skills/kaizen-ui/references/components/TextArea.md create mode 100644 .agents/skills/kaizen-ui/references/components/TextInput.md create mode 100644 .agents/skills/kaizen-ui/references/components/ThemeProvider.md create mode 100644 .agents/skills/kaizen-ui/references/components/Toast.md create mode 100644 .agents/skills/kaizen-ui/references/components/Tooltip.md create mode 100644 .agents/skills/kaizen-ui/references/components/TreeNav.md create mode 100644 .agents/skills/kaizen-ui/references/components/Upload.md create mode 100644 .agents/skills/kaizen-ui/references/components/VerticalNav.md create mode 100644 .agents/skills/kaizen-ui/references/guides/CONFIGURATION.md create mode 100644 .agents/skills/kaizen-ui/references/guides/DESIGN_TOKENS.md create mode 100644 .agents/skills/kaizen-ui/references/guides/ICONS.md create mode 100644 .agents/skills/sync-backend/SKILL.md create mode 100644 .cursor/hooks.json create mode 100644 .cursor/hooks/enforce-commit-signoff.js create mode 100644 .cursor/hooks/session-start.js create mode 100644 .cursor/rules/absolute-imports.mdc create mode 100644 .cursor/rules/agent-onboarding.mdc create mode 100644 .cursor/rules/architecture.mdc create mode 100644 .cursor/rules/backend-constants.mdc create mode 100644 .cursor/rules/build-and-typecheck.mdc create mode 100644 .cursor/rules/commit-sign-off.mdc create mode 100644 .cursor/rules/communication-layers.mdc create mode 100644 .cursor/rules/engines-vs-backends-naming.mdc create mode 100644 .cursor/rules/file-editing.mdc create mode 100644 .cursor/rules/imports-discipline.mdc create mode 100644 .cursor/rules/ipc-patterns.mdc create mode 100644 .cursor/rules/model-registry.mdc create mode 100644 .cursor/rules/no-legacy-fallbacks.mdc create mode 100644 .cursor/rules/no-push-to-main.mdc create mode 100644 .cursor/rules/platform-helpers.mdc create mode 100644 .cursor/rules/proxy-inference-routing.mdc create mode 100644 .cursor/rules/readme-ownership.mdc create mode 100644 .cursor/rules/renderer-stores.mdc create mode 100644 .cursor/rules/security.mdc create mode 100644 .cursor/rules/service-contracts.mdc create mode 100644 .cursor/rules/services-agent-onboarding.mdc create mode 100644 .cursor/rules/services-change-propagation.mdc create mode 100644 .cursor/rules/state-and-auto-start.mdc create mode 100644 .cursor/rules/system-architecture.mdc create mode 100644 .cursor/rules/test-type-discipline.mdc create mode 100644 .cursor/rules/type-discipline.mdc create mode 100644 .cursor/rules/type-safety.mdc create mode 100644 services/nvpair-cluster-manager/spec.md create mode 100644 services/nvpair-engine-manager/MANIFEST.md create mode 100644 services/nvpair-engine-manager/spec.md create mode 100644 services/nvpair-job-scheduler/spec.md create mode 100644 services/nvpair-workload-manager/spec.md diff --git a/.agents/skills/kaizen-ui/SKILL.md b/.agents/skills/kaizen-ui/SKILL.md new file mode 100644 index 000000000..4eebf9b9f --- /dev/null +++ b/.agents/skills/kaizen-ui/SKILL.md @@ -0,0 +1,171 @@ +--- +name: kaizen-ui +description: Kaizen UI (KUI) component library and design-pattern advisor for NVIDIA applications. Use whenever someone describes a UI to build, modify, or improve — even without explicit mention of KUI, "design pattern," or "best practice." Covers forms, filters, search, sort, cards, settings, activity feeds, navigation, data visualization, dashboards, loading states, empty states, feedback, iconography, element visibility, and page layout decisions. Also use when modifying existing UI (adding form fields, page sections, nav items, columns); before changes, evaluate whether the current structure still fits and propose restructuring if needed. +metadata: + # what version of the package these skills are based on + version: '1.0.0' +# For tanstack-intent +type: core +library: kaizen-ui +library_version: '1.0.0' +--- + + +# Kaizen UI (KUI) + +KUI has three parts, used together: + +- **React components** provide the semantic UI: `