@primeuicom/agent-setup 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +136 -0
- package/dist/index.js +1002 -0
- package/dist/index.js.map +1 -0
- package/package.json +37 -0
- package/presets/claude-code/.claude/settings.json +25 -0
- package/presets/claude-code/.claude/skills/git-commit/SKILL.md +124 -0
- package/presets/claude-code/.claude/skills/next-best-practices/SKILL.md +152 -0
- package/presets/claude-code/.claude/skills/tailwind-design-system/SKILL.md +874 -0
- package/presets/claude-code/.claude/skills/vitest/SKILL.md +52 -0
- package/presets/claude-code/.mcp.json +25 -0
- package/presets/claude-code/skills-lock.json +16 -0
- package/presets/codex/.agents/skills/git-commit/SKILL.md +124 -0
- package/presets/codex/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/presets/codex/.agents/skills/tailwind-design-system/SKILL.md +874 -0
- package/presets/codex/.agents/skills/vitest/SKILL.md +52 -0
- package/presets/codex/.codex/config.toml +17 -0
- package/presets/codex/skills-lock.json +16 -0
- package/presets/cursor/.agents/skills/git-commit/SKILL.md +124 -0
- package/presets/cursor/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/presets/cursor/.agents/skills/tailwind-design-system/SKILL.md +874 -0
- package/presets/cursor/.agents/skills/vitest/SKILL.md +52 -0
- package/presets/cursor/.cursor/cli.json +17 -0
- package/presets/cursor/.cursor/mcp.json +25 -0
- package/presets/cursor/.mcp.json +28 -0
- package/presets/cursor/skills-lock.json +16 -0
- package/presets/gemini-cli/.agents/skills/git-commit/SKILL.md +124 -0
- package/presets/gemini-cli/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/presets/gemini-cli/.agents/skills/tailwind-design-system/SKILL.md +874 -0
- package/presets/gemini-cli/.agents/skills/vitest/SKILL.md +52 -0
- package/presets/gemini-cli/.gemini/settings.json +25 -0
- package/presets/gemini-cli/skills-lock.json +16 -0
- package/presets/mcporter/config/mcporter.json +25 -0
- package/presets/opencode/.agents/skills/git-commit/SKILL.md +124 -0
- package/presets/opencode/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/presets/opencode/.agents/skills/tailwind-design-system/SKILL.md +874 -0
- package/presets/opencode/.agents/skills/vitest/SKILL.md +52 -0
- package/presets/opencode/opencode.json +34 -0
- package/presets/opencode/skills-lock.json +16 -0
- package/presets/vscode/.vscode/mcp.json +25 -0
- package/presets/zed/.zed/settings.json +31 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vitest
|
|
3
|
+
description: Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures.
|
|
4
|
+
metadata:
|
|
5
|
+
author: Anthony Fu
|
|
6
|
+
version: "2026.1.28"
|
|
7
|
+
source: Generated from https://github.com/vitest-dev/vitest, scripts located at https://github.com/antfu/skills
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Vitest is a next-generation testing framework powered by Vite. It provides a Jest-compatible API with native ESM, TypeScript, and JSX support out of the box. Vitest shares the same config, transformers, resolvers, and plugins with your Vite app.
|
|
11
|
+
|
|
12
|
+
**Key Features:**
|
|
13
|
+
- Vite-native: Uses Vite's transformation pipeline for fast HMR-like test updates
|
|
14
|
+
- Jest-compatible: Drop-in replacement for most Jest test suites
|
|
15
|
+
- Smart watch mode: Only reruns affected tests based on module graph
|
|
16
|
+
- Native ESM, TypeScript, JSX support without configuration
|
|
17
|
+
- Multi-threaded workers for parallel test execution
|
|
18
|
+
- Built-in coverage via V8 or Istanbul
|
|
19
|
+
- Snapshot testing, mocking, and spy utilities
|
|
20
|
+
|
|
21
|
+
> The skill is based on Vitest 3.x, generated at 2026-01-28.
|
|
22
|
+
|
|
23
|
+
## Core
|
|
24
|
+
|
|
25
|
+
| Topic | Description | Reference |
|
|
26
|
+
|-------|-------------|-----------|
|
|
27
|
+
| Configuration | Vitest and Vite config integration, defineConfig usage | [core-config](references/core-config.md) |
|
|
28
|
+
| CLI | Command line interface, commands and options | [core-cli](references/core-cli.md) |
|
|
29
|
+
| Test API | test/it function, modifiers like skip, only, concurrent | [core-test-api](references/core-test-api.md) |
|
|
30
|
+
| Describe API | describe/suite for grouping tests and nested suites | [core-describe](references/core-describe.md) |
|
|
31
|
+
| Expect API | Assertions with toBe, toEqual, matchers and asymmetric matchers | [core-expect](references/core-expect.md) |
|
|
32
|
+
| Hooks | beforeEach, afterEach, beforeAll, afterAll, aroundEach | [core-hooks](references/core-hooks.md) |
|
|
33
|
+
|
|
34
|
+
## Features
|
|
35
|
+
|
|
36
|
+
| Topic | Description | Reference |
|
|
37
|
+
|-------|-------------|-----------|
|
|
38
|
+
| Mocking | Mock functions, modules, timers, dates with vi utilities | [features-mocking](references/features-mocking.md) |
|
|
39
|
+
| Snapshots | Snapshot testing with toMatchSnapshot and inline snapshots | [features-snapshots](references/features-snapshots.md) |
|
|
40
|
+
| Coverage | Code coverage with V8 or Istanbul providers | [features-coverage](references/features-coverage.md) |
|
|
41
|
+
| Test Context | Test fixtures, context.expect, test.extend for custom fixtures | [features-context](references/features-context.md) |
|
|
42
|
+
| Concurrency | Concurrent tests, parallel execution, sharding | [features-concurrency](references/features-concurrency.md) |
|
|
43
|
+
| Filtering | Filter tests by name, file patterns, tags | [features-filtering](references/features-filtering.md) |
|
|
44
|
+
|
|
45
|
+
## Advanced
|
|
46
|
+
|
|
47
|
+
| Topic | Description | Reference |
|
|
48
|
+
|-------|-------------|-----------|
|
|
49
|
+
| Vi Utilities | vi helper: mock, spyOn, fake timers, hoisted, waitFor | [advanced-vi](references/advanced-vi.md) |
|
|
50
|
+
| Environments | Test environments: node, jsdom, happy-dom, custom | [advanced-environments](references/advanced-environments.md) |
|
|
51
|
+
| Type Testing | Type-level testing with expectTypeOf and assertType | [advanced-type-testing](references/advanced-type-testing.md) |
|
|
52
|
+
| Projects | Multi-project workspaces, different configs per project | [advanced-projects](references/advanced-projects.md) |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"primeui": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y",
|
|
7
|
+
"@primeuicom/mcp@latest"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"chrome-devtools": {
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"chrome-devtools-mcp@latest"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"next-devtools": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": [
|
|
20
|
+
"-y",
|
|
21
|
+
"next-devtools-mcp@latest"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skills": {
|
|
3
|
+
"git-commit": {
|
|
4
|
+
"source": "github/awesome-copilot"
|
|
5
|
+
},
|
|
6
|
+
"next-best-practices": {
|
|
7
|
+
"source": "vercel-labs/next-skills"
|
|
8
|
+
},
|
|
9
|
+
"vitest": {
|
|
10
|
+
"source": "pproenca/dot-skills"
|
|
11
|
+
},
|
|
12
|
+
"tailwind-design-system": {
|
|
13
|
+
"source": "wshobson/agents"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"primeui": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": [
|
|
6
|
+
"-y",
|
|
7
|
+
"@primeuicom/mcp@latest"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"chrome-devtools": {
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"chrome-devtools-mcp@latest"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"next-devtools": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": [
|
|
20
|
+
"-y",
|
|
21
|
+
"next-devtools-mcp@latest"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-commit
|
|
3
|
+
description: 'Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping'
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Git Commit with Conventional Commits
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message.
|
|
13
|
+
|
|
14
|
+
## Conventional Commit Format
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
<type>[optional scope]: <description>
|
|
18
|
+
|
|
19
|
+
[optional body]
|
|
20
|
+
|
|
21
|
+
[optional footer(s)]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Commit Types
|
|
25
|
+
|
|
26
|
+
| Type | Purpose |
|
|
27
|
+
| ---------- | ------------------------------ |
|
|
28
|
+
| `feat` | New feature |
|
|
29
|
+
| `fix` | Bug fix |
|
|
30
|
+
| `docs` | Documentation only |
|
|
31
|
+
| `style` | Formatting/style (no logic) |
|
|
32
|
+
| `refactor` | Code refactor (no feature/fix) |
|
|
33
|
+
| `perf` | Performance improvement |
|
|
34
|
+
| `test` | Add/update tests |
|
|
35
|
+
| `build` | Build system/dependencies |
|
|
36
|
+
| `ci` | CI/config changes |
|
|
37
|
+
| `chore` | Maintenance/misc |
|
|
38
|
+
| `revert` | Revert commit |
|
|
39
|
+
|
|
40
|
+
## Breaking Changes
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
# Exclamation mark after type/scope
|
|
44
|
+
feat!: remove deprecated endpoint
|
|
45
|
+
|
|
46
|
+
# BREAKING CHANGE footer
|
|
47
|
+
feat: allow config to extend other configs
|
|
48
|
+
|
|
49
|
+
BREAKING CHANGE: `extends` key behavior changed
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
### 1. Analyze Diff
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# If files are staged, use staged diff
|
|
58
|
+
git diff --staged
|
|
59
|
+
|
|
60
|
+
# If nothing staged, use working tree diff
|
|
61
|
+
git diff
|
|
62
|
+
|
|
63
|
+
# Also check status
|
|
64
|
+
git status --porcelain
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Stage Files (if needed)
|
|
68
|
+
|
|
69
|
+
If nothing is staged or you want to group changes differently:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Stage specific files
|
|
73
|
+
git add path/to/file1 path/to/file2
|
|
74
|
+
|
|
75
|
+
# Stage by pattern
|
|
76
|
+
git add *.test.*
|
|
77
|
+
git add src/components/*
|
|
78
|
+
|
|
79
|
+
# Interactive staging
|
|
80
|
+
git add -p
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Never commit secrets** (.env, credentials.json, private keys).
|
|
84
|
+
|
|
85
|
+
### 3. Generate Commit Message
|
|
86
|
+
|
|
87
|
+
Analyze the diff to determine:
|
|
88
|
+
|
|
89
|
+
- **Type**: What kind of change is this?
|
|
90
|
+
- **Scope**: What area/module is affected?
|
|
91
|
+
- **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars)
|
|
92
|
+
|
|
93
|
+
### 4. Execute Commit
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Single line
|
|
97
|
+
git commit -m "<type>[scope]: <description>"
|
|
98
|
+
|
|
99
|
+
# Multi-line with body/footer
|
|
100
|
+
git commit -m "$(cat <<'EOF'
|
|
101
|
+
<type>[scope]: <description>
|
|
102
|
+
|
|
103
|
+
<optional body>
|
|
104
|
+
|
|
105
|
+
<optional footer>
|
|
106
|
+
EOF
|
|
107
|
+
)"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Best Practices
|
|
111
|
+
|
|
112
|
+
- One logical change per commit
|
|
113
|
+
- Present tense: "add" not "added"
|
|
114
|
+
- Imperative mood: "fix bug" not "fixes bug"
|
|
115
|
+
- Reference issues: `Closes #123`, `Refs #456`
|
|
116
|
+
- Keep description under 72 characters
|
|
117
|
+
|
|
118
|
+
## Git Safety Protocol
|
|
119
|
+
|
|
120
|
+
- NEVER update git config
|
|
121
|
+
- NEVER run destructive commands (--force, hard reset) without explicit request
|
|
122
|
+
- NEVER skip hooks (--no-verify) unless user asks
|
|
123
|
+
- NEVER force push to main/master
|
|
124
|
+
- If commit fails due to hooks, fix and create NEW commit (don't amend)
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: next-best-practices
|
|
3
|
+
description: Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Next.js Best Practices
|
|
8
|
+
|
|
9
|
+
Apply these rules when writing or reviewing Next.js code.
|
|
10
|
+
|
|
11
|
+
## File Conventions
|
|
12
|
+
|
|
13
|
+
See [file-conventions.md](./file-conventions.md) for:
|
|
14
|
+
- Project structure and special files
|
|
15
|
+
- Route segments (dynamic, catch-all, groups)
|
|
16
|
+
- Parallel and intercepting routes
|
|
17
|
+
- Middleware rename in v16 (middleware → proxy)
|
|
18
|
+
|
|
19
|
+
## RSC Boundaries
|
|
20
|
+
|
|
21
|
+
Detect invalid React Server Component patterns.
|
|
22
|
+
|
|
23
|
+
See [rsc-boundaries.md](./rsc-boundaries.md) for:
|
|
24
|
+
- Async client component detection (invalid)
|
|
25
|
+
- Non-serializable props detection
|
|
26
|
+
- Server Action exceptions
|
|
27
|
+
|
|
28
|
+
## Async Patterns
|
|
29
|
+
|
|
30
|
+
Next.js 15+ async API changes.
|
|
31
|
+
|
|
32
|
+
See [async-patterns.md](./async-patterns.md) for:
|
|
33
|
+
- Async `params` and `searchParams`
|
|
34
|
+
- Async `cookies()` and `headers()`
|
|
35
|
+
- Migration codemod
|
|
36
|
+
|
|
37
|
+
## Runtime Selection
|
|
38
|
+
|
|
39
|
+
See [runtime-selection.md](./runtime-selection.md) for:
|
|
40
|
+
- Default to Node.js runtime
|
|
41
|
+
- When Edge runtime is appropriate
|
|
42
|
+
|
|
43
|
+
## Directives
|
|
44
|
+
|
|
45
|
+
See [directives.md](./directives.md) for:
|
|
46
|
+
- `'use client'`, `'use server'` (React)
|
|
47
|
+
- `'use cache'` (Next.js)
|
|
48
|
+
|
|
49
|
+
## Functions
|
|
50
|
+
|
|
51
|
+
See [functions.md](./functions.md) for:
|
|
52
|
+
- Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`
|
|
53
|
+
- Server functions: `cookies`, `headers`, `draftMode`, `after`
|
|
54
|
+
- Generate functions: `generateStaticParams`, `generateMetadata`
|
|
55
|
+
|
|
56
|
+
## Error Handling
|
|
57
|
+
|
|
58
|
+
See [error-handling.md](./error-handling.md) for:
|
|
59
|
+
- `error.tsx`, `global-error.tsx`, `not-found.tsx`
|
|
60
|
+
- `redirect`, `permanentRedirect`, `notFound`
|
|
61
|
+
- `forbidden`, `unauthorized` (auth errors)
|
|
62
|
+
- `unstable_rethrow` for catch blocks
|
|
63
|
+
|
|
64
|
+
## Data Patterns
|
|
65
|
+
|
|
66
|
+
See [data-patterns.md](./data-patterns.md) for:
|
|
67
|
+
- Server Components vs Server Actions vs Route Handlers
|
|
68
|
+
- Avoiding data waterfalls (`Promise.all`, Suspense, preload)
|
|
69
|
+
- Client component data fetching
|
|
70
|
+
|
|
71
|
+
## Route Handlers
|
|
72
|
+
|
|
73
|
+
See [route-handlers.md](./route-handlers.md) for:
|
|
74
|
+
- `route.ts` basics
|
|
75
|
+
- GET handler conflicts with `page.tsx`
|
|
76
|
+
- Environment behavior (no React DOM)
|
|
77
|
+
- When to use vs Server Actions
|
|
78
|
+
|
|
79
|
+
## Metadata & OG Images
|
|
80
|
+
|
|
81
|
+
See [metadata.md](./metadata.md) for:
|
|
82
|
+
- Static and dynamic metadata
|
|
83
|
+
- `generateMetadata` function
|
|
84
|
+
- OG image generation with `next/og`
|
|
85
|
+
- File-based metadata conventions
|
|
86
|
+
|
|
87
|
+
## Image Optimization
|
|
88
|
+
|
|
89
|
+
See [image.md](./image.md) for:
|
|
90
|
+
- Always use `next/image` over `<img>`
|
|
91
|
+
- Remote images configuration
|
|
92
|
+
- Responsive `sizes` attribute
|
|
93
|
+
- Blur placeholders
|
|
94
|
+
- Priority loading for LCP
|
|
95
|
+
|
|
96
|
+
## Font Optimization
|
|
97
|
+
|
|
98
|
+
See [font.md](./font.md) for:
|
|
99
|
+
- `next/font` setup
|
|
100
|
+
- Google Fonts, local fonts
|
|
101
|
+
- Tailwind CSS integration
|
|
102
|
+
- Preloading subsets
|
|
103
|
+
|
|
104
|
+
## Bundling
|
|
105
|
+
|
|
106
|
+
See [bundling.md](./bundling.md) for:
|
|
107
|
+
- Server-incompatible packages
|
|
108
|
+
- CSS imports (not link tags)
|
|
109
|
+
- Polyfills (already included)
|
|
110
|
+
- ESM/CommonJS issues
|
|
111
|
+
- Bundle analysis
|
|
112
|
+
|
|
113
|
+
## Scripts
|
|
114
|
+
|
|
115
|
+
See [scripts.md](./scripts.md) for:
|
|
116
|
+
- `next/script` vs native script tags
|
|
117
|
+
- Inline scripts need `id`
|
|
118
|
+
- Loading strategies
|
|
119
|
+
- Google Analytics with `@next/third-parties`
|
|
120
|
+
|
|
121
|
+
## Hydration Errors
|
|
122
|
+
|
|
123
|
+
See [hydration-error.md](./hydration-error.md) for:
|
|
124
|
+
- Common causes (browser APIs, dates, invalid HTML)
|
|
125
|
+
- Debugging with error overlay
|
|
126
|
+
- Fixes for each cause
|
|
127
|
+
|
|
128
|
+
## Suspense Boundaries
|
|
129
|
+
|
|
130
|
+
See [suspense-boundaries.md](./suspense-boundaries.md) for:
|
|
131
|
+
- CSR bailout with `useSearchParams` and `usePathname`
|
|
132
|
+
- Which hooks require Suspense boundaries
|
|
133
|
+
|
|
134
|
+
## Parallel & Intercepting Routes
|
|
135
|
+
|
|
136
|
+
See [parallel-routes.md](./parallel-routes.md) for:
|
|
137
|
+
- Modal patterns with `@slot` and `(.)` interceptors
|
|
138
|
+
- `default.tsx` for fallbacks
|
|
139
|
+
- Closing modals correctly with `router.back()`
|
|
140
|
+
|
|
141
|
+
## Self-Hosting
|
|
142
|
+
|
|
143
|
+
See [self-hosting.md](./self-hosting.md) for:
|
|
144
|
+
- `output: 'standalone'` for Docker
|
|
145
|
+
- Cache handlers for multi-instance ISR
|
|
146
|
+
- What works vs needs extra setup
|
|
147
|
+
|
|
148
|
+
## Debug Tricks
|
|
149
|
+
|
|
150
|
+
See [debug-tricks.md](./debug-tricks.md) for:
|
|
151
|
+
- MCP endpoint for AI-assisted debugging
|
|
152
|
+
- Rebuild specific routes with `--debug-build-paths`
|