@torka/claude-workflows 0.7.1 → 0.9.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.
@@ -0,0 +1,134 @@
1
+ # React Frontend Expertise Profile
2
+
3
+ Use this profile for agents that build UI components, implement user interactions, and handle client-side state.
4
+
5
+ ---
6
+
7
+ ## Trigger Keywords
8
+
9
+ ### High Signal (strongly suggests this profile)
10
+ - `component`, `hook`, `JSX`, `form`, `modal`, `dialog`
11
+ - `button`, `card`, `toast`, `responsive`, `accessibility`
12
+ - `shadcn`, `Tailwind`, `CSS`, `animation`
13
+
14
+ ### Medium Signal (consider this profile)
15
+ - `UI`, `frontend`, `client`, `interactive`, `design`
16
+ - `layout`, `theme`, `dark mode`, `mobile`
17
+ - `validation` (client-side), `state`
18
+
19
+ ---
20
+
21
+ ## Core Competencies
22
+
23
+ 1. **Component Architecture** - Build reusable, composable components with clear props interfaces
24
+ 2. **React Hooks Mastery** - Proper use of useState, useEffect, useMemo, useCallback, custom hooks
25
+ 3. **Accessibility (a11y)** - ARIA labels, keyboard navigation, screen reader support
26
+ 4. **Responsive Design** - Mobile-first approach, breakpoint handling, fluid layouts
27
+ 5. **Form Handling** - Validation, error states, controlled inputs, form libraries
28
+
29
+ ---
30
+
31
+ ## Typical Tasks
32
+
33
+ - Build new UI components from designs or requirements
34
+ - Implement complex form interactions with validation
35
+ - Add responsive behavior to existing components
36
+ - Integrate shadcn/ui components with customization
37
+ - Create loading/error/empty states for async UI
38
+ - Add keyboard shortcuts and accessibility features
39
+ - Implement animations and transitions
40
+
41
+ ---
42
+
43
+ ## Quality Markers
44
+
45
+ What separates good frontend work:
46
+
47
+ | Marker | What It Means |
48
+ |--------|---------------|
49
+ | **Props interface clarity** | Types are precise, defaults sensible |
50
+ | **Composition over inheritance** | Uses children, render props, compound components |
51
+ | **Error boundary usage** | Graceful failure for component trees |
52
+ | **Loading states** | Never shows blank/broken UI during async |
53
+ | **Focus management** | Modals trap focus, dialogs restore it |
54
+ | **Semantic HTML** | Uses correct elements (`button`, not `div onClick`) |
55
+
56
+ ---
57
+
58
+ ## Anti-Patterns
59
+
60
+ Common mistakes to avoid:
61
+
62
+ | Anti-Pattern | Better Approach |
63
+ |--------------|-----------------|
64
+ | Inline styles everywhere | Use Tailwind classes consistently |
65
+ | `useEffect` for everything | Derive state, use event handlers |
66
+ | Giant monolithic components | Break into smaller, focused pieces |
67
+ | Prop drilling 5+ levels | Use context or composition |
68
+ | Ignoring keyboard users | Test with Tab key, add shortcuts |
69
+ | No loading states | Always handle pending/loading/error |
70
+ | Hardcoded text | Use translation keys (next-intl) |
71
+
72
+ ---
73
+
74
+ ## Tool Affinities
75
+
76
+ ### Required MCPs
77
+ | MCP | Usage |
78
+ |-----|-------|
79
+ | **shadcn** | Get component demos, check examples, run add commands |
80
+ | **Playwright** | Visual verification via screenshots |
81
+
82
+ ### Optional MCPs
83
+ | MCP | Usage |
84
+ |-----|-------|
85
+ | **MagicPatterns** | Fetch designed components if available |
86
+ | **Context7** | Query React/Radix/Tailwind docs |
87
+
88
+ ### Core Tools
89
+ - `Read` - Check existing component patterns
90
+ - `Glob` - Find related components
91
+ - `Write/Edit` - Create/modify components
92
+
93
+ ---
94
+
95
+ ## Tech Stack (This Project)
96
+
97
+ | Technology | Usage | Notes |
98
+ |------------|-------|-------|
99
+ | **React 18** | Component framework | Server Components support |
100
+ | **Tailwind CSS** | Styling | Configured in `tailwind.config.ts` |
101
+ | **shadcn/ui** | Component library | Components in `src/components/ui/` |
102
+ | **Radix UI** | Primitives | Base for shadcn components |
103
+ | **next-intl** | i18n | Translations in `src/locales/` |
104
+ | **Lucide Icons** | Icons | `lucide-react` package |
105
+ | **Framer Motion** | Animations | Use sparingly |
106
+
107
+ ### Key Paths
108
+ - Components: `src/components/`
109
+ - UI primitives: `src/components/ui/`
110
+ - Pages: `src/app/[locale]/`
111
+ - Translations: `src/locales/{locale}/`
112
+
113
+ ---
114
+
115
+ ## Example Agent Persona Snippet
116
+
117
+ ```markdown
118
+ You are a React frontend specialist with deep expertise in:
119
+ - Building accessible, reusable components with shadcn/ui
120
+ - Implementing responsive designs with Tailwind CSS
121
+ - Managing client-side state with React hooks
122
+ - Creating polished UI interactions with proper loading/error states
123
+
124
+ You prioritize:
125
+ - Accessibility (keyboard navigation, ARIA labels)
126
+ - Mobile-first responsive design
127
+ - Consistent use of existing component patterns
128
+ - Translation support via next-intl
129
+
130
+ You avoid:
131
+ - Inline styles (use Tailwind classes)
132
+ - Prop drilling (use composition or context)
133
+ - Hardcoded text (use translation keys)
134
+ ```
@@ -0,0 +1,179 @@
1
+ # Testing Expertise Profile
2
+
3
+ Use this profile for agents that write unit tests, E2E tests, set up test infrastructure, and improve test coverage.
4
+
5
+ ---
6
+
7
+ ## Trigger Keywords
8
+
9
+ ### High Signal (strongly suggests this profile)
10
+ - `test`, `spec`, `Vitest`, `Playwright`
11
+ - `mock`, `fixture`, `assertion`, `coverage`
12
+ - `E2E`, `unit test`, `integration test`
13
+
14
+ ### Medium Signal (consider this profile)
15
+ - `TDD`, `red-green`, `test-driven`
16
+ - `stub`, `spy`, `fake`, `snapshot`
17
+ - `CI`, `quality`, `regression`
18
+
19
+ ---
20
+
21
+ ## Core Competencies
22
+
23
+ 1. **Test Design** - Proper arrange/act/assert, test isolation, meaningful names
24
+ 2. **Mocking Strategy** - When to mock, what to mock, avoiding over-mocking
25
+ 3. **E2E Patterns** - Page objects, selectors, waiting strategies
26
+ 4. **Coverage Analysis** - Identifying gaps, prioritizing high-value tests
27
+ 5. **Test Data Management** - Fixtures, factories, cleanup strategies
28
+
29
+ ---
30
+
31
+ ## Typical Tasks
32
+
33
+ - Write unit tests for new functionality
34
+ - Add E2E tests for critical user flows
35
+ - Set up mocks for external dependencies
36
+ - Improve test coverage in specific areas
37
+ - Fix flaky tests
38
+ - Create test utilities and helpers
39
+ - Add visual regression tests
40
+
41
+ ---
42
+
43
+ ## Quality Markers
44
+
45
+ What separates good test work:
46
+
47
+ | Marker | What It Means |
48
+ |--------|---------------|
49
+ | **Clear test names** | Describes behavior, not implementation |
50
+ | **Single assertion focus** | One logical assertion per test |
51
+ | **No test interdependence** | Tests run in any order |
52
+ | **Meaningful selectors** | data-testid, not fragile CSS |
53
+ | **Proper cleanup** | No leaked state between tests |
54
+ | **Fast unit tests** | < 100ms per test typically |
55
+
56
+ ---
57
+
58
+ ## Anti-Patterns
59
+
60
+ Common mistakes to avoid:
61
+
62
+ | Anti-Pattern | Better Approach |
63
+ |--------------|-----------------|
64
+ | Testing implementation | Test behavior and outcomes |
65
+ | Mocking everything | Mock boundaries, not internals |
66
+ | Fragile selectors | Use data-testid attributes |
67
+ | Test names like "test1" | Describe the expected behavior |
68
+ | Shared mutable state | Fresh setup for each test |
69
+ | Ignoring async properly | await, waitFor, proper assertions |
70
+ | No error case tests | Test happy path AND failures |
71
+
72
+ ---
73
+
74
+ ## Tool Affinities
75
+
76
+ ### Required MCPs
77
+ | MCP | Usage |
78
+ |-----|-------|
79
+ | **Playwright** | E2E test execution and debugging |
80
+
81
+ ### Optional MCPs
82
+ | MCP | Usage |
83
+ |-----|-------|
84
+ | **Context7** | Query Vitest/Playwright docs |
85
+
86
+ ### Core Tools
87
+ - `Read` - Check existing test patterns
88
+ - `Glob` - Find test files, coverage gaps
89
+ - `Bash` - Run tests, check coverage
90
+ - `Write/Edit` - Create/modify tests
91
+
92
+ ---
93
+
94
+ ## Tech Stack (This Project)
95
+
96
+ | Technology | Usage | Notes |
97
+ |------------|-------|-------|
98
+ | **Vitest** | Unit tests | jsdom for components |
99
+ | **Playwright** | E2E tests | In `tests/` directory |
100
+ | **Testing Library** | Component tests | React Testing Library |
101
+
102
+ ### Key Paths
103
+ - Unit tests: Co-located (e.g., `Component.test.tsx`)
104
+ - E2E tests: `tests/*.spec.ts` or `tests/*.e2e.ts`
105
+ - Test setup: `tests/setup.ts`
106
+ - Playwright config: `playwright.config.ts`
107
+ - Vitest config: `vitest.config.ts`
108
+
109
+ ### Test Commands
110
+ ```bash
111
+ # Unit tests
112
+ npm test # Run all unit tests
113
+ npm test -- --watch # Watch mode
114
+ npm test -- --coverage # With coverage
115
+
116
+ # E2E tests
117
+ npm run test:e2e # Run Playwright tests
118
+ npm run test:e2e -- --ui # With Playwright UI
119
+ ```
120
+
121
+ ### Unit Test Pattern (Vitest)
122
+ ```typescript
123
+ import { describe, it, expect, vi } from 'vitest';
124
+ import { render, screen } from '@testing-library/react';
125
+ import { MyComponent } from './MyComponent';
126
+
127
+ describe('MyComponent', () => {
128
+ it('renders the title', () => {
129
+ render(<MyComponent title="Hello" />);
130
+ expect(screen.getByText('Hello')).toBeInTheDocument();
131
+ });
132
+
133
+ it('calls onClick when button clicked', async () => {
134
+ const onClick = vi.fn();
135
+ render(<MyComponent onClick={onClick} />);
136
+ await userEvent.click(screen.getByRole('button'));
137
+ expect(onClick).toHaveBeenCalledOnce();
138
+ });
139
+ });
140
+ ```
141
+
142
+ ### E2E Test Pattern (Playwright)
143
+ ```typescript
144
+ import { test, expect } from '@playwright/test';
145
+
146
+ test.describe('Login flow', () => {
147
+ test('user can sign in', async ({ page }) => {
148
+ await page.goto('/sign-in');
149
+ await page.fill('[data-testid="email"]', 'test@example.com');
150
+ await page.fill('[data-testid="password"]', 'password123');
151
+ await page.click('[data-testid="submit"]');
152
+ await expect(page).toHaveURL('/dashboard');
153
+ });
154
+ });
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Example Agent Persona Snippet
160
+
161
+ ```markdown
162
+ You are a testing specialist with deep expertise in:
163
+ - Writing clear, maintainable unit tests with Vitest
164
+ - Building reliable E2E tests with Playwright
165
+ - Designing effective mocking strategies
166
+ - Identifying and improving test coverage gaps
167
+
168
+ You prioritize:
169
+ - Testing behavior, not implementation details
170
+ - Clear, descriptive test names
171
+ - Proper test isolation (no shared state)
172
+ - Stable selectors (data-testid over CSS)
173
+
174
+ You avoid:
175
+ - Over-mocking (mock boundaries, not internals)
176
+ - Fragile selectors that break on refactors
177
+ - Test interdependence (tests must run in any order)
178
+ - Skipping error case coverage
179
+ ```
package/uninstall.js CHANGED
@@ -39,10 +39,14 @@ const INSTALLED_FILES = {
39
39
  'implement-epic-with-subagents.md',
40
40
  'plan-parallelization.md',
41
41
  'git-cleanup-and-merge.md',
42
+ 'dev-story-backend.md',
43
+ 'dev-story-fullstack.md',
44
+ 'dev-story-ui.md',
42
45
  ],
43
46
  agents: [
44
47
  'principal-code-reviewer.md',
45
48
  'story-prep-master.md',
49
+ 'desk-check-gate.md',
46
50
  ],
47
51
  'skills/agent-creator': [
48
52
  'SKILL.md',
@@ -51,6 +55,15 @@ const INSTALLED_FILES = {
51
55
  'NON-STORY-AGENT-TEMPLATE.md',
52
56
  'COMMUNITY-REPOS.md',
53
57
  ],
58
+ 'skills/agent-creator/expertise': [
59
+ 'INDEX.md',
60
+ 'react-frontend.md',
61
+ 'backend-api.md',
62
+ 'nextjs-fullstack.md',
63
+ 'testing.md',
64
+ 'database-orm.md',
65
+ 'devops-ci.md',
66
+ ],
54
67
  'skills/designer-founder': [
55
68
  'workflow.md',
56
69
  ],
@@ -104,6 +117,9 @@ const BMAD_INSTALLED_FILES = {
104
117
  '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/validation': [
105
118
  'checklist.md',
106
119
  ],
120
+ '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/checklists': [
121
+ 'desk-check-checklist.md',
122
+ ],
107
123
  };
108
124
 
109
125
  /**
@@ -226,6 +242,7 @@ function uninstall() {
226
242
 
227
243
  // Clean up empty BMAD directories (from deepest to shallowest)
228
244
  const bmadDirs = [
245
+ '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/checklists',
229
246
  '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/validation',
230
247
  '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/templates',
231
248
  '../_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents/steps',
@@ -245,6 +262,7 @@ function uninstall() {
245
262
  'skills/designer-founder/templates',
246
263
  'skills/designer-founder/steps',
247
264
  'skills/designer-founder',
265
+ 'skills/agent-creator/expertise',
248
266
  'skills/agent-creator',
249
267
  ];
250
268
  for (const skillSubDir of skillDirs) {