start-vibing 2.0.11 → 2.0.13
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/README.md +177 -177
- package/dist/cli.js +19 -2
- package/package.json +42 -42
- package/template/.claude/CLAUDE.md +174 -174
- package/template/.claude/agents/01-orchestration/agent-selector.md +130 -130
- package/template/.claude/agents/01-orchestration/checkpoint-manager.md +142 -142
- package/template/.claude/agents/01-orchestration/context-manager.md +138 -138
- package/template/.claude/agents/01-orchestration/error-recovery.md +182 -182
- package/template/.claude/agents/01-orchestration/orchestrator.md +114 -114
- package/template/.claude/agents/01-orchestration/parallel-coordinator.md +141 -141
- package/template/.claude/agents/01-orchestration/task-decomposer.md +121 -121
- package/template/.claude/agents/01-orchestration/workflow-router.md +114 -114
- package/template/.claude/agents/02-typescript/bun-runtime-expert.md +197 -197
- package/template/.claude/agents/02-typescript/esm-resolver.md +193 -193
- package/template/.claude/agents/02-typescript/import-alias-enforcer.md +158 -158
- package/template/.claude/agents/02-typescript/ts-generics-helper.md +183 -183
- package/template/.claude/agents/02-typescript/ts-migration-helper.md +238 -238
- package/template/.claude/agents/02-typescript/ts-strict-checker.md +180 -180
- package/template/.claude/agents/02-typescript/ts-types-analyzer.md +199 -199
- package/template/.claude/agents/02-typescript/type-definition-writer.md +187 -187
- package/template/.claude/agents/02-typescript/zod-schema-designer.md +212 -212
- package/template/.claude/agents/02-typescript/zod-validator.md +158 -158
- package/template/.claude/agents/03-testing/playwright-assertions.md +265 -265
- package/template/.claude/agents/03-testing/playwright-e2e.md +247 -247
- package/template/.claude/agents/03-testing/playwright-fixtures.md +234 -234
- package/template/.claude/agents/03-testing/playwright-multi-viewport.md +256 -256
- package/template/.claude/agents/03-testing/playwright-page-objects.md +247 -247
- package/template/.claude/agents/03-testing/test-cleanup-manager.md +248 -248
- package/template/.claude/agents/03-testing/test-data-generator.md +254 -254
- package/template/.claude/agents/03-testing/tester-integration.md +278 -278
- package/template/.claude/agents/03-testing/tester-unit.md +207 -207
- package/template/.claude/agents/03-testing/vitest-config.md +287 -287
- package/template/.claude/agents/04-docker/container-health.md +255 -255
- package/template/.claude/agents/04-docker/deployment-validator.md +225 -225
- package/template/.claude/agents/04-docker/docker-compose-designer.md +281 -281
- package/template/.claude/agents/04-docker/docker-env-manager.md +235 -235
- package/template/.claude/agents/04-docker/docker-multi-stage.md +241 -241
- package/template/.claude/agents/04-docker/dockerfile-optimizer.md +208 -208
- package/template/.claude/agents/05-database/database-seeder.md +273 -273
- package/template/.claude/agents/05-database/mongodb-query-optimizer.md +230 -230
- package/template/.claude/agents/05-database/mongoose-aggregation.md +306 -306
- package/template/.claude/agents/05-database/mongoose-index-optimizer.md +182 -182
- package/template/.claude/agents/05-database/mongoose-schema-designer.md +267 -267
- package/template/.claude/agents/06-security/auth-session-validator.md +68 -68
- package/template/.claude/agents/06-security/input-sanitizer.md +80 -80
- package/template/.claude/agents/06-security/owasp-checker.md +97 -97
- package/template/.claude/agents/06-security/permission-auditor.md +100 -100
- package/template/.claude/agents/06-security/security-auditor.md +84 -84
- package/template/.claude/agents/06-security/sensitive-data-scanner.md +83 -83
- package/template/.claude/agents/07-documentation/api-documenter.md +136 -136
- package/template/.claude/agents/07-documentation/changelog-manager.md +105 -105
- package/template/.claude/agents/07-documentation/documenter.md +76 -76
- package/template/.claude/agents/07-documentation/domain-updater.md +81 -81
- package/template/.claude/agents/07-documentation/jsdoc-generator.md +114 -114
- package/template/.claude/agents/07-documentation/readme-generator.md +135 -135
- package/template/.claude/agents/08-git/branch-manager.md +58 -58
- package/template/.claude/agents/08-git/commit-manager.md +63 -63
- package/template/.claude/agents/08-git/pr-creator.md +76 -76
- package/template/.claude/agents/09-quality/code-reviewer.md +71 -71
- package/template/.claude/agents/09-quality/quality-checker.md +67 -67
- package/template/.claude/agents/10-research/best-practices-finder.md +89 -89
- package/template/.claude/agents/10-research/competitor-analyzer.md +106 -106
- package/template/.claude/agents/10-research/pattern-researcher.md +93 -93
- package/template/.claude/agents/10-research/research-cache-manager.md +76 -76
- package/template/.claude/agents/10-research/research-web.md +98 -98
- package/template/.claude/agents/10-research/tech-evaluator.md +101 -101
- package/template/.claude/agents/11-ui-ux/accessibility-auditor.md +136 -136
- package/template/.claude/agents/11-ui-ux/design-system-enforcer.md +125 -125
- package/template/.claude/agents/11-ui-ux/skeleton-generator.md +118 -118
- package/template/.claude/agents/11-ui-ux/ui-desktop.md +132 -132
- package/template/.claude/agents/11-ui-ux/ui-mobile.md +98 -98
- package/template/.claude/agents/11-ui-ux/ui-tablet.md +110 -110
- package/template/.claude/agents/12-performance/api-latency-analyzer.md +156 -156
- package/template/.claude/agents/12-performance/bundle-analyzer.md +113 -113
- package/template/.claude/agents/12-performance/memory-leak-detector.md +137 -137
- package/template/.claude/agents/12-performance/performance-profiler.md +115 -115
- package/template/.claude/agents/12-performance/query-optimizer.md +124 -124
- package/template/.claude/agents/12-performance/render-optimizer.md +154 -154
- package/template/.claude/agents/13-debugging/build-error-fixer.md +207 -207
- package/template/.claude/agents/13-debugging/debugger.md +149 -149
- package/template/.claude/agents/13-debugging/error-stack-analyzer.md +141 -141
- package/template/.claude/agents/13-debugging/network-debugger.md +208 -208
- package/template/.claude/agents/13-debugging/runtime-error-fixer.md +181 -181
- package/template/.claude/agents/13-debugging/type-error-resolver.md +185 -185
- package/template/.claude/agents/14-validation/final-validator.md +93 -93
- package/template/.claude/agents/_backup/analyzer.md +134 -134
- package/template/.claude/agents/_backup/code-reviewer.md +279 -279
- package/template/.claude/agents/_backup/commit-manager.md +219 -219
- package/template/.claude/agents/_backup/debugger.md +280 -280
- package/template/.claude/agents/_backup/documenter.md +237 -237
- package/template/.claude/agents/_backup/domain-updater.md +197 -197
- package/template/.claude/agents/_backup/final-validator.md +169 -169
- package/template/.claude/agents/_backup/orchestrator.md +149 -149
- package/template/.claude/agents/_backup/performance.md +232 -232
- package/template/.claude/agents/_backup/quality-checker.md +240 -240
- package/template/.claude/agents/_backup/research.md +315 -315
- package/template/.claude/agents/_backup/security-auditor.md +192 -192
- package/template/.claude/agents/_backup/tester.md +566 -566
- package/template/.claude/agents/_backup/ui-ux-reviewer.md +247 -247
- package/template/.claude/config/README.md +30 -30
- package/template/.claude/config/mcp-config.json +344 -344
- package/template/.claude/config/project-config.json +53 -53
- package/template/.claude/config/quality-gates.json +46 -46
- package/template/.claude/config/security-rules.json +45 -45
- package/template/.claude/config/testing-config.json +164 -164
- package/template/.claude/hooks/SETUP.md +126 -126
- package/template/.claude/hooks/run-hook.ts +176 -176
- package/template/.claude/hooks/stop-validator.ts +914 -824
- package/template/.claude/hooks/user-prompt-submit.ts +886 -886
- package/template/.claude/scripts/mcp-quick-install.ts +151 -151
- package/template/.claude/scripts/setup-mcps.ts +651 -651
- package/template/.claude/settings.json +275 -275
- package/template/.claude/skills/bun-runtime/SKILL.md +430 -430
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +431 -431
- package/template/.claude/skills/codebase-knowledge/domains/mcp-integration.md +295 -295
- package/template/.claude/skills/debugging-patterns/SKILL.md +485 -485
- package/template/.claude/skills/docker-patterns/SKILL.md +555 -555
- package/template/.claude/skills/git-workflow/SKILL.md +454 -454
- package/template/.claude/skills/mongoose-patterns/SKILL.md +499 -499
- package/template/.claude/skills/nextjs-app-router/SKILL.md +327 -327
- package/template/.claude/skills/performance-patterns/SKILL.md +547 -547
- package/template/.claude/skills/playwright-automation/SKILL.md +438 -438
- package/template/.claude/skills/react-patterns/SKILL.md +389 -389
- package/template/.claude/skills/research-cache/SKILL.md +222 -222
- package/template/.claude/skills/shadcn-ui/SKILL.md +511 -511
- package/template/.claude/skills/tailwind-patterns/SKILL.md +465 -465
- package/template/.claude/skills/test-coverage/SKILL.md +467 -467
- package/template/.claude/skills/trpc-api/SKILL.md +434 -434
- package/template/.claude/skills/typescript-strict/SKILL.md +367 -367
- package/template/.claude/skills/zod-validation/SKILL.md +403 -403
- package/template/CLAUDE.md +117 -117
|
@@ -1,199 +1,199 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ts-types-analyzer
|
|
3
|
-
description: "AUTOMATICALLY invoke on type errors. Triggers: 'type error', 'inference issue', 'generic problem', typecheck fails. Analyzes complex TypeScript types and debugs inference. PROACTIVELY fixes type issues."
|
|
4
|
-
model: sonnet
|
|
5
|
-
tools: Read, Grep, Glob, Bash
|
|
6
|
-
skills: typescript-strict
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TypeScript Types Analyzer Agent
|
|
10
|
-
|
|
11
|
-
You analyze and fix complex TypeScript type issues.
|
|
12
|
-
|
|
13
|
-
## Project Rule
|
|
14
|
-
|
|
15
|
-
From CLAUDE.md:
|
|
16
|
-
|
|
17
|
-
> ALL interfaces/types MUST be in `types/` folder
|
|
18
|
-
> NEVER define types in `src/` files
|
|
19
|
-
> EXCEPTION: Zod inferred types and Mongoose Documents
|
|
20
|
-
|
|
21
|
-
## Type Issue Categories
|
|
22
|
-
|
|
23
|
-
### 1. Inference Problems
|
|
24
|
-
|
|
25
|
-
When TypeScript can't infer correctly:
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
// Problem: Infers as string[]
|
|
29
|
-
const items = ['a', 'b', 'c'];
|
|
30
|
-
|
|
31
|
-
// Solution: Explicit tuple
|
|
32
|
-
const items = ['a', 'b', 'c'] as const;
|
|
33
|
-
// Type: readonly ['a', 'b', 'c']
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 2. Generic Constraints
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
// Problem: T could be anything
|
|
40
|
-
function process<T>(data: T) {}
|
|
41
|
-
|
|
42
|
-
// Solution: Add constraint
|
|
43
|
-
function process<T extends Record<string, unknown>>(data: T) {}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 3. Union Discrimination
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// Problem: Can't narrow
|
|
50
|
-
type Result = { success: true; data: Data } | { success: false; error: Error };
|
|
51
|
-
|
|
52
|
-
// Solution: Discriminated union (already correct pattern)
|
|
53
|
-
function handle(result: Result) {
|
|
54
|
-
if (result.success) {
|
|
55
|
-
// TypeScript knows: result.data exists
|
|
56
|
-
} else {
|
|
57
|
-
// TypeScript knows: result.error exists
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 4. Mapped Types
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
// Extract keys with specific value type
|
|
66
|
-
type StringKeys<T> = {
|
|
67
|
-
[K in keyof T]: T[K] extends string ? K : never;
|
|
68
|
-
}[keyof T];
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Type Location Rules
|
|
72
|
-
|
|
73
|
-
### MUST be in `types/` folder:
|
|
74
|
-
|
|
75
|
-
- All interfaces
|
|
76
|
-
- All type aliases
|
|
77
|
-
- All enums
|
|
78
|
-
- Shared utility types
|
|
79
|
-
|
|
80
|
-
### CAN be in source files:
|
|
81
|
-
|
|
82
|
-
- Zod schema inferred types (`z.infer<typeof schema>`)
|
|
83
|
-
- Mongoose document types
|
|
84
|
-
- Component props (if not shared)
|
|
85
|
-
|
|
86
|
-
## Analysis Workflow
|
|
87
|
-
|
|
88
|
-
1. **Identify the error**
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
bun run typecheck 2>&1 | head -50
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
2. **Locate type definition**
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
grep -rn "type [TypeName]" types/
|
|
98
|
-
grep -rn "interface [TypeName]" types/
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
3. **Trace usage**
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
grep -rn "[TypeName]" src/ --include="*.ts"
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
4. **Check imports**
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
grep -rn "from '\$types" src/ --include="*.ts"
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Common Fixes
|
|
114
|
-
|
|
115
|
-
### Type Assertion Needed
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
// Before (error)
|
|
119
|
-
const data = JSON.parse(response) as unknown;
|
|
120
|
-
|
|
121
|
-
// After
|
|
122
|
-
const data = JSON.parse(response) as SomeType;
|
|
123
|
-
// OR with validation
|
|
124
|
-
const data = someSchema.parse(JSON.parse(response));
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Missing Generic Parameter
|
|
128
|
-
|
|
129
|
-
```typescript
|
|
130
|
-
// Before (error)
|
|
131
|
-
const map = new Map();
|
|
132
|
-
|
|
133
|
-
// After
|
|
134
|
-
const map = new Map<string, User>();
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Return Type Mismatch
|
|
138
|
-
|
|
139
|
-
```typescript
|
|
140
|
-
// Before (error)
|
|
141
|
-
function getData(): User {
|
|
142
|
-
return null; // Error!
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// After
|
|
146
|
-
function getData(): User | null {
|
|
147
|
-
return null; // OK
|
|
148
|
-
}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Output Format
|
|
152
|
-
|
|
153
|
-
```markdown
|
|
154
|
-
## Type Analysis: [Error Description]
|
|
155
|
-
|
|
156
|
-
### Error Location
|
|
157
|
-
|
|
158
|
-
- **File:** [path]
|
|
159
|
-
- **Line:** [number]
|
|
160
|
-
- **Error:** [TS error message]
|
|
161
|
-
|
|
162
|
-
### Root Cause
|
|
163
|
-
|
|
164
|
-
[Explanation of why this error occurs]
|
|
165
|
-
|
|
166
|
-
### Type Flow
|
|
167
|
-
|
|
168
|
-
\`\`\`
|
|
169
|
-
[Variable] : [InferredType]
|
|
170
|
-
↓ used in
|
|
171
|
-
[Function] expects [ExpectedType]
|
|
172
|
-
↓ mismatch
|
|
173
|
-
ERROR: [InferredType] not assignable to [ExpectedType]
|
|
174
|
-
\`\`\`
|
|
175
|
-
|
|
176
|
-
### Solution
|
|
177
|
-
|
|
178
|
-
**Option 1: [approach]**
|
|
179
|
-
\`\`\`typescript
|
|
180
|
-
// Fix code
|
|
181
|
-
\`\`\`
|
|
182
|
-
|
|
183
|
-
**Option 2: [approach]**
|
|
184
|
-
\`\`\`typescript
|
|
185
|
-
// Alternative fix
|
|
186
|
-
\`\`\`
|
|
187
|
-
|
|
188
|
-
### Recommended
|
|
189
|
-
|
|
190
|
-
[Which option and why]
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## Critical Rules
|
|
194
|
-
|
|
195
|
-
1. **TYPES IN types/ FOLDER** - Never in src/
|
|
196
|
-
2. **USE $types/\* ALIAS** - Never relative imports for types
|
|
197
|
-
3. **PREFER INFERENCE** - Let TS infer when possible
|
|
198
|
-
4. **NARROW DON'T CAST** - Use type guards over assertions
|
|
199
|
-
5. **VALIDATE EXTERNAL** - Use Zod for external data
|
|
1
|
+
---
|
|
2
|
+
name: ts-types-analyzer
|
|
3
|
+
description: "AUTOMATICALLY invoke on type errors. Triggers: 'type error', 'inference issue', 'generic problem', typecheck fails. Analyzes complex TypeScript types and debugs inference. PROACTIVELY fixes type issues."
|
|
4
|
+
model: sonnet
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
skills: typescript-strict
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# TypeScript Types Analyzer Agent
|
|
10
|
+
|
|
11
|
+
You analyze and fix complex TypeScript type issues.
|
|
12
|
+
|
|
13
|
+
## Project Rule
|
|
14
|
+
|
|
15
|
+
From CLAUDE.md:
|
|
16
|
+
|
|
17
|
+
> ALL interfaces/types MUST be in `types/` folder
|
|
18
|
+
> NEVER define types in `src/` files
|
|
19
|
+
> EXCEPTION: Zod inferred types and Mongoose Documents
|
|
20
|
+
|
|
21
|
+
## Type Issue Categories
|
|
22
|
+
|
|
23
|
+
### 1. Inference Problems
|
|
24
|
+
|
|
25
|
+
When TypeScript can't infer correctly:
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
// Problem: Infers as string[]
|
|
29
|
+
const items = ['a', 'b', 'c'];
|
|
30
|
+
|
|
31
|
+
// Solution: Explicit tuple
|
|
32
|
+
const items = ['a', 'b', 'c'] as const;
|
|
33
|
+
// Type: readonly ['a', 'b', 'c']
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Generic Constraints
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// Problem: T could be anything
|
|
40
|
+
function process<T>(data: T) {}
|
|
41
|
+
|
|
42
|
+
// Solution: Add constraint
|
|
43
|
+
function process<T extends Record<string, unknown>>(data: T) {}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3. Union Discrimination
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Problem: Can't narrow
|
|
50
|
+
type Result = { success: true; data: Data } | { success: false; error: Error };
|
|
51
|
+
|
|
52
|
+
// Solution: Discriminated union (already correct pattern)
|
|
53
|
+
function handle(result: Result) {
|
|
54
|
+
if (result.success) {
|
|
55
|
+
// TypeScript knows: result.data exists
|
|
56
|
+
} else {
|
|
57
|
+
// TypeScript knows: result.error exists
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 4. Mapped Types
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// Extract keys with specific value type
|
|
66
|
+
type StringKeys<T> = {
|
|
67
|
+
[K in keyof T]: T[K] extends string ? K : never;
|
|
68
|
+
}[keyof T];
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Type Location Rules
|
|
72
|
+
|
|
73
|
+
### MUST be in `types/` folder:
|
|
74
|
+
|
|
75
|
+
- All interfaces
|
|
76
|
+
- All type aliases
|
|
77
|
+
- All enums
|
|
78
|
+
- Shared utility types
|
|
79
|
+
|
|
80
|
+
### CAN be in source files:
|
|
81
|
+
|
|
82
|
+
- Zod schema inferred types (`z.infer<typeof schema>`)
|
|
83
|
+
- Mongoose document types
|
|
84
|
+
- Component props (if not shared)
|
|
85
|
+
|
|
86
|
+
## Analysis Workflow
|
|
87
|
+
|
|
88
|
+
1. **Identify the error**
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
bun run typecheck 2>&1 | head -50
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
2. **Locate type definition**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
grep -rn "type [TypeName]" types/
|
|
98
|
+
grep -rn "interface [TypeName]" types/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
3. **Trace usage**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
grep -rn "[TypeName]" src/ --include="*.ts"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
4. **Check imports**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
grep -rn "from '\$types" src/ --include="*.ts"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Common Fixes
|
|
114
|
+
|
|
115
|
+
### Type Assertion Needed
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// Before (error)
|
|
119
|
+
const data = JSON.parse(response) as unknown;
|
|
120
|
+
|
|
121
|
+
// After
|
|
122
|
+
const data = JSON.parse(response) as SomeType;
|
|
123
|
+
// OR with validation
|
|
124
|
+
const data = someSchema.parse(JSON.parse(response));
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Missing Generic Parameter
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
// Before (error)
|
|
131
|
+
const map = new Map();
|
|
132
|
+
|
|
133
|
+
// After
|
|
134
|
+
const map = new Map<string, User>();
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Return Type Mismatch
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
// Before (error)
|
|
141
|
+
function getData(): User {
|
|
142
|
+
return null; // Error!
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// After
|
|
146
|
+
function getData(): User | null {
|
|
147
|
+
return null; // OK
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Output Format
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
## Type Analysis: [Error Description]
|
|
155
|
+
|
|
156
|
+
### Error Location
|
|
157
|
+
|
|
158
|
+
- **File:** [path]
|
|
159
|
+
- **Line:** [number]
|
|
160
|
+
- **Error:** [TS error message]
|
|
161
|
+
|
|
162
|
+
### Root Cause
|
|
163
|
+
|
|
164
|
+
[Explanation of why this error occurs]
|
|
165
|
+
|
|
166
|
+
### Type Flow
|
|
167
|
+
|
|
168
|
+
\`\`\`
|
|
169
|
+
[Variable] : [InferredType]
|
|
170
|
+
↓ used in
|
|
171
|
+
[Function] expects [ExpectedType]
|
|
172
|
+
↓ mismatch
|
|
173
|
+
ERROR: [InferredType] not assignable to [ExpectedType]
|
|
174
|
+
\`\`\`
|
|
175
|
+
|
|
176
|
+
### Solution
|
|
177
|
+
|
|
178
|
+
**Option 1: [approach]**
|
|
179
|
+
\`\`\`typescript
|
|
180
|
+
// Fix code
|
|
181
|
+
\`\`\`
|
|
182
|
+
|
|
183
|
+
**Option 2: [approach]**
|
|
184
|
+
\`\`\`typescript
|
|
185
|
+
// Alternative fix
|
|
186
|
+
\`\`\`
|
|
187
|
+
|
|
188
|
+
### Recommended
|
|
189
|
+
|
|
190
|
+
[Which option and why]
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Critical Rules
|
|
194
|
+
|
|
195
|
+
1. **TYPES IN types/ FOLDER** - Never in src/
|
|
196
|
+
2. **USE $types/\* ALIAS** - Never relative imports for types
|
|
197
|
+
3. **PREFER INFERENCE** - Let TS infer when possible
|
|
198
|
+
4. **NARROW DON'T CAST** - Use type guards over assertions
|
|
199
|
+
5. **VALIDATE EXTERNAL** - Use Zod for external data
|