一键导入
new-ui-component
Add a new shared UI component to the @arcadeum/ui package (packages/ui). Use when creating reusable components shared across web and mobile.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Add a new shared UI component to the @arcadeum/ui package (packages/ui). Use when creating reusable components shared across web and mobile.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Implement a feature from docs/ROADMAP.md end-to-end: branch, code, test, commit, push, open PR, fix CI. Use when user says "implement feature X from roadmap" or "start with feature X".
Deterministic LLM-first SEO audits for websites, blog posts, and GitHub repositories. Use this when the user asks to "perform SEO analysis", "run SEO audit", "analyze SEO", "check technical SEO", "review schema", "Core Web Vitals", "E-E-A-T", "hreflang", "GEO", "AEO", or GitHub repository SEO optimization. For full/page/repo audits, run bundled scripts for evidence and return prioritized, confidence-labeled fixes.
Use when implementing or reviewing accessibility (a11y) — ARIA attributes, keyboard navigation, focus management, color contrast, screen reader support, semantic HTML, form labels, error handling, or any WCAG compliance task. Trigger on keywords like a11y, accessibility, ARIA, keyboard, focus, screen reader, WCAG, contrast, VoiceOver, NVDA.
Use when implementing or reviewing frontend performance — bundle optimization, lazy loading, image optimization, caching, Core Web Vitals (LCP, FID/INP, CLS), code splitting, rendering strategies, or any speed/performance task. Trigger on keywords like performance, speed, bundle size, lazy load, Web Vitals, LCP, CLS, INP, cache, optimize, lighthouse, Core Web Vitals.
Check existing @arcadeum/ui components before implementing any new UI. Use before writing any component — reuse what exists, add to packages/ui if missing.
Create a git commit following the project's Conventional Commits convention with ARC ticket reference. Use when committing changes.
| name | new-ui-component |
| description | Add a new shared UI component to the @arcadeum/ui package (packages/ui). Use when creating reusable components shared across web and mobile. |
The shared UI library (packages/ui) uses Tamagui as the component foundation and is consumed by both apps/web and apps/mobile via @arcadeum/ui.
packages/ui/src/components/
<ComponentName>/
index.ts ← re-export
<ComponentName>.tsx
<ComponentName>.stories.tsx ← Storybook story (required)
Create component in packages/ui/src/components/<Name>/<Name>.tsx:
YStack, XStack, Text, Stack, etc.)export const <Name> = ...Create index.ts re-export:
export { <Name> } from './<Name>';
export type { <Name>Props } from './<Name>';
Register in barrel export packages/ui/src/index.ts:
export * from './components/<Name>';
Create <Name>.stories.tsx (required for every component):
import type { Meta, StoryObj } from '@storybook/nextjs-vite';
import { <Name> } from './<Name>';
const meta: Meta<typeof <Name>> = {
title: 'Shared/<Name>',
component: <Name>,
tags: ['autodocs'],
argTypes: {
// declare each prop with control type and description
variant: { control: 'select', options: [...], description: '...' },
},
};
export default meta;
type Story = StoryObj<typeof <Name>>;
export const Default: Story = { args: { /* minimal props */ } };
// Add a story per meaningful variant/state, e.g.:
// export const Disabled: Story = { args: { disabled: true } };
// export const AllVariants: Story = { render: () => <...> };
title follows 'Shared/<Name>' conventiontags: ['autodocs']AllVariants render story when there are multiple visual variantsTamagui primitives reference:
import { YStack, XStack, Text, Stack, View, styled } from 'tamagui';
// Use styled() for variant-driven components
const MyComponent = styled(Stack, {
variants: {
size: { sm: { padding: '$2' }, md: { padding: '$4' } }
}
});
react-native directly; use Tamagui equivalentspackages/ui/src/tamagui.config.ts for design tokens ($colors, $space, $size)pnpm storybook from apps/web to verify stories render correctly