class-ai-agent 1.4.0 → 1.5.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/.agent/README.md +10 -5
- package/.agent/SESSION.md +18 -13
- package/.agent/rules/agent-continuity.md +44 -0
- package/.agent/rules/antigravity-overview.md +38 -0
- package/.agent/rules/api-conventions.md +85 -0
- package/.agent/rules/clean-code.md +211 -0
- package/.agent/rules/code-style.md +92 -0
- package/.agent/rules/codegraph.md +47 -0
- package/.agent/rules/database.md +66 -0
- package/.agent/rules/error-handling.md +98 -0
- package/.agent/rules/git-workflow.md +83 -0
- package/.agent/rules/monitoring.md +317 -0
- package/.agent/rules/naming-conventions.md +266 -0
- package/.agent/rules/project-structure.md +71 -0
- package/.agent/rules/security.md +95 -0
- package/.agent/rules/system-design.md +168 -0
- package/.agent/rules/tech-stack.md +463 -0
- package/.agent/rules/testing.md +110 -0
- package/.agents/agents/backend.md +395 -0
- package/.agents/agents/business-analyst.md +380 -0
- package/.agents/agents/code-reviewer.md +110 -0
- package/.agents/agents/copywriter-seo.md +236 -0
- package/.agents/agents/frontend.md +384 -0
- package/.agents/agents/project-manager.md +201 -0
- package/.agents/agents/qa.md +221 -0
- package/.agents/agents/security-auditor.md +143 -0
- package/.agents/agents/systems-architect.md +211 -0
- package/.agents/agents/test-engineer.md +123 -0
- package/.agents/agents/ui-ux-designer.md +210 -0
- package/.agents/references/accessibility-checklist.md +174 -0
- package/.agents/references/agent-continuity.md +42 -0
- package/.agents/references/codegraph.md +90 -0
- package/.agents/references/mcp-antigravity.md +71 -0
- package/.agents/references/performance-checklist.md +150 -0
- package/.agents/references/security-checklist.md +94 -0
- package/.agents/references/supabase.md +55 -0
- package/.agents/references/testing-patterns.md +183 -0
- package/.agents/skills/agent-continuity/SKILL.md +70 -0
- package/.agents/skills/code-review/SKILL.md +208 -0
- package/.agents/skills/deploy/SKILL.md +68 -0
- package/.agents/skills/deploy/deploy.md +735 -0
- package/.agents/skills/incremental-implementation/SKILL.md +210 -0
- package/.agents/skills/security-review/SKILL.md +71 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/UPSTREAM.md +16 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/UPSTREAM.md +16 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/tdd/SKILL.md +217 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +288 -0
- package/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agents/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agents/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agents/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agents/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agents/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/.agents/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agents/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agents/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agents/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/.agents/workflows/build.md +132 -0
- package/.agents/workflows/debug.md +242 -0
- package/.agents/workflows/deploy.md +43 -0
- package/.agents/workflows/fix-issue.md +45 -0
- package/.agents/workflows/handoff.md +93 -0
- package/.agents/workflows/plan.md +125 -0
- package/.agents/workflows/publish-npm.md +122 -0
- package/.agents/workflows/resume.md +106 -0
- package/.agents/workflows/review.md +53 -0
- package/.agents/workflows/simplify.md +221 -0
- package/.agents/workflows/spec.md +95 -0
- package/.agents/workflows/test.md +213 -0
- package/.claude/CLAUDE.md +23 -0
- package/.claude/agents/business-analyst.md +380 -0
- package/.claude/references/codegraph.md +26 -14
- package/.claude/rules/agent-continuity.md +3 -2
- package/.claude/rules/api-conventions.md +1 -0
- package/.claude/rules/clean-code.md +1 -0
- package/.claude/rules/code-style.md +1 -0
- package/.claude/rules/codegraph.md +43 -0
- package/.claude/rules/database.md +2 -1
- package/.claude/rules/error-handling.md +1 -0
- package/.claude/rules/git-workflow.md +1 -0
- package/.claude/rules/monitoring.md +1 -0
- package/.claude/rules/naming-conventions.md +1 -0
- package/.claude/rules/project-structure.md +1 -0
- package/.claude/rules/security.md +1 -0
- package/.claude/rules/system-design.md +1 -0
- package/.claude/rules/tech-stack.md +1 -0
- package/.claude/rules/testing.md +1 -0
- package/.claude/settings.json +3 -1
- package/.claude/skills/ui-ux-pro-max/SKILL.md +1 -90
- package/.cursor/CURSOR.md +1 -1
- package/.cursor/agents/business-analyst.md +380 -0
- package/.cursor/rules/cursor-overview.mdc +4 -3
- package/.cursor/rules/database.mdc +2 -2
- package/.kiro/KIRO.md +3 -3
- package/.kiro/agents/business-analyst.md +380 -0
- package/.kiro/steering/database.md +2 -2
- package/.kiro/steering/kiro-overview.md +2 -2
- package/AGENTS.md +23 -1
- package/GEMINI.md +152 -0
- package/README.md +65 -19
- package/bin/class-ai-agent.cjs +85 -9
- package/package.json +11 -4
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: UI/UX Designer
|
|
3
|
+
description: Expert designer who creates intuitive, beautiful, and accessible user experiences
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UI/UX Designer Agent
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
|
|
10
|
+
You are a **Senior UI/UX Designer**. You create user experiences that are beautiful, intuitive, and accessible. Your designs define what gets built.
|
|
11
|
+
|
|
12
|
+
## Philosophy
|
|
13
|
+
|
|
14
|
+
> "Design is not how it looks, but how it works."
|
|
15
|
+
|
|
16
|
+
Every decision is justified by user benefit. Accessible and consistent design is non-negotiable.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Core Principles
|
|
21
|
+
|
|
22
|
+
| Principle | Implementation |
|
|
23
|
+
|-----------|---------------|
|
|
24
|
+
| **User First** | Decisions based on user benefit, not aesthetics |
|
|
25
|
+
| **Accessible** | WCAG 2.1 AA minimum |
|
|
26
|
+
| **Consistent** | Use design system, no one-offs |
|
|
27
|
+
| **Mobile First** | Design 320px first, enhance upward |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Design Process
|
|
32
|
+
|
|
33
|
+
### 1. User Research
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
## User Analysis
|
|
37
|
+
**Persona**: [Name, age, tech level]
|
|
38
|
+
**Job to be done**: "When I [situation], I want to [motivation], so I can [outcome]"
|
|
39
|
+
**Pain points**: [Current problems]
|
|
40
|
+
**Success metric**: [How we measure success]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Information Architecture
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## Structure
|
|
47
|
+
- Content hierarchy (what's most important?)
|
|
48
|
+
- Navigation structure
|
|
49
|
+
- Content grouping
|
|
50
|
+
- CTA priority (primary vs secondary)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Design Tokens
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
// tailwind.config.ts
|
|
57
|
+
theme: {
|
|
58
|
+
extend: {
|
|
59
|
+
colors: {
|
|
60
|
+
primary: { 500: '#3b82f6', 600: '#2563eb' },
|
|
61
|
+
success: '#22c55e',
|
|
62
|
+
warning: '#f59e0b',
|
|
63
|
+
error: '#ef4444',
|
|
64
|
+
},
|
|
65
|
+
fontSize: {
|
|
66
|
+
'xs': ['12px', '16px'],
|
|
67
|
+
'sm': ['14px', '20px'],
|
|
68
|
+
'base': ['16px', '24px'],
|
|
69
|
+
'lg': ['18px', '28px'],
|
|
70
|
+
'xl': ['20px', '28px'],
|
|
71
|
+
},
|
|
72
|
+
spacing: {
|
|
73
|
+
// 4px base grid
|
|
74
|
+
'1': '4px', '2': '8px', '4': '16px', '6': '24px', '8': '32px',
|
|
75
|
+
},
|
|
76
|
+
borderRadius: {
|
|
77
|
+
'sm': '4px', 'md': '8px', 'lg': '12px',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## UX Patterns
|
|
86
|
+
|
|
87
|
+
### Navigation
|
|
88
|
+
- Primary nav: max 7 items
|
|
89
|
+
- Active state clearly visible
|
|
90
|
+
- Mobile: bottom tabs or hamburger
|
|
91
|
+
- Breadcrumbs for depth > 2
|
|
92
|
+
|
|
93
|
+
### Forms
|
|
94
|
+
- Labels above inputs (never placeholder-only)
|
|
95
|
+
- Inline validation on blur
|
|
96
|
+
- Specific error messages
|
|
97
|
+
- Disabled submit until valid
|
|
98
|
+
- Loading state on submit
|
|
99
|
+
|
|
100
|
+
### States
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
Every component needs:
|
|
104
|
+
- Default
|
|
105
|
+
- Hover
|
|
106
|
+
- Focus (visible ring)
|
|
107
|
+
- Active/Pressed
|
|
108
|
+
- Disabled
|
|
109
|
+
- Loading
|
|
110
|
+
- Error
|
|
111
|
+
- Empty
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Loading States
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
// Skeleton for content
|
|
118
|
+
<Skeleton className="h-4 w-48" />
|
|
119
|
+
|
|
120
|
+
// Empty state with action
|
|
121
|
+
<EmptyState
|
|
122
|
+
icon={<PackageIcon />}
|
|
123
|
+
title="No orders yet"
|
|
124
|
+
description="Place your first order to get started"
|
|
125
|
+
action={<Button>Browse products</Button>}
|
|
126
|
+
/>
|
|
127
|
+
|
|
128
|
+
// Error with retry
|
|
129
|
+
<ErrorState message="Failed to load" onRetry={refetch} />
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Accessibility Requirements
|
|
135
|
+
|
|
136
|
+
### Color
|
|
137
|
+
- Text contrast: >= 4.5:1
|
|
138
|
+
- Large text: >= 3:1
|
|
139
|
+
- Never color alone for info
|
|
140
|
+
|
|
141
|
+
### Focus
|
|
142
|
+
- Visible focus ring
|
|
143
|
+
- Focus trap in modals
|
|
144
|
+
- Restore focus on close
|
|
145
|
+
|
|
146
|
+
### Typography
|
|
147
|
+
- Body: minimum 16px
|
|
148
|
+
- Line height: >= 1.5
|
|
149
|
+
|
|
150
|
+
### ARIA
|
|
151
|
+
- Form inputs: label or aria-label
|
|
152
|
+
- Icons: aria-hidden + adjacent text
|
|
153
|
+
- Modals: role="dialog" aria-modal
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Responsive Breakpoints
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
Mobile: 320px – 767px (design first)
|
|
161
|
+
Tablet: 768px – 1023px
|
|
162
|
+
Desktop: 1024px – 1279px
|
|
163
|
+
Wide: 1280px+
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Design Handoff Checklist
|
|
169
|
+
|
|
170
|
+
- [ ] All states designed
|
|
171
|
+
- [ ] Dark mode (if applicable)
|
|
172
|
+
- [ ] All breakpoints
|
|
173
|
+
- [ ] Design tokens match Tailwind
|
|
174
|
+
- [ ] Interaction notes (animations, transitions)
|
|
175
|
+
- [ ] Accessibility annotations
|
|
176
|
+
- [ ] Real copy (not Lorem ipsum)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Red Flags
|
|
181
|
+
|
|
182
|
+
Stop and reconsider if you're:
|
|
183
|
+
|
|
184
|
+
- Designing without user research
|
|
185
|
+
- Ignoring accessibility
|
|
186
|
+
- Creating one-off styles
|
|
187
|
+
- Not considering mobile
|
|
188
|
+
- Missing loading/error states
|
|
189
|
+
- Using placeholder copy
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Collaboration
|
|
194
|
+
|
|
195
|
+
| Works With | Handoff |
|
|
196
|
+
|------------|---------|
|
|
197
|
+
| **Frontend Developer** | Provides specs, tokens |
|
|
198
|
+
| **Copywriter/SEO** | Collaborates on copy |
|
|
199
|
+
| **Project Manager** | Aligns on requirements |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## When to Invoke
|
|
204
|
+
|
|
205
|
+
- User flow design
|
|
206
|
+
- Wireframes and mockups
|
|
207
|
+
- Design system definition
|
|
208
|
+
- Component design
|
|
209
|
+
- Accessibility review
|
|
210
|
+
- UX evaluation
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Accessibility Checklist (WCAG 2.1 AA)
|
|
2
|
+
|
|
3
|
+
> Ensure your application is usable by everyone.
|
|
4
|
+
|
|
5
|
+
## Keyboard Navigation
|
|
6
|
+
|
|
7
|
+
- [ ] All interactive elements focusable with Tab
|
|
8
|
+
- [ ] Focus order is logical (follows visual order)
|
|
9
|
+
- [ ] Focus indicator visible (never `outline: none`)
|
|
10
|
+
- [ ] Skip link to main content
|
|
11
|
+
- [ ] No keyboard traps
|
|
12
|
+
- [ ] Custom components work with Enter/Space
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
// ✅ Good: Custom button with keyboard support
|
|
16
|
+
<div
|
|
17
|
+
role="button"
|
|
18
|
+
tabIndex={0}
|
|
19
|
+
onClick={handleClick}
|
|
20
|
+
onKeyDown={(e) => {
|
|
21
|
+
if (e.key === 'Enter' || e.key === ' ') handleClick();
|
|
22
|
+
}}
|
|
23
|
+
>
|
|
24
|
+
Click me
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
// ✅ Better: Use native button
|
|
28
|
+
<button onClick={handleClick}>Click me</button>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Screen Readers
|
|
32
|
+
|
|
33
|
+
### Semantic HTML
|
|
34
|
+
- [ ] Use semantic elements (`<nav>`, `<main>`, `<article>`, etc.)
|
|
35
|
+
- [ ] Headings in logical order (h1 → h2 → h3)
|
|
36
|
+
- [ ] Lists use `<ul>`, `<ol>`, `<dl>`
|
|
37
|
+
- [ ] Tables have `<th>` with scope
|
|
38
|
+
|
|
39
|
+
### ARIA
|
|
40
|
+
- [ ] Images have alt text (empty `alt=""` for decorative)
|
|
41
|
+
- [ ] Form inputs have labels
|
|
42
|
+
- [ ] Buttons have accessible names
|
|
43
|
+
- [ ] Dynamic content announced (aria-live)
|
|
44
|
+
- [ ] Modals trap focus and have aria-modal
|
|
45
|
+
|
|
46
|
+
```jsx
|
|
47
|
+
// ✅ Good: Accessible form
|
|
48
|
+
<label htmlFor="email">Email</label>
|
|
49
|
+
<input id="email" type="email" aria-describedby="email-hint" />
|
|
50
|
+
<span id="email-hint">We'll never share your email</span>
|
|
51
|
+
|
|
52
|
+
// ✅ Good: Accessible icon button
|
|
53
|
+
<button aria-label="Close menu">
|
|
54
|
+
<CloseIcon aria-hidden="true" />
|
|
55
|
+
</button>
|
|
56
|
+
|
|
57
|
+
// ✅ Good: Live region for updates
|
|
58
|
+
<div aria-live="polite" aria-atomic="true">
|
|
59
|
+
{notification}
|
|
60
|
+
</div>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Visual Design
|
|
64
|
+
|
|
65
|
+
### Color
|
|
66
|
+
- [ ] Color contrast ratio ≥ 4.5:1 (text)
|
|
67
|
+
- [ ] Color contrast ratio ≥ 3:1 (large text, UI components)
|
|
68
|
+
- [ ] Information not conveyed by color alone
|
|
69
|
+
- [ ] Links distinguishable from text (underline or contrast)
|
|
70
|
+
|
|
71
|
+
### Text
|
|
72
|
+
- [ ] Text resizable to 200% without loss
|
|
73
|
+
- [ ] Line height ≥ 1.5
|
|
74
|
+
- [ ] No text in images (except logos)
|
|
75
|
+
|
|
76
|
+
### Motion
|
|
77
|
+
- [ ] Respect `prefers-reduced-motion`
|
|
78
|
+
- [ ] No flashing content (> 3 flashes/second)
|
|
79
|
+
- [ ] Animations can be paused
|
|
80
|
+
|
|
81
|
+
```css
|
|
82
|
+
/* Respect motion preferences */
|
|
83
|
+
@media (prefers-reduced-motion: reduce) {
|
|
84
|
+
* {
|
|
85
|
+
animation-duration: 0.01ms !important;
|
|
86
|
+
transition-duration: 0.01ms !important;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Forms
|
|
92
|
+
|
|
93
|
+
- [ ] All inputs have visible labels
|
|
94
|
+
- [ ] Required fields marked
|
|
95
|
+
- [ ] Error messages associated with inputs
|
|
96
|
+
- [ ] Autocomplete attributes used
|
|
97
|
+
- [ ] Form validation accessible
|
|
98
|
+
|
|
99
|
+
```jsx
|
|
100
|
+
// ✅ Accessible error message
|
|
101
|
+
<input
|
|
102
|
+
id="email"
|
|
103
|
+
aria-invalid={hasError}
|
|
104
|
+
aria-describedby={hasError ? 'email-error' : undefined}
|
|
105
|
+
/>
|
|
106
|
+
{hasError && (
|
|
107
|
+
<span id="email-error" role="alert">
|
|
108
|
+
Please enter a valid email address
|
|
109
|
+
</span>
|
|
110
|
+
)}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Interactive Components
|
|
114
|
+
|
|
115
|
+
### Buttons & Links
|
|
116
|
+
- [ ] Buttons for actions, links for navigation
|
|
117
|
+
- [ ] Link text is descriptive (not "click here")
|
|
118
|
+
- [ ] Disabled state communicated
|
|
119
|
+
|
|
120
|
+
### Modals/Dialogs
|
|
121
|
+
- [ ] Focus trapped inside modal
|
|
122
|
+
- [ ] Close with Escape key
|
|
123
|
+
- [ ] Focus returns on close
|
|
124
|
+
- [ ] `role="dialog"` and `aria-modal="true"`
|
|
125
|
+
|
|
126
|
+
### Menus & Dropdowns
|
|
127
|
+
- [ ] Arrow key navigation
|
|
128
|
+
- [ ] `role="menu"` and `role="menuitem"`
|
|
129
|
+
- [ ] Current item indicated
|
|
130
|
+
|
|
131
|
+
## Testing Tools
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Automated testing
|
|
135
|
+
npx axe-cli https://example.com
|
|
136
|
+
npx pa11y https://example.com
|
|
137
|
+
|
|
138
|
+
# Browser extensions
|
|
139
|
+
- axe DevTools (Chrome)
|
|
140
|
+
- WAVE (Chrome/Firefox)
|
|
141
|
+
- Accessibility Insights (Chrome)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Manual Testing
|
|
145
|
+
- [ ] Navigate with keyboard only
|
|
146
|
+
- [ ] Test with screen reader (VoiceOver/NVDA)
|
|
147
|
+
- [ ] Zoom to 200%
|
|
148
|
+
- [ ] Use high contrast mode
|
|
149
|
+
- [ ] Test with reduced motion
|
|
150
|
+
|
|
151
|
+
## ARIA Roles Quick Reference
|
|
152
|
+
|
|
153
|
+
| Role | Use For |
|
|
154
|
+
|------|---------|
|
|
155
|
+
| `button` | Clickable elements (prefer `<button>`) |
|
|
156
|
+
| `link` | Navigation (prefer `<a>`) |
|
|
157
|
+
| `dialog` | Modal windows |
|
|
158
|
+
| `alert` | Important messages |
|
|
159
|
+
| `status` | Status updates |
|
|
160
|
+
| `navigation` | Nav sections (prefer `<nav>`) |
|
|
161
|
+
| `main` | Main content (prefer `<main>`) |
|
|
162
|
+
| `region` | Distinct sections with label |
|
|
163
|
+
| `tablist`, `tab`, `tabpanel` | Tab interfaces |
|
|
164
|
+
|
|
165
|
+
## Common Issues
|
|
166
|
+
|
|
167
|
+
| Issue | Fix |
|
|
168
|
+
|-------|-----|
|
|
169
|
+
| Missing alt text | Add descriptive alt or `alt=""` |
|
|
170
|
+
| Low contrast | Increase color contrast |
|
|
171
|
+
| Missing form labels | Add `<label>` elements |
|
|
172
|
+
| Focus not visible | Don't remove outline, style it |
|
|
173
|
+
| Mouse-only interactions | Add keyboard handlers |
|
|
174
|
+
| Auto-playing media | Add controls, respect preferences |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Agent continuity — quick reference
|
|
2
|
+
|
|
3
|
+
## Files
|
|
4
|
+
|
|
5
|
+
| Path | Role |
|
|
6
|
+
|------|------|
|
|
7
|
+
| `.agent/SESSION.md` | Live handoff (commit to git) |
|
|
8
|
+
| `.agent/SESSION.template.md` | Schema reference |
|
|
9
|
+
| `.agent/README.md` | Human overview |
|
|
10
|
+
| `tasks/todo.md` | Task checklist (workflow) |
|
|
11
|
+
| `SPEC.md` | Feature spec (workflow) |
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
| Command | When |
|
|
16
|
+
|---------|------|
|
|
17
|
+
| **`/resume`** | Start of session — read SESSION, summarize, continue |
|
|
18
|
+
| **`/handoff`** | End of session — write SESSION, sync tasks |
|
|
19
|
+
|
|
20
|
+
## Read order (resume)
|
|
21
|
+
|
|
22
|
+
1. `.agent/SESSION.md`
|
|
23
|
+
2. `tasks/todo.md`
|
|
24
|
+
3. Linked spec from SESSION Pointers
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx class-ai-agent
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Creates `.agent/` and seeds `SESSION.md` from template.
|
|
33
|
+
|
|
34
|
+
## Rules
|
|
35
|
+
|
|
36
|
+
- **Cursor:** `.cursor/rules/agent-continuity.mdc` (`alwaysApply`)
|
|
37
|
+
- **Claude:** `.claude/rules/agent-continuity.md`
|
|
38
|
+
- **Kiro:** `.kiro/steering/agent-continuity.md` (`inclusion: always`)
|
|
39
|
+
|
|
40
|
+
## Skill
|
|
41
|
+
|
|
42
|
+
`.cursor/skills/agent-continuity/SKILL.md` — full handoff/resume checklists.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# CodeGraph reference
|
|
2
|
+
|
|
3
|
+
[CodeGraph](https://github.com/colbymchenry/codegraph) is a local, tree-sitter–parsed knowledge graph exposed to agents via MCP. **class-ai-agent** installs Cursor and Kiro MCP wiring plus usage rules, and runs `codegraph init -i` after scaffolding.
|
|
4
|
+
|
|
5
|
+
## Antigravity (included with class-ai-agent)
|
|
6
|
+
|
|
7
|
+
| Item | Path |
|
|
8
|
+
|------|------|
|
|
9
|
+
| MCP config | `~/.gemini/antigravity/mcp_config.json` |
|
|
10
|
+
| Usage rules | `.agent/rules/codegraph.md` |
|
|
11
|
+
| Index (generated) | `.codegraph/` (gitignored) |
|
|
12
|
+
|
|
13
|
+
1. Restart Antigravity after configuring MCP so MCP connects.
|
|
14
|
+
2. Confirm **CodeGraph** appears under MCP in Antigravity (Agent panel → Manage MCP Servers).
|
|
15
|
+
3. Use `codegraph_*` tools for structural questions; grep/read for literal text.
|
|
16
|
+
|
|
17
|
+
**Manual index:** `npx @colbymchenry/codegraph init -i`
|
|
18
|
+
|
|
19
|
+
**Skip auto-index on install:** `CODEGRAPH_SKIP_INIT=1 npx class-ai-agent`
|
|
20
|
+
|
|
21
|
+
## Cursor
|
|
22
|
+
|
|
23
|
+
| Item | Path |
|
|
24
|
+
|------|------|
|
|
25
|
+
| MCP config | `.cursor/mcp.json` |
|
|
26
|
+
| Usage rules | `.cursor/rules/codegraph.mdc` |
|
|
27
|
+
|
|
28
|
+
Reload Cursor after install. See `.cursor/references/codegraph.md`.
|
|
29
|
+
|
|
30
|
+
## Kiro
|
|
31
|
+
|
|
32
|
+
| Item | Path |
|
|
33
|
+
|------|------|
|
|
34
|
+
| MCP config | `.kiro/settings/mcp.json` |
|
|
35
|
+
| Usage rules | `.kiro/steering/codegraph.md` |
|
|
36
|
+
|
|
37
|
+
Restart Kiro after install. See `.kiro/references/codegraph.md`.
|
|
38
|
+
|
|
39
|
+
## Claude Code
|
|
40
|
+
|
|
41
|
+
Project scaffolding does **not** add Claude MCP config. Install CodeGraph globally:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @colbymchenry/codegraph
|
|
45
|
+
codegraph install --target=claude --yes
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## MCP setup for Antigravity
|
|
49
|
+
|
|
50
|
+
See `.agents/references/mcp-antigravity.md` for `mcp_config.json` example (CodeGraph + Supabase).
|
|
51
|
+
|
|
52
|
+
## Requirements
|
|
53
|
+
|
|
54
|
+
- **Node 20+** recommended for CodeGraph (class-ai-agent CLI itself supports Node 16.7+).
|
|
55
|
+
- First index can take a minute on large repos; progress prints during `npx class-ai-agent` install.
|
|
56
|
+
|
|
57
|
+
## Tool parameters
|
|
58
|
+
|
|
59
|
+
| Tool | Pass | Not |
|
|
60
|
+
|------|------|-----|
|
|
61
|
+
| `codegraph_search` | `query`, optional `limit` | — |
|
|
62
|
+
| `codegraph_context` | **`task`** (natural-language area), optional **`maxNodes`** | `query`, `limit` |
|
|
63
|
+
|
|
64
|
+
Example — wrong (search-style args on context):
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{ "query": "auth flow", "limit": 15 }
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
→ `Error: task must be a non-empty string`
|
|
71
|
+
|
|
72
|
+
Example — correct:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{ "task": "how authentication flow works", "maxNodes": 15 }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Session handoff** (`/resume`, `.agent/SESSION.md`) is not a CodeGraph call — read those files with the editor Read tool.
|
|
79
|
+
|
|
80
|
+
## Troubleshooting
|
|
81
|
+
|
|
82
|
+
| Issue | Action |
|
|
83
|
+
|-------|--------|
|
|
84
|
+
| `task must be a non-empty string` | Use `task` (not `query`) on `codegraph_context`; use `maxNodes` (not `limit`). For `/resume`, read `.agent/SESSION.md` instead. |
|
|
85
|
+
| MCP “not initialized” | Run `npx @colbymchenry/codegraph init -i` in project root |
|
|
86
|
+
| MCP not connecting | Reload Cursor; verify `.cursor/mcp.json`; test `npx @colbymchenry/codegraph serve --mcp` |
|
|
87
|
+
| Stale symbols after edit | Wait ~2s for watcher sync, or check staleness banner in tool output |
|
|
88
|
+
| Init failed during install | Run `npx @colbymchenry/codegraph init -i` manually |
|
|
89
|
+
|
|
90
|
+
Upstream: [colbymchenry/codegraph](https://github.com/colbymchenry/codegraph)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Antigravity MCP reference
|
|
2
|
+
|
|
3
|
+
Antigravity reads MCP server configuration from a **user-level** file (not committed to the project):
|
|
4
|
+
|
|
5
|
+
| Platform | Path |
|
|
6
|
+
|----------|------|
|
|
7
|
+
| macOS / Linux | `~/.gemini/antigravity/mcp_config.json` |
|
|
8
|
+
| Windows | `C:\Users\<USERNAME>\.gemini\antigravity\mcp_config.json` |
|
|
9
|
+
|
|
10
|
+
**Open in IDE:** Agent panel → **...** → **MCP Servers** → **Manage MCP Servers** → **View raw config**.
|
|
11
|
+
|
|
12
|
+
After editing, save and restart Antigravity (or refresh MCP servers in the UI).
|
|
13
|
+
|
|
14
|
+
## Important differences from Cursor
|
|
15
|
+
|
|
16
|
+
| Cursor (`.cursor/mcp.json`) | Antigravity (`mcp_config.json`) |
|
|
17
|
+
|-------------------------------|-----------------------------------|
|
|
18
|
+
| Project-level file | User-level file |
|
|
19
|
+
| HTTP servers use `url` | HTTP servers use `serverUrl` |
|
|
20
|
+
| `${workspaceFolder}` in args | Use absolute project path or cwd-relative paths |
|
|
21
|
+
|
|
22
|
+
## Example configuration
|
|
23
|
+
|
|
24
|
+
Derived from class-ai-agent's bundled Cursor MCP. **Do not commit secrets** — use environment variables.
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"mcpServers": {
|
|
29
|
+
"codegraph": {
|
|
30
|
+
"command": "npx",
|
|
31
|
+
"args": [
|
|
32
|
+
"-y",
|
|
33
|
+
"@colbymchenry/codegraph",
|
|
34
|
+
"serve",
|
|
35
|
+
"--mcp",
|
|
36
|
+
"--path",
|
|
37
|
+
"/absolute/path/to/your/project"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"supabase": {
|
|
41
|
+
"serverUrl": "https://mcp.supabase.com/mcp?features=docs"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Replace `/absolute/path/to/your/project` with your workspace root so CodeGraph indexes the correct tree.
|
|
48
|
+
|
|
49
|
+
**Supabase:** Complete OAuth in the browser the first time you use Supabase MCP tools.
|
|
50
|
+
|
|
51
|
+
## CodeGraph without MCP
|
|
52
|
+
|
|
53
|
+
Install globally for CLI use:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npx @colbymchenry/codegraph
|
|
57
|
+
codegraph install --target=claude --yes
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Per-project index: `npx @colbymchenry/codegraph init -i` (class-ai-agent runs this on install).
|
|
61
|
+
|
|
62
|
+
## Troubleshooting
|
|
63
|
+
|
|
64
|
+
| Issue | Action |
|
|
65
|
+
|-------|--------|
|
|
66
|
+
| MCP tools missing | Restart Antigravity; verify JSON syntax |
|
|
67
|
+
| HTTP server fails | Use `serverUrl` not `url` |
|
|
68
|
+
| CodeGraph stale | Wait ~2s after edits; run `codegraph init -i` if index missing |
|
|
69
|
+
| Too many tools | Antigravity recommends keeping enabled tools under ~50 |
|
|
70
|
+
|
|
71
|
+
See also `.agents/references/codegraph.md`.
|