cmp-standards 2.0.1 → 2.6.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/README.md +633 -541
- package/dist/cli/index.js +239 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +203 -39
- package/dist/dashboard/server.js.map +1 -1
- package/dist/db/cloud.d.ts +174 -0
- package/dist/db/cloud.d.ts.map +1 -0
- package/dist/db/cloud.js +241 -0
- package/dist/db/cloud.js.map +1 -0
- package/dist/db/drizzle-client.d.ts +3 -3
- package/dist/db/drizzle-client.d.ts.map +1 -1
- package/dist/db/drizzle-client.js +57 -58
- package/dist/db/drizzle-client.js.map +1 -1
- package/dist/db/errors.d.ts +76 -0
- package/dist/db/errors.d.ts.map +1 -0
- package/dist/db/errors.js +135 -0
- package/dist/db/errors.js.map +1 -0
- package/dist/db/turso-client.d.ts +178 -0
- package/dist/db/turso-client.d.ts.map +1 -0
- package/dist/db/turso-client.js +455 -0
- package/dist/db/turso-client.js.map +1 -0
- package/dist/db/upstash-client.d.ts +161 -0
- package/dist/db/upstash-client.d.ts.map +1 -0
- package/dist/db/upstash-client.js +325 -0
- package/dist/db/upstash-client.js.map +1 -0
- package/dist/eslint/rules/no-async-useeffect.js +6 -6
- package/dist/hooks/cloud-post-tool-use.d.ts +30 -0
- package/dist/hooks/cloud-post-tool-use.d.ts.map +1 -0
- package/dist/hooks/cloud-post-tool-use.js +116 -0
- package/dist/hooks/cloud-post-tool-use.js.map +1 -0
- package/dist/hooks/cloud-pre-tool-use.d.ts +19 -0
- package/dist/hooks/cloud-pre-tool-use.d.ts.map +1 -0
- package/dist/hooks/cloud-pre-tool-use.js +149 -0
- package/dist/hooks/cloud-pre-tool-use.js.map +1 -0
- package/dist/hooks/cloud-session-start.d.ts +32 -0
- package/dist/hooks/cloud-session-start.d.ts.map +1 -0
- package/dist/hooks/cloud-session-start.js +257 -0
- package/dist/hooks/cloud-session-start.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/memory-checkpoint.d.ts.map +1 -1
- package/dist/hooks/memory-checkpoint.js +12 -20
- package/dist/hooks/memory-checkpoint.js.map +1 -1
- package/dist/hooks/pre-tool-use.d.ts +2 -8
- package/dist/hooks/pre-tool-use.d.ts.map +1 -1
- package/dist/hooks/pre-tool-use.js +7 -106
- package/dist/hooks/pre-tool-use.js.map +1 -1
- package/dist/hooks/session-start.d.ts +2 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +111 -77
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +225 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/schema/plans.d.ts +194 -0
- package/dist/schema/plans.d.ts.map +1 -0
- package/dist/schema/plans.js +180 -0
- package/dist/schema/plans.js.map +1 -0
- package/dist/schema/tracking.d.ts +644 -0
- package/dist/schema/tracking.d.ts.map +1 -0
- package/dist/schema/tracking.js +204 -0
- package/dist/schema/tracking.js.map +1 -0
- package/dist/services/ContextGenerator.d.ts +16 -0
- package/dist/services/ContextGenerator.d.ts.map +1 -0
- package/dist/services/ContextGenerator.js +62 -0
- package/dist/services/ContextGenerator.js.map +1 -0
- package/dist/services/PlanManager.d.ts +99 -0
- package/dist/services/PlanManager.d.ts.map +1 -0
- package/dist/services/PlanManager.js +372 -0
- package/dist/services/PlanManager.js.map +1 -0
- package/dist/services/ProjectScaffold.d.ts.map +1 -1
- package/dist/services/ProjectScaffold.js +109 -81
- package/dist/services/ProjectScaffold.js.map +1 -1
- package/dist/services/TaskTracker.d.ts +1 -1
- package/dist/services/TaskTracker.d.ts.map +1 -1
- package/dist/services/TaskTracker.js +4 -8
- package/dist/services/TaskTracker.js.map +1 -1
- package/dist/services/WorkPlanManager.d.ts +1 -1
- package/dist/services/WorkPlanManager.d.ts.map +1 -1
- package/dist/services/WorkPlanManager.js +8 -14
- package/dist/services/WorkPlanManager.js.map +1 -1
- package/dist/services/auto-inject.d.ts +1 -0
- package/dist/services/auto-inject.d.ts.map +1 -1
- package/dist/services/auto-inject.js +12 -17
- package/dist/services/auto-inject.js.map +1 -1
- package/dist/services/context-injector.d.ts +105 -0
- package/dist/services/context-injector.d.ts.map +1 -0
- package/dist/services/context-injector.js +357 -0
- package/dist/services/context-injector.js.map +1 -0
- package/dist/services/cross-project-sync.d.ts +2 -0
- package/dist/services/cross-project-sync.d.ts.map +1 -1
- package/dist/services/cross-project-sync.js +26 -21
- package/dist/services/cross-project-sync.js.map +1 -1
- package/dist/services/index.d.ts +15 -15
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +18 -20
- package/dist/services/index.js.map +1 -1
- package/dist/services/memory-consolidation.d.ts.map +1 -1
- package/dist/services/memory-consolidation.js +30 -27
- package/dist/services/memory-consolidation.js.map +1 -1
- package/dist/services/memory-router.d.ts +98 -0
- package/dist/services/memory-router.d.ts.map +1 -0
- package/dist/services/memory-router.js +373 -0
- package/dist/services/memory-router.js.map +1 -0
- package/dist/services/pattern-tracker.d.ts +93 -0
- package/dist/services/pattern-tracker.d.ts.map +1 -0
- package/dist/services/pattern-tracker.js +347 -0
- package/dist/services/pattern-tracker.js.map +1 -0
- package/dist/services/semantic-search.d.ts +33 -35
- package/dist/services/semantic-search.d.ts.map +1 -1
- package/dist/services/semantic-search.js +207 -165
- package/dist/services/semantic-search.js.map +1 -1
- package/dist/utils/env-loader.d.ts +41 -0
- package/dist/utils/env-loader.d.ts.map +1 -0
- package/dist/utils/env-loader.js +78 -0
- package/dist/utils/env-loader.js.map +1 -0
- package/dist/utils/git.d.ts +52 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +267 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/paths.d.ts +39 -5
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +88 -7
- package/dist/utils/paths.js.map +1 -1
- package/package.json +100 -94
- package/standards/README.md +50 -0
- package/standards/experts/expert-routing.md +215 -0
- package/standards/general/code-quality.md +86 -0
- package/standards/general/memory-usage.md +205 -0
- package/standards/general/sync-workflow.md +235 -0
- package/standards/general/workflow.md +82 -0
- package/standards/hooks/mandatory-tracking.md +446 -0
- package/standards/infrastructure/cloud-database.md +287 -0
- package/standards/mcp/server-design.md +243 -0
- package/standards/mcp/tool-patterns.md +354 -0
- package/standards/skills/skill-structure.md +286 -0
- package/standards/skills/workflow-design.md +323 -0
- package/standards/tools/tool-design.md +297 -0
- package/templates/agents/architecture-expert.md +61 -61
- package/templates/agents/database-expert.md +62 -62
- package/templates/agents/documentation-expert.md +57 -57
- package/templates/agents/memory-expert.md +88 -88
- package/templates/agents/performance-expert.md +61 -61
- package/templates/agents/security-expert.md +59 -59
- package/templates/agents/ux-expert.md +63 -63
- package/templates/agents/worker.md +75 -75
- package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
- package/templates/claude-settings.json +72 -0
- package/templates/commands/experts.md +138 -138
- package/templates/hooks/README.md +158 -158
- package/templates/hooks/project.config.json.template +77 -77
- package/templates/hooks/settings.local.json.template +57 -57
- package/templates/memory-config.json +56 -82
- package/templates/memory-config.schema.json +212 -212
- package/templates/settings.json +58 -58
- package/templates/skills/continue.md +205 -0
- package/templates/workflows/business-improvement.md +264 -264
- package/templates/workflows/expert-review.md +153 -153
- package/templates/workflows/internal-app.md +245 -245
- package/templates/workflows/sync-docs.md +187 -187
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Uso de Memory
|
|
2
|
+
|
|
3
|
+
## Filosofía
|
|
4
|
+
|
|
5
|
+
El sistema de memoria captura **conocimiento que persiste** entre sesiones:
|
|
6
|
+
|
|
7
|
+
- Tareas que estamos haciendo
|
|
8
|
+
- Aprendizajes del trabajo
|
|
9
|
+
- Patrones detectados
|
|
10
|
+
- Decisiones tomadas
|
|
11
|
+
|
|
12
|
+
## Cuándo Registrar
|
|
13
|
+
|
|
14
|
+
### Al Empezar Tarea
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Registrar tarea nueva
|
|
18
|
+
await taskTracker.startTask({
|
|
19
|
+
title: "Implementar feature X",
|
|
20
|
+
description: "Agregar funcionalidad para...",
|
|
21
|
+
userRequest: "mensaje original del usuario"
|
|
22
|
+
})
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Durante el Trabajo
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
// Capturar idea que surge
|
|
29
|
+
await ideaCollector.capture({
|
|
30
|
+
title: "Optimización posible",
|
|
31
|
+
description: "Podríamos cachear este query...",
|
|
32
|
+
category: "performance",
|
|
33
|
+
priority: "medium"
|
|
34
|
+
})
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Al Completar
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// Registrar resultado
|
|
41
|
+
await taskTracker.completeTask(taskId, {
|
|
42
|
+
result: "Implementado con éxito",
|
|
43
|
+
lessonsLearned: ["Pattern X funcionó mejor que Y"]
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Al Aprender Algo Nuevo
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// Crear memoria de conocimiento
|
|
51
|
+
await memoryClient.create({
|
|
52
|
+
type: 'memory',
|
|
53
|
+
title: "Pattern: Lazy loading de mapas",
|
|
54
|
+
body: "Para evitar errores de SSR...",
|
|
55
|
+
domain: "architecture",
|
|
56
|
+
tags: ["performance", "ssr", "maps"]
|
|
57
|
+
})
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Qué NO Registrar
|
|
61
|
+
|
|
62
|
+
- Información trivial
|
|
63
|
+
- Datos temporales de sesión
|
|
64
|
+
- Detalles de implementación obvios
|
|
65
|
+
- Código completo (solo referencias)
|
|
66
|
+
|
|
67
|
+
## Tipos de Memoria
|
|
68
|
+
|
|
69
|
+
### 1. Tasks
|
|
70
|
+
|
|
71
|
+
Trabajo en progreso:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
{
|
|
75
|
+
type: 'task',
|
|
76
|
+
status: 'pending' | 'in_progress' | 'completed',
|
|
77
|
+
title: string,
|
|
78
|
+
description: string,
|
|
79
|
+
context: { /* datos relevantes */ }
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 2. Ideas
|
|
84
|
+
|
|
85
|
+
Insights capturados:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
{
|
|
89
|
+
type: 'idea',
|
|
90
|
+
title: string,
|
|
91
|
+
description: string,
|
|
92
|
+
category: 'feature' | 'optimization' | 'fix' | 'research',
|
|
93
|
+
priority: 'low' | 'medium' | 'high'
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3. Memories
|
|
98
|
+
|
|
99
|
+
Conocimiento persistente:
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
{
|
|
103
|
+
type: 'memory',
|
|
104
|
+
title: string,
|
|
105
|
+
body: string, // Markdown
|
|
106
|
+
domain: string, // 'architecture', 'performance', etc.
|
|
107
|
+
tags: string[],
|
|
108
|
+
importance: 'low' | 'normal' | 'critical'
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 4. Patterns
|
|
113
|
+
|
|
114
|
+
Patrones detectados:
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
{
|
|
118
|
+
type: 'pattern',
|
|
119
|
+
name: string,
|
|
120
|
+
description: string,
|
|
121
|
+
occurrences: number,
|
|
122
|
+
autoImprove: boolean // true si >= 3 ocurrencias
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Auto-Improvement
|
|
127
|
+
|
|
128
|
+
Cuando un patrón se detecta 3+ veces:
|
|
129
|
+
|
|
130
|
+
1. Sistema genera regla ESLint
|
|
131
|
+
2. Crea entrada en memoria (gotcha)
|
|
132
|
+
3. Actualiza estándares locales
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
Pattern detectado 3x: "await en loop"
|
|
136
|
+
↓
|
|
137
|
+
ESLint rule: no-await-in-loop
|
|
138
|
+
↓
|
|
139
|
+
Memory: "Usar Promise.all en lugar de await secuencial"
|
|
140
|
+
↓
|
|
141
|
+
Próxima sesión: IDE muestra warning
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Búsqueda de Conocimiento
|
|
145
|
+
|
|
146
|
+
Antes de empezar tarea, buscar conocimiento previo:
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
// Buscar memorias relevantes
|
|
150
|
+
const relevant = await memoryClient.search({
|
|
151
|
+
query: "lazy loading components",
|
|
152
|
+
domain: "architecture",
|
|
153
|
+
limit: 5
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
// Aplicar conocimiento encontrado
|
|
157
|
+
for (const memory of relevant) {
|
|
158
|
+
console.log(`Conocimiento previo: ${memory.title}`)
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Integración con Workflow
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
1. EMPEZAR TAREA
|
|
166
|
+
└→ taskTracker.startTask()
|
|
167
|
+
|
|
168
|
+
2. BUSCAR CONTEXTO
|
|
169
|
+
└→ memoryClient.search()
|
|
170
|
+
|
|
171
|
+
3. TRABAJAR
|
|
172
|
+
└→ ideaCollector.capture() (si surge idea)
|
|
173
|
+
|
|
174
|
+
4. COMPLETAR
|
|
175
|
+
└→ taskTracker.completeTask()
|
|
176
|
+
└→ memoryClient.create() (si aprendí algo)
|
|
177
|
+
|
|
178
|
+
5. DETECTAR PATRONES
|
|
179
|
+
└→ patternDetector.scan()
|
|
180
|
+
└→ autoImprover.improve() (si 3+ ocurrencias)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Comandos
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Ver estado de memoria
|
|
187
|
+
claude-memory status
|
|
188
|
+
|
|
189
|
+
# Buscar en memoria
|
|
190
|
+
claude-memory search "query"
|
|
191
|
+
|
|
192
|
+
# Ver patrones detectados
|
|
193
|
+
claude-memory patterns
|
|
194
|
+
|
|
195
|
+
# Ejecutar auto-mejora
|
|
196
|
+
claude-memory improve
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Best Practices
|
|
200
|
+
|
|
201
|
+
1. **Ser selectivo** - Solo registrar lo valioso
|
|
202
|
+
2. **Títulos descriptivos** - Facilita búsqueda futura
|
|
203
|
+
3. **Tags consistentes** - Usar vocabulario común
|
|
204
|
+
4. **Actualizar, no duplicar** - Si existe, actualizar
|
|
205
|
+
5. **Dominio correcto** - Clasificar apropiadamente
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# Sync Inteligente - Adaptación de Estándares
|
|
2
|
+
|
|
3
|
+
## Concepto
|
|
4
|
+
|
|
5
|
+
El sync **NO es un script**. Es un proceso inteligente donde la IA:
|
|
6
|
+
|
|
7
|
+
1. Lee estándares globales (este paquete)
|
|
8
|
+
2. Analiza el proyecto local
|
|
9
|
+
3. Adapta los estándares al contexto
|
|
10
|
+
4. Actualiza CLAUDE.md local
|
|
11
|
+
|
|
12
|
+
## Invocación
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
/sync
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Proceso de Sync
|
|
19
|
+
|
|
20
|
+
### 1. Leer Estándares Globales
|
|
21
|
+
|
|
22
|
+
La IA lee los estándares de `cmp-standards`:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
standards/
|
|
26
|
+
├── general/ → Cómo trabajar
|
|
27
|
+
├── mcp/ → Cómo crear MCP servers
|
|
28
|
+
├── tools/ → Cómo diseñar tools
|
|
29
|
+
├── skills/ → Cómo crear skills
|
|
30
|
+
└── experts/ → Cuándo consultar expertos
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Analizar Proyecto Local
|
|
34
|
+
|
|
35
|
+
La IA examina:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Estructura:
|
|
39
|
+
- src/
|
|
40
|
+
- package.json
|
|
41
|
+
- tsconfig.json
|
|
42
|
+
- CLAUDE.md (existente)
|
|
43
|
+
|
|
44
|
+
Tech Stack:
|
|
45
|
+
- Framework (Next.js, Remix, etc.)
|
|
46
|
+
- ORM (Drizzle, Prisma, etc.)
|
|
47
|
+
- Styling (Tailwind, CSS Modules, etc.)
|
|
48
|
+
|
|
49
|
+
Patrones:
|
|
50
|
+
- Estructura de carpetas
|
|
51
|
+
- Convenciones de naming
|
|
52
|
+
- Tests existentes
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Adaptar Estándares
|
|
56
|
+
|
|
57
|
+
**NO copiar literalmente**. Adaptar al contexto:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# Ejemplo: Estándar Global
|
|
61
|
+
"Usar Drizzle ORM con filtro de sistema"
|
|
62
|
+
|
|
63
|
+
# Adaptación para Proyecto sin Multi-tenancy
|
|
64
|
+
"Usar Drizzle ORM" (sin filtro de sistema)
|
|
65
|
+
|
|
66
|
+
# Adaptación para Proyecto con Prisma
|
|
67
|
+
Omitir - no aplica a este proyecto
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 4. Actualizar CLAUDE.md
|
|
71
|
+
|
|
72
|
+
Generar/actualizar CLAUDE.md local con:
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
# CLAUDE.md
|
|
76
|
+
|
|
77
|
+
## Proyecto: [nombre]
|
|
78
|
+
|
|
79
|
+
> [descripción breve]
|
|
80
|
+
|
|
81
|
+
## Tech Stack
|
|
82
|
+
[detectado del proyecto]
|
|
83
|
+
|
|
84
|
+
## Reglas Específicas
|
|
85
|
+
[adaptadas de estándares globales]
|
|
86
|
+
|
|
87
|
+
## Workflow
|
|
88
|
+
[recordatorio de cómo trabajar]
|
|
89
|
+
|
|
90
|
+
## Expertos
|
|
91
|
+
[cuándo consultar /experts]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Qué SIEMPRE incluir
|
|
95
|
+
|
|
96
|
+
Independiente del proyecto, siempre recordar:
|
|
97
|
+
|
|
98
|
+
### Workflow Básico
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## Cómo Trabajar
|
|
102
|
+
|
|
103
|
+
1. **Planificar** - Usar TodoWrite para tareas
|
|
104
|
+
2. **Ejecutar** - Una tarea a la vez
|
|
105
|
+
3. **Verificar** - Typecheck y tests
|
|
106
|
+
4. **Aprender** - Registrar en memoria
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Consulta a Expertos
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Expertos
|
|
113
|
+
|
|
114
|
+
Consultar /experts cuando:
|
|
115
|
+
- Código financiero
|
|
116
|
+
- Autenticación/autorización
|
|
117
|
+
- Cambios de schema
|
|
118
|
+
- Refactoring grande
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Memory
|
|
122
|
+
|
|
123
|
+
```markdown
|
|
124
|
+
## Memory
|
|
125
|
+
|
|
126
|
+
- Registrar tareas al empezar
|
|
127
|
+
- Capturar aprendizajes
|
|
128
|
+
- Documentar decisiones
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Qué ADAPTAR por Proyecto
|
|
132
|
+
|
|
133
|
+
### Base de Datos
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Si usa Drizzle + MySQL compartida
|
|
137
|
+
## Database
|
|
138
|
+
- Filter by system='PROJECT_NAME'
|
|
139
|
+
- Use transactions for multiple ops
|
|
140
|
+
|
|
141
|
+
# Si usa Prisma local
|
|
142
|
+
## Database
|
|
143
|
+
- Standard Prisma queries
|
|
144
|
+
- Use $transaction for atomicity
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Testing
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
# Si tiene Vitest
|
|
151
|
+
## Testing
|
|
152
|
+
npm run test
|
|
153
|
+
|
|
154
|
+
# Si tiene Jest
|
|
155
|
+
## Testing
|
|
156
|
+
npm test
|
|
157
|
+
|
|
158
|
+
# Si no tiene tests
|
|
159
|
+
## Testing
|
|
160
|
+
Consider adding tests for critical paths
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Linting
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# Si tiene ESLint config
|
|
167
|
+
## Linting
|
|
168
|
+
npm run lint
|
|
169
|
+
|
|
170
|
+
# Si no tiene
|
|
171
|
+
## Linting
|
|
172
|
+
Consider adding ESLint
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Ejemplo de CLAUDE.md Generado
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
# CLAUDE.md - MyProject
|
|
179
|
+
|
|
180
|
+
> E-commerce platform with Next.js
|
|
181
|
+
|
|
182
|
+
## Tech Stack
|
|
183
|
+
- Next.js 14 (App Router)
|
|
184
|
+
- Prisma + PostgreSQL
|
|
185
|
+
- Tailwind CSS
|
|
186
|
+
- tRPC
|
|
187
|
+
|
|
188
|
+
## Core Rules
|
|
189
|
+
|
|
190
|
+
### Code Quality
|
|
191
|
+
- NO `any` types
|
|
192
|
+
- Use Zod for validation
|
|
193
|
+
- Prefer Server Components
|
|
194
|
+
|
|
195
|
+
### Database
|
|
196
|
+
- Use Prisma transactions
|
|
197
|
+
- Always handle errors
|
|
198
|
+
- Index frequently queried fields
|
|
199
|
+
|
|
200
|
+
## Workflow
|
|
201
|
+
|
|
202
|
+
1. Plan with TodoWrite
|
|
203
|
+
2. Execute incrementally
|
|
204
|
+
3. Run typecheck + lint
|
|
205
|
+
4. Consult experts for critical code
|
|
206
|
+
|
|
207
|
+
## Commands
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
npm run dev # Development
|
|
211
|
+
npm run build # Production build
|
|
212
|
+
npm run lint # ESLint
|
|
213
|
+
npm run typecheck # TypeScript
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## When to use /experts
|
|
217
|
+
|
|
218
|
+
- Payment processing code
|
|
219
|
+
- User authentication
|
|
220
|
+
- Database migrations
|
|
221
|
+
- Large refactoring
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Frecuencia de Sync
|
|
225
|
+
|
|
226
|
+
- **Inicial**: Al empezar a trabajar en proyecto nuevo
|
|
227
|
+
- **Periódico**: Cuando cambian estándares globales
|
|
228
|
+
- **Manual**: Cuando el usuario ejecuta `/sync`
|
|
229
|
+
|
|
230
|
+
## NO hacer en Sync
|
|
231
|
+
|
|
232
|
+
- No sobreescribir reglas específicas del proyecto
|
|
233
|
+
- No agregar estándares irrelevantes
|
|
234
|
+
- No crear archivos innecesarios
|
|
235
|
+
- No modificar código, solo documentación
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Workflow General con Claude Code
|
|
2
|
+
|
|
3
|
+
## Principios Fundamentales
|
|
4
|
+
|
|
5
|
+
### 1. Registrar Todo en Memory
|
|
6
|
+
- **Antes** de empezar una tarea: registrarla
|
|
7
|
+
- **Durante** la tarea: capturar ideas y aprendizajes
|
|
8
|
+
- **Después** de la tarea: documentar resultado y lecciones
|
|
9
|
+
|
|
10
|
+
### 2. Consultar Expertos en Decisiones Críticas
|
|
11
|
+
Usar `/experts` cuando:
|
|
12
|
+
- Cambios en código financiero o de pagos
|
|
13
|
+
- Modificaciones de esquema de base de datos
|
|
14
|
+
- Cambios de autenticación/autorización
|
|
15
|
+
- Arquitectura nueva o refactoring grande
|
|
16
|
+
|
|
17
|
+
### 3. Flujo de Trabajo Estándar
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
1. ENTENDER
|
|
21
|
+
- Leer contexto existente
|
|
22
|
+
- Buscar en memoria patrones similares
|
|
23
|
+
- Identificar archivos relevantes
|
|
24
|
+
|
|
25
|
+
2. PLANIFICAR
|
|
26
|
+
- Crear plan con TodoWrite
|
|
27
|
+
- Dividir en tareas pequeñas
|
|
28
|
+
- Identificar si necesita validación de expertos
|
|
29
|
+
|
|
30
|
+
3. EJECUTAR
|
|
31
|
+
- Una tarea a la vez
|
|
32
|
+
- Marcar progreso en todo list
|
|
33
|
+
- Capturar ideas que surjan
|
|
34
|
+
|
|
35
|
+
4. VERIFICAR
|
|
36
|
+
- Ejecutar tests si existen
|
|
37
|
+
- Ejecutar typecheck
|
|
38
|
+
- Consultar expertos si es crítico
|
|
39
|
+
|
|
40
|
+
5. APRENDER
|
|
41
|
+
- Registrar aprendizajes en memory
|
|
42
|
+
- Detectar patrones repetidos
|
|
43
|
+
- Actualizar estándares si aplica
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Comunicación
|
|
47
|
+
|
|
48
|
+
- **Conciso**: Respuestas cortas y directas
|
|
49
|
+
- **Sin emojis**: A menos que el usuario los pida
|
|
50
|
+
- **Técnico**: Enfocado en la solución
|
|
51
|
+
- **Honesto**: Si no sabes algo, dilo
|
|
52
|
+
|
|
53
|
+
## Manejo de Errores
|
|
54
|
+
|
|
55
|
+
1. **No asumir** - Verificar que archivos/funciones existen antes de usarlos
|
|
56
|
+
2. **Leer antes de editar** - Siempre leer el archivo antes de modificarlo
|
|
57
|
+
3. **No sobre-ingenierizar** - Solución mínima que funcione
|
|
58
|
+
|
|
59
|
+
## Memory Usage
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// Registrar tarea
|
|
63
|
+
await taskTracker.startTask({
|
|
64
|
+
title: "Implementar feature X",
|
|
65
|
+
description: "...",
|
|
66
|
+
userRequest: "mensaje original del usuario"
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
// Capturar idea durante trabajo
|
|
70
|
+
await ideaCollector.captureIdea({
|
|
71
|
+
title: "Podríamos optimizar Y",
|
|
72
|
+
category: "optimization",
|
|
73
|
+
priority: "medium"
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
// Registrar aprendizaje
|
|
77
|
+
await memoryClient.createMemory({
|
|
78
|
+
title: "Pattern Z funciona mejor que W",
|
|
79
|
+
body: "Descubrimos que...",
|
|
80
|
+
domain: "performance"
|
|
81
|
+
})
|
|
82
|
+
```
|