claude-agent-framework 1.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/README.md +128 -0
- package/bin/claude-framework +3 -0
- package/framework/agents/design-lead.md +240 -0
- package/framework/agents/product-owner.md +179 -0
- package/framework/agents/tech-lead.md +226 -0
- package/framework/commands/ayuda.md +127 -0
- package/framework/commands/a/303/261adir.md +98 -0
- package/framework/commands/backup.md +397 -0
- package/framework/commands/cambiar.md +110 -0
- package/framework/commands/cloud.md +457 -0
- package/framework/commands/code.md +142 -0
- package/framework/commands/debug.md +334 -0
- package/framework/commands/deploy.md +383 -0
- package/framework/commands/deshacer.md +120 -0
- package/framework/commands/estado.md +218 -0
- package/framework/commands/explica.md +227 -0
- package/framework/commands/feature.md +120 -0
- package/framework/commands/git.md +427 -0
- package/framework/commands/historial.md +202 -0
- package/framework/commands/learn.md +408 -0
- package/framework/commands/movil.md +245 -0
- package/framework/commands/nuevo.md +118 -0
- package/framework/commands/plan.md +134 -0
- package/framework/commands/prd.md +113 -0
- package/framework/commands/probar.md +148 -0
- package/framework/commands/revisar.md +208 -0
- package/framework/commands/seeds.md +230 -0
- package/framework/commands/seguridad.md +226 -0
- package/framework/commands/tasks.md +157 -0
- package/framework/skills/architecture/algorithms.md +970 -0
- package/framework/skills/architecture/clean-code.md +1080 -0
- package/framework/skills/architecture/design-patterns.md +1984 -0
- package/framework/skills/architecture/functional-programming.md +972 -0
- package/framework/skills/architecture/solid.md +991 -0
- package/framework/skills/cloud/cloud-aws.md +848 -0
- package/framework/skills/cloud/cloud-azure.md +931 -0
- package/framework/skills/cloud/cloud-gcp.md +848 -0
- package/framework/skills/cloud/message-queues.md +1229 -0
- package/framework/skills/core/accessibility.md +401 -0
- package/framework/skills/core/api.md +474 -0
- package/framework/skills/core/authentication.md +306 -0
- package/framework/skills/core/authorization.md +388 -0
- package/framework/skills/core/background-jobs.md +341 -0
- package/framework/skills/core/caching.md +473 -0
- package/framework/skills/core/code-review.md +341 -0
- package/framework/skills/core/controllers.md +290 -0
- package/framework/skills/core/cua.md +285 -0
- package/framework/skills/core/documentation.md +472 -0
- package/framework/skills/core/file-uploads.md +351 -0
- package/framework/skills/core/hotwire-native.md +296 -0
- package/framework/skills/core/hotwire.md +278 -0
- package/framework/skills/core/i18n.md +334 -0
- package/framework/skills/core/imports-exports.md +750 -0
- package/framework/skills/core/infrastructure.md +337 -0
- package/framework/skills/core/models.md +228 -0
- package/framework/skills/core/notifications.md +672 -0
- package/framework/skills/core/payments.md +581 -0
- package/framework/skills/core/performance.md +361 -0
- package/framework/skills/core/rails-scaffold.md +131 -0
- package/framework/skills/core/search.md +518 -0
- package/framework/skills/core/security.md +565 -0
- package/framework/skills/core/seeds.md +307 -0
- package/framework/skills/core/seo.md +542 -0
- package/framework/skills/core/testing.md +393 -0
- package/framework/skills/core/views.md +260 -0
- package/framework/skills/core/websockets.md +564 -0
- package/framework/skills/data/advanced-sql.md +1204 -0
- package/framework/skills/data/nosql.md +1141 -0
- package/framework/skills/devops/containers-advanced.md +1237 -0
- package/framework/skills/devops/debugging.md +834 -0
- package/framework/skills/devops/git-workflow.md +752 -0
- package/framework/skills/devops/networking.md +932 -0
- package/framework/skills/devops/shell-scripting.md +1132 -0
- package/framework/sub-agents/architecture-patterns-agent.md +1450 -0
- package/framework/sub-agents/cloud-agent.md +677 -0
- package/framework/sub-agents/data.md +504 -0
- package/framework/sub-agents/debugging-agent.md +554 -0
- package/framework/sub-agents/devops.md +483 -0
- package/framework/sub-agents/docs.md +176 -0
- package/framework/sub-agents/frontend-dev.md +349 -0
- package/framework/sub-agents/git-workflow-agent.md +697 -0
- package/framework/sub-agents/integrations.md +630 -0
- package/framework/sub-agents/native-dev.md +434 -0
- package/framework/sub-agents/qa.md +138 -0
- package/framework/sub-agents/rails-dev.md +375 -0
- package/framework/sub-agents/security.md +526 -0
- package/framework/sub-agents/ui.md +437 -0
- package/framework/sub-agents/ux.md +284 -0
- package/framework/templates/api-spec.md +500 -0
- package/framework/templates/component-spec.md +248 -0
- package/framework/templates/feature.json +13 -0
- package/framework/templates/model-spec.md +318 -0
- package/framework/templates/prd-template.md +80 -0
- package/framework/templates/task-plan.md +122 -0
- package/framework/templates/task-user-story.md +52 -0
- package/framework/templates/technical-spec.md +260 -0
- package/framework/templates/user-story.md +95 -0
- package/package.json +42 -0
- package/project-templates/CLAUDE.md +42 -0
- package/project-templates/contexts/architecture.md +25 -0
- package/project-templates/contexts/conventions.md +46 -0
- package/project-templates/contexts/design-system.md +47 -0
- package/project-templates/contexts/requirements.md +38 -0
- package/project-templates/contexts/stack.md +30 -0
- package/project-templates/history/active/models.md +11 -0
- package/project-templates/history/changelog.md +15 -0
- package/project-templates/workspace/.gitkeep +0 -0
- package/src/cli.js +52 -0
- package/src/init.js +104 -0
- package/src/status.js +75 -0
- package/src/update.js +88 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Plan: {Título de la tarea}
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
task_path: `{task_path}`
|
|
5
|
+
feature_id: `{feature_id}`
|
|
6
|
+
created_at: `{timestamp}`
|
|
7
|
+
status: `planned`
|
|
8
|
+
|
|
9
|
+
## Análisis de Código Existente
|
|
10
|
+
|
|
11
|
+
### Búsqueda Realizada
|
|
12
|
+
{Lista de archivos y patrones encontrados relacionados con esta tarea}
|
|
13
|
+
|
|
14
|
+
### Matriz de Impacto (OBLIGATORIO)
|
|
15
|
+
|
|
16
|
+
| Componente | Archivo Existente | Líneas | Impacto |
|
|
17
|
+
|------------|-------------------|--------|---------|
|
|
18
|
+
| {componente 1} | {archivo} | {líneas} | CREAR/MODIFICAR/EXTENDER |
|
|
19
|
+
| {componente 2} | {archivo} | {líneas} | CREAR/MODIFICAR/EXTENDER |
|
|
20
|
+
|
|
21
|
+
**Archivos Nuevos Requeridos**: {count}
|
|
22
|
+
**Archivos a Modificar**: {count}
|
|
23
|
+
|
|
24
|
+
### Evaluación de Patrones
|
|
25
|
+
|
|
26
|
+
{Describir patrones encontrados y cómo se seguirán:
|
|
27
|
+
- Convenciones de naming
|
|
28
|
+
- Estructura de archivos
|
|
29
|
+
- Patrones de diseño en uso}
|
|
30
|
+
|
|
31
|
+
### Matriz de Conflictos
|
|
32
|
+
|
|
33
|
+
| Tipo | Recurso | Otra Tarea | Resolución |
|
|
34
|
+
|------|---------|------------|------------|
|
|
35
|
+
| {tipo} | {recurso} | {tarea} | {resolución} |
|
|
36
|
+
|
|
37
|
+
**Conflictos Encontrados**: {count} (Si > 0, documentar resolución)
|
|
38
|
+
|
|
39
|
+
## Resumen
|
|
40
|
+
{Descripción clara de qué se va a implementar y cómo}
|
|
41
|
+
|
|
42
|
+
## Historia de Usuario
|
|
43
|
+
**Como** {tipo de usuario}
|
|
44
|
+
**Quiero** {acción}
|
|
45
|
+
**Para** {beneficio}
|
|
46
|
+
|
|
47
|
+
## Archivos a Modificar
|
|
48
|
+
- `{ruta/archivo1.rb}` - {razón de la modificación}
|
|
49
|
+
- `{ruta/archivo2.rb}` - {razón de la modificación}
|
|
50
|
+
|
|
51
|
+
## Archivos a Crear
|
|
52
|
+
- `{ruta/nuevo1.rb}` - {propósito del archivo}
|
|
53
|
+
- `{ruta/nuevo2.rb}` - {propósito del archivo}
|
|
54
|
+
|
|
55
|
+
## Plan de Implementación
|
|
56
|
+
|
|
57
|
+
### Fase 1: Fundamentos
|
|
58
|
+
{Trabajo base necesario antes de la funcionalidad principal}
|
|
59
|
+
|
|
60
|
+
### Fase 2: Implementación Principal
|
|
61
|
+
{El núcleo de la funcionalidad}
|
|
62
|
+
|
|
63
|
+
### Fase 3: Integración
|
|
64
|
+
{Cómo se conecta con el resto del sistema}
|
|
65
|
+
|
|
66
|
+
## Pasos de Implementación
|
|
67
|
+
|
|
68
|
+
IMPORTANTE: Ejecutar cada paso en orden.
|
|
69
|
+
|
|
70
|
+
### 0. Refactorización Previa (SI SE ENCONTRARON VIOLACIONES)
|
|
71
|
+
|
|
72
|
+
**Saltar esta sección si no se encontraron violaciones de diseño**
|
|
73
|
+
|
|
74
|
+
Para cada violación detectada:
|
|
75
|
+
|
|
76
|
+
#### Violación 1: {descripción}
|
|
77
|
+
- **Archivo fuente**: {archivo}:{líneas} - Acción: {MANTENER|ELIMINAR|MODIFICAR}
|
|
78
|
+
- **Cambios específicos**:
|
|
79
|
+
- [ ] Eliminar líneas X-Y de {archivo}
|
|
80
|
+
- [ ] Mover lógica a {nuevo_archivo}
|
|
81
|
+
- [ ] Actualizar referencias
|
|
82
|
+
|
|
83
|
+
### 1. {Nombre del paso}
|
|
84
|
+
- {Subtarea detallada}
|
|
85
|
+
- {Subtarea detallada}
|
|
86
|
+
- {Comando o acción específica si aplica}
|
|
87
|
+
|
|
88
|
+
### 2. {Nombre del paso}
|
|
89
|
+
- {Subtarea detallada}
|
|
90
|
+
- {Subtarea detallada}
|
|
91
|
+
|
|
92
|
+
### 3. {Nombre del paso - Tests}
|
|
93
|
+
- Crear tests para {funcionalidad}
|
|
94
|
+
- Verificar criterios de aceptación
|
|
95
|
+
|
|
96
|
+
### 4. Validación Final
|
|
97
|
+
- Ejecutar comandos de validación
|
|
98
|
+
- Verificar que todos los tests pasan
|
|
99
|
+
|
|
100
|
+
## Criterios de Aceptación
|
|
101
|
+
- [ ] {Criterio 1 del user-story}
|
|
102
|
+
- [ ] {Criterio 2 del user-story}
|
|
103
|
+
- [ ] {Criterio 3 del user-story}
|
|
104
|
+
|
|
105
|
+
## Comandos de Validación
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Ejecutar tests
|
|
109
|
+
bundle exec rspec
|
|
110
|
+
|
|
111
|
+
# Verificar formato
|
|
112
|
+
bundle exec standard
|
|
113
|
+
|
|
114
|
+
# Verificar templates ERB
|
|
115
|
+
bundle exec erblint --lint-all
|
|
116
|
+
|
|
117
|
+
# Compilar assets
|
|
118
|
+
yarn build
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Notas
|
|
122
|
+
{Consideraciones adicionales, advertencias, o decisiones de diseño}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Tarea {ID}: {Título}
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
task_id: `{id}`
|
|
5
|
+
feature_id: `{feature_id}`
|
|
6
|
+
requisito: `RF-{XX}`
|
|
7
|
+
created_at: `{timestamp}`
|
|
8
|
+
status: `defined`
|
|
9
|
+
priority: `{1-4}`
|
|
10
|
+
|
|
11
|
+
## Análisis de Conflictos
|
|
12
|
+
|
|
13
|
+
### Tareas Relacionadas
|
|
14
|
+
{Lista de tareas de este u otros features que podrían afectar}
|
|
15
|
+
|
|
16
|
+
### Matriz de Conflictos
|
|
17
|
+
|
|
18
|
+
| Archivo/Recurso | Esta Tarea | Otra Tarea | Conflicto? |
|
|
19
|
+
|-----------------|------------|------------|------------|
|
|
20
|
+
| {archivo} | {acción} | {feature/tarea} | SÍ/NO |
|
|
21
|
+
|
|
22
|
+
**Conflictos Encontrados**: {count} (Si > 0, documentar resolución)
|
|
23
|
+
|
|
24
|
+
### Dependencias
|
|
25
|
+
- **Requiere completar antes**: {lista de tareas o "ninguna"}
|
|
26
|
+
- **Bloquea a**: {lista de tareas que dependen de esta}
|
|
27
|
+
|
|
28
|
+
## Historia de Usuario
|
|
29
|
+
**Como** {tipo de usuario}
|
|
30
|
+
**Quiero** {acción o funcionalidad deseada}
|
|
31
|
+
**Para** {beneficio o valor obtenido}
|
|
32
|
+
|
|
33
|
+
## Criterios de Aceptación
|
|
34
|
+
- [ ] {Criterio específico y verificable 1}
|
|
35
|
+
- [ ] {Criterio específico y verificable 2}
|
|
36
|
+
- [ ] {Criterio específico y verificable 3}
|
|
37
|
+
- [ ] {Criterio específico y verificable 4}
|
|
38
|
+
|
|
39
|
+
## Escenarios
|
|
40
|
+
|
|
41
|
+
### Escenario 1: {Camino feliz}
|
|
42
|
+
- **Dado** {estado inicial}
|
|
43
|
+
- **Cuando** {acción del usuario}
|
|
44
|
+
- **Entonces** {resultado esperado}
|
|
45
|
+
|
|
46
|
+
### Escenario 2: {Caso alternativo o error}
|
|
47
|
+
- **Dado** {estado inicial}
|
|
48
|
+
- **Cuando** {acción que causa situación especial}
|
|
49
|
+
- **Entonces** {cómo se maneja}
|
|
50
|
+
|
|
51
|
+
## Notas
|
|
52
|
+
{Contexto adicional, dependencias con otras tareas, consideraciones técnicas}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# Technical Specification Template
|
|
2
|
+
|
|
3
|
+
## Resumen
|
|
4
|
+
|
|
5
|
+
| Campo | Valor |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| Título | [Nombre de la especificación] |
|
|
8
|
+
| Autor | [Nombre] |
|
|
9
|
+
| Fecha | [Fecha] |
|
|
10
|
+
| Estado | Borrador / En revisión / Aprobado |
|
|
11
|
+
| Versión | 1.0 |
|
|
12
|
+
|
|
13
|
+
## Contexto
|
|
14
|
+
|
|
15
|
+
### Problema
|
|
16
|
+
[Descripción del problema que se está resolviendo]
|
|
17
|
+
|
|
18
|
+
### Objetivos
|
|
19
|
+
1. [Objetivo 1]
|
|
20
|
+
2. [Objetivo 2]
|
|
21
|
+
3. [Objetivo 3]
|
|
22
|
+
|
|
23
|
+
### Alcance
|
|
24
|
+
**Incluido:**
|
|
25
|
+
- [Lo que está incluido]
|
|
26
|
+
|
|
27
|
+
**Excluido:**
|
|
28
|
+
- [Lo que NO está incluido]
|
|
29
|
+
|
|
30
|
+
## Diseño Propuesto
|
|
31
|
+
|
|
32
|
+
### Vista General
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
┌─────────────────────────────────────────────┐
|
|
36
|
+
│ Diagrama de arquitectura │
|
|
37
|
+
│ │
|
|
38
|
+
│ ┌─────────┐ ┌─────────┐ ┌───────┐ │
|
|
39
|
+
│ │Component│ ──▶ │Component│ ──▶ │ Data │ │
|
|
40
|
+
│ │ A │ │ B │ │ Store │ │
|
|
41
|
+
│ └─────────┘ └─────────┘ └───────┘ │
|
|
42
|
+
│ │
|
|
43
|
+
└─────────────────────────────────────────────┘
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Modelos de Datos
|
|
47
|
+
|
|
48
|
+
#### Nuevo Modelo: `ModelName`
|
|
49
|
+
|
|
50
|
+
```ruby
|
|
51
|
+
# app/models/model_name.rb
|
|
52
|
+
class ModelName < ApplicationRecord
|
|
53
|
+
# Associations
|
|
54
|
+
belongs_to :user
|
|
55
|
+
has_many :related_models
|
|
56
|
+
|
|
57
|
+
# Validations
|
|
58
|
+
validates :field, presence: true
|
|
59
|
+
|
|
60
|
+
# Scopes
|
|
61
|
+
scope :active, -> { where(active: true) }
|
|
62
|
+
end
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Migración:**
|
|
66
|
+
```ruby
|
|
67
|
+
class CreateModelNames < ActiveRecord::Migration[8.0]
|
|
68
|
+
def change
|
|
69
|
+
create_table :model_names do |t|
|
|
70
|
+
t.references :user, null: false, foreign_key: true
|
|
71
|
+
t.string :field, null: false
|
|
72
|
+
t.boolean :active, default: true
|
|
73
|
+
t.timestamps
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
add_index :model_names, :field
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### API / Endpoints
|
|
82
|
+
|
|
83
|
+
#### `POST /api/v1/resource`
|
|
84
|
+
|
|
85
|
+
**Request:**
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"resource": {
|
|
89
|
+
"field": "value",
|
|
90
|
+
"other_field": "other_value"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Response (201 Created):**
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"resource": {
|
|
99
|
+
"id": 1,
|
|
100
|
+
"field": "value",
|
|
101
|
+
"created_at": "2024-01-15T10:30:00Z"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Errors:**
|
|
107
|
+
| Código | Descripción |
|
|
108
|
+
|--------|-------------|
|
|
109
|
+
| 400 | Parámetros inválidos |
|
|
110
|
+
| 401 | No autenticado |
|
|
111
|
+
| 403 | No autorizado |
|
|
112
|
+
| 422 | Error de validación |
|
|
113
|
+
|
|
114
|
+
### Flujo de Usuario
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
1. Usuario accede a /feature
|
|
118
|
+
│
|
|
119
|
+
2. Sistema muestra formulario
|
|
120
|
+
│
|
|
121
|
+
3. Usuario completa y envía
|
|
122
|
+
│
|
|
123
|
+
4. Sistema valida datos
|
|
124
|
+
│
|
|
125
|
+
├── Si válido:
|
|
126
|
+
│ │
|
|
127
|
+
│ 5. Guarda en BD
|
|
128
|
+
│ │
|
|
129
|
+
│ 6. Envía email (async)
|
|
130
|
+
│ │
|
|
131
|
+
│ 7. Redirige a confirmación
|
|
132
|
+
│
|
|
133
|
+
└── Si inválido:
|
|
134
|
+
│
|
|
135
|
+
5. Muestra errores
|
|
136
|
+
│
|
|
137
|
+
6. Usuario corrige
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Componentes de UI
|
|
141
|
+
|
|
142
|
+
#### Nuevo Componente: [Nombre]
|
|
143
|
+
|
|
144
|
+
```erb
|
|
145
|
+
<%# app/views/shared/_component_name.html.erb %>
|
|
146
|
+
<%# locals: (param1:, param2: nil) %>
|
|
147
|
+
<div class="..." data-controller="component-name">
|
|
148
|
+
<!-- Contenido -->
|
|
149
|
+
</div>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Stimulus Controller:**
|
|
153
|
+
```javascript
|
|
154
|
+
// app/javascript/controllers/component_name_controller.js
|
|
155
|
+
import { Controller } from "@hotwired/stimulus"
|
|
156
|
+
|
|
157
|
+
export default class extends Controller {
|
|
158
|
+
static targets = ["element"]
|
|
159
|
+
static values = { config: Object }
|
|
160
|
+
|
|
161
|
+
connect() {
|
|
162
|
+
// Inicialización
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
action() {
|
|
166
|
+
// Lógica
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Consideraciones
|
|
172
|
+
|
|
173
|
+
### Seguridad
|
|
174
|
+
- [ ] Autenticación requerida
|
|
175
|
+
- [ ] Autorización implementada (Pundit)
|
|
176
|
+
- [ ] Validación de inputs
|
|
177
|
+
- [ ] Protección CSRF
|
|
178
|
+
- [ ] Rate limiting (si aplica)
|
|
179
|
+
|
|
180
|
+
### Rendimiento
|
|
181
|
+
- [ ] Queries optimizadas
|
|
182
|
+
- [ ] Índices de BD necesarios
|
|
183
|
+
- [ ] Caching implementado (si aplica)
|
|
184
|
+
- [ ] Jobs para operaciones lentas
|
|
185
|
+
|
|
186
|
+
### Accesibilidad
|
|
187
|
+
- [ ] Navegable por teclado
|
|
188
|
+
- [ ] Labels en formularios
|
|
189
|
+
- [ ] ARIA attributes donde sea necesario
|
|
190
|
+
- [ ] Contraste adecuado
|
|
191
|
+
|
|
192
|
+
### Testing
|
|
193
|
+
|
|
194
|
+
**Tests necesarios:**
|
|
195
|
+
```ruby
|
|
196
|
+
# spec/models/model_name_spec.rb
|
|
197
|
+
RSpec.describe ModelName, type: :model do
|
|
198
|
+
describe "validations" do
|
|
199
|
+
it { should validate_presence_of(:field) }
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# spec/requests/resource_spec.rb
|
|
204
|
+
RSpec.describe "Resource API", type: :request do
|
|
205
|
+
describe "POST /api/v1/resource" do
|
|
206
|
+
it "creates resource" do
|
|
207
|
+
# ...
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Alternativas Consideradas
|
|
214
|
+
|
|
215
|
+
### Alternativa 1: [Nombre]
|
|
216
|
+
**Descripción:** [Breve descripción]
|
|
217
|
+
**Pros:** [Ventajas]
|
|
218
|
+
**Cons:** [Desventajas]
|
|
219
|
+
**Razón de descarte:** [Por qué no se eligió]
|
|
220
|
+
|
|
221
|
+
### Alternativa 2: [Nombre]
|
|
222
|
+
**Descripción:** [Breve descripción]
|
|
223
|
+
**Pros:** [Ventajas]
|
|
224
|
+
**Cons:** [Desventajas]
|
|
225
|
+
**Razón de descarte:** [Por qué no se eligió]
|
|
226
|
+
|
|
227
|
+
## Plan de Implementación
|
|
228
|
+
|
|
229
|
+
### Fase 1: [Nombre]
|
|
230
|
+
- [ ] Tarea 1
|
|
231
|
+
- [ ] Tarea 2
|
|
232
|
+
|
|
233
|
+
### Fase 2: [Nombre]
|
|
234
|
+
- [ ] Tarea 3
|
|
235
|
+
- [ ] Tarea 4
|
|
236
|
+
|
|
237
|
+
## Riesgos y Mitigación
|
|
238
|
+
|
|
239
|
+
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
240
|
+
|--------|--------------|---------|------------|
|
|
241
|
+
| [Riesgo 1] | Alta/Media/Baja | Alto/Medio/Bajo | [Cómo mitigar] |
|
|
242
|
+
|
|
243
|
+
## Métricas de Éxito
|
|
244
|
+
|
|
245
|
+
- [ ] [Métrica 1]: [Valor objetivo]
|
|
246
|
+
- [ ] [Métrica 2]: [Valor objetivo]
|
|
247
|
+
|
|
248
|
+
## Referencias
|
|
249
|
+
|
|
250
|
+
- [Enlace a documentación relevante]
|
|
251
|
+
- [Enlace a diseños]
|
|
252
|
+
- [Enlace a otras specs relacionadas]
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Historial de Revisiones
|
|
257
|
+
|
|
258
|
+
| Versión | Fecha | Autor | Cambios |
|
|
259
|
+
|---------|-------|-------|---------|
|
|
260
|
+
| 1.0 | [Fecha] | [Autor] | Versión inicial |
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# User Story Template
|
|
2
|
+
|
|
3
|
+
## Información General
|
|
4
|
+
|
|
5
|
+
| Campo | Valor |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| ID | US-XXX |
|
|
8
|
+
| Título | [Título descriptivo] |
|
|
9
|
+
| Épica | [Épica a la que pertenece] |
|
|
10
|
+
| Prioridad | Alta / Media / Baja |
|
|
11
|
+
| Estimación | [Puntos o tiempo] |
|
|
12
|
+
| Estado | Pendiente / En progreso / Completada |
|
|
13
|
+
|
|
14
|
+
## Historia de Usuario
|
|
15
|
+
|
|
16
|
+
**Como** [tipo de usuario],
|
|
17
|
+
**quiero** [acción o funcionalidad],
|
|
18
|
+
**para** [beneficio o razón].
|
|
19
|
+
|
|
20
|
+
## Descripción Detallada
|
|
21
|
+
|
|
22
|
+
[Explicación más extensa de la funcionalidad si es necesaria]
|
|
23
|
+
|
|
24
|
+
## Criterios de Aceptación
|
|
25
|
+
|
|
26
|
+
### Escenario 1: [Nombre del escenario]
|
|
27
|
+
- **Dado** [contexto inicial]
|
|
28
|
+
- **Cuando** [acción del usuario]
|
|
29
|
+
- **Entonces** [resultado esperado]
|
|
30
|
+
|
|
31
|
+
### Escenario 2: [Nombre del escenario]
|
|
32
|
+
- **Dado** [contexto inicial]
|
|
33
|
+
- **Cuando** [acción del usuario]
|
|
34
|
+
- **Entonces** [resultado esperado]
|
|
35
|
+
|
|
36
|
+
### Escenario 3: [Caso de error]
|
|
37
|
+
- **Dado** [contexto inicial]
|
|
38
|
+
- **Cuando** [acción incorrecta]
|
|
39
|
+
- **Entonces** [manejo del error]
|
|
40
|
+
|
|
41
|
+
## Mockups / Wireframes
|
|
42
|
+
|
|
43
|
+
[Descripción visual o enlace a diseños]
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
┌─────────────────────────────────┐
|
|
47
|
+
│ [Representación ASCII simple] │
|
|
48
|
+
│ │
|
|
49
|
+
│ ┌─────────────────────────┐ │
|
|
50
|
+
│ │ Elemento UI │ │
|
|
51
|
+
│ └─────────────────────────┘ │
|
|
52
|
+
│ │
|
|
53
|
+
└─────────────────────────────────┘
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Dependencias
|
|
57
|
+
|
|
58
|
+
- [ ] US-YYY: [Descripción de dependencia]
|
|
59
|
+
- [ ] [Otra dependencia técnica o de negocio]
|
|
60
|
+
|
|
61
|
+
## Notas Técnicas
|
|
62
|
+
|
|
63
|
+
### Modelos Afectados
|
|
64
|
+
- `ModelName`: [cambios necesarios]
|
|
65
|
+
|
|
66
|
+
### Controladores Afectados
|
|
67
|
+
- `ControllerName`: [acciones a añadir/modificar]
|
|
68
|
+
|
|
69
|
+
### Vistas Afectadas
|
|
70
|
+
- `path/to/view`: [cambios necesarios]
|
|
71
|
+
|
|
72
|
+
### Consideraciones
|
|
73
|
+
- [Consideración técnica 1]
|
|
74
|
+
- [Consideración técnica 2]
|
|
75
|
+
|
|
76
|
+
## Definición de Done
|
|
77
|
+
|
|
78
|
+
- [ ] Código implementado
|
|
79
|
+
- [ ] Tests unitarios escritos
|
|
80
|
+
- [ ] Tests de integración escritos
|
|
81
|
+
- [ ] Code review completado
|
|
82
|
+
- [ ] Funciona en móvil
|
|
83
|
+
- [ ] Accesibilidad verificada
|
|
84
|
+
- [ ] Documentación actualizada
|
|
85
|
+
- [ ] Desplegado en staging
|
|
86
|
+
|
|
87
|
+
## Notas Adicionales
|
|
88
|
+
|
|
89
|
+
[Cualquier otra información relevante]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
**Creada por:** [Nombre]
|
|
94
|
+
**Fecha:** [Fecha de creación]
|
|
95
|
+
**Última actualización:** [Fecha]
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-agent-framework",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Framework de agentes para desarrollo con Claude Code - Crea aplicaciones web y moviles sin conocimientos tecnicos",
|
|
5
|
+
"main": "src/cli.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-framework": "./bin/claude-framework"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"src/",
|
|
12
|
+
"framework/",
|
|
13
|
+
"project-templates/"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "node bin/claude-framework --version"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"claude",
|
|
20
|
+
"ai",
|
|
21
|
+
"agents",
|
|
22
|
+
"rails",
|
|
23
|
+
"development",
|
|
24
|
+
"framework",
|
|
25
|
+
"cli",
|
|
26
|
+
"code-generation"
|
|
27
|
+
],
|
|
28
|
+
"author": "agustincuenca",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/agustincuenca/claude-agent-framework"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=16.0.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"commander": "^12.0.0",
|
|
39
|
+
"fs-extra": "^11.2.0",
|
|
40
|
+
"chalk": "^4.1.2"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Sistema de Agentes para Desarrollo de Software
|
|
2
|
+
|
|
3
|
+
Soy tu equipo virtual de desarrollo. Puedo ayudarte a crear aplicaciones web y moviles completas, aunque no tengas conocimientos tecnicos. Solo cuentame tu idea y yo me encargo del resto.
|
|
4
|
+
|
|
5
|
+
## Que puedo hacer por ti?
|
|
6
|
+
|
|
7
|
+
- **Crear aplicaciones desde cero** - Cuentame tu idea y te hare preguntas para entenderla bien
|
|
8
|
+
- **Anadir funcionalidades** - Dime que quieres que haga tu app y lo implemento
|
|
9
|
+
- **Modificar cosas existentes** - Si algo no te gusta, lo cambiamos
|
|
10
|
+
- **Probar que todo funciona** - Navego por tu app como si fuera un usuario real
|
|
11
|
+
- **Explicarte cualquier cosa** - Si no entiendes algo tecnico, preguntame
|
|
12
|
+
|
|
13
|
+
## Comandos disponibles
|
|
14
|
+
|
|
15
|
+
Solo necesitas conocer **7 comandos**. El resto sucede automaticamente.
|
|
16
|
+
|
|
17
|
+
| Comando | Que hace | Tambien puedes decir... |
|
|
18
|
+
|---------|----------|------------------------|
|
|
19
|
+
| `/nuevo` | Crear un proyecto desde cero | "Quiero crear una app...", "Tengo una idea..." |
|
|
20
|
+
| `/anadir` | Anadir una funcionalidad | "Quiero anadir...", "Necesito que pueda..." |
|
|
21
|
+
| `/cambiar` | Modificar algo existente | "Quiero cambiar...", "No me gusta como..." |
|
|
22
|
+
| `/deshacer` | Volver atras | "Deshaz eso", "Dejalo como estaba" |
|
|
23
|
+
| `/probar` | Probar que todo funciona | "Prueba la app", "Comprueba que funciona" |
|
|
24
|
+
| `/estado` | Ver como va el proyecto | "Como vamos?", "Resumen" |
|
|
25
|
+
| `/ayuda` | Ver que puedo hacer | "Ayuda", "Que puedes hacer?" |
|
|
26
|
+
|
|
27
|
+
## Stack tecnologico
|
|
28
|
+
|
|
29
|
+
Tu aplicacion se construira con tecnologias modernas y **100% gratuitas**:
|
|
30
|
+
|
|
31
|
+
| Que | Tecnologia | Por que |
|
|
32
|
+
|-----|------------|---------|
|
|
33
|
+
| Backend | Ruby on Rails 8.1 | Framework completo y maduro |
|
|
34
|
+
| Base de datos | SQLite3 | Simple, sin configuracion, gratis |
|
|
35
|
+
| Estilos | Tailwind CSS | Diseno moderno sin CSS complejo |
|
|
36
|
+
| Interactividad | Hotwire | Apps rapidas sin JavaScript complejo |
|
|
37
|
+
| Movil | Hotwire Native | El mismo codigo funciona en iOS y Android |
|
|
38
|
+
| Testing | RSpec | Tests automaticos para asegurar calidad |
|
|
39
|
+
|
|
40
|
+
## Listo para empezar?
|
|
41
|
+
|
|
42
|
+
Cuentame tu idea o escribe `/nuevo` para crear un proyecto!
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Arquitectura del Proyecto
|
|
2
|
+
|
|
3
|
+
## Modelos
|
|
4
|
+
|
|
5
|
+
*Se documentaran aqui los modelos y sus relaciones.*
|
|
6
|
+
|
|
7
|
+
## Controllers
|
|
8
|
+
|
|
9
|
+
*Se documentaran aqui los controllers principales.*
|
|
10
|
+
|
|
11
|
+
## Decisiones Arquitectonicas
|
|
12
|
+
|
|
13
|
+
### Patrones utilizados
|
|
14
|
+
- MVC (Model-View-Controller)
|
|
15
|
+
- Service Objects para logica compleja
|
|
16
|
+
- Form Objects para formularios complejos
|
|
17
|
+
|
|
18
|
+
### Convenciones
|
|
19
|
+
- Codigo en ingles
|
|
20
|
+
- Commits en espanol
|
|
21
|
+
- Documentacion en espanol
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
*Este documento se actualiza por el Tech Lead.*
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Convenciones del Proyecto
|
|
2
|
+
|
|
3
|
+
## Codigo
|
|
4
|
+
|
|
5
|
+
### Nomenclatura
|
|
6
|
+
- **Clases**: PascalCase (`UserAccount`)
|
|
7
|
+
- **Metodos**: snake_case (`find_by_email`)
|
|
8
|
+
- **Variables**: snake_case (`current_user`)
|
|
9
|
+
- **Constantes**: SCREAMING_SNAKE_CASE (`MAX_RETRIES`)
|
|
10
|
+
|
|
11
|
+
### Idioma
|
|
12
|
+
- Codigo en **ingles**
|
|
13
|
+
- Comentarios en **espanol** (cuando sean necesarios)
|
|
14
|
+
- Commits en **espanol**
|
|
15
|
+
|
|
16
|
+
## Git
|
|
17
|
+
|
|
18
|
+
### Ramas
|
|
19
|
+
- `main` - Produccion
|
|
20
|
+
- `develop` - Desarrollo
|
|
21
|
+
- `feature/xxx` - Nuevas funcionalidades
|
|
22
|
+
- `fix/xxx` - Correcciones
|
|
23
|
+
|
|
24
|
+
### Commits
|
|
25
|
+
Formato: `tipo: descripcion breve`
|
|
26
|
+
|
|
27
|
+
Tipos:
|
|
28
|
+
- `feat`: Nueva funcionalidad
|
|
29
|
+
- `fix`: Correccion de bug
|
|
30
|
+
- `refactor`: Refactorizacion
|
|
31
|
+
- `docs`: Documentacion
|
|
32
|
+
- `test`: Tests
|
|
33
|
+
- `chore`: Tareas de mantenimiento
|
|
34
|
+
|
|
35
|
+
## Testing
|
|
36
|
+
|
|
37
|
+
- Minimo 80% de cobertura
|
|
38
|
+
- Tests unitarios para modelos y servicios
|
|
39
|
+
- Tests de integracion para flujos criticos
|
|
40
|
+
- Tests E2E para happy paths
|
|
41
|
+
|
|
42
|
+
## Documentacion
|
|
43
|
+
|
|
44
|
+
- README actualizado
|
|
45
|
+
- Documentar decisiones arquitectonicas
|
|
46
|
+
- API documentada con ejemplos
|