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.
Files changed (90) hide show
  1. package/CLAUDE.md +55 -0
  2. package/dist/src/core/progress/error-logger.d.ts +58 -0
  3. package/dist/src/core/progress/error-logger.d.ts.map +1 -0
  4. package/dist/src/core/progress/error-logger.js +99 -0
  5. package/dist/src/core/progress/error-logger.js.map +1 -0
  6. package/dist/src/core/spec-detector.d.ts +5 -0
  7. package/dist/src/core/spec-detector.d.ts.map +1 -1
  8. package/dist/src/core/spec-detector.js +91 -33
  9. package/dist/src/core/spec-detector.js.map +1 -1
  10. package/package.json +1 -1
  11. package/plugins/specweave/hooks/docs-changed.sh +9 -1
  12. package/plugins/specweave/hooks/docs-changed.sh.backup +79 -0
  13. package/plugins/specweave/hooks/human-input-required.sh +9 -1
  14. package/plugins/specweave/hooks/human-input-required.sh.backup +75 -0
  15. package/plugins/specweave/hooks/post-first-increment.sh.backup +61 -0
  16. package/plugins/specweave/hooks/post-increment-change.sh +6 -1
  17. package/plugins/specweave/hooks/post-increment-change.sh.backup +98 -0
  18. package/plugins/specweave/hooks/post-increment-completion.sh +6 -1
  19. package/plugins/specweave/hooks/post-increment-completion.sh.backup +231 -0
  20. package/plugins/specweave/hooks/post-increment-planning.sh +6 -1
  21. package/plugins/specweave/hooks/post-increment-planning.sh.backup +1048 -0
  22. package/plugins/specweave/hooks/post-increment-status-change.sh +6 -1
  23. package/plugins/specweave/hooks/post-increment-status-change.sh.backup +147 -0
  24. package/plugins/specweave/hooks/post-metadata-change.sh +7 -1
  25. package/plugins/specweave/hooks/post-spec-update.sh.backup +158 -0
  26. package/plugins/specweave/hooks/post-user-story-complete.sh.backup +179 -0
  27. package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +83 -0
  28. package/plugins/specweave/hooks/pre-implementation.sh +9 -1
  29. package/plugins/specweave/hooks/pre-implementation.sh.backup +67 -0
  30. package/plugins/specweave/hooks/pre-task-completion.sh +9 -1
  31. package/plugins/specweave/hooks/pre-task-completion.sh.backup +194 -0
  32. package/plugins/specweave/hooks/pre-tool-use.sh +9 -1
  33. package/plugins/specweave/hooks/pre-tool-use.sh.backup +133 -0
  34. package/plugins/specweave/hooks/user-prompt-submit.sh.backup +386 -0
  35. package/plugins/specweave-ado/hooks/post-living-docs-update.sh +9 -2
  36. package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +353 -0
  37. package/plugins/specweave-ado/hooks/post-task-completion.sh +9 -1
  38. package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +172 -0
  39. package/plugins/specweave-github/.claude-plugin/plugin.json +15 -1
  40. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +16 -0
  41. package/plugins/specweave-github/hooks/post-task-completion.sh +62 -1
  42. package/plugins/specweave-github/hooks/post-task-completion.sh.backup +258 -0
  43. package/plugins/specweave-jira/hooks/post-task-completion.sh +9 -1
  44. package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +172 -0
  45. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +48 -0
  46. package/plugins/specweave-release/hooks/post-task-completion.sh.backup +110 -0
  47. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +0 -21
  48. package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +0 -626
  49. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +0 -318
  50. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +0 -208
  51. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +0 -1149
  52. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +0 -340
  53. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +0 -1010
  54. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +0 -20
  55. package/plugins/specweave-cost-optimizer/skills/cost-optimizer/SKILL.md +0 -190
  56. package/plugins/specweave-docs/.claude-plugin/plugin.json +0 -19
  57. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +0 -613
  58. package/plugins/specweave-docs/skills/spec-driven-brainstorming/README.md +0 -264
  59. package/plugins/specweave-docs/skills/spec-driven-brainstorming/SKILL.md +0 -439
  60. package/plugins/specweave-docs/skills/spec-driven-debugging/README.md +0 -479
  61. package/plugins/specweave-docs/skills/spec-driven-debugging/SKILL.md +0 -652
  62. package/plugins/specweave-figma/.claude-plugin/.mcp.json +0 -12
  63. package/plugins/specweave-figma/.claude-plugin/plugin.json +0 -20
  64. package/plugins/specweave-figma/ARCHITECTURE.md +0 -453
  65. package/plugins/specweave-figma/README.md +0 -728
  66. package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +0 -632
  67. package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +0 -29
  68. package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +0 -27
  69. package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +0 -28
  70. package/plugins/specweave-frontend/.claude-plugin/plugin.json +0 -21
  71. package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +0 -107
  72. package/plugins/specweave-frontend/skills/frontend/SKILL.md +0 -177
  73. package/plugins/specweave-frontend/skills/nextjs/SKILL.md +0 -176
  74. package/plugins/specweave-testing/.claude-plugin/plugin.json +0 -20
  75. package/plugins/specweave-testing/skills/e2e-playwright/README.md +0 -506
  76. package/plugins/specweave-testing/skills/e2e-playwright/SKILL.md +0 -457
  77. package/plugins/specweave-testing/skills/e2e-playwright/execute.js +0 -373
  78. package/plugins/specweave-testing/skills/e2e-playwright/lib/utils.js +0 -514
  79. package/plugins/specweave-testing/skills/e2e-playwright/package.json +0 -33
  80. package/plugins/specweave-tooling/.claude-plugin/plugin.json +0 -19
  81. package/plugins/specweave-tooling/skills/skill-creator/LICENSE.txt +0 -202
  82. package/plugins/specweave-tooling/skills/skill-creator/SKILL.md +0 -209
  83. package/plugins/specweave-tooling/skills/skill-creator/scripts/init_skill.py +0 -303
  84. package/plugins/specweave-tooling/skills/skill-creator/scripts/package_skill.py +0 -110
  85. package/plugins/specweave-tooling/skills/skill-creator/scripts/quick_validate.py +0 -65
  86. package/plugins/specweave-tooling/skills/skill-router/SKILL.md +0 -479
  87. package/plugins/specweave-ui/.claude-plugin/plugin.json +0 -26
  88. package/plugins/specweave-ui/.mcp.json +0 -10
  89. package/plugins/specweave-ui/README.md +0 -492
  90. 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
- }