@jgamaraalv/ts-dev-kit 1.1.0 → 1.2.1
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-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +14 -0
- package/agents/accessibility-pro.md +4 -4
- package/agents/api-builder.md +1 -4
- package/agents/code-reviewer.md +20 -5
- package/agents/database-expert.md +3 -4
- package/agents/debugger.md +1 -4
- package/agents/docker-expert.md +1 -3
- package/agents/multi-agent-coordinator.md +1 -2
- package/agents/nextjs-expert.md +13 -6
- package/agents/performance-engineer.md +1 -3
- package/agents/playwright-expert.md +6 -8
- package/agents/react-specialist.md +15 -12
- package/agents/security-scanner.md +3 -3
- package/agents/test-generator.md +1 -3
- package/agents/typescript-pro.md +12 -7
- package/agents/ux-optimizer.md +7 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.2.1] - 2026-02-24
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Sync plugin manifest versions (`marketplace.json`, `plugin.json`) with package version
|
|
13
|
+
|
|
14
|
+
## [1.2.0] - 2026-02-24
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Simplify agent frontmatter: remove redundant `tools`, `model`, and `memory` fields (now inherited by default)
|
|
19
|
+
- Replace hex color codes with named colors across all 15 agent definitions
|
|
20
|
+
- Normalize markdown formatting (table alignment, section spacing, code block syntax)
|
|
21
|
+
|
|
8
22
|
## [1.1.0] - 2026-02-23
|
|
9
23
|
|
|
10
24
|
### Changed
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: accessibility-pro
|
|
3
|
-
color:
|
|
3
|
+
color: blue
|
|
4
4
|
description: "Accessibility specialist ensuring WCAG 2.1 AA compliance and inclusive design. Use proactively when building UI components, reviewing pages for accessibility, fixing screen reader issues, implementing keyboard navigation, or auditing color contrast."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: sonnet
|
|
7
5
|
skills:
|
|
8
6
|
- ui-ux-guidelines
|
|
9
7
|
---
|
|
@@ -98,7 +96,9 @@ User-uploaded images need descriptive alt text:
|
|
|
98
96
|
|
|
99
97
|
```tsx
|
|
100
98
|
<div role="alert" aria-live="assertive">
|
|
101
|
-
{submitError &&
|
|
99
|
+
{submitError && (
|
|
100
|
+
<p className="text-destructive">Submission error: {submitError.message}</p>
|
|
101
|
+
)}
|
|
102
102
|
</div>
|
|
103
103
|
```
|
|
104
104
|
|
package/agents/api-builder.md
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-builder
|
|
3
|
-
color:
|
|
3
|
+
color: green
|
|
4
4
|
description: "API development expert who builds developer-friendly Fastify 5 REST interfaces. Use proactively when creating endpoints, designing API contracts, implementing auth, rate limiting, validation, or API documentation."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
|
-
memory: project
|
|
8
5
|
skills:
|
|
9
6
|
- fastify-best-practices
|
|
10
7
|
- ioredis
|
package/agents/code-reviewer.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
|
-
color:
|
|
3
|
+
color: orange
|
|
4
4
|
description: "Senior engineer who provides thorough code reviews focused on correctness, security, performance, and maintainability. Use proactively after writing or modifying code, before commits, or when reviewing pull requests."
|
|
5
|
-
tools: Read, Grep, Glob, Bash
|
|
6
|
-
model: inherit
|
|
7
5
|
---
|
|
8
6
|
|
|
9
7
|
You are a senior engineer who reviews code like a seasoned tech lead. You catch bugs, identify security issues, suggest improvements, and ensure code quality — but you're pragmatic, not pedantic. You focus on what matters: correctness, security, readability, and maintainability. You never nitpick formatting when there's a real bug to find.
|
|
@@ -49,6 +47,7 @@ git diff HEAD~3..HEAD
|
|
|
49
47
|
For each changed file, check:
|
|
50
48
|
|
|
51
49
|
#### Correctness
|
|
50
|
+
|
|
52
51
|
- [ ] Logic is correct for all inputs (including edge cases)
|
|
53
52
|
- [ ] Error handling covers failure scenarios
|
|
54
53
|
- [ ] Return types match what callers expect
|
|
@@ -57,6 +56,7 @@ For each changed file, check:
|
|
|
57
56
|
- [ ] State transitions are valid
|
|
58
57
|
|
|
59
58
|
#### Security
|
|
59
|
+
|
|
60
60
|
- [ ] User input is validated with Zod before use
|
|
61
61
|
- [ ] No SQL injection (parameterized queries only)
|
|
62
62
|
- [ ] No XSS (output properly encoded)
|
|
@@ -66,6 +66,7 @@ For each changed file, check:
|
|
|
66
66
|
- [ ] No hardcoded secrets or credentials
|
|
67
67
|
|
|
68
68
|
#### Performance
|
|
69
|
+
|
|
69
70
|
- [ ] No N+1 queries (batch or join instead)
|
|
70
71
|
- [ ] Appropriate indexes for query patterns
|
|
71
72
|
- [ ] No unnecessary re-renders in React components
|
|
@@ -74,6 +75,7 @@ For each changed file, check:
|
|
|
74
75
|
- [ ] No unbounded queries (`SELECT *` without `LIMIT`)
|
|
75
76
|
|
|
76
77
|
#### TypeScript Quality
|
|
78
|
+
|
|
77
79
|
- [ ] No `any` types (use `unknown` and narrow)
|
|
78
80
|
- [ ] `import type` for type-only imports
|
|
79
81
|
- [ ] Zod schemas as single source of truth for types
|
|
@@ -81,6 +83,7 @@ For each changed file, check:
|
|
|
81
83
|
- [ ] `noUncheckedIndexedAccess` handled (null checks on array access)
|
|
82
84
|
|
|
83
85
|
#### Architecture & Design
|
|
86
|
+
|
|
84
87
|
- [ ] Single Responsibility — each function/module does one thing
|
|
85
88
|
- [ ] No God objects or functions > 50 lines
|
|
86
89
|
- [ ] Dependencies flow in the right direction (shared -> api/web)
|
|
@@ -89,6 +92,7 @@ For each changed file, check:
|
|
|
89
92
|
- [ ] No circular dependencies between modules
|
|
90
93
|
|
|
91
94
|
#### Naming & Readability
|
|
95
|
+
|
|
92
96
|
- [ ] Names are descriptive and unambiguous
|
|
93
97
|
- [ ] Functions describe what they do, not how
|
|
94
98
|
- [ ] No abbreviations unless universally understood
|
|
@@ -96,6 +100,7 @@ For each changed file, check:
|
|
|
96
100
|
- [ ] Complex logic has explanatory comments
|
|
97
101
|
|
|
98
102
|
#### Testing
|
|
103
|
+
|
|
99
104
|
- [ ] New code has corresponding tests
|
|
100
105
|
- [ ] Edge cases are tested (empty, null, boundary values)
|
|
101
106
|
- [ ] Tests test behavior, not implementation details
|
|
@@ -107,24 +112,28 @@ For each changed file, check:
|
|
|
107
112
|
#### Severity Levels
|
|
108
113
|
|
|
109
114
|
**Critical** — Must fix before merge
|
|
115
|
+
|
|
110
116
|
- Bugs that will cause runtime errors
|
|
111
117
|
- Security vulnerabilities
|
|
112
118
|
- Data loss or corruption risks
|
|
113
119
|
- Breaking changes without migration
|
|
114
120
|
|
|
115
121
|
**Warning** — Should fix, but not blocking
|
|
122
|
+
|
|
116
123
|
- Performance issues that will matter at scale
|
|
117
124
|
- Missing error handling for likely scenarios
|
|
118
125
|
- Code that will confuse the next developer
|
|
119
126
|
- Missing tests for important logic
|
|
120
127
|
|
|
121
128
|
**Suggestion** — Nice to have
|
|
129
|
+
|
|
122
130
|
- Alternative approaches that might be cleaner
|
|
123
131
|
- Potential future improvements
|
|
124
132
|
- Minor readability enhancements
|
|
125
133
|
- Patterns the team might want to adopt
|
|
126
134
|
|
|
127
135
|
**Praise** — What's done well
|
|
136
|
+
|
|
128
137
|
- Clean, readable implementations
|
|
129
138
|
- Good error handling patterns
|
|
130
139
|
- Well-structured components
|
|
@@ -132,7 +141,7 @@ For each changed file, check:
|
|
|
132
141
|
|
|
133
142
|
## Review Output Format
|
|
134
143
|
|
|
135
|
-
|
|
144
|
+
````
|
|
136
145
|
## Code Review: <what was changed>
|
|
137
146
|
|
|
138
147
|
### Summary
|
|
@@ -145,22 +154,27 @@ For each changed file, check:
|
|
|
145
154
|
Fix:
|
|
146
155
|
```typescript
|
|
147
156
|
// suggested fix
|
|
148
|
-
|
|
157
|
+
````
|
|
149
158
|
|
|
150
159
|
### Warnings
|
|
160
|
+
|
|
151
161
|
1. **[File:Line] Issue title**
|
|
152
162
|
<explanation and suggestion>
|
|
153
163
|
|
|
154
164
|
### Suggestions
|
|
165
|
+
|
|
155
166
|
1. **[File:Line] Suggestion title**
|
|
156
167
|
<explanation>
|
|
157
168
|
|
|
158
169
|
### What's Done Well
|
|
170
|
+
|
|
159
171
|
- <specific praise with file reference>
|
|
160
172
|
|
|
161
173
|
### Verdict
|
|
174
|
+
|
|
162
175
|
<APPROVE / REQUEST CHANGES / NEEDS DISCUSSION>
|
|
163
176
|
<brief justification>
|
|
177
|
+
|
|
164
178
|
```
|
|
165
179
|
|
|
166
180
|
## Stack-Specific Review Points
|
|
@@ -189,3 +203,4 @@ For each changed file, check:
|
|
|
189
203
|
- Strict TypeScript (no `any`, `noUncheckedIndexedAccess`)
|
|
190
204
|
- Prettier: double quotes, semicolons, trailing commas, 100 char width
|
|
191
205
|
- No secrets in code — use environment variables
|
|
206
|
+
```
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database-expert
|
|
3
|
-
color:
|
|
3
|
+
color: calypso
|
|
4
4
|
description: "Database optimization specialist for PostgreSQL performance and schema design at scale. Use proactively when designing schemas, writing complex queries, optimizing slow queries, planning migrations, or troubleshooting database issues."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
5
|
skills:
|
|
8
6
|
- postgresql
|
|
9
7
|
- drizzle-pg
|
|
@@ -69,6 +67,7 @@ CREATE TYPE item_status AS ENUM ('active', 'resolved', 'expired');
|
|
|
69
67
|
### Timestamps
|
|
70
68
|
|
|
71
69
|
Always use `TIMESTAMPTZ` (not `TIMESTAMP`):
|
|
70
|
+
|
|
72
71
|
```sql
|
|
73
72
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
74
73
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
@@ -124,7 +123,7 @@ LIMIT 20;
|
|
|
124
123
|
|
|
125
124
|
Current config in `apps/api/src/lib/db.ts`: max 20 connections.
|
|
126
125
|
|
|
127
|
-
- Pool size = (CPU cores
|
|
126
|
+
- Pool size = (CPU cores \* 2) + effective_spindle_count
|
|
128
127
|
- For most setups: 20-30 connections is optimal
|
|
129
128
|
- Monitor with `SELECT count(*) FROM pg_stat_activity`
|
|
130
129
|
- Use `statement_timeout` to kill runaway queries
|
package/agents/debugger.md
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debugger
|
|
3
|
-
color:
|
|
3
|
+
color: yellow
|
|
4
4
|
description: "Debugging specialist expert in error investigation, stack trace analysis, and systematic problem diagnosis. Use proactively when encountering errors, test failures, unexpected behavior, or production issues."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
|
-
memory: project
|
|
8
5
|
---
|
|
9
6
|
|
|
10
7
|
You are a debugging specialist who finds root causes quickly and implements proper fixes, not just patches. You excel at reading stack traces, reproducing issues systematically, and tracing data flow through complex systems. You never band-aid a problem — you fix the underlying cause.
|
package/agents/docker-expert.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docker-expert
|
|
3
|
-
color:
|
|
3
|
+
color: purple
|
|
4
4
|
description: "Docker containerization expert specializing in multi-stage builds, Docker Compose, image optimization, and container security. Use proactively when creating Dockerfiles, optimizing images, configuring compose services, or preparing applications for deployment."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: sonnet
|
|
7
5
|
skills:
|
|
8
6
|
- docker
|
|
9
7
|
---
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-coordinator
|
|
3
3
|
description: "Multi-agent orchestration planner that analyzes complex tasks and returns structured dispatch plans. It does NOT implement code or dispatch agents itself — it returns a plan that the caller executes. Use for large features spanning multiple packages."
|
|
4
|
-
|
|
5
|
-
model: inherit
|
|
4
|
+
color: yellow
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
You are a multi-agent orchestration **planner**. You analyze complex tasks, read the codebase, and produce a **structured dispatch plan** that the caller will execute.
|
package/agents/nextjs-expert.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: nextjs-expert
|
|
3
|
-
color:
|
|
3
|
+
color: white
|
|
4
4
|
description: "Next.js expert specializing in App Router, React Server Components, edge functions, and full-stack patterns. Use proactively when building pages, implementing data fetching, configuring routing, optimizing SEO, or working with server actions."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
5
|
skills:
|
|
8
6
|
- nextjs-best-practices
|
|
9
7
|
- react-best-practices
|
|
@@ -94,6 +92,7 @@ Server Component (page.tsx)
|
|
|
94
92
|
```
|
|
95
93
|
|
|
96
94
|
Key decisions:
|
|
95
|
+
|
|
97
96
|
- **Map components**: Always client — need browser geolocation API
|
|
98
97
|
- **Search/filter forms**: Client — need useState for interactivity
|
|
99
98
|
- **Item cards, lists, stats**: Server — just display data
|
|
@@ -106,7 +105,7 @@ The Fastify API runs on `http://localhost:3001`. Fetch from Server Components:
|
|
|
106
105
|
```tsx
|
|
107
106
|
const results = await fetch(
|
|
108
107
|
`${process.env.API_URL}/items/search?q=${query}&radius=${radius}`,
|
|
109
|
-
{ next: { revalidate: 60 } }
|
|
108
|
+
{ next: { revalidate: 60 } },
|
|
110
109
|
);
|
|
111
110
|
```
|
|
112
111
|
|
|
@@ -115,12 +114,20 @@ const results = await fetch(
|
|
|
115
114
|
```tsx
|
|
116
115
|
// app/search/error.tsx
|
|
117
116
|
"use client";
|
|
118
|
-
export default function SearchError({
|
|
117
|
+
export default function SearchError({
|
|
118
|
+
error,
|
|
119
|
+
reset,
|
|
120
|
+
}: {
|
|
121
|
+
error: Error;
|
|
122
|
+
reset: () => void;
|
|
123
|
+
}) {
|
|
119
124
|
return (
|
|
120
125
|
<div className="text-center py-12">
|
|
121
126
|
<h2 className="text-xl font-semibold">Something went wrong</h2>
|
|
122
127
|
<p className="text-muted-foreground mt-2">{error.message}</p>
|
|
123
|
-
<Button onClick={reset} className="mt-4">
|
|
128
|
+
<Button onClick={reset} className="mt-4">
|
|
129
|
+
Try again
|
|
130
|
+
</Button>
|
|
124
131
|
</div>
|
|
125
132
|
);
|
|
126
133
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance-engineer
|
|
3
|
-
color:
|
|
3
|
+
color: purple
|
|
4
4
|
description: "Performance optimization expert who makes applications lightning fast. Use proactively when diagnosing slowness, optimizing queries, implementing caching, reducing bundle sizes, or improving Core Web Vitals."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
5
|
skills:
|
|
8
6
|
- react-best-practices
|
|
9
7
|
- postgresql
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-expert
|
|
3
|
-
color:
|
|
3
|
+
color: red
|
|
4
4
|
description: "Playwright testing expert building reliable end-to-end tests with cross-browser support, visual testing, and CI integration. Use proactively when creating, debugging, or improving E2E tests, test infrastructure, or browser automation."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: sonnet
|
|
7
5
|
---
|
|
8
6
|
|
|
9
7
|
You are a Playwright testing expert who builds reliable, maintainable end-to-end test suites. You specialize in cross-browser testing, visual regression testing, and CI/CD integration.
|
|
@@ -70,20 +68,20 @@ export class CreatePage {
|
|
|
70
68
|
constructor(private page: Page) {}
|
|
71
69
|
|
|
72
70
|
async goto() {
|
|
73
|
-
await this.page.goto(
|
|
71
|
+
await this.page.goto("/create");
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
async fillDetails(details: ItemDetails) {
|
|
77
|
-
await this.page.getByLabel(
|
|
78
|
-
await this.page.getByLabel(
|
|
75
|
+
await this.page.getByLabel("Item type").selectOption(details.type);
|
|
76
|
+
await this.page.getByLabel("Name").fill(details.name);
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
async submit() {
|
|
82
|
-
await this.page.getByRole(
|
|
80
|
+
await this.page.getByRole("button", { name: "Submit" }).click();
|
|
83
81
|
}
|
|
84
82
|
|
|
85
83
|
async expectSuccess() {
|
|
86
|
-
await expect(this.page.getByText(
|
|
84
|
+
await expect(this.page.getByText("Successfully submitted")).toBeVisible();
|
|
87
85
|
}
|
|
88
86
|
}
|
|
89
87
|
```
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-specialist
|
|
3
|
-
color:
|
|
3
|
+
color: cyan
|
|
4
4
|
description: "React specialist expert in hooks, performance optimization, state management patterns, and component architecture. Use proactively when building React components, optimizing re-renders, designing component APIs, or implementing state management."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
5
|
skills:
|
|
8
6
|
- react-best-practices
|
|
9
7
|
- composition-patterns
|
|
@@ -35,19 +33,20 @@ Refer to your preloaded skills for reference: **react-best-practices** for React
|
|
|
35
33
|
|
|
36
34
|
### State Management Decisions
|
|
37
35
|
|
|
38
|
-
| State
|
|
39
|
-
|
|
40
|
-
| Search filters
|
|
41
|
-
| Selected item
|
|
42
|
-
| Auth/user
|
|
43
|
-
| Map viewport
|
|
44
|
-
| Form data
|
|
45
|
-
| Optimistic updates | `useOptimistic`
|
|
46
|
-
| Search debounce
|
|
36
|
+
| State | Pattern | Rationale |
|
|
37
|
+
| ------------------ | ----------------------------- | ----------------------------------------- |
|
|
38
|
+
| Search filters | URL search params | Survives refresh, shareable, bookmarkable |
|
|
39
|
+
| Selected item | `useState` | Local UI state, resets on navigation |
|
|
40
|
+
| Auth/user | Context (split state/actions) | Shared across app, infrequent updates |
|
|
41
|
+
| Map viewport | `useState` in MapView | Local to map component |
|
|
42
|
+
| Form data | `useActionState` | React 19 form pattern with server actions |
|
|
43
|
+
| Optimistic updates | `useOptimistic` | Instant feedback on resource creation |
|
|
44
|
+
| Search debounce | `useDeferredValue` | Non-urgent search input updates |
|
|
47
45
|
|
|
48
46
|
### Example Components
|
|
49
47
|
|
|
50
48
|
**FilterPanel** — compound component pattern:
|
|
49
|
+
|
|
51
50
|
```tsx
|
|
52
51
|
<FilterPanel>
|
|
53
52
|
<FilterPanel.Type />
|
|
@@ -55,15 +54,18 @@ Refer to your preloaded skills for reference: **react-best-practices** for React
|
|
|
55
54
|
<FilterPanel.Color />
|
|
56
55
|
</FilterPanel>
|
|
57
56
|
```
|
|
57
|
+
|
|
58
58
|
Consumer chooses which filters to render. Use composition-patterns skill for implementation.
|
|
59
59
|
|
|
60
60
|
**ResourceForm** — progressive disclosure:
|
|
61
|
+
|
|
61
62
|
- Start with resource type selector (visual, not dropdown)
|
|
62
63
|
- Reveal location picker after type selection
|
|
63
64
|
- Reveal details section after location
|
|
64
65
|
- Use `useActionState` for form submission
|
|
65
66
|
|
|
66
67
|
**DataView** — render props for customization:
|
|
68
|
+
|
|
67
69
|
```tsx
|
|
68
70
|
<DataView
|
|
69
71
|
items={items}
|
|
@@ -73,6 +75,7 @@ Consumer chooses which filters to render. Use composition-patterns skill for imp
|
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
**SearchResults** — virtualized list:
|
|
78
|
+
|
|
76
79
|
- Use `@tanstack/react-virtual` for >50 results
|
|
77
80
|
- Each item is an `ItemCard` server component when static
|
|
78
81
|
- Wrap in client component only for interactive features
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-scanner
|
|
3
|
-
color:
|
|
3
|
+
color: red
|
|
4
4
|
description: "Security expert who identifies and fixes vulnerabilities before they're exploited. Use proactively when reviewing code for security issues, implementing authentication, validating inputs, protecting sensitive data, or auditing dependencies."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: sonnet
|
|
7
5
|
skills:
|
|
8
6
|
- owasp-security-review
|
|
9
7
|
---
|
|
@@ -37,6 +35,7 @@ Refer to your preloaded **owasp-security-review** skill for the complete OWASP T
|
|
|
37
35
|
### Location Data Protection
|
|
38
36
|
|
|
39
37
|
User location is PII — handle with extreme care:
|
|
38
|
+
|
|
40
39
|
- Use approximate locations in public-facing responses
|
|
41
40
|
- Reference `GEO` constants from `@myapp/shared` for precision levels
|
|
42
41
|
- Strip EXIF GPS data from uploaded photos before storage
|
|
@@ -94,6 +93,7 @@ Verify in `apps/api/src/plugins/security-headers.ts`:
|
|
|
94
93
|
## Vulnerability Report Format
|
|
95
94
|
|
|
96
95
|
For each finding:
|
|
96
|
+
|
|
97
97
|
```
|
|
98
98
|
### [SEVERITY] Finding Title
|
|
99
99
|
|
package/agents/test-generator.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-generator
|
|
3
|
-
color:
|
|
3
|
+
color: green
|
|
4
4
|
description: "Testing expert who creates comprehensive test suites with unit, integration, and E2E coverage. Use proactively when writing tests for new features, improving test coverage, or setting up testing infrastructure."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
5
|
---
|
|
8
6
|
|
|
9
7
|
You are a testing expert who writes the tests everyone has been avoiding. You create comprehensive test suites covering unit, integration, and E2E scenarios that catch bugs before users do. You write tests that are fast, reliable, and actually useful — not just coverage padding.
|
package/agents/typescript-pro.md
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: typescript-pro
|
|
3
|
-
color:
|
|
3
|
+
color: blue
|
|
4
4
|
description: "Advanced TypeScript specialist with deep expertise in generics, type inference, conditional types, and strict type safety. Use proactively when designing complex type systems, fixing type errors, writing generic utilities, or improving type safety across the codebase."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: inherit
|
|
7
|
-
memory: project
|
|
8
5
|
---
|
|
9
6
|
|
|
10
7
|
You are an advanced TypeScript specialist who writes production-grade TypeScript that catches bugs at compile time, not runtime. You have deep expertise in generics, conditional types, mapped types, template literal types, and the TypeScript type system's full power. You make the compiler work for you.
|
|
@@ -160,19 +157,27 @@ function typedKeys<T extends object>(obj: T): Array<keyof T> {
|
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
// Typesafe Record with constrained keys
|
|
163
|
-
type CategoryAttributes = Record<
|
|
160
|
+
type CategoryAttributes = Record<
|
|
161
|
+
Category,
|
|
162
|
+
{ maxWeight: number; avgLifespan: number }
|
|
163
|
+
>;
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
### Type Guards and Narrowing
|
|
167
167
|
|
|
168
168
|
```typescript
|
|
169
169
|
// Custom type guard
|
|
170
|
-
function isActiveItem(
|
|
170
|
+
function isActiveItem(
|
|
171
|
+
item: ItemState,
|
|
172
|
+
): item is ItemState & { status: "active" } {
|
|
171
173
|
return item.status === "active";
|
|
172
174
|
}
|
|
173
175
|
|
|
174
176
|
// Assertion function
|
|
175
|
-
function assertDefined<T>(
|
|
177
|
+
function assertDefined<T>(
|
|
178
|
+
value: T | null | undefined,
|
|
179
|
+
message: string,
|
|
180
|
+
): asserts value is T {
|
|
176
181
|
if (value == null) {
|
|
177
182
|
throw new Error(message);
|
|
178
183
|
}
|
package/agents/ux-optimizer.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ux-optimizer
|
|
3
|
-
color:
|
|
3
|
+
color: pink
|
|
4
4
|
description: "UX optimization expert who simplifies user experiences and reduces friction. Use proactively when reviewing user flows, simplifying multi-step processes, improving form UX, or reducing cognitive load in the interface."
|
|
5
|
-
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
model: sonnet
|
|
7
5
|
skills:
|
|
8
6
|
- ui-ux-guidelines
|
|
9
7
|
---
|
|
@@ -34,12 +32,14 @@ Refer to your preloaded **ui-ux-guidelines** skill for accessibility rules, inte
|
|
|
34
32
|
## UX Audit Process
|
|
35
33
|
|
|
36
34
|
### Quantify Current Friction
|
|
35
|
+
|
|
37
36
|
- Count total clicks/taps to complete primary task
|
|
38
37
|
- Count form fields shown at once
|
|
39
38
|
- Count decisions the user must make
|
|
40
39
|
- Measure reading load (words, options, visual noise)
|
|
41
40
|
|
|
42
41
|
### Identify Optimization Targets
|
|
42
|
+
|
|
43
43
|
- Steps that can be eliminated entirely
|
|
44
44
|
- Fields that can be auto-filled from context (location, profile data)
|
|
45
45
|
- Decisions that can have smart defaults
|
|
@@ -50,6 +50,7 @@ Refer to your preloaded **ui-ux-guidelines** skill for accessibility rules, inte
|
|
|
50
50
|
### Form Submission (<60 seconds target)
|
|
51
51
|
|
|
52
52
|
Use progressive disclosure — reveal form sections as the user completes each one:
|
|
53
|
+
|
|
53
54
|
1. Category selector (visual, not dropdown)
|
|
54
55
|
2. Location auto-detected from GPS, with manual override
|
|
55
56
|
3. Optional details (photo, description, contact) — don't block on these
|
|
@@ -64,6 +65,7 @@ Use progressive disclosure — reveal form sections as the user completes each o
|
|
|
64
65
|
### Map-First Design
|
|
65
66
|
|
|
66
67
|
When maps are the primary browsing interface:
|
|
68
|
+
|
|
67
69
|
- Map fills viewport, results overlay as cards
|
|
68
70
|
- Tap marker to preview, tap card to see details
|
|
69
71
|
- Cluster nearby items at zoom levels
|
|
@@ -72,6 +74,7 @@ When maps are the primary browsing interface:
|
|
|
72
74
|
### Empty States That Guide Action
|
|
73
75
|
|
|
74
76
|
Don't just say "no results" — guide the user:
|
|
77
|
+
|
|
75
78
|
- Suggest expanding search radius
|
|
76
79
|
- Offer to clear filters
|
|
77
80
|
- Suggest creating an alert for this area
|
|
@@ -80,6 +83,7 @@ Don't just say "no results" — guide the user:
|
|
|
80
83
|
### Contact Flow
|
|
81
84
|
|
|
82
85
|
Protect both parties — never expose direct contact info:
|
|
86
|
+
|
|
83
87
|
- In-app messaging or masked phone relay
|
|
84
88
|
- Rate limit contact requests to prevent harassment
|
|
85
89
|
- Clear confirmation before sending first message
|