Inventory and ownership rules for shared Agent Native workspace UI. Use before building app chrome, settings, navigation, sharing, collaboration, setup, history, comments, chat rails, agent UX, or repeated workspace behavior.
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when deciding whether app chrome, settings, collaboration, sharing, navigation, organization, setup, history, comments, or agent UX should be built app-locally or moved into reusable framework/toolkit pieces.
Apps own domain models, domain actions, and product-specific workflows. The
framework and @agent-native/toolkit own repeated workspace behavior users
expect to work the same everywhere.
Move behavior into shared toolkit primitives when it is:
Keep behavior app-local when the abstraction would hide important domain language or make a simple app-specific workflow harder to understand.
Before creating an app-local version of repeated workspace or agent UI:
docs-search and
source-search.agent-native eject --list to see the version-matched units published
by the packages installed in this app.customizing-agent-native and configure, compose, or eject the
smallest unit instead of recreating shared behavior from memory.Use public package exports at runtime. Published source and ejection manifests are discovery and ownership-transfer mechanisms, not private runtime APIs.
Every app keeps an explicit design-system seam in app/design-system.ts using
defineDesignSystem from @agent-native/toolkit/design-system, and supplies it
to ToolkitProvider. The semantic contract contains:
ActionButton, IconButton, TextField, TextArea,
Spinner, Skeleton, Status, Surface, and AvatarTooltip, Menu, Popover, Dialog, Picker,
Checkbox, Switch, and TabsThese are semantic contracts, not styling contracts. An adapter may use
Tailwind/shadcn, MUI-style theme providers, React Aria, CSS modules, CSS-in-JS,
or another React design system. Do not assume CVA, utility classes, or even a
className; behavior adapters may supply their overlay and focus
implementation wholesale while honoring portal, focus-restoration, keyboard,
dismissal, ARIA, and z-index interoperability.
Pages, routes, and domain components import ordinary controls through the app's
local adapter layer, usually @/components/ui/*. They must not import
@agent-native/toolkit/ui/* directly. Toolkit feature exports are still the
right home for shared workspace behavior; their presentation flows through the
registered semantic components, feature controller, and product-level slots.
Customer adapter packages are normal npm packages imported explicitly by the
app. Never auto-detect them or load React components from JSON. Run the adapter
against @agent-native/toolkit/conformance in customer CI before adopting it.
Durable settings belong in the Settings app or a registered settings route. The agent sidebar should not become a second settings app. It can show contextual quick controls and deep links such as:
/settings/ai/settings/connections/settings/secrets/settings/usage/settings/apps/:appIdThe shared Account section is the canonical profile surface at
/settings#account. It owns the editable display name and existing avatar
control through the authenticated get-user-profile and update-user-profile
actions. Shared workspace chrome such as OrgSwitcher should link to this
surface rather than creating an app-local profile page.
When adding a new API key, OAuth grant, provider connection, model selector, app preference, notification preference, or usage/billing surface, register it as a settings tab or app settings panel first. Only add sidebar UI when it is needed in the moment of agent use.
SettingsSearchEntry
per control so users find settings by name across tabs.ChatHistoryRail for the standard
five-item sidebar preview and a footer row with New chat followed by an
ellipsis disclosure up to fifteen. Apps inject routing, labels, and domain
actions./agent surface (AgentTabsPage from
@agent-native/core/client) with Context, Files, Connections, Jobs, and
Access tabs plus a Personal/Organization scope toggle. The canonical home
for context transparency, MCP servers, A2A remote agents, recurring
jobs/automations, and external-client connect flows. See the agent-page
skill.When adding or refactoring one of these areas:
customizing-agent-native for the
configure → compose → eject → propose seam ladder.Read these alongside this skill when the work touches the specific area:
sharingreal-time-collabreal-time-syncclient-side-routingcontext-awarenessonboardingsecretsaudit-logobservabilityfrontend-designc1ee18b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.