Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 20 additions & 14 deletions .agents/skills/classic-to-default-sync/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ description: Inspect a given commit's web/classic changes and sync all features/

# Classic-to-Default Sync

Given a **commit ID**, audit all `web/classic` changes and ensure `web/default` reaches feature parity with the best possible implementation.
Given a **commit ID**, audit all `web/classic` changes and ensure `web/default` reaches feature
parity with the best possible implementation.

## Input

Expand All @@ -19,11 +20,13 @@ The user must supply a `<commit-id>`.
git show <commit-id> -- web/classic
```

Read every changed file in `web/classic`. Identify the **logical changes** (new features, UI/UX improvements, bug fixes, config tweaks, removed dead code, etc.) — not just line diffs.
Read every changed file in `web/classic`. Identify the **logical changes** (new features, UI/UX
improvements, bug fixes, config tweaks, removed dead code, etc.) — not just line diffs.

### Step 2 — Map to default counterparts

For each logical change found in Step 1, locate the equivalent file(s) in `web/default/src/`. Use Glob/Grep/SemanticSearch as needed. Consider that:
For each logical change found in Step 1, locate the equivalent file(s) in `web/default/src/`. Use
Glob/Grep/SemanticSearch as needed. Consider that:

- `web/classic` uses **React 18 + Vite + Semi Design**
- `web/default` uses **React 19 + Rsbuild + Base UI + Tailwind CSS**
Expand All @@ -33,11 +36,11 @@ For each logical change found in Step 1, locate the equivalent file(s) in `web/d

Classify every logical change as one of:

| Status | Meaning |
|--------|---------|
| ✅ Already present & optimal | No action needed |
| ⚠️ Present but suboptimal | Improve: logic, layout, style, or code quality |
| ❌ Missing | Implement from scratch in default's stack |
| Status | Meaning |
| ---------------------------- | ---------------------------------------------- |
| ✅ Already present & optimal | No action needed |
| ⚠️ Present but suboptimal | Improve: logic, layout, style, or code quality |
| ❌ Missing | Implement from scratch in default's stack |

### Step 4 — Implement

Expand All @@ -62,22 +65,25 @@ If any new user-visible strings were added, run the i18n sync:
cd web/default && bun run i18n:sync
```

Then add missing translations for all supported locales (en, zh, fr, ja, ru, vi) following the **i18n-translate** skill.
Then add missing translations for all supported locales (en, zh, fr, ja, ru, vi) following the
**i18n-translate** skill.

### Step 6 — Report

Summarise the work in a concise table:

| # | Change (from classic commit) | Status | Action taken |
|---|------------------------------|--------|--------------|
| 1 | … | ✅ / ⚠️ / ❌ | None / Improved / Implemented |
| # | Change (from classic commit) | Status | Action taken |
| - | ---------------------------- | ----------- | ----------------------------- |
| 1 | … | ✅ / ⚠️ / ❌ | None / Improved / Implemented |

If every item is ✅ with no action needed, simply reply: **"已完成 — web/default 已具备此次提交的所有功能,且实现质量良好,无需修改。"**
If every item is ✅ with no action needed, simply reply: **"已完成 — web/default
已具备此次提交的所有功能,且实现质量良好,无需修改。"**

## Quality bar

- No unused imports, variables, or components
- No commented-out code left behind
- Consistent naming with surrounding `web/default` code
- All interactive elements accessible (keyboard nav, ARIA labels where Radix doesn't provide them automatically)
- All interactive elements accessible (keyboard nav, ARIA labels where Radix doesn't provide them
automatically)
- No regressions: existing behaviour in `web/default` must not break
21 changes: 12 additions & 9 deletions .agents/skills/i18n-translate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ description: >-
cd web/default && bun run i18n:sync
```

Read `web/default/src/i18n/locales/_reports/_sync-report.json` to see per-locale status (missingCount, extrasCount, untranslatedCount).
Read `web/default/src/i18n/locales/_reports/_sync-report.json` to see per-locale status
(missingCount, extrasCount, untranslatedCount).

### Step 2: Find missing keys (used in code but not in locale files)

Expand Down Expand Up @@ -224,22 +225,24 @@ Delete temporary scripts after completion.

## Translation Guidelines

| Language | Code | Notes |
|----------|------|-------|
| English | en | Base locale, key = value |
| Chinese | zh | Fallback locale, must be complete |
| French | fr | Many English cognates are valid (e.g., "Configuration") |
| Japanese | ja | Use katakana for technical loanwords |
| Russian | ru | Use formal register |
| Vietnamese | vi | Use standard Vietnamese |
| Language | Code | Notes |
| ---------- | ---- | ------------------------------------------------------- |
| English | en | Base locale, key = value |
| Chinese | zh | Fallback locale, must be complete |
| French | fr | Many English cognates are valid (e.g., "Configuration") |
| Japanese | ja | Use katakana for technical loanwords |
| Russian | ru | Use formal register |
| Vietnamese | vi | Use standard Vietnamese |

**Keep as English (do not translate):**

- Brand/product names (OpenAI, Claude, Gemini, etc.)
- URLs and email placeholders
- Technical identifiers (JSON keys, API paths, model names)
- Code-like strings (gpt-3.5-turbo, price_xxx, etc.)

**Always translate:**

- UI labels, button text, error messages, descriptions
- Time units (hours, minutes, months, years)
- Action words (Move, Show, Delete, etc.)
Expand Down
71 changes: 45 additions & 26 deletions .agents/skills/shadcn-ui/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ description: >-

# Skills (shadcn/ui)

Skills give AI assistants project-aware context about shadcn/ui. When used, the assistant knows how to find, install, compose, and customize components using the correct APIs and patterns for your project.
Skills give AI assistants project-aware context about shadcn/ui. When used, the assistant knows how
to find, install, compose, and customize components using the correct APIs and patterns for your
project.

For example, you can ask:

Expand All @@ -22,7 +24,8 @@ For example, you can ask:
- _"Switch to --preset [CODE]"_
- _"Can you add a hero from @tailark?"_

The skill reads your project's `components.json` and provides your framework, aliases, installed components, icon library, and base library so it can generate correct code on the first try.
The skill reads your project's `components.json` and provides your framework, aliases, installed
components, icon library, and base library so it can generate correct code on the first try.

---

Expand All @@ -34,7 +37,9 @@ Official install from [Skills — shadcn/ui](https://ui.shadcn.com/docs/skills.m
npx skills add shadcn/ui
```

That installs the skill where the `skills` CLI is available. **This repository** keeps the same intent under `.agents/skills/shadcn-ui/` (overview here + **vendored** upstream docs in [`vendor/shadcn/`](./vendor/shadcn/)) and runs the shadcn CLI from the frontend app root:
That installs the skill where the `skills` CLI is available. **This repository** keeps the same
intent under `.agents/skills/shadcn-ui/` (overview here + **vendored** upstream docs in
[`vendor/shadcn/`](./vendor/shadcn/)) and runs the shadcn CLI from the frontend app root:

```bash
cd web/default && bunx shadcn@latest info --json
Expand All @@ -48,38 +53,48 @@ Learn more about skills at [skills.sh](https://skills.sh).

### Project context

Run **`shadcn info --json`** (here: `cd web/default && bunx shadcn@latest info --json`) for framework, Tailwind version, aliases, base (`radix` | `base`), icon library, installed components, and resolved paths.
Run **`shadcn info --json`** (here: `cd web/default && bunx shadcn@latest info --json`) for
framework, Tailwind version, aliases, base (`radix` | `base`), icon library, installed components,
and resolved paths.

### CLI commands

Full command reference (vendored): [`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md).

### Theming and customization

Vendored: [`vendor/shadcn/customization.md`](./vendor/shadcn/customization.md). Live docs: [Theming](https://ui.shadcn.com/docs/theming).
Vendored: [`vendor/shadcn/customization.md`](./vendor/shadcn/customization.md). Live docs:
[Theming](https://ui.shadcn.com/docs/theming).

### Registry authoring

Not duplicated as a single file in the vendor tree; see [Registry](https://ui.shadcn.com/docs/registry) and `build` in [`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md).
Not duplicated as a single file in the vendor tree; see
[Registry](https://ui.shadcn.com/docs/registry) and `build` in
[`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md).

### MCP server

Vendored: [`vendor/shadcn/mcp.md`](./vendor/shadcn/mcp.md). Live docs: [MCP Server](https://ui.shadcn.com/docs/mcp).
Vendored: [`vendor/shadcn/mcp.md`](./vendor/shadcn/mcp.md). Live docs:
[MCP Server](https://ui.shadcn.com/docs/mcp).

---

## How it works

1. **Project detection** — Applies when `components.json` exists (here: `web/default/components.json`).
1. **Project detection** — Applies when `components.json` exists (here:
`web/default/components.json`).
2. **Context injection** — Use `shadcn info --json` as ground truth for imports and APIs.
3. **Pattern enforcement** — Follow rules in [`vendor/shadcn/SKILL.md`](./vendor/shadcn/SKILL.md) and [`vendor/shadcn/rules/`](./vendor/shadcn/rules/).
4. **Component discovery** — `shadcn docs`, `shadcn search`, MCP, or registries — see vendored SKILL + MCP doc.
3. **Pattern enforcement** — Follow rules in [`vendor/shadcn/SKILL.md`](./vendor/shadcn/SKILL.md)
and [`vendor/shadcn/rules/`](./vendor/shadcn/rules/).
4. **Component discovery** — `shadcn docs`, `shadcn search`, MCP, or registries — see vendored
SKILL + MCP doc.

---

## Learn more (web)

- [CLI](https://ui.shadcn.com/docs/cli) — complements [`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md)
- [CLI](https://ui.shadcn.com/docs/cli) — complements
[`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md)
- [Theming](https://ui.shadcn.com/docs/theming)
- [Registry](https://ui.shadcn.com/docs/registry)
- [skills.sh](https://skills.sh)
Expand All @@ -88,18 +103,22 @@ Vendored: [`vendor/shadcn/mcp.md`](./vendor/shadcn/mcp.md). Live docs: [MCP Serv

## Vendored upstream bundle (deep rules)

Snapshot from [shadcn-ui/ui `skills/shadcn`](https://github.com/shadcn-ui/ui/tree/main/skills/shadcn); revision note in [`vendor/shadcn/UPSTREAM.txt`](./vendor/shadcn/UPSTREAM.txt).

| Doc | Path |
| --- | --- |
| Full official skill body | [`vendor/shadcn/SKILL.md`](./vendor/shadcn/SKILL.md) |
| CLI reference | [`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md) |
| Theming / customization | [`vendor/shadcn/customization.md`](./vendor/shadcn/customization.md) |
| MCP | [`vendor/shadcn/mcp.md`](./vendor/shadcn/mcp.md) |
| Forms | [`vendor/shadcn/rules/forms.md`](./vendor/shadcn/rules/forms.md) |
| Composition | [`vendor/shadcn/rules/composition.md`](./vendor/shadcn/rules/composition.md) |
| Icons | [`vendor/shadcn/rules/icons.md`](./vendor/shadcn/rules/icons.md) |
| Styling | [`vendor/shadcn/rules/styling.md`](./vendor/shadcn/rules/styling.md) |
| Base vs Radix | [`vendor/shadcn/rules/base-vs-radix.md`](./vendor/shadcn/rules/base-vs-radix.md) |

**Workflow:** Prefer this **root** `SKILL.md` for repo paths (`web/default`, Bun). Read **`vendor/shadcn/SKILL.md`** for the complete upstream workflow, patterns, and CLI quick reference. Use **`vendor/shadcn/rules/*.md`** when validating concrete markup.
Snapshot from
[shadcn-ui/ui `skills/shadcn`](https://github.com/shadcn-ui/ui/tree/main/skills/shadcn); revision
note in [`vendor/shadcn/UPSTREAM.txt`](./vendor/shadcn/UPSTREAM.txt).

| Doc | Path |
| ------------------------ | -------------------------------------------------------------------------------- |
| Full official skill body | [`vendor/shadcn/SKILL.md`](./vendor/shadcn/SKILL.md) |
| CLI reference | [`vendor/shadcn/cli.md`](./vendor/shadcn/cli.md) |
| Theming / customization | [`vendor/shadcn/customization.md`](./vendor/shadcn/customization.md) |
| MCP | [`vendor/shadcn/mcp.md`](./vendor/shadcn/mcp.md) |
| Forms | [`vendor/shadcn/rules/forms.md`](./vendor/shadcn/rules/forms.md) |
| Composition | [`vendor/shadcn/rules/composition.md`](./vendor/shadcn/rules/composition.md) |
| Icons | [`vendor/shadcn/rules/icons.md`](./vendor/shadcn/rules/icons.md) |
| Styling | [`vendor/shadcn/rules/styling.md`](./vendor/shadcn/rules/styling.md) |
| Base vs Radix | [`vendor/shadcn/rules/base-vs-radix.md`](./vendor/shadcn/rules/base-vs-radix.md) |

**Workflow:** Prefer this **root** `SKILL.md` for repo paths (`web/default`, Bun). Read
**`vendor/shadcn/SKILL.md`** for the complete upstream workflow, patterns, and CLI quick reference.
Use **`vendor/shadcn/rules/*.md`** when validating concrete markup.
Loading
Loading