specweave 0.23.12 → 0.23.16
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/CLAUDE.md +55 -0
- package/dist/src/core/progress/error-logger.d.ts +58 -0
- package/dist/src/core/progress/error-logger.d.ts.map +1 -0
- package/dist/src/core/progress/error-logger.js +99 -0
- package/dist/src/core/progress/error-logger.js.map +1 -0
- package/dist/src/core/spec-detector.d.ts +5 -0
- package/dist/src/core/spec-detector.d.ts.map +1 -1
- package/dist/src/core/spec-detector.js +91 -33
- package/dist/src/core/spec-detector.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/hooks/docs-changed.sh +9 -1
- package/plugins/specweave/hooks/docs-changed.sh.backup +79 -0
- package/plugins/specweave/hooks/human-input-required.sh +9 -1
- package/plugins/specweave/hooks/human-input-required.sh.backup +75 -0
- package/plugins/specweave/hooks/post-first-increment.sh.backup +61 -0
- package/plugins/specweave/hooks/post-increment-change.sh +6 -1
- package/plugins/specweave/hooks/post-increment-change.sh.backup +98 -0
- package/plugins/specweave/hooks/post-increment-completion.sh +6 -1
- package/plugins/specweave/hooks/post-increment-completion.sh.backup +231 -0
- package/plugins/specweave/hooks/post-increment-planning.sh +6 -1
- package/plugins/specweave/hooks/post-increment-planning.sh.backup +1048 -0
- package/plugins/specweave/hooks/post-increment-status-change.sh +6 -1
- package/plugins/specweave/hooks/post-increment-status-change.sh.backup +147 -0
- package/plugins/specweave/hooks/post-metadata-change.sh +7 -1
- package/plugins/specweave/hooks/post-spec-update.sh.backup +158 -0
- package/plugins/specweave/hooks/post-user-story-complete.sh.backup +179 -0
- package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +83 -0
- package/plugins/specweave/hooks/pre-implementation.sh +9 -1
- package/plugins/specweave/hooks/pre-implementation.sh.backup +67 -0
- package/plugins/specweave/hooks/pre-task-completion.sh +9 -1
- package/plugins/specweave/hooks/pre-task-completion.sh.backup +194 -0
- package/plugins/specweave/hooks/pre-tool-use.sh +9 -1
- package/plugins/specweave/hooks/pre-tool-use.sh.backup +133 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh.backup +386 -0
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh +9 -2
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +353 -0
- package/plugins/specweave-ado/hooks/post-task-completion.sh +9 -1
- package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +172 -0
- package/plugins/specweave-github/.claude-plugin/plugin.json +15 -1
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +16 -0
- package/plugins/specweave-github/hooks/post-task-completion.sh +62 -1
- package/plugins/specweave-github/hooks/post-task-completion.sh.backup +258 -0
- package/plugins/specweave-jira/hooks/post-task-completion.sh +9 -1
- package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +172 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +48 -0
- package/plugins/specweave-release/hooks/post-task-completion.sh.backup +110 -0
- package/plugins/specweave-alternatives/.claude-plugin/plugin.json +0 -21
- package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +0 -626
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +0 -318
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +0 -208
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +0 -1149
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +0 -340
- package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +0 -1010
- package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +0 -20
- package/plugins/specweave-cost-optimizer/skills/cost-optimizer/SKILL.md +0 -190
- package/plugins/specweave-docs/.claude-plugin/plugin.json +0 -19
- package/plugins/specweave-docs/skills/docusaurus/SKILL.md +0 -613
- package/plugins/specweave-docs/skills/spec-driven-brainstorming/README.md +0 -264
- package/plugins/specweave-docs/skills/spec-driven-brainstorming/SKILL.md +0 -439
- package/plugins/specweave-docs/skills/spec-driven-debugging/README.md +0 -479
- package/plugins/specweave-docs/skills/spec-driven-debugging/SKILL.md +0 -652
- package/plugins/specweave-figma/.claude-plugin/.mcp.json +0 -12
- package/plugins/specweave-figma/.claude-plugin/plugin.json +0 -20
- package/plugins/specweave-figma/ARCHITECTURE.md +0 -453
- package/plugins/specweave-figma/README.md +0 -728
- package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +0 -632
- package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +0 -29
- package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +0 -27
- package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +0 -28
- package/plugins/specweave-frontend/.claude-plugin/plugin.json +0 -21
- package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +0 -107
- package/plugins/specweave-frontend/skills/frontend/SKILL.md +0 -177
- package/plugins/specweave-frontend/skills/nextjs/SKILL.md +0 -176
- package/plugins/specweave-testing/.claude-plugin/plugin.json +0 -20
- package/plugins/specweave-testing/skills/e2e-playwright/README.md +0 -506
- package/plugins/specweave-testing/skills/e2e-playwright/SKILL.md +0 -457
- package/plugins/specweave-testing/skills/e2e-playwright/execute.js +0 -373
- package/plugins/specweave-testing/skills/e2e-playwright/lib/utils.js +0 -514
- package/plugins/specweave-testing/skills/e2e-playwright/package.json +0 -33
- package/plugins/specweave-tooling/.claude-plugin/plugin.json +0 -19
- package/plugins/specweave-tooling/skills/skill-creator/LICENSE.txt +0 -202
- package/plugins/specweave-tooling/skills/skill-creator/SKILL.md +0 -209
- package/plugins/specweave-tooling/skills/skill-creator/scripts/init_skill.py +0 -303
- package/plugins/specweave-tooling/skills/skill-creator/scripts/package_skill.py +0 -110
- package/plugins/specweave-tooling/skills/skill-creator/scripts/quick_validate.py +0 -65
- package/plugins/specweave-tooling/skills/skill-router/SKILL.md +0 -479
- package/plugins/specweave-ui/.claude-plugin/plugin.json +0 -26
- package/plugins/specweave-ui/.mcp.json +0 -10
- package/plugins/specweave-ui/README.md +0 -492
- package/plugins/specweave-ui/skills/browser-automation/SKILL.md +0 -676
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "specweave-frontend",
|
|
3
|
-
"description": "Frontend development for React, Vue, and Angular projects. Includes Next.js 14+ App Router support, design system architecture (Atomic Design), and UI component best practices. Focus on modern frontend patterns and performance.",
|
|
4
|
-
"version": "0.22.14",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "SpecWeave Team",
|
|
7
|
-
"url": "https://spec-weave.com"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://spec-weave.com",
|
|
10
|
-
"repository": "https://github.com/anton-abyzov/specweave",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
"frontend",
|
|
14
|
-
"react",
|
|
15
|
-
"vue",
|
|
16
|
-
"angular",
|
|
17
|
-
"nextjs",
|
|
18
|
-
"ui",
|
|
19
|
-
"specweave"
|
|
20
|
-
]
|
|
21
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-system-architect
|
|
3
|
-
description: Expert guide for creating design systems using Atomic Design methodology. Defines design tokens (colors, typography, spacing, shadows, borders), component hierarchy (atoms/molecules/organisms), and ensures reusability. Activates for design system, atomic design, design tokens, reusable components, component library, design patterns.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Design System Architect Skill
|
|
7
|
-
|
|
8
|
-
This skill helps you build scalable, reusable design systems following Atomic Design methodology.
|
|
9
|
-
|
|
10
|
-
## Design Token Categories
|
|
11
|
-
|
|
12
|
-
### 1. Colors
|
|
13
|
-
|
|
14
|
-
**Structure**: Primary (50-900 shades), Secondary, Semantic (success/warning/error/info), Neutral (gray)
|
|
15
|
-
|
|
16
|
-
**Naming**: `color-{category}-{shade}` (e.g., `color-primary-500`)
|
|
17
|
-
|
|
18
|
-
**Best Practices**:
|
|
19
|
-
- Use HSL for easier theme switching
|
|
20
|
-
- Ensure 4.5:1 contrast for text
|
|
21
|
-
- Provide dark mode alternatives
|
|
22
|
-
|
|
23
|
-
### 2. Typography
|
|
24
|
-
|
|
25
|
-
**Structure**: Font families, sizes (6 headings + 2 body), weights (300-900), line heights
|
|
26
|
-
|
|
27
|
-
**Naming**: `font-{property}-{variant}` (e.g., `font-size-heading1`)
|
|
28
|
-
|
|
29
|
-
**Type Scale**: Use 1.25 modular ratio (heading1: 2.25rem, heading2: 1.875rem, etc.)
|
|
30
|
-
|
|
31
|
-
### 3. Spacing
|
|
32
|
-
|
|
33
|
-
**Structure**: 4px/8px base scale (4, 8, 16, 24, 32, 48, 64, 96, 128)
|
|
34
|
-
|
|
35
|
-
**Naming**: `spacing-{value}` (e.g., `spacing-16`)
|
|
36
|
-
|
|
37
|
-
### 4. Shadows
|
|
38
|
-
|
|
39
|
-
**Structure**: Elevation levels (sm, md, lg, xl, 2xl)
|
|
40
|
-
|
|
41
|
-
**Values**: sm: 0 1px 2px, md: 0 4px 6px, lg: 0 10px 15px, xl: 0 20px 25px, 2xl: 0 25px 50px
|
|
42
|
-
|
|
43
|
-
### 5. Borders
|
|
44
|
-
|
|
45
|
-
**Structure**: Radius (sm, md, lg, full), Width (1px, 2px, 4px)
|
|
46
|
-
|
|
47
|
-
## Atomic Design Hierarchy
|
|
48
|
-
|
|
49
|
-
### Atoms (Smallest Components)
|
|
50
|
-
|
|
51
|
-
Typography, Buttons, Inputs, Icons, Badges, Avatars
|
|
52
|
-
|
|
53
|
-
**Guidelines**: Single responsibility, highly reusable, minimal props, no business logic
|
|
54
|
-
|
|
55
|
-
### Molecules (Combinations of Atoms)
|
|
56
|
-
|
|
57
|
-
FormField (Input + Label + Error), Card, NavItem, Dropdown, Modal
|
|
58
|
-
|
|
59
|
-
**Guidelines**: Compose atoms, single purpose, reusable, basic interaction logic
|
|
60
|
-
|
|
61
|
-
### Organisms (Complete UI Sections)
|
|
62
|
-
|
|
63
|
-
Navigation, Hero, Form, DataTable, Dashboard
|
|
64
|
-
|
|
65
|
-
**Guidelines**: Compose molecules/atoms, complex interactions, context-specific, business logic allowed
|
|
66
|
-
|
|
67
|
-
## Component Checklist
|
|
68
|
-
|
|
69
|
-
For each component, ensure:
|
|
70
|
-
|
|
71
|
-
✅ **Variants**: Default, hover, active, disabled, error states
|
|
72
|
-
✅ **Sizes**: sm, md, lg (minimum)
|
|
73
|
-
✅ **Accessibility**: ARIA labels, keyboard navigation, focus indicators, color contrast
|
|
74
|
-
✅ **Responsiveness**: Mobile-first, breakpoint handling, touch targets (44x44px min)
|
|
75
|
-
✅ **Documentation**: Description, usage guidelines, props documentation, examples
|
|
76
|
-
|
|
77
|
-
## Design System Template
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
design-system/
|
|
81
|
-
├── tokens/ (colors, typography, spacing, shadows, borders)
|
|
82
|
-
├── atoms/ (Button, Input, Typography, etc.)
|
|
83
|
-
├── molecules/ (FormField, Card, etc.)
|
|
84
|
-
├── organisms/ (Navigation, Hero, etc.)
|
|
85
|
-
└── documentation/ (overview, getting-started, components)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Usage Guide
|
|
89
|
-
|
|
90
|
-
1. **Start with Tokens**: Define all design tokens, create light/dark variants, export as tokens.json
|
|
91
|
-
2. **Build Atoms**: Create smallest components, use tokens only, document variants
|
|
92
|
-
3. **Compose Molecules**: Combine atoms, add interaction logic, ensure reusability
|
|
93
|
-
4. **Assemble Organisms**: Build complex sections, use molecules/atoms, add business logic
|
|
94
|
-
5. **Document Everything**: Usage examples, props documentation, accessibility notes
|
|
95
|
-
|
|
96
|
-
## Integration with figma-designer
|
|
97
|
-
|
|
98
|
-
This skill guides the `figma-designer` agent in Advanced Mode:
|
|
99
|
-
1. Define tokens first
|
|
100
|
-
2. Create atoms with variants
|
|
101
|
-
3. Build molecules
|
|
102
|
-
4. Compose organisms
|
|
103
|
-
5. Export design system
|
|
104
|
-
|
|
105
|
-
## Test Cases
|
|
106
|
-
|
|
107
|
-
See `test-cases/` for validation scenarios.
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: frontend
|
|
3
|
-
description: Frontend developer for React, Vue, Angular web applications. Implements UI components, state management, forms, routing, API integration, responsive design, accessibility. Handles React hooks, Redux, Zustand, React Query, TanStack Query, form validation, Tailwind CSS, CSS modules, styled-components, component libraries. Activates for: frontend, UI, user interface, React, Vue, Angular, components, state management, Redux, Zustand, Recoil, forms, validation, routing, React Router, responsive design, CSS, Tailwind, styling, accessibility, a11y, ARIA, web components, hooks, useState, useEffect, useContext, props, JSX.
|
|
4
|
-
tools: Read, Write, Edit, Bash
|
|
5
|
-
model: claude-sonnet-4-5-20250929
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Frontend Agent - React/Vue/Angular UI Development Expert
|
|
9
|
-
|
|
10
|
-
You are an expert Frontend Developer with 8+ years of experience building modern web applications with React, Vue, and Angular.
|
|
11
|
-
|
|
12
|
-
## Your Expertise
|
|
13
|
-
|
|
14
|
-
- **React**: Hooks, Context API, component patterns, performance optimization (memo, useMemo, useCallback)
|
|
15
|
-
- **State Management**: Redux Toolkit, Zustand, Recoil, React Query/TanStack Query
|
|
16
|
-
- **Styling**: Tailwind CSS, CSS Modules, styled-components, Sass/SCSS, CSS-in-JS
|
|
17
|
-
- **Forms**: React Hook Form, Formik, Zod/Yup validation
|
|
18
|
-
- **Routing**: React Router v6, TanStack Router
|
|
19
|
-
- **Component Libraries**: shadcn/ui, Material-UI, Ant Design, Chakra UI
|
|
20
|
-
- **Build Tools**: Vite, Webpack, esbuild, Turbopack
|
|
21
|
-
- **TypeScript**: Strong typing, generics, utility types
|
|
22
|
-
- **Testing**: React Testing Library, Vitest, Jest
|
|
23
|
-
- **Accessibility**: WCAG 2.1 AA compliance, ARIA attributes, keyboard navigation
|
|
24
|
-
- **Performance**: Code splitting, lazy loading, bundle optimization
|
|
25
|
-
- **API Integration**: Fetch, Axios, React Query for caching/synchronization
|
|
26
|
-
|
|
27
|
-
## Your Responsibilities
|
|
28
|
-
|
|
29
|
-
1. **Implement UI Components**
|
|
30
|
-
- Create reusable, composable components
|
|
31
|
-
- Follow component composition patterns
|
|
32
|
-
- Implement proper prop types (TypeScript interfaces)
|
|
33
|
-
- Handle loading, error, and empty states
|
|
34
|
-
|
|
35
|
-
2. **Manage Application State**
|
|
36
|
-
- Choose appropriate state solution (local vs global)
|
|
37
|
-
- Implement Redux slices or Zustand stores
|
|
38
|
-
- Use React Query for server state
|
|
39
|
-
- Optimize re-renders
|
|
40
|
-
|
|
41
|
-
3. **Integrate with Backend APIs**
|
|
42
|
-
- Fetch data using React Query/TanStack Query
|
|
43
|
-
- Handle API errors gracefully
|
|
44
|
-
- Implement optimistic updates
|
|
45
|
-
- Add proper loading indicators
|
|
46
|
-
|
|
47
|
-
4. **Ensure Accessibility**
|
|
48
|
-
- Semantic HTML elements
|
|
49
|
-
- ARIA labels and roles
|
|
50
|
-
- Keyboard navigation
|
|
51
|
-
- Screen reader support
|
|
52
|
-
- Color contrast ratios (WCAG AA)
|
|
53
|
-
|
|
54
|
-
5. **Optimize Performance**
|
|
55
|
-
- Code splitting with React.lazy()
|
|
56
|
-
- Memoization (memo, useMemo, useCallback)
|
|
57
|
-
- Virtual scrolling for long lists
|
|
58
|
-
- Image optimization (lazy loading, responsive images)
|
|
59
|
-
- Bundle size analysis
|
|
60
|
-
|
|
61
|
-
## Code Patterns You Follow
|
|
62
|
-
|
|
63
|
-
### Component Structure (React + TypeScript)
|
|
64
|
-
```typescript
|
|
65
|
-
import { useState } from 'react';
|
|
66
|
-
import { useQuery } from '@tanstack/react-query';
|
|
67
|
-
|
|
68
|
-
interface TaskListProps {
|
|
69
|
-
userId: string;
|
|
70
|
-
onTaskClick?: (taskId: string) => void;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export function TaskList({ userId, onTaskClick }: TaskListProps) {
|
|
74
|
-
const { data, isLoading, error } = useQuery({
|
|
75
|
-
queryKey: ['tasks', userId],
|
|
76
|
-
queryFn: () => fetchTasks(userId),
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
if (isLoading) return <LoadingSpinner />;
|
|
80
|
-
if (error) return <ErrorMessage error={error} />;
|
|
81
|
-
if (!data?.length) return <EmptyState message="No tasks found" />;
|
|
82
|
-
|
|
83
|
-
return (
|
|
84
|
-
<ul className="space-y-2">
|
|
85
|
-
{data.map((task) => (
|
|
86
|
-
<TaskItem
|
|
87
|
-
key={task.id}
|
|
88
|
-
task={task}
|
|
89
|
-
onClick={() => onTaskClick?.(task.id)}
|
|
90
|
-
/>
|
|
91
|
-
))}
|
|
92
|
-
</ul>
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Form Handling (React Hook Form + Zod)
|
|
98
|
-
```typescript
|
|
99
|
-
import { useForm } from 'react-hook-form';
|
|
100
|
-
import { zodResolver } from '@hookform/resolvers/zod';
|
|
101
|
-
import { z } from 'zod';
|
|
102
|
-
|
|
103
|
-
const loginSchema = z.object({
|
|
104
|
-
email: z.string().email('Invalid email'),
|
|
105
|
-
password: z.string().min(8, 'Password must be 8+ characters'),
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
type LoginForm = z.infer<typeof loginSchema>;
|
|
109
|
-
|
|
110
|
-
export function LoginForm() {
|
|
111
|
-
const { register, handleSubmit, formState: { errors, isSubmitting } } = useForm<LoginForm>({
|
|
112
|
-
resolver: zodResolver(loginSchema),
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
const onSubmit = async (data: LoginForm) => {
|
|
116
|
-
await login(data);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
return (
|
|
120
|
-
<form onSubmit={handleSubmit(onSubmit)}>
|
|
121
|
-
<input {...register('email')} type="email" />
|
|
122
|
-
{errors.email && <span>{errors.email.message}</span>}
|
|
123
|
-
|
|
124
|
-
<input {...register('password')} type="password" />
|
|
125
|
-
{errors.password && <span>{errors.password.message}</span>}
|
|
126
|
-
|
|
127
|
-
<button type="submit" disabled={isSubmitting}>
|
|
128
|
-
{isSubmitting ? 'Logging in...' : 'Login'}
|
|
129
|
-
</button>
|
|
130
|
-
</form>
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### State Management (Zustand)
|
|
136
|
-
```typescript
|
|
137
|
-
import { create } from 'zustand';
|
|
138
|
-
|
|
139
|
-
interface AuthStore {
|
|
140
|
-
user: User | null;
|
|
141
|
-
login: (credentials: Credentials) => Promise<void>;
|
|
142
|
-
logout: () => void;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export const useAuthStore = create<AuthStore>((set) => ({
|
|
146
|
-
user: null,
|
|
147
|
-
login: async (credentials) => {
|
|
148
|
-
const user = await api.login(credentials);
|
|
149
|
-
set({ user });
|
|
150
|
-
},
|
|
151
|
-
logout: () => set({ user: null }),
|
|
152
|
-
}));
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Accessibility Checklist
|
|
156
|
-
|
|
157
|
-
- [ ] All images have alt text
|
|
158
|
-
- [ ] Forms have proper labels
|
|
159
|
-
- [ ] Interactive elements are keyboard accessible
|
|
160
|
-
- [ ] Focus indicators are visible
|
|
161
|
-
- [ ] Color contrast ratios meet WCAG AA (4.5:1 for text)
|
|
162
|
-
- [ ] Semantic HTML (header, nav, main, article, section)
|
|
163
|
-
- [ ] ARIA labels for icon buttons
|
|
164
|
-
- [ ] Skip links for navigation
|
|
165
|
-
|
|
166
|
-
## Performance Optimization
|
|
167
|
-
|
|
168
|
-
- [ ] Code splitting for routes
|
|
169
|
-
- [ ] Lazy load images
|
|
170
|
-
- [ ] Debounce search inputs
|
|
171
|
-
- [ ] Virtualize long lists (react-window, tanstack-virtual)
|
|
172
|
-
- [ ] Optimize images (WebP, srcset)
|
|
173
|
-
- [ ] Bundle analysis (webpack-bundle-analyzer)
|
|
174
|
-
- [ ] Tree shaking enabled
|
|
175
|
-
- [ ] Remove unused dependencies
|
|
176
|
-
|
|
177
|
-
You build modern, accessible, performant web applications that delight users and meet business requirements.
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nextjs
|
|
3
|
-
description: NextJS 14+ implementation specialist. Creates App Router projects with TypeScript, Server Components, NextAuth.js, Prisma ORM, Tailwind CSS, shadcn/ui. Configures production builds, API routes, environment variables. Activates for NextJS, Next.js, App Router, Server Components, React Server Components, SSR, SSG, ISR, streaming, suspense, server actions, route handlers, middleware, layouts, metadata API.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# NextJS Skill
|
|
8
|
-
|
|
9
|
-
Production-ready NextJS 14+ implementation with App Router, Server Components, and modern best practices.
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Generate and implement NextJS applications following latest best practices, using App Router, Server Components by default, and proper TypeScript configuration.
|
|
14
|
-
|
|
15
|
-
## When to Use
|
|
16
|
-
|
|
17
|
-
Activates when user mentions:
|
|
18
|
-
- "NextJS" or "Next.js"
|
|
19
|
-
- "App Router"
|
|
20
|
-
- "Server Components"
|
|
21
|
-
- "React Server Components"
|
|
22
|
-
- "create NextJS app"
|
|
23
|
-
|
|
24
|
-
## What It Does
|
|
25
|
-
|
|
26
|
-
1. **Creates Project Structure**:
|
|
27
|
-
- NextJS 14+ with App Router
|
|
28
|
-
- TypeScript strict mode
|
|
29
|
-
- ESLint + Prettier configured
|
|
30
|
-
- Tailwind CSS + shadcn/ui
|
|
31
|
-
|
|
32
|
-
2. **Implements Authentication**:
|
|
33
|
-
- NextAuth.js v5 (Auth.js)
|
|
34
|
-
- Credential + OAuth providers
|
|
35
|
-
- Session management
|
|
36
|
-
- Protected routes
|
|
37
|
-
|
|
38
|
-
3. **Database Integration**:
|
|
39
|
-
- Prisma ORM
|
|
40
|
-
- Database schema
|
|
41
|
-
- Migrations
|
|
42
|
-
- Type-safe queries
|
|
43
|
-
|
|
44
|
-
4. **Production Configuration**:
|
|
45
|
-
- Environment variables
|
|
46
|
-
- API routes with error handling
|
|
47
|
-
- SEO metadata
|
|
48
|
-
- Image optimization
|
|
49
|
-
- Production builds
|
|
50
|
-
|
|
51
|
-
## Example Usage
|
|
52
|
-
|
|
53
|
-
**User**: "Create a NextJS app with authentication and Postgres"
|
|
54
|
-
|
|
55
|
-
**nextjs skill**:
|
|
56
|
-
```markdown
|
|
57
|
-
Creating NextJS 14 App Router project with authentication...
|
|
58
|
-
|
|
59
|
-
✅ Project structure:
|
|
60
|
-
app/
|
|
61
|
-
(auth)/
|
|
62
|
-
login/page.tsx
|
|
63
|
-
register/page.tsx
|
|
64
|
-
(dashboard)/
|
|
65
|
-
dashboard/page.tsx
|
|
66
|
-
api/
|
|
67
|
-
auth/[...nextauth]/route.ts
|
|
68
|
-
layout.tsx
|
|
69
|
-
page.tsx
|
|
70
|
-
|
|
71
|
-
✅ Configured:
|
|
72
|
-
- TypeScript (strict mode)
|
|
73
|
-
- NextAuth.js v5 with credentials + Google OAuth
|
|
74
|
-
- Prisma ORM with Postgres
|
|
75
|
-
- Tailwind CSS + shadcn/ui
|
|
76
|
-
- ESLint + Prettier
|
|
77
|
-
|
|
78
|
-
✅ Features:
|
|
79
|
-
- Server Components by default
|
|
80
|
-
- Client Components marked with "use client"
|
|
81
|
-
- Protected routes middleware
|
|
82
|
-
- API route handlers
|
|
83
|
-
- Environment variables (.env.local)
|
|
84
|
-
|
|
85
|
-
✅ Commands:
|
|
86
|
-
npm run dev # Development server
|
|
87
|
-
npm run build # Production build
|
|
88
|
-
npx prisma migrate dev # Database migrations
|
|
89
|
-
npx prisma studio # Database GUI
|
|
90
|
-
|
|
91
|
-
Next steps:
|
|
92
|
-
1. Set DATABASE_URL in .env.local
|
|
93
|
-
2. Set NEXTAUTH_SECRET in .env.local
|
|
94
|
-
3. Run prisma migrate dev
|
|
95
|
-
4. Start development: npm run dev
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Key Features
|
|
99
|
-
|
|
100
|
-
### App Router Structure
|
|
101
|
-
```
|
|
102
|
-
app/
|
|
103
|
-
layout.tsx # Root layout
|
|
104
|
-
page.tsx # Home page
|
|
105
|
-
(auth)/ # Auth group
|
|
106
|
-
login/page.tsx
|
|
107
|
-
(dashboard)/ # Protected group
|
|
108
|
-
layout.tsx # Authenticated layout
|
|
109
|
-
dashboard/page.tsx
|
|
110
|
-
api/
|
|
111
|
-
auth/[...nextauth]/route.ts
|
|
112
|
-
users/route.ts
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Server Components (Default)
|
|
116
|
-
```typescript
|
|
117
|
-
// app/dashboard/page.tsx - Server Component
|
|
118
|
-
import { prisma } from '@/lib/prisma'
|
|
119
|
-
|
|
120
|
-
export default async function DashboardPage() {
|
|
121
|
-
const users = await prisma.user.findMany() // Direct DB query
|
|
122
|
-
|
|
123
|
-
return <div>{users.length} users</div>
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Client Components (When Needed)
|
|
128
|
-
```typescript
|
|
129
|
-
// app/components/Counter.tsx - Client Component
|
|
130
|
-
'use client'
|
|
131
|
-
|
|
132
|
-
import { useState } from 'react'
|
|
133
|
-
|
|
134
|
-
export default function Counter() {
|
|
135
|
-
const [count, setCount] = useState(0)
|
|
136
|
-
return <button onClick={() => setCount(count + 1)}>{count}</button>
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### API Routes
|
|
141
|
-
```typescript
|
|
142
|
-
// app/api/users/route.ts
|
|
143
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
144
|
-
import { prisma } from '@/lib/prisma'
|
|
145
|
-
|
|
146
|
-
export async function GET(request: NextRequest) {
|
|
147
|
-
try {
|
|
148
|
-
const users = await prisma.user.findMany()
|
|
149
|
-
return NextResponse.json(users)
|
|
150
|
-
} catch (error) {
|
|
151
|
-
return NextResponse.json(
|
|
152
|
-
{ error: 'Failed to fetch users' },
|
|
153
|
-
{ status: 500 }
|
|
154
|
-
)
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Production Checklist
|
|
160
|
-
|
|
161
|
-
- [ ] TypeScript strict mode enabled
|
|
162
|
-
- [ ] Server Components used by default
|
|
163
|
-
- [ ] Client Components minimized
|
|
164
|
-
- [ ] API routes have error handling
|
|
165
|
-
- [ ] Environment variables configured
|
|
166
|
-
- [ ] Database migrations working
|
|
167
|
-
- [ ] Production build succeeds
|
|
168
|
-
- [ ] Lighthouse score 90+
|
|
169
|
-
|
|
170
|
-
## Integration
|
|
171
|
-
|
|
172
|
-
Works with:
|
|
173
|
-
- `hetzner-provisioner` - Deploys to Hetzner
|
|
174
|
-
- `stripe-integrator` - Adds payments
|
|
175
|
-
- `calendar-system` - Adds booking
|
|
176
|
-
- `notification-system` - Adds notifications
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "specweave-testing",
|
|
3
|
-
"description": "End-to-end browser testing with Playwright. Validates user flows, captures screenshots, checks accessibility, and visual regression. Test execution infrastructure for SpecWeave increments.",
|
|
4
|
-
"version": "0.22.14",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "SpecWeave Team",
|
|
7
|
-
"url": "https://spec-weave.com"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://spec-weave.com",
|
|
10
|
-
"repository": "https://github.com/anton-abyzov/specweave",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
"testing",
|
|
14
|
-
"playwright",
|
|
15
|
-
"e2e",
|
|
16
|
-
"browser-automation",
|
|
17
|
-
"visual-regression",
|
|
18
|
-
"specweave"
|
|
19
|
-
]
|
|
20
|
-
}
|