class-ai-agent 1.2.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.
Files changed (93) hide show
  1. package/.claude/CLAUDE.md +155 -0
  2. package/.claude/agents/backend.md +395 -0
  3. package/.claude/agents/code-reviewer.md +110 -0
  4. package/.claude/agents/copywriter-seo.md +236 -0
  5. package/.claude/agents/frontend.md +384 -0
  6. package/.claude/agents/project-manager.md +201 -0
  7. package/.claude/agents/qa.md +221 -0
  8. package/.claude/agents/security-auditor.md +143 -0
  9. package/.claude/agents/systems-architect.md +211 -0
  10. package/.claude/agents/test-engineer.md +123 -0
  11. package/.claude/agents/ui-ux-designer.md +210 -0
  12. package/.claude/commands/build.md +132 -0
  13. package/.claude/commands/debug.md +242 -0
  14. package/.claude/commands/deploy.md +40 -0
  15. package/.claude/commands/fix-issue.md +42 -0
  16. package/.claude/commands/plan.md +125 -0
  17. package/.claude/commands/review.md +50 -0
  18. package/.claude/commands/simplify.md +222 -0
  19. package/.claude/commands/spec.md +95 -0
  20. package/.claude/commands/test.md +214 -0
  21. package/.claude/references/accessibility-checklist.md +174 -0
  22. package/.claude/references/performance-checklist.md +150 -0
  23. package/.claude/references/security-checklist.md +94 -0
  24. package/.claude/references/testing-patterns.md +183 -0
  25. package/.claude/rules/api-conventions.md +79 -0
  26. package/.claude/rules/clean-code.md +205 -0
  27. package/.claude/rules/code-style.md +86 -0
  28. package/.claude/rules/database.md +60 -0
  29. package/.claude/rules/error-handling.md +92 -0
  30. package/.claude/rules/git-workflow.md +77 -0
  31. package/.claude/rules/monitoring.md +311 -0
  32. package/.claude/rules/naming-conventions.md +260 -0
  33. package/.claude/rules/project-structure.md +65 -0
  34. package/.claude/rules/security.md +90 -0
  35. package/.claude/rules/system-design.md +162 -0
  36. package/.claude/rules/tech-stack.md +456 -0
  37. package/.claude/rules/testing.md +104 -0
  38. package/.claude/settings.json +14 -0
  39. package/.claude/skills/code-review/SKILL.md +208 -0
  40. package/.claude/skills/deploy/SKILL.md +68 -0
  41. package/.claude/skills/deploy/deploy.md +735 -0
  42. package/.claude/skills/incremental-implementation/SKILL.md +210 -0
  43. package/.claude/skills/security-review/SKILL.md +71 -0
  44. package/.claude/skills/tdd/SKILL.md +217 -0
  45. package/.cursor/CURSOR.md +112 -0
  46. package/.cursor/agents/backend.md +395 -0
  47. package/.cursor/agents/code-reviewer.md +110 -0
  48. package/.cursor/agents/copywriter-seo.md +236 -0
  49. package/.cursor/agents/frontend.md +384 -0
  50. package/.cursor/agents/project-manager.md +201 -0
  51. package/.cursor/agents/qa.md +221 -0
  52. package/.cursor/agents/security-auditor.md +143 -0
  53. package/.cursor/agents/systems-architect.md +211 -0
  54. package/.cursor/agents/test-engineer.md +123 -0
  55. package/.cursor/agents/ui-ux-designer.md +210 -0
  56. package/.cursor/commands/build.md +132 -0
  57. package/.cursor/commands/debug.md +242 -0
  58. package/.cursor/commands/deploy.md +40 -0
  59. package/.cursor/commands/fix-issue.md +42 -0
  60. package/.cursor/commands/plan.md +125 -0
  61. package/.cursor/commands/review.md +50 -0
  62. package/.cursor/commands/simplify.md +222 -0
  63. package/.cursor/commands/spec.md +95 -0
  64. package/.cursor/commands/test.md +214 -0
  65. package/.cursor/references/accessibility-checklist.md +174 -0
  66. package/.cursor/references/performance-checklist.md +150 -0
  67. package/.cursor/references/security-checklist.md +94 -0
  68. package/.cursor/references/testing-patterns.md +183 -0
  69. package/.cursor/rules/api-conventions.mdc +85 -0
  70. package/.cursor/rules/clean-code.mdc +211 -0
  71. package/.cursor/rules/code-style.mdc +92 -0
  72. package/.cursor/rules/cursor-overview.mdc +35 -0
  73. package/.cursor/rules/database.mdc +66 -0
  74. package/.cursor/rules/error-handling.mdc +98 -0
  75. package/.cursor/rules/git-workflow.mdc +83 -0
  76. package/.cursor/rules/monitoring.mdc +317 -0
  77. package/.cursor/rules/naming-conventions.mdc +266 -0
  78. package/.cursor/rules/project-structure.mdc +71 -0
  79. package/.cursor/rules/security.mdc +95 -0
  80. package/.cursor/rules/system-design.mdc +168 -0
  81. package/.cursor/rules/tech-stack.mdc +462 -0
  82. package/.cursor/rules/testing.mdc +110 -0
  83. package/.cursor/settings.json +8 -0
  84. package/.cursor/skills/code-review/SKILL.md +208 -0
  85. package/.cursor/skills/deploy/SKILL.md +68 -0
  86. package/.cursor/skills/deploy/deploy.md +735 -0
  87. package/.cursor/skills/incremental-implementation/SKILL.md +210 -0
  88. package/.cursor/skills/security-review/SKILL.md +71 -0
  89. package/.cursor/skills/tdd/SKILL.md +217 -0
  90. package/AGENTS.md +11 -0
  91. package/README.md +405 -0
  92. package/bin/class-ai-agent.cjs +176 -0
  93. package/package.json +38 -0
@@ -0,0 +1,210 @@
1
+ ---
2
+ name: Incremental Implementation
3
+ description: Build features in thin vertical slices with continuous verification
4
+ ---
5
+
6
+ # Incremental Implementation Skill
7
+
8
+ ## Philosophy
9
+
10
+ > "The simplest thing that could work."
11
+
12
+ Build in thin vertical slices. Each increment leaves the system working and testable.
13
+
14
+ ---
15
+
16
+ ## When to Apply
17
+
18
+ **Use this skill when:**
19
+ - Multi-file changes
20
+ - New features
21
+ - Refactoring work
22
+ - Any change > 100 lines
23
+
24
+ **Skip for:**
25
+ - Single-file, small changes
26
+ - Simple bug fixes
27
+ - Configuration updates
28
+
29
+ ---
30
+
31
+ ## The Increment Cycle
32
+
33
+ ```
34
+ ┌─────────────────────────────────────────┐
35
+ │ 1. Pick smallest complete piece │
36
+ │ ↓ │
37
+ │ 2. Write failing test (RED) │
38
+ │ ↓ │
39
+ │ 3. Implement minimal code (GREEN) │
40
+ │ ↓ │
41
+ │ 4. Refactor if needed │
42
+ │ ↓ │
43
+ │ 5. Run all tests │
44
+ │ ↓ │
45
+ │ 6. Commit with clear message │
46
+ │ ↓ │
47
+ │ 7. Repeat for next piece │
48
+ └─────────────────────────────────────────┘
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Vertical vs Horizontal Slicing
54
+
55
+ ### Vertical Slices (Correct)
56
+
57
+ Each slice delivers end-to-end functionality:
58
+
59
+ ```
60
+ Task 1: User can create a task
61
+ └── DB model + API route + UI component
62
+
63
+ Task 2: User can view task list
64
+ └── DB query + API endpoint + List component
65
+
66
+ Task 3: User can complete a task
67
+ └── DB update + API handler + Toggle UI
68
+ ```
69
+
70
+ ### Horizontal Slices (Anti-pattern)
71
+
72
+ Layers completed separately:
73
+
74
+ ```
75
+ Task 1: Create all DB models
76
+ Task 2: Create all API routes
77
+ Task 3: Create all UI components
78
+
79
+ ❌ Problem: Nothing works until everything is done
80
+ ```
81
+
82
+ ---
83
+
84
+ ## Slicing Strategies
85
+
86
+ ### 1. Happy Path First
87
+
88
+ ```
89
+ Slice 1: Basic flow works
90
+ Slice 2: Add validation
91
+ Slice 3: Add error handling
92
+ Slice 4: Add edge cases
93
+ ```
94
+
95
+ ### 2. Risk-First
96
+
97
+ ```
98
+ Slice 1: Uncertain/complex piece (reduce risk early)
99
+ Slice 2: Dependent pieces (build on verified foundation)
100
+ Slice 3: Polish (now safe to invest time)
101
+ ```
102
+
103
+ ### 3. Contract-First
104
+
105
+ ```
106
+ Slice 1: Define API contract (types, endpoints)
107
+ Slice 2: Backend implements contract
108
+ Slice 3: Frontend implements against contract
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Rules
114
+
115
+ ### The 100-Line Rule
116
+
117
+ > Test before writing more than ~100 lines.
118
+
119
+ If you've written 100+ lines without running tests, stop and verify.
120
+
121
+ ### Touch Only What's Needed
122
+
123
+ > Don't refactor adjacent code. Don't add unrequested features.
124
+
125
+ Stay focused on the current task.
126
+
127
+ ### Keep It Building
128
+
129
+ > Project must compile and tests must pass after each increment.
130
+
131
+ Never leave the codebase broken between commits.
132
+
133
+ ### Feature Flags for Incomplete Work
134
+
135
+ ```javascript
136
+ // Use flags when merging incomplete features
137
+ if (featureFlags.newCheckout) {
138
+ return <NewCheckoutFlow />;
139
+ }
140
+ return <LegacyCheckout />;
141
+ ```
142
+
143
+ ### Safe Defaults
144
+
145
+ New code defaults to conservative, disabled behavior:
146
+ - New features off by default
147
+ - New permissions denied by default
148
+ - New validations strict by default
149
+
150
+ ### Rollback-Friendly
151
+
152
+ Each increment should be independently revertable:
153
+
154
+ ```bash
155
+ # If this commit breaks something, revert just this
156
+ git revert HEAD
157
+ ```
158
+
159
+ ---
160
+
161
+ ## Red Flags
162
+
163
+ **Stop and reassess if you're:**
164
+
165
+ - Writing > 100 lines without testing
166
+ - Mixing unrelated changes in one commit
167
+ - Expanding scope mid-task
168
+ - Breaking the build between increments
169
+ - Creating abstractions "for later"
170
+ - Touching files outside the task scope
171
+
172
+ ---
173
+
174
+ ## Commit Strategy
175
+
176
+ Each increment = one commit:
177
+
178
+ ```bash
179
+ # Good: Atomic, focused commits
180
+ git commit -m "feat(tasks): add Task model with title and status"
181
+ git commit -m "feat(tasks): add POST /api/tasks endpoint"
182
+ git commit -m "feat(tasks): add CreateTaskForm component"
183
+
184
+ # Bad: Large, unfocused commits
185
+ git commit -m "Add task feature" # 500 lines across 10 files
186
+ ```
187
+
188
+ ---
189
+
190
+ ## When Stuck
191
+
192
+ If an increment fails:
193
+
194
+ 1. **Stop** — Don't push through
195
+ 2. **Diagnose** — What specifically failed?
196
+ 3. **Reduce scope** — Can you make a smaller increment?
197
+ 4. **Ask for help** — If truly blocked
198
+
199
+ ---
200
+
201
+ ## Verification Checklist
202
+
203
+ After each increment:
204
+
205
+ - [ ] Tests pass
206
+ - [ ] Build succeeds
207
+ - [ ] Code compiles
208
+ - [ ] Feature works (manual check if UI)
209
+ - [ ] Commit is atomic and focused
210
+ - [ ] Message follows conventions
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: security-review
3
+ description: Skill to perform a thorough security audit of the codebase
4
+ ---
5
+
6
+ # Security Review Skill
7
+
8
+ ## Purpose
9
+ Systematically scan the codebase for security vulnerabilities and produce a prioritized report.
10
+
11
+ ## Checklist
12
+
13
+ ### 🔴 Critical (Check First)
14
+ - [ ] Hardcoded secrets, API keys, passwords in source files
15
+ ```bash
16
+ grep -r "password\s*=\s*['\"]" src/
17
+ grep -r "api_key\s*=\s*['\"]" src/
18
+ ```
19
+ - [ ] `.env` files accidentally committed
20
+ ```bash
21
+ git log --all --full-history -- .env
22
+ ```
23
+ - [ ] SQL injection via string concatenation
24
+ - [ ] `eval()` or `new Function()` with user input
25
+
26
+ ### 🟡 High Priority
27
+ - [ ] Missing authentication on protected routes
28
+ - [ ] Missing authorization (privilege escalation)
29
+ - [ ] Passwords stored in plain text
30
+ - [ ] JWT secrets too short or exposed
31
+ - [ ] No rate limiting on auth endpoints
32
+ - [ ] Missing input validation
33
+
34
+ ### 🟢 Medium Priority
35
+ - [ ] Missing security headers (run Helmet scan)
36
+ - [ ] CORS configured too broadly (`origin: *`)
37
+ - [ ] Dependencies with known vulnerabilities
38
+ ```bash
39
+ npm audit
40
+ ```
41
+ - [ ] Sensitive data in logs
42
+ - [ ] Missing HTTPS enforcement
43
+
44
+ ### ℹ️ Low / Informational
45
+ - [ ] Error messages revealing stack traces to client
46
+ - [ ] Missing CSP headers
47
+ - [ ] Cookie security flags (HttpOnly, Secure, SameSite)
48
+
49
+ ## Output Format
50
+ ```markdown
51
+ # Security Review Report — [Date]
52
+
53
+ ## Critical Issues
54
+ [List with file:line references]
55
+
56
+ ## High Priority Issues
57
+ [List with file:line references]
58
+
59
+ ## Recommendations
60
+ [Prioritized action items]
61
+ ```
62
+
63
+ ## Commands
64
+ ```bash
65
+ # Dependency audit
66
+ npm audit --audit-level=moderate
67
+
68
+ # Check for secret patterns
69
+ grep -rn --include="*.js" --include="*.ts" \
70
+ -E "(password|secret|api_key|token)\s*=\s*['\"][^'\"]{8,}" src/
71
+ ```
@@ -0,0 +1,217 @@
1
+ ---
2
+ name: Test-Driven Development
3
+ description: Write tests before code using RED-GREEN-REFACTOR cycle
4
+ ---
5
+
6
+ # Test-Driven Development Skill
7
+
8
+ ## Overview
9
+
10
+ TDD transforms testing from an afterthought into the foundation of development. Tests are proof that code works correctly.
11
+
12
+ ## When to Invoke
13
+
14
+ - Writing new features
15
+ - Fixing bugs (Prove-It pattern)
16
+ - When asked to write tests
17
+ - Before any implementation work
18
+
19
+ ---
20
+
21
+ ## Core Cycle: RED-GREEN-REFACTOR
22
+
23
+ ### RED Phase
24
+
25
+ Write a test that describes expected behavior. **It must fail.**
26
+
27
+ ```javascript
28
+ describe('calculateDiscount', () => {
29
+ it('should apply 10% discount for orders over $100', () => {
30
+ const result = calculateDiscount(150);
31
+ expect(result).toBe(15);
32
+ });
33
+ });
34
+ ```
35
+
36
+ Run: `npm test` → Should **FAIL**
37
+
38
+ ### GREEN Phase
39
+
40
+ Write **minimal** code to pass the test. No extras.
41
+
42
+ ```javascript
43
+ function calculateDiscount(amount) {
44
+ if (amount > 100) return amount * 0.1;
45
+ return 0;
46
+ }
47
+ ```
48
+
49
+ Run: `npm test` → Should **PASS**
50
+
51
+ ### REFACTOR Phase
52
+
53
+ Improve code while keeping tests green.
54
+
55
+ ```javascript
56
+ const DISCOUNT_THRESHOLD = 100;
57
+ const DISCOUNT_RATE = 0.1;
58
+
59
+ function calculateDiscount(amount) {
60
+ if (amount <= DISCOUNT_THRESHOLD) return 0;
61
+ return amount * DISCOUNT_RATE;
62
+ }
63
+ ```
64
+
65
+ Run: `npm test` → Should still **PASS**
66
+
67
+ ---
68
+
69
+ ## Prove-It Pattern (Bug Fixes)
70
+
71
+ ### Step 1: Write Failing Test
72
+
73
+ ```javascript
74
+ it('should handle empty cart without error (bug #456)', () => {
75
+ const cart = new Cart([]);
76
+ expect(() => cart.getTotal()).not.toThrow();
77
+ expect(cart.getTotal()).toBe(0);
78
+ });
79
+ ```
80
+
81
+ ### Step 2: Verify Failure
82
+
83
+ Run test → Confirms bug exists
84
+
85
+ ### Step 3: Fix Bug
86
+
87
+ ```javascript
88
+ getTotal() {
89
+ if (this.items.length === 0) return 0; // Fix
90
+ return this.items.reduce((sum, item) => sum + item.price, 0);
91
+ }
92
+ ```
93
+
94
+ ### Step 4: Verify Pass
95
+
96
+ Run test → Confirms fix works
97
+
98
+ ### Step 5: Run Full Suite
99
+
100
+ ```bash
101
+ npm test # No regressions
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Test Pyramid
107
+
108
+ ```
109
+ ┌─────────┐
110
+ │ E2E │ 5% — Critical user flows
111
+ │ Tests │ Full system, minutes
112
+ ├─────────┤
113
+ │ Integr. │ 15% — API + DB interactions
114
+ │ Tests │ Seconds
115
+ ├─────────┤
116
+ │ Unit │ 80% — Pure logic
117
+ │ Tests │ Milliseconds
118
+ └─────────┘
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Test Structure: AAA Pattern
124
+
125
+ ```javascript
126
+ it('should calculate tax for California', () => {
127
+ // Arrange — Setup
128
+ const order = createOrder({ state: 'CA', subtotal: 100 });
129
+
130
+ // Act — Execute
131
+ const tax = calculateTax(order);
132
+
133
+ // Assert — Verify
134
+ expect(tax).toBe(7.25);
135
+ });
136
+ ```
137
+
138
+ ---
139
+
140
+ ## DAMP > DRY in Tests
141
+
142
+ Tests should be **Descriptive And Meaningful Phrases**.
143
+
144
+ ```javascript
145
+ // ✅ DAMP — Self-contained and clear
146
+ it('should reject password without uppercase letter', () => {
147
+ const result = validatePassword('lowercase123!');
148
+
149
+ expect(result.valid).toBe(false);
150
+ expect(result.errors).toContain('Must contain uppercase letter');
151
+ });
152
+
153
+ // ❌ Too DRY — Requires reading shared context
154
+ it('should reject invalid password', () => {
155
+ expect(validate(INVALID_PASSWORD_NO_UPPER)).toBe(false);
156
+ });
157
+ ```
158
+
159
+ ---
160
+
161
+ ## Test Doubles (Preference Order)
162
+
163
+ 1. **Real implementations** — Best, but may be slow
164
+ 2. **Fakes** — In-memory DB, simplified implementations
165
+ 3. **Stubs** — Return canned responses
166
+ 4. **Mocks** — Verify interactions (use sparingly)
167
+
168
+ ```javascript
169
+ // ✅ Prefer: Real or fake
170
+ const db = createTestDatabase();
171
+ const user = await userService.create(db, userData);
172
+
173
+ // ⚠️ Use sparingly: Mocks
174
+ const mockDb = { create: vi.fn().mockResolvedValue(user) };
175
+ ```
176
+
177
+ ---
178
+
179
+ ## Naming Conventions
180
+
181
+ ```javascript
182
+ // Pattern: should [expected behavior] when [condition]
183
+
184
+ // ✅ Good
185
+ 'should return empty array when no users exist'
186
+ 'should throw ValidationError when email is invalid'
187
+ 'should send welcome email after registration'
188
+
189
+ // ❌ Bad
190
+ 'works correctly'
191
+ 'test user creation'
192
+ 'handles error'
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Anti-Patterns
198
+
199
+ | Pattern | Problem | Solution |
200
+ |---------|---------|----------|
201
+ | Testing internals | Breaks on refactor | Test behavior, not implementation |
202
+ | Flaky tests | Erodes trust | Use deterministic data |
203
+ | Over-mocking | False confidence | Prefer real implementations |
204
+ | Snapshot abuse | Large diffs ignored | Use sparingly |
205
+ | Shared mutable state | Tests affect each other | Reset in beforeEach |
206
+ | Testing frameworks | Wasted effort | Only test your code |
207
+
208
+ ---
209
+
210
+ ## Verification Checklist
211
+
212
+ - [ ] All new code has tests
213
+ - [ ] Bug fixes have reproduction tests
214
+ - [ ] Tests describe behavior (readable names)
215
+ - [ ] No skipped tests
216
+ - [ ] Coverage maintained/improved
217
+ - [ ] Full suite passes
@@ -0,0 +1,112 @@
1
+ # Cursor AI agent configuration
2
+
3
+ ## Overview
4
+
5
+ This project uses **Cursor** with the same structured workflows, specialized agent personas, and coding standards as the Claude-oriented **`.claude/`** tree. Cursor-specific files live under **`.cursor/`**.
6
+
7
+ ---
8
+
9
+ ## Development workflow
10
+
11
+ Follow this workflow for feature development:
12
+
13
+ ```
14
+ /spec → /plan → /build → /test → /review → Ship
15
+ ```
16
+
17
+ | Phase | Prompt source | Purpose |
18
+ |-------|----------------|--------|
19
+ | **Define** | `.cursor/commands/spec.md` | PRD: objectives, scope, boundaries |
20
+ | **Plan** | `.cursor/commands/plan.md` | Vertical slices, acceptance criteria |
21
+ | **Build** | `.cursor/commands/build.md` | Incremental implementation, TDD |
22
+ | **Verify** | `.cursor/commands/test.md` | Tests and verification |
23
+ | **Review** | `.cursor/commands/review.md` | Five-axis review before merge |
24
+ | **Ship** | `.cursor/commands/deploy.md` | Build, test, deploy |
25
+
26
+ ### Supporting prompts
27
+
28
+ | File | Purpose |
29
+ |------|---------|
30
+ | `commands/debug.md` | Systematic diagnosis |
31
+ | `commands/simplify.md` | Reduce complexity, same behavior |
32
+ | `commands/fix-issue.md` | Analyze and fix reported issues |
33
+
34
+ **How to use:** Open the markdown file, copy the section you need, or **@ mention** the file in Chat/Composer so the model loads it.
35
+
36
+ ---
37
+
38
+ ## Core principles
39
+
40
+ - **TDD** — Failing tests first, then implementation (`.cursor/skills/tdd/`)
41
+ - **Incremental implementation** — Small vertical slices (`.cursor/skills/incremental-implementation/`)
42
+ - **Five-axis review** — Correctness, readability, architecture, security, performance (`.cursor/skills/code-review/`)
43
+
44
+ ---
45
+
46
+ ## Mandatory rules (Cursor)
47
+
48
+ Project rules are **`.cursor/rules/*.mdc`**. They use YAML frontmatter:
49
+
50
+ - **`alwaysApply: true`** — Included in every relevant session (`cursor-overview.mdc`, `security.mdc`)
51
+ - **`alwaysApply: false`** + **`globs`** — Applied when files matching the pattern are in context
52
+
53
+ | Topic | Rule file |
54
+ |-------|-----------|
55
+ | Clean code, style, errors | `clean-code`, `code-style`, `error-handling` |
56
+ | Stack, structure, APIs | `tech-stack`, `project-structure`, `api-conventions` |
57
+ | Data & naming | `naming-conventions`, `database` |
58
+ | Ops & quality | `security`, `monitoring`, `testing`, `git-workflow`, `system-design` |
59
+
60
+ ---
61
+
62
+ ## Agent personas
63
+
64
+ Instructions live in **`.cursor/agents/`**. Invoke by **@ mentioning** the file (e.g. `@.cursor/agents/backend.md`).
65
+
66
+ | Area | File |
67
+ |------|------|
68
+ | Frontend, backend, architecture | `frontend.md`, `backend.md`, `systems-architect.md` |
69
+ | Quality | `code-reviewer.md`, `test-engineer.md`, `qa.md`, `security-auditor.md` |
70
+ | Product & content | `project-manager.md`, `ui-ux-designer.md`, `copywriter-seo.md` |
71
+
72
+ ---
73
+
74
+ ## Skills
75
+
76
+ Reusable playbooks: **`.cursor/skills/*/SKILL.md`** (and related `.md` files where present).
77
+
78
+ | Skill | Use for |
79
+ |-------|---------|
80
+ | `tdd` | Red–green–refactor |
81
+ | `code-review` | Five-axis review |
82
+ | `incremental-implementation` | Vertical slices |
83
+ | `deploy` | Deployment pipeline |
84
+ | `security-review` | Security audit |
85
+
86
+ ---
87
+
88
+ ## Reference checklists
89
+
90
+ **`.cursor/references/`**
91
+
92
+ | File | Use for |
93
+ |------|---------|
94
+ | `security-checklist.md` | Pre-deploy security |
95
+ | `testing-patterns.md` | Test structure |
96
+ | `performance-checklist.md` | Performance |
97
+ | `accessibility-checklist.md` | WCAG-oriented checks |
98
+
99
+ ---
100
+
101
+ ## Config parity
102
+
103
+ **`.cursor/settings.json`** lists directories (mirrors `.claude/settings.json` for Claude Code). Cursor natively loads **`.cursor/rules/*.mdc`**; other paths are documentation for humans and for `@` includes.
104
+
105
+ ---
106
+
107
+ ## Agent behavior
108
+
109
+ 1. Follow the workflow and use the command prompts when starting a phase.
110
+ 2. Apply **`.cursor/rules/`**; treat **`security.mdc`** as non-negotiable.
111
+ 3. Prefer tests first and small, buildable changes.
112
+ 4. **@ mention** the right **`.cursor/agents/`** file when the task matches that role.