oden-forge 2.0.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/.claude/CLAUDE.md +75 -0
- package/.claude/commands/oden/architect.md +204 -0
- package/.claude/commands/oden/checklist.md +199 -0
- package/.claude/commands/oden/daily.md +223 -0
- package/.claude/commands/oden/debug.md +203 -0
- package/.claude/commands/oden/epic.md +224 -0
- package/.claude/commands/oden/git.md +259 -0
- package/.claude/commands/oden/help.md +304 -0
- package/.claude/commands/oden/init-agents.md +268 -0
- package/.claude/commands/oden/init-mcp.md +460 -0
- package/.claude/commands/oden/init.md +495 -0
- package/.claude/commands/oden/mcp.md +585 -0
- package/.claude/commands/oden/prd.md +134 -0
- package/.claude/commands/oden/research.md +207 -0
- package/.claude/commands/oden/review.md +146 -0
- package/.claude/commands/oden/spec.md +539 -0
- package/.claude/commands/oden/sync.md +286 -0
- package/.claude/commands/oden/tasks.md +156 -0
- package/.claude/commands/oden/test.md +200 -0
- package/.claude/commands/oden/work.md +791 -0
- package/.claude/epics/.gitkeep +0 -0
- package/.claude/hooks/README.md +130 -0
- package/.claude/hooks/bash-worktree-fix.sh +189 -0
- package/.claude/prds/.gitkeep +0 -0
- package/.claude/rules/agent-coordination.md +224 -0
- package/.claude/rules/branch-operations.md +147 -0
- package/.claude/rules/datetime.md +118 -0
- package/.claude/rules/frontmatter-operations.md +58 -0
- package/.claude/rules/github-operations.md +89 -0
- package/.claude/rules/oden-methodology.md +111 -0
- package/.claude/rules/path-standards.md +155 -0
- package/.claude/rules/standard-patterns.md +174 -0
- package/.claude/rules/strip-frontmatter.md +82 -0
- package/.claude/rules/worktree-operations.md +136 -0
- package/.claude/scripts/oden/blocked.sh +72 -0
- package/.claude/scripts/oden/epic-list.sh +101 -0
- package/.claude/scripts/oden/epic-show.sh +91 -0
- package/.claude/scripts/oden/epic-status.sh +90 -0
- package/.claude/scripts/oden/help.sh +71 -0
- package/.claude/scripts/oden/in-progress.sh +74 -0
- package/.claude/scripts/oden/init.sh +192 -0
- package/.claude/scripts/oden/next.sh +65 -0
- package/.claude/scripts/oden/prd-list.sh +89 -0
- package/.claude/scripts/oden/prd-status.sh +63 -0
- package/.claude/scripts/oden/search.sh +71 -0
- package/.claude/scripts/oden/standup.sh +89 -0
- package/.claude/scripts/oden/status.sh +42 -0
- package/.claude/scripts/oden/validate.sh +101 -0
- package/.claude/settings.json +27 -0
- package/MIGRATION.md +217 -0
- package/README.md +368 -0
- package/bin/install.js +155 -0
- package/bin/migrate.js +191 -0
- package/bin/oden-forge.js +114 -0
- package/bin/post-install.js +47 -0
- package/bin/pre-uninstall.js +108 -0
- package/install.sh +231 -0
- package/package.json +76 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Read, LS, Glob, Grep, Task, WebSearch, WebFetch
|
|
3
|
+
description: Investigación técnica - buscar soluciones, comparar opciones
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Oden Forge - Technical Research
|
|
7
|
+
|
|
8
|
+
Comandos para investigación técnica durante el desarrollo.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/oden:research [subcommand] [topic]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Subcomandos
|
|
17
|
+
|
|
18
|
+
### `/oden:research how [pregunta]`
|
|
19
|
+
|
|
20
|
+
Investiga cómo implementar algo específico.
|
|
21
|
+
|
|
22
|
+
**Usa:** `technical-researcher` + `search-specialist` agents
|
|
23
|
+
|
|
24
|
+
**Ejemplo:**
|
|
25
|
+
```
|
|
26
|
+
/oden:research how "implementar WebSockets con Supabase"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Output:**
|
|
30
|
+
```
|
|
31
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
32
|
+
║ INVESTIGACIÓN: WebSockets con Supabase ║
|
|
33
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
34
|
+
║ ║
|
|
35
|
+
║ RESUMEN ║
|
|
36
|
+
║ Supabase ofrece Realtime subscriptions basado en Postgres ║
|
|
37
|
+
║ LISTEN/NOTIFY. No son WebSockets puros pero similar. ║
|
|
38
|
+
║ ║
|
|
39
|
+
║ IMPLEMENTACIÓN ║
|
|
40
|
+
║ ║
|
|
41
|
+
║ 1. Habilitar Realtime en tabla: ║
|
|
42
|
+
║ ```sql ║
|
|
43
|
+
║ ALTER PUBLICATION supabase_realtime ║
|
|
44
|
+
║ ADD TABLE orders; ║
|
|
45
|
+
║ ``` ║
|
|
46
|
+
║ ║
|
|
47
|
+
║ 2. Suscribirse desde cliente: ║
|
|
48
|
+
║ ```typescript ║
|
|
49
|
+
║ const channel = supabase ║
|
|
50
|
+
║ .channel('orders-changes') ║
|
|
51
|
+
║ .on('postgres_changes', ║
|
|
52
|
+
║ { event: '*', schema: 'public', table: 'orders' }, ║
|
|
53
|
+
║ (payload) => console.log(payload) ║
|
|
54
|
+
║ ) ║
|
|
55
|
+
║ .subscribe(); ║
|
|
56
|
+
║ ``` ║
|
|
57
|
+
║ ║
|
|
58
|
+
║ CONSIDERACIONES ║
|
|
59
|
+
║ - Límite de 200 conexiones en plan gratuito ║
|
|
60
|
+
║ - Payload máximo 1MB ║
|
|
61
|
+
║ - Requiere RLS configurado ║
|
|
62
|
+
║ ║
|
|
63
|
+
║ RECURSOS ║
|
|
64
|
+
║ - https://supabase.com/docs/guides/realtime ║
|
|
65
|
+
║ - https://github.com/supabase/realtime ║
|
|
66
|
+
║ ║
|
|
67
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### `/oden:research compare [option1] vs [option2]`
|
|
71
|
+
|
|
72
|
+
Compara dos tecnologías/enfoques.
|
|
73
|
+
|
|
74
|
+
**Usa:** `technical-researcher` + `data-analyst` agents
|
|
75
|
+
|
|
76
|
+
**Ejemplo:**
|
|
77
|
+
```
|
|
78
|
+
/oden:research compare "Zustand vs Redux Toolkit"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Output:**
|
|
82
|
+
```
|
|
83
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
84
|
+
║ COMPARACIÓN: Zustand vs Redux Toolkit ║
|
|
85
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
86
|
+
║ ║
|
|
87
|
+
║ CRITERIO ZUSTAND REDUX TOOLKIT ║
|
|
88
|
+
║ ────────────────────────────────────────────────────────── ║
|
|
89
|
+
║ Bundle size ~1KB ~11KB ║
|
|
90
|
+
║ Boilerplate Mínimo Moderado ║
|
|
91
|
+
║ Learning curve Baja Media ║
|
|
92
|
+
║ DevTools ✅ (extensión) ✅ (mejor) ║
|
|
93
|
+
║ TypeScript ✅ Excelente ✅ Excelente ║
|
|
94
|
+
║ Middleware Básico Robusto ║
|
|
95
|
+
║ Async handling Nativo RTK Query ║
|
|
96
|
+
║ Ecosistema Pequeño Grande ║
|
|
97
|
+
║ Community Creciendo Establecida ║
|
|
98
|
+
║ ║
|
|
99
|
+
║ CUÁNDO USAR CADA UNO ║
|
|
100
|
+
║ ║
|
|
101
|
+
║ ZUSTAND: ║
|
|
102
|
+
║ - Proyectos pequeños/medianos ║
|
|
103
|
+
║ - Prototipado rápido ║
|
|
104
|
+
║ - State simple sin mucha lógica ║
|
|
105
|
+
║ - Bundle size es crítico ║
|
|
106
|
+
║ ║
|
|
107
|
+
║ REDUX TOOLKIT: ║
|
|
108
|
+
║ - Proyectos grandes/enterprise ║
|
|
109
|
+
║ - State complejo con mucha lógica ║
|
|
110
|
+
║ - Necesitas DevTools avanzados ║
|
|
111
|
+
║ - Equipo ya conoce Redux ║
|
|
112
|
+
║ ║
|
|
113
|
+
║ RECOMENDACIÓN PARA TU PROYECTO ║
|
|
114
|
+
║ Basado en: {tipo de proyecto del technical-decisions.md} ║
|
|
115
|
+
║ → {recomendación específica} ║
|
|
116
|
+
║ ║
|
|
117
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### `/oden:research best-practice [topic]`
|
|
121
|
+
|
|
122
|
+
Busca best practices para un tema.
|
|
123
|
+
|
|
124
|
+
**Usa:** `technical-researcher` agent
|
|
125
|
+
|
|
126
|
+
**Ejemplo:**
|
|
127
|
+
```
|
|
128
|
+
/oden:research best-practice "error handling React"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `/oden:research library [name]`
|
|
132
|
+
|
|
133
|
+
Investiga una librería específica.
|
|
134
|
+
|
|
135
|
+
**Usa:** `technical-researcher` agent + Context7
|
|
136
|
+
|
|
137
|
+
**Output:**
|
|
138
|
+
- Qué hace
|
|
139
|
+
- Cómo instalar
|
|
140
|
+
- Ejemplos de uso
|
|
141
|
+
- Pros/contras
|
|
142
|
+
- Alternativas
|
|
143
|
+
|
|
144
|
+
### `/oden:research docs [library] [topic]`
|
|
145
|
+
|
|
146
|
+
Busca documentación específica.
|
|
147
|
+
|
|
148
|
+
**Usa:** Context7 MCP si disponible
|
|
149
|
+
|
|
150
|
+
**Ejemplo:**
|
|
151
|
+
```
|
|
152
|
+
/oden:research docs "next.js" "app router"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### `/oden:research security [area]`
|
|
156
|
+
|
|
157
|
+
Investiga consideraciones de seguridad.
|
|
158
|
+
|
|
159
|
+
**Usa:** `technical-researcher` + `penetration-tester` agents
|
|
160
|
+
|
|
161
|
+
**Areas:**
|
|
162
|
+
- `auth` - Autenticación segura
|
|
163
|
+
- `api` - Seguridad de API
|
|
164
|
+
- `data` - Protección de datos
|
|
165
|
+
- `frontend` - XSS, CSRF, etc.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Integración con Proyecto
|
|
170
|
+
|
|
171
|
+
La investigación considera el contexto del proyecto:
|
|
172
|
+
|
|
173
|
+
1. **Stack tecnológico** - De technical-decisions.md
|
|
174
|
+
2. **Tipo de proyecto** - Web, mobile, etc.
|
|
175
|
+
3. **Scope** - MVP vs Modo Turbo
|
|
176
|
+
4. **Constraints** - Performance, bundle size, etc.
|
|
177
|
+
|
|
178
|
+
Las recomendaciones se adaptan a tu proyecto específico.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Guardar Investigación
|
|
183
|
+
|
|
184
|
+
Investigaciones importantes se guardan en:
|
|
185
|
+
```
|
|
186
|
+
docs/reference/research/{topic}.md
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Para referencia futura y evitar re-investigar lo mismo.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Uso Típico
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Antes de elegir tecnología
|
|
197
|
+
/oden:research compare "Prisma vs Drizzle"
|
|
198
|
+
|
|
199
|
+
# Cuando no sabes cómo hacer algo
|
|
200
|
+
/oden:research how "upload files to S3"
|
|
201
|
+
|
|
202
|
+
# Para seguir mejores prácticas
|
|
203
|
+
/oden:research best-practice "React performance"
|
|
204
|
+
|
|
205
|
+
# Para entender una librería
|
|
206
|
+
/oden:research library "tanstack-query"
|
|
207
|
+
```
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Bash, Read, Write, Edit, LS, Glob, Grep, Task
|
|
3
|
+
description: Code review automático antes de PR
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Oden Forge - Code Review
|
|
7
|
+
|
|
8
|
+
Ejecuta un code review completo usando múltiples agentes especializados.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/oden:review [scope]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Scope puede ser:
|
|
17
|
+
- `staged` - Solo cambios staged (default)
|
|
18
|
+
- `branch` - Todo el branch actual vs main
|
|
19
|
+
- `file path/to/file` - Un archivo específico
|
|
20
|
+
- `module nombre` - Un módulo completo
|
|
21
|
+
|
|
22
|
+
## Proceso
|
|
23
|
+
|
|
24
|
+
### Paso 1: Identificar Cambios
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Para staged
|
|
28
|
+
git diff --cached --name-only
|
|
29
|
+
|
|
30
|
+
# Para branch
|
|
31
|
+
git diff main...HEAD --name-only
|
|
32
|
+
|
|
33
|
+
# Para archivo específico
|
|
34
|
+
# Usar el path proporcionado
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Paso 2: Ejecutar Reviews en Paralelo
|
|
38
|
+
|
|
39
|
+
Invocar múltiples agentes simultáneamente:
|
|
40
|
+
|
|
41
|
+
1. **code-reviewer** - Review general de calidad
|
|
42
|
+
- Legibilidad
|
|
43
|
+
- Mejores prácticas
|
|
44
|
+
- Bugs potenciales
|
|
45
|
+
|
|
46
|
+
2. **architect-review** - Review de arquitectura
|
|
47
|
+
- Patrones correctos
|
|
48
|
+
- Consistencia con technical-decisions.md
|
|
49
|
+
- Separación de concerns
|
|
50
|
+
|
|
51
|
+
3. **code-analyzer** - Análisis profundo
|
|
52
|
+
- Bugs potenciales
|
|
53
|
+
- Security issues
|
|
54
|
+
- Performance concerns
|
|
55
|
+
|
|
56
|
+
### Paso 3: Consolidar Resultados
|
|
57
|
+
|
|
58
|
+
Crear reporte unificado:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
# Code Review Report
|
|
62
|
+
|
|
63
|
+
**Fecha:** {fecha}
|
|
64
|
+
**Scope:** {staged/branch/file}
|
|
65
|
+
**Archivos revisados:** {N}
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 🔴 Crítico (Bloquea merge)
|
|
70
|
+
|
|
71
|
+
| Archivo | Línea | Issue | Sugerencia |
|
|
72
|
+
|---------|-------|-------|------------|
|
|
73
|
+
| {file} | {line} | {issue} | {fix} |
|
|
74
|
+
|
|
75
|
+
## 🟡 Advertencias (Revisar)
|
|
76
|
+
|
|
77
|
+
| Archivo | Línea | Issue | Sugerencia |
|
|
78
|
+
|---------|-------|-------|------------|
|
|
79
|
+
| {file} | {line} | {issue} | {fix} |
|
|
80
|
+
|
|
81
|
+
## 🟢 Sugerencias (Opcional)
|
|
82
|
+
|
|
83
|
+
| Archivo | Línea | Mejora |
|
|
84
|
+
|---------|-------|--------|
|
|
85
|
+
| {file} | {line} | {suggestion} |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Verificación contra Specs
|
|
90
|
+
|
|
91
|
+
| Módulo | Spec | Cumple |
|
|
92
|
+
|--------|------|--------|
|
|
93
|
+
| {module} | {spec-file} | ✅/❌ |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Resumen
|
|
98
|
+
|
|
99
|
+
- **Issues críticos:** {N}
|
|
100
|
+
- **Advertencias:** {N}
|
|
101
|
+
- **Sugerencias:** {N}
|
|
102
|
+
- **Recomendación:** ✅ Listo para merge / ❌ Requiere cambios
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Paso 4: Acciones Sugeridas
|
|
106
|
+
|
|
107
|
+
Si hay issues críticos:
|
|
108
|
+
```
|
|
109
|
+
❌ No hacer merge hasta resolver:
|
|
110
|
+
1. {issue 1} en {file}:{line}
|
|
111
|
+
2. {issue 2} en {file}:{line}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Si solo hay warnings:
|
|
115
|
+
```
|
|
116
|
+
⚠️ Considera revisar antes de merge:
|
|
117
|
+
1. {warning 1}
|
|
118
|
+
2. {warning 2}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Si todo OK:
|
|
122
|
+
```
|
|
123
|
+
✅ Listo para merge
|
|
124
|
+
No se encontraron issues críticos.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Integración con Specs
|
|
128
|
+
|
|
129
|
+
El review verifica que el código cumpla con:
|
|
130
|
+
- `docs/reference/technical-decisions.md`
|
|
131
|
+
- `docs/reference/modules/{module}-spec.md`
|
|
132
|
+
|
|
133
|
+
Específicamente:
|
|
134
|
+
- Patrones de arquitectura definidos
|
|
135
|
+
- Validaciones especificadas
|
|
136
|
+
- Manejo de errores según spec
|
|
137
|
+
- Nombres y convenciones
|
|
138
|
+
|
|
139
|
+
## Output
|
|
140
|
+
|
|
141
|
+
El reporte se guarda en:
|
|
142
|
+
```
|
|
143
|
+
docs/development/current/{feature}/REVIEW_{fecha}.md
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Y se muestra en consola un resumen.
|