refacil-sdd-ai 3.1.0 → 4.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 +9 -5
- package/bin/cli.js +7 -0
- package/lib/installer.js +7 -33
- package/package.json +3 -2
- package/refacil-bus-diagrams.md +314 -0
- package/skills/guide/SKILL.md +4 -2
- package/skills/setup/SKILL.md +39 -20
- package/skills/update/SKILL.md +81 -0
- package/templates/methodology-guide.md +52 -45
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ npm update -g refacil-sdd-ai
|
|
|
43
43
|
refacil-sdd-ai update # en cada repo donde se use
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
En Claude Code el hook `check-update` hace esto automaticamente al iniciar sesion.
|
|
46
|
+
En Claude Code el hook `check-update` hace esto automaticamente al iniciar sesion. Si la nueva version incluye migraciones de estructura (ej. nuevo patron de documentacion), el hook informa al LLM y propone ejecutar `/refacil:update` — la skill detecta que aplica y omite lo que ya esta al dia.
|
|
47
47
|
|
|
48
48
|
### Desinstalar
|
|
49
49
|
|
|
@@ -126,6 +126,7 @@ Todas se invocan como `/refacil:<nombre>` en Claude Code o Cursor.
|
|
|
126
126
|
| `/refacil:archive` | Archivar cambio completado + sincronizar specs (solicita links de Jira) |
|
|
127
127
|
| `/refacil:up-code` | Commit + push + PR (ejecuta review si falta) |
|
|
128
128
|
| `/refacil:bug` | Flujo completo de bugfix con tests de regresion |
|
|
129
|
+
| `/refacil:update` | Detectar y aplicar migraciones pendientes de la metodologia al repo actual |
|
|
129
130
|
|
|
130
131
|
### Sub-agentes automaticos (v3.0.0+)
|
|
131
132
|
|
|
@@ -375,12 +376,15 @@ Bus local (WebSocket sobre `127.0.0.1`) para que los agentes de distintos repos
|
|
|
375
376
|
.cursor/skills/refacil-*/ # Skills Cursor (equivalente)
|
|
376
377
|
.cursor/agents/refacil-*.md # Sub-agentes Cursor (readonly + model:inherit auto-generados)
|
|
377
378
|
.cursor/settings.json # Hooks: check-update + check-review + compact-bash (mirror de .claude/)
|
|
378
|
-
CLAUDE.md #
|
|
379
|
-
.cursorrules #
|
|
379
|
+
CLAUDE.md # Indice minimo → apunta a AGENTS.md
|
|
380
|
+
.cursorrules # Idem en formato Cursor
|
|
380
381
|
.claudeignore # Exclusiones base (node_modules, dist, .env, *.key, etc.)
|
|
381
382
|
.cursorignore # Idem — mismo contenido que .claudeignore
|
|
382
|
-
AGENTS.md #
|
|
383
|
-
#
|
|
383
|
+
AGENTS.md # Indice del proyecto → generado por /refacil:setup
|
|
384
|
+
# Apunta a .agents/ + incluye bloques auto-gestionados
|
|
385
|
+
# (compact-guidance y bus presentation)
|
|
386
|
+
.agents/ # Detalle del proyecto por area (generado por /refacil:setup)
|
|
387
|
+
# summary.md, architecture.md, stack.md, testing.md, commands.md...
|
|
384
388
|
openspec/ # Generado por /refacil:setup via OpenSpec
|
|
385
389
|
```
|
|
386
390
|
|
package/bin/cli.js
CHANGED
|
@@ -77,6 +77,10 @@ function checkUpdate() {
|
|
|
77
77
|
`[refacil-sdd-ai] Skills de este repo sincronizadas (${fromLabel} -> v${syncResult.to}). ` +
|
|
78
78
|
'Reinicia la sesion de Claude Code o Cursor para detectar los cambios.',
|
|
79
79
|
);
|
|
80
|
+
console.log(
|
|
81
|
+
'[refacil-sdd-ai] La metodologia fue actualizada. ' +
|
|
82
|
+
'Pregunta al usuario si desea aplicar las migraciones pendientes y, si confirma, ejecuta /refacil:update.',
|
|
83
|
+
);
|
|
80
84
|
} else if (syncResult && syncResult.failed) {
|
|
81
85
|
console.log(
|
|
82
86
|
`[refacil-sdd-ai] Skills de este repo estan desactualizadas respecto al paquete global (v${syncResult.to}) ` +
|
|
@@ -249,6 +253,9 @@ function update() {
|
|
|
249
253
|
|
|
250
254
|
writeRepoVersion(projectRoot, getPackageVersion(packageRoot));
|
|
251
255
|
|
|
256
|
+
createClaudeMd(packageRoot, projectRoot);
|
|
257
|
+
createCursorRules(packageRoot, projectRoot);
|
|
258
|
+
|
|
252
259
|
if (installHooks('.claude', projectRoot)) {
|
|
253
260
|
console.log(' Hook check-update agregado a .claude/settings.json');
|
|
254
261
|
}
|
package/lib/installer.js
CHANGED
|
@@ -22,6 +22,7 @@ const SKILLS = [
|
|
|
22
22
|
'reply',
|
|
23
23
|
'inbox',
|
|
24
24
|
'attend',
|
|
25
|
+
'update',
|
|
25
26
|
];
|
|
26
27
|
|
|
27
28
|
const AGENTS = [
|
|
@@ -32,8 +33,6 @@ const AGENTS = [
|
|
|
32
33
|
|
|
33
34
|
const REPO_VERSION_FILES = ['.claude/.sdd-version', '.cursor/.sdd-version'];
|
|
34
35
|
|
|
35
|
-
const SDD_SECTION_MARKER = '## Metodologia SDD-AI (Refacil)';
|
|
36
|
-
|
|
37
36
|
function copyDir(src, dest) {
|
|
38
37
|
fs.mkdirSync(dest, { recursive: true });
|
|
39
38
|
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
@@ -134,42 +133,18 @@ function installAgents(packageRoot, projectRoot) {
|
|
|
134
133
|
return installed;
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
function
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
function readMethodologyGuide(packageRoot) {
|
|
144
|
-
return fs.readFileSync(
|
|
145
|
-
path.join(packageRoot, 'templates', 'methodology-guide.md'),
|
|
146
|
-
'utf8',
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function writeGuideFile(packageRoot, destPath, header, label) {
|
|
151
|
-
const guide = readMethodologyGuide(packageRoot);
|
|
152
|
-
const content = `# ${header}\n\n${guide}`;
|
|
153
|
-
|
|
154
|
-
if (fs.existsSync(destPath)) {
|
|
155
|
-
const existing = fs.readFileSync(destPath, 'utf8');
|
|
156
|
-
if (existing.includes(SDD_SECTION_MARKER)) {
|
|
157
|
-
console.log(` ${label} ya tiene la seccion SDD-AI. Sin cambios.`);
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
const sddSection = extractSddSection(guide);
|
|
161
|
-
fs.writeFileSync(destPath, existing.trimEnd() + '\n\n' + sddSection + '\n');
|
|
162
|
-
console.log(` ${label} existente — seccion SDD-AI agregada al final.`);
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
|
|
136
|
+
function writeGuideFile(destPath, header, label) {
|
|
137
|
+
const content =
|
|
138
|
+
`# ${header}\n\n` +
|
|
139
|
+
'Contexto completo del proyecto: ver `AGENTS.md`.\n' +
|
|
140
|
+
'Si no existe, ejecuta `/refacil:setup`.\n';
|
|
166
141
|
fs.writeFileSync(destPath, content);
|
|
142
|
+
console.log(` ${label} generado.`);
|
|
167
143
|
return true;
|
|
168
144
|
}
|
|
169
145
|
|
|
170
146
|
function createClaudeMd(packageRoot, projectRoot) {
|
|
171
147
|
return writeGuideFile(
|
|
172
|
-
packageRoot,
|
|
173
148
|
path.join(projectRoot, 'CLAUDE.md'),
|
|
174
149
|
'CLAUDE.md',
|
|
175
150
|
'CLAUDE.md',
|
|
@@ -178,7 +153,6 @@ function createClaudeMd(packageRoot, projectRoot) {
|
|
|
178
153
|
|
|
179
154
|
function createCursorRules(packageRoot, projectRoot) {
|
|
180
155
|
return writeGuideFile(
|
|
181
|
-
packageRoot,
|
|
182
156
|
path.join(projectRoot, '.cursorrules'),
|
|
183
157
|
'Cursor Rules',
|
|
184
158
|
'.cursorrules',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "refacil-sdd-ai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "SDD-AI: Specification-Driven Development with AI — metodologia de desarrollo con IA usando OpenSpec, Claude Code y Cursor",
|
|
5
5
|
"bin": {
|
|
6
6
|
"refacil-sdd-ai": "./bin/cli.js"
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"agents/",
|
|
13
13
|
"templates/",
|
|
14
14
|
"config/",
|
|
15
|
-
"README.md"
|
|
15
|
+
"README.md",
|
|
16
|
+
"refacil-bus-diagrams.md"
|
|
16
17
|
],
|
|
17
18
|
"keywords": [
|
|
18
19
|
"ai",
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# refacil-bus — Diagramas y explicación
|
|
2
|
+
|
|
3
|
+
Documento para presentar la feature al equipo. Usa Mermaid (se renderiza automático en GitHub, GitLab, Notion, Confluence, Teams, VS Code preview). Para exportar a imagen: https://mermaid.live
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. El problema que resolvemos
|
|
8
|
+
|
|
9
|
+
Un único dev trabaja con varios repos abiertos al mismo tiempo — **una ventana de Claude Code o Cursor por repo** (microservicios + frontend + utilidades). Cada ventana tiene SU propio agente del LLM que solo conoce ese repo. Cuando el dev está trabajando en un repo y necesita contexto de otro, hoy tiene que:
|
|
10
|
+
|
|
11
|
+
- pausar lo que está haciendo
|
|
12
|
+
- **saltar a la ventana del otro repo**
|
|
13
|
+
- leer código él mismo, o preguntarle al LLM de esa otra ventana
|
|
14
|
+
- copiar la respuesta manualmente
|
|
15
|
+
- volver a la ventana original y pegar/explicar al primer agente
|
|
16
|
+
|
|
17
|
+
El resultado: **el dev queda de mensajero entre sus propios agentes**. Contexto se pierde, se transcribe mal, y los bugs cruzados aparecen en QA.
|
|
18
|
+
|
|
19
|
+
> **Clave del caso de uso**: las "sesiones" en el bus NO son devs distintos — son los **agentes de LLM** de cada repo que el mismo dev tiene abiertos. El bus es para que esos agentes se hablen entre sí sin que el dev sea el intermediario.
|
|
20
|
+
|
|
21
|
+
### Antes de refacil-bus
|
|
22
|
+
|
|
23
|
+
```mermaid
|
|
24
|
+
flowchart LR
|
|
25
|
+
D[Dev en ventana<br/>de payments-api] --> A[Pide al agente:<br/>crea endpoint<br/>POST /refund]
|
|
26
|
+
A --> B{¿El agente sabe cómo<br/>lo consume el front?}
|
|
27
|
+
B -->|No| C[Dev salta a la<br/>ventana del frontend]
|
|
28
|
+
C --> E[Lee código del front<br/>o pregunta al agente<br/>de esa ventana]
|
|
29
|
+
E --> F[Copia la respuesta<br/>mentalmente o literal]
|
|
30
|
+
F --> G[Vuelve a la ventana<br/>de payments-api]
|
|
31
|
+
G --> H[Pega/explica al<br/>agente de payments]
|
|
32
|
+
H --> I[Agente implementa<br/>con info transcrita]
|
|
33
|
+
B -->|Arriesga| J[Agente implementa<br/>según suposición]
|
|
34
|
+
J --> K[Bug en QA —<br/>campo mal nombrado]
|
|
35
|
+
|
|
36
|
+
classDef dev fill:#e3f2fd,stroke:#1976d2,color:#333
|
|
37
|
+
classDef manual fill:#ffe5b3,stroke:#e17055,color:#333
|
|
38
|
+
classDef pain fill:#ffe5e5,stroke:#d63031,color:#333
|
|
39
|
+
class D dev
|
|
40
|
+
class C,E,F,G,H manual
|
|
41
|
+
class B,J,K pain
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
El dev **termina siendo el bus humano** entre sus propios agentes.
|
|
45
|
+
|
|
46
|
+
### Después de refacil-bus — Escenario A: el otro agente está en `/refacil:attend`
|
|
47
|
+
|
|
48
|
+
El caso ideal. El dev dejó el agente del otro repo en modo escucha antes de empezar a trabajar en el primero.
|
|
49
|
+
|
|
50
|
+
```mermaid
|
|
51
|
+
flowchart LR
|
|
52
|
+
D[Dev en ventana<br/>de payments-api] --> A[Pide al agente:<br/>crea /refund,<br/>pregúntale al bus<br/>si necesitás algo]
|
|
53
|
+
A --> B[Agente payments ejecuta<br/>/refacil:ask @frontend<br/>"..." --wait 180]
|
|
54
|
+
B --> C[Agente frontend<br/>en /refacil:attend<br/>recibe la pregunta]
|
|
55
|
+
C --> E[Agente frontend lee<br/>SUS propios archivos<br/>y responde con<br/>/refacil:reply]
|
|
56
|
+
E --> F[Agente payments recibe<br/>la respuesta automática<br/>y sigue implementando]
|
|
57
|
+
F --> G[Endpoint correcto<br/>al primer intento]
|
|
58
|
+
|
|
59
|
+
classDef dev fill:#e3f2fd,stroke:#1976d2,color:#333
|
|
60
|
+
classDef auto fill:#d4edda,stroke:#28a745,color:#333
|
|
61
|
+
class D dev
|
|
62
|
+
class A,B,C,E,F,G auto
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**El dev nunca cambió de ventana**. Los dos agentes se hablaron entre sí; cada uno consultó su código real. El dev se enteró solo cuando el primer agente le dijo "listo, endpoint implementado con estos campos".
|
|
66
|
+
|
|
67
|
+
### Después de refacil-bus — Escenario B: el otro agente NO está en attend
|
|
68
|
+
|
|
69
|
+
Aún hay ganancia, pero el dev sí tendrá que ir a la otra ventana al menos una vez — aunque con menos esfuerzo que antes.
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
flowchart LR
|
|
73
|
+
D[Dev en ventana<br/>de payments-api] --> A[Pide al agente:<br/>pregúntale al front...]
|
|
74
|
+
A --> B[Agente payments ejecuta<br/>/refacil:ask @frontend "..."]
|
|
75
|
+
B --> C[Mensaje queda en inbox.jsonl<br/>de la sala]
|
|
76
|
+
C --> E[Dev, cuando pueda,<br/>va a la ventana frontend]
|
|
77
|
+
E --> F[Dice al agente frontend:<br/>"ejecutá /refacil:inbox<br/>y respondé lo que haya"]
|
|
78
|
+
F --> G[Agente frontend lee SUS<br/>archivos y responde con<br/>/refacil:reply]
|
|
79
|
+
G --> H[Dev vuelve a payments;<br/>agente payments hace<br/>/refacil:inbox y continúa]
|
|
80
|
+
|
|
81
|
+
classDef dev fill:#e3f2fd,stroke:#1976d2,color:#333
|
|
82
|
+
classDef semi fill:#fff3cd,stroke:#ffc107,color:#333
|
|
83
|
+
class D,E dev
|
|
84
|
+
class A,B,C,F,G,H semi
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Ganancia aún sin attend**: el dev sigue saltando, **pero NO hace de transcriptor**. El agente de cada repo responde desde su código real; el dev solo "despacha" el trabajo entre agentes. Mucho menos fricción que copiar respuestas a mano.
|
|
88
|
+
|
|
89
|
+
> **Conclusión práctica**: la magia del "cero saltos de ventana" aparece cuando el dev, antes de meterse en una tarea profunda, pone los agentes de los otros repos que podría necesitar consultar en `/refacil:attend`. Sin eso, el bus sigue siendo útil — evita la transcripción manual — pero el dev sí visita las otras ventanas para "activar" al agente.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 2. Arquitectura — qué corre dónde
|
|
94
|
+
|
|
95
|
+
El broker es un proceso local mínimo que solo enruta texto plano entre sesiones. **No transfiere archivos, contexto ni tokens entre repos**. Todas las ventanas son del mismo dev — el broker conecta a sus agentes entre sí.
|
|
96
|
+
|
|
97
|
+
```mermaid
|
|
98
|
+
flowchart TB
|
|
99
|
+
subgraph DEV[Máquina del Dev]
|
|
100
|
+
subgraph V1[Ventana IDE 1]
|
|
101
|
+
IDE1[Claude Code / Cursor<br/>en repo payments-api<br/>agente: payments-api]
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
subgraph V2[Ventana IDE 2]
|
|
105
|
+
IDE2[Claude Code / Cursor<br/>en repo frontend<br/>agente: frontend]
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
subgraph V3[Ventana IDE 3 · opcional]
|
|
109
|
+
IDE3[Claude Code / Cursor<br/>en repo reports<br/>agente: reports]
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
subgraph T4[Terminal · opcional]
|
|
113
|
+
WATCH[refacil-sdd-ai bus view<br/>o bus watch<br/>0 tokens]
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
subgraph BROKER[Broker local · 127.0.0.1:7821]
|
|
117
|
+
WS[HTTP + WebSocket<br/>40 MB RAM · 0% CPU idle]
|
|
118
|
+
DISK[~/.refacil-sdd-ai/bus/<sala>/<br/>inbox.jsonl<br/>rotación 7 días]
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
IDE1 <-->|ws| WS
|
|
123
|
+
IDE2 <-->|ws| WS
|
|
124
|
+
IDE3 <-->|ws| WS
|
|
125
|
+
WATCH -.->|http + ws read-only| WS
|
|
126
|
+
WS <--> DISK
|
|
127
|
+
|
|
128
|
+
classDef local fill:#e3f2fd,stroke:#1976d2,color:#333
|
|
129
|
+
classDef ide fill:#f3e5f5,stroke:#7b1fa2,color:#333
|
|
130
|
+
class WS,DISK local
|
|
131
|
+
class IDE1,IDE2,IDE3,WATCH ide
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Propiedades importantes
|
|
135
|
+
|
|
136
|
+
- **100% local**: nada sale de `127.0.0.1`. Sin internet, sin cuentas, sin servidor compartido.
|
|
137
|
+
- **Zero config**: el broker se auto-arranca la primera vez que cualquier skill del bus lo necesita.
|
|
138
|
+
- **Zero costo perceptible**: 40 MB RAM, 0% CPU cuando no hay tráfico.
|
|
139
|
+
- **Persistente**: sobrevive reinicio del broker; mensajes quedan 7 días en disco.
|
|
140
|
+
- **Portable**: las mismas skills funcionan idéntico en Claude Code y Cursor (no usa hooks específicos de un IDE).
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 3. Flujo automático agente ↔ agente (happy path)
|
|
145
|
+
|
|
146
|
+
Caso de uso estrella: el dev está trabajando en un repo y sus otros agentes (en otras ventanas) responden solos cuando reciben preguntas vía el bus.
|
|
147
|
+
|
|
148
|
+
> **Pre-requisito**: antes de arrancar la tarea, el dev fue a la ventana del otro repo y dijo *"atiende el bus"*. Eso pone al agente de esa ventana en `/refacil:attend`. Sin eso, el flujo cae al Escenario B (sección 3.2).
|
|
149
|
+
|
|
150
|
+
### 3.1 Con attend activo — cero saltos de ventana
|
|
151
|
+
|
|
152
|
+
```mermaid
|
|
153
|
+
sequenceDiagram
|
|
154
|
+
autonumber
|
|
155
|
+
participant D as Dev<br/>(único)
|
|
156
|
+
participant AP as Agente<br/>payments
|
|
157
|
+
participant BR as Broker
|
|
158
|
+
participant AF as Agente<br/>frontend
|
|
159
|
+
|
|
160
|
+
Note over D,AF: Setup previo (1 vez):<br/>Dev fue a la ventana frontend y dijo "atiende el bus"
|
|
161
|
+
D->>AF: "atiende el bus<br/>mientras trabajo en otro repo"
|
|
162
|
+
AF->>BR: /refacil:attend (bloqueado)
|
|
163
|
+
Note over AF: Escuchando preguntas
|
|
164
|
+
|
|
165
|
+
Note over D,AP: Dev vuelve a la ventana payments y arranca la tarea
|
|
166
|
+
D->>AP: "crea /refund,<br/>si necesitás algo del front<br/>preguntale al bus"
|
|
167
|
+
AP->>BR: /refacil:ask @frontend<br/>"..." --wait 180
|
|
168
|
+
Note over AP: Bloqueado<br/>esperando respuesta
|
|
169
|
+
|
|
170
|
+
BR->>AF: Pregunta recibida<br/>(correlationId X)
|
|
171
|
+
AF->>AF: Read/Grep src/api/pay.ts
|
|
172
|
+
AF->>BR: /refacil:reply<br/>"cartId, amountRefunded,<br/>timestamp (camelCase)"
|
|
173
|
+
BR->>AP: Respuesta con<br/>correlationId X
|
|
174
|
+
|
|
175
|
+
AP->>D: Endpoint implementado<br/>con los campos correctos
|
|
176
|
+
AF->>BR: /refacil:attend<br/>(vuelve a escuchar)
|
|
177
|
+
Note over AF: Listo para la<br/>siguiente pregunta
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Leyendo el diagrama**: el Dev solo participa en los pasos 1, 4 y 12. Entre medio (pasos 5 al 11) los dos agentes se hablaron entre sí — el dev no cambió de ventana, no copió nada, no transcribió respuestas.
|
|
181
|
+
|
|
182
|
+
### 3.2 Sin attend — el dev despacha manualmente pero NO transcribe
|
|
183
|
+
|
|
184
|
+
Si el dev no dejó attend activo, la pregunta queda en inbox y él mismo tiene que ir a la otra ventana a "despachar" el trabajo al otro agente.
|
|
185
|
+
|
|
186
|
+
```mermaid
|
|
187
|
+
sequenceDiagram
|
|
188
|
+
autonumber
|
|
189
|
+
participant D as Dev<br/>(único)
|
|
190
|
+
participant AP as Agente<br/>payments
|
|
191
|
+
participant BR as Broker
|
|
192
|
+
participant AF as Agente<br/>frontend
|
|
193
|
+
|
|
194
|
+
D->>AP: "pregúntale al front<br/>qué formato espera"
|
|
195
|
+
AP->>BR: /refacil:ask @frontend "..."
|
|
196
|
+
Note over AP: Pregunta enviada,<br/>sin bloqueo
|
|
197
|
+
|
|
198
|
+
Note over D: Dev salta a la<br/>ventana frontend
|
|
199
|
+
|
|
200
|
+
D->>AF: "ejecutá /refacil:inbox<br/>y respondé lo que haya"
|
|
201
|
+
AF->>BR: /refacil:inbox
|
|
202
|
+
BR->>AF: Hay 1 ask dirigido a vos
|
|
203
|
+
AF->>AF: Read/Grep src/api/pay.ts
|
|
204
|
+
AF->>BR: /refacil:reply "..."
|
|
205
|
+
|
|
206
|
+
Note over D: Dev vuelve a la<br/>ventana payments
|
|
207
|
+
|
|
208
|
+
D->>AP: "ejecutá /refacil:inbox<br/>y seguí con la tarea"
|
|
209
|
+
AP->>BR: /refacil:inbox
|
|
210
|
+
BR->>AP: Respuesta del frontend
|
|
211
|
+
AP->>D: Endpoint implementado
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Diferencia clave vs 3.1**: el Dev visita la ventana frontend una vez (pasos 3-4). **Pero no lee código, no copia, no transcribe** — solo dice "ejecutá inbox y respondé". El agente del repo hace el trabajo real. Aún así el attend previo es el patrón ideal.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 4. Guía rápida: ¿qué skill uso?
|
|
219
|
+
|
|
220
|
+
Para que el equipo sepa qué invocar en cada caso:
|
|
221
|
+
|
|
222
|
+
```mermaid
|
|
223
|
+
flowchart TD
|
|
224
|
+
START[Necesito algo<br/>del bus] --> Q1{¿Primera vez<br/>en la sala hoy?}
|
|
225
|
+
Q1 -->|Sí| JOIN[/refacil:join sala<br/>escribe el bloque en<br/>AGENTS.md si falta/]
|
|
226
|
+
Q1 -->|No| Q2{¿Qué quiero<br/>hacer?}
|
|
227
|
+
|
|
228
|
+
JOIN --> Q2
|
|
229
|
+
|
|
230
|
+
Q2 -->|Preguntar a alguien<br/>y esperar respuesta<br/>para continuar| ASKW[/refacil:ask @X<br/>"..." --wait 180/]
|
|
231
|
+
Q2 -->|Preguntar sin<br/>bloquear| ASK[/refacil:ask @X<br/>"..."/]
|
|
232
|
+
Q2 -->|Anunciar algo<br/>a toda la sala| SAY[/refacil:say "..."/]
|
|
233
|
+
Q2 -->|Responder<br/>pregunta que me hicieron| REPLY[/refacil:reply "..."/]
|
|
234
|
+
Q2 -->|Atender el bus<br/>un rato| ATTEND[/refacil:attend/]
|
|
235
|
+
Q2 -->|Ver mensajes<br/>que llegaron offline| INBOX[/refacil:inbox/]
|
|
236
|
+
|
|
237
|
+
classDef start fill:#fff3cd,stroke:#856404,color:#333
|
|
238
|
+
classDef skill fill:#cce5ff,stroke:#004085,color:#333
|
|
239
|
+
class START start
|
|
240
|
+
class JOIN,ASKW,ASK,SAY,REPLY,ATTEND,INBOX skill
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 5. Impacto esperado
|
|
246
|
+
|
|
247
|
+
Beneficios cualitativos para el dev que trabaja con múltiples repos. El impacto depende de si el agente del otro repo está o no en `/refacil:attend`:
|
|
248
|
+
|
|
249
|
+
| Aspecto | Antes | Con bus · otro agente SIN attend | Con bus · otro agente EN attend |
|
|
250
|
+
|---|---|---|---|
|
|
251
|
+
| **Consulta cruzada** | Dev salta de ventana, lee código, copia al otro agente | Dev salta 1 vez y dice "ejecutá inbox y respondé" | Agente pregunta solo; otro agente responde solo |
|
|
252
|
+
| **Calidad del contexto** | Transcripción manual del dev — se pierde precisión | Agente del repo dueño responde desde código real | Agente del repo dueño responde desde código real |
|
|
253
|
+
| **Saltos de ventana del dev** | Muchos: salir, leer, copiar, volver, pegar | Uno solo por consulta, corto (despachar al agente) | Cero: el dev se entera al final del resultado |
|
|
254
|
+
| **Ruptura del foco** | Alta: cada consulta interrumpe el flujo principal | Media: una interrupción liviana | Casi nula: todo ocurre en background |
|
|
255
|
+
| **Trazabilidad** | Nada queda registrado | `inbox.jsonl` 7 días auditable | `inbox.jsonl` 7 días auditable |
|
|
256
|
+
| **Bugs por transcripción** | Frecuentes (tipeo, campos mal copiados) | Eliminados — el agente copia literal | Eliminados |
|
|
257
|
+
| **Revisión post-mortem** | Hay que reconstruir de memoria | Historial del bus muestra la conversación real | Historial del bus muestra la conversación real |
|
|
258
|
+
|
|
259
|
+
**Lectura de la tabla**: con el bus siempre hay ganancia respecto al estado actual. La automatización **total** (columna derecha) requiere la disciplina de dejar en `/refacil:attend` los agentes de los repos que uno sabe que va a consultar antes de meterse en una tarea larga.
|
|
260
|
+
|
|
261
|
+
### Impacto cuantitativo (estimar por equipo)
|
|
262
|
+
|
|
263
|
+
Estos valores se deben **medir en producción del equipo** durante las primeras 2-4 semanas:
|
|
264
|
+
|
|
265
|
+
- Número de preguntas/respuestas cruzadas por día (proxy: líneas en `inbox.jsonl`)
|
|
266
|
+
- Reducción de reuniones técnicas ad-hoc para alinear contratos de APIs
|
|
267
|
+
- Tiempo promedio hasta resolver una consulta cruzada (antes medido vs ahora)
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 6. Cómo empezar (5 minutos)
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# 1. Actualiza refacil-sdd-ai a la última versión (automático si tienes Claude Code)
|
|
275
|
+
npm update -g refacil-sdd-ai
|
|
276
|
+
|
|
277
|
+
# 2. En cada repo donde quieras usar el bus:
|
|
278
|
+
refacil-sdd-ai update # re-copia skills (el hook lo hace solo en Claude Code)
|
|
279
|
+
|
|
280
|
+
# 3. Reinicia la sesión de Claude Code o Cursor
|
|
281
|
+
|
|
282
|
+
# 4. En el chat del LLM:
|
|
283
|
+
/refacil:join refacil-main
|
|
284
|
+
# La primera vez el LLM escribe un bloque de presentación en tu AGENTS.md
|
|
285
|
+
# y te une a la sala
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
No requiere configurar puertos, servidores ni credenciales. El broker se levanta solo.
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 7. Puntos clave para el pitch al equipo
|
|
293
|
+
|
|
294
|
+
- **Las sesiones son agentes de repo, no devs**: el caso principal es un dev con varias ventanas abiertas (una por repo), donde los agentes del LLM se hablan entre sí para que el dev no haga de transcriptor.
|
|
295
|
+
- **El dev sigue siendo el "PM"** de la operación — decide qué tarea arrancar, a qué agentes poner en attend, y valida el resultado final. El bus solo quita el trabajo mecánico entre ventanas.
|
|
296
|
+
- **No transfiere código ni secretos** entre repos: solo texto plano que el dev controla.
|
|
297
|
+
- **Costo infraestructural cero**: local, sin servicio compartido, sin cuentas nuevas, 40 MB de RAM.
|
|
298
|
+
- **Funciona en Claude Code y Cursor**: sin diferencias ni configuración adicional.
|
|
299
|
+
- **Persistencia con expiración automática** (7 días) — no se llena el disco.
|
|
300
|
+
- **Patrón óptimo**: antes de empezar una tarea que puede requerir consultar otros repos, el dev abre rápido las otras ventanas y dice *"atiende el bus"*. A partir de ahí, todo ocurre en background mientras trabaja.
|
|
301
|
+
- **Fallback natural sin attend**: aunque el dev olvide el setup, el bus sigue sirviendo como canal asíncrono: el dev salta 1 vez, despacha al agente (*"ejecutá inbox y respondé"*) y vuelve. Mucho mejor que transcribir código a mano.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Apéndice: comandos útiles para el dev
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
refacil-sdd-ai bus status # ¿está activo el broker?
|
|
309
|
+
refacil-sdd-ai bus rooms # salas activas + miembros
|
|
310
|
+
refacil-sdd-ai bus watch <session> # panel en vivo (sin tokens)
|
|
311
|
+
refacil-sdd-ai bus history --n 50 # últimos 50 mensajes de la sala actual
|
|
312
|
+
refacil-sdd-ai bus leave # salir de la sala
|
|
313
|
+
refacil-sdd-ai bus stop # bajar el broker (raro necesitarlo)
|
|
314
|
+
```
|
package/skills/guide/SKILL.md
CHANGED
|
@@ -28,7 +28,8 @@ Eres un guia **breve**: eliges el siguiente comando; el detalle de cada flujo es
|
|
|
28
28
|
6. Review de calidad → `/refacil:review`
|
|
29
29
|
7. Subir codigo y crear PR → `/refacil:up-code`
|
|
30
30
|
8. Configurar repo → `refacil-sdd-ai init` (global + por repo) y `/refacil:setup`
|
|
31
|
-
9.
|
|
31
|
+
9. Migrar documentacion al patron actual → `/refacil:update`
|
|
32
|
+
10. Coordinar con otros repos (sin copy/paste manual) → ver bloque **Bus entre agentes** abajo
|
|
32
33
|
|
|
33
34
|
> **Nota**: `/refacil:up-code` verifica que el review este aprobado (`.review-passed`). Si falta y hay un solo cambio pendiente, lanza `/refacil:review` automaticamente (sin re-ejecutar si no hay cambios nuevos). Si hay multiples cambios sin review, pide seleccion explicita. Toda integracion a ramas protegidas (incluyendo `testing`) requiere PR. Nunca se hacen ajustes directos en `master` o `main`. La validacion de rama se hace en `/refacil:apply` o `/refacil:bug`, no en `up-code`.
|
|
34
35
|
|
|
@@ -67,7 +68,8 @@ Detalle completo en el README de refacil-sdd-ai (seccion `refacil-bus`).
|
|
|
67
68
|
- Opcion 6 (Review de calidad) → `skill: "refacil:review"`
|
|
68
69
|
- Opcion 7 (Subir codigo y crear PR) → `skill: "refacil:up-code"`
|
|
69
70
|
- Opcion 8 (Configurar repo) → `skill: "refacil:setup"`
|
|
70
|
-
- Opcion 9 (
|
|
71
|
+
- Opcion 9 (Migrar documentacion) → `skill: "refacil:update"`
|
|
72
|
+
- Opcion 10 (Bus entre agentes) → `skill: "refacil:join"` (u otra del grupo `refacil:say`/`refacil:ask`/`refacil:reply`/`refacil:attend`/`refacil:inbox` segun la intencion expresada).
|
|
71
73
|
- Si la intencion no mapea exactamente a una opcion, NO invocar — listar opciones numeradas y pedir seleccion explicita.
|
|
72
74
|
|
|
73
75
|
No describirlo en texto ni esperar que el usuario escriba el comando. (Ver `METHODOLOGY-CONTRACT.md §5`.)
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -40,35 +40,54 @@ openspec init --tools claude,cursor
|
|
|
40
40
|
|
|
41
41
|
Si no existe, crear con `language: spanish` (y comentario de terminos tecnicos en ingles). Si existe, asegurar `language: spanish`.
|
|
42
42
|
|
|
43
|
-
### Paso 6: Generar `AGENTS.md`
|
|
43
|
+
### Paso 6: Generar `.agents/` y `AGENTS.md`
|
|
44
44
|
|
|
45
|
-
Analiza el repo y genera
|
|
45
|
+
Analiza el repo y genera la estructura de documentacion. Si ya existen, pregunta si regenerar.
|
|
46
46
|
|
|
47
47
|
**6.1 Analisis** — Lee si existen: `package.json`, `tsconfig*.json`, `nest-cli.json`, `angular.json`, `README.md`, eslint, jest, `ls` raiz, Docker, `.env.example`.
|
|
48
48
|
|
|
49
|
-
**6.2
|
|
49
|
+
**6.2 Arquitectura obligatoria: carpeta `.agents/` + indice `AGENTS.md`**
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
- Titulo + descripcion breve (2-4 lineas)
|
|
53
|
-
- Tabla mini: lenguaje, framework, tests, package manager
|
|
54
|
-
- Scripts esenciales (build, test, lint) con una linea de proposito cada uno
|
|
55
|
-
- **Reglas criticas condensadas**: Siempre / Nunca / Preguntar (hasta ~5 bullets por bloque si aplica)
|
|
56
|
-
- Tabla **comandos refacil:*** (nombre + una frase; no copiar el README entero)
|
|
57
|
-
- Linea fija: *Detalle ampliado debajo. Si hay anexos en `docs/agents-*.md`, leerlos solo cuando trabajes en esa area.*
|
|
51
|
+
Siempre genera esta estructura — nunca un archivo monolitico:
|
|
58
52
|
|
|
59
|
-
|
|
53
|
+
Crea la carpeta `.agents/` con un archivo `.md` por area tematica. Archivos tipicos (adaptar al proyecto real):
|
|
54
|
+
- `.agents/summary.md` — descripcion breve, tabla (lenguaje, framework, tests, package manager), scripts esenciales con una frase, reglas criticas condensadas (Siempre / Nunca / Preguntar, max 5 bullets cada bloque).
|
|
55
|
+
- `.agents/architecture.md` — modulos, servicios, flujos principales, patrones clave.
|
|
56
|
+
- `.agents/stack.md` — dependencias, variables de entorno, bases de datos, integraciones.
|
|
57
|
+
- `.agents/testing.md` — estrategia, comandos, convenciones, fixtures.
|
|
58
|
+
- `.agents/commands.md` — comandos de desarrollo, alias, scripts de CI/CD.
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
Un monorepo puede agregar `.agents/services.md`; una libreria puede combinar testing en stack. Adaptar segun el proyecto.
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
`AGENTS.md` es el **indice puro** — no contiene detalle de proyecto, solo:
|
|
63
|
+
1. Una linea de descripcion del proyecto.
|
|
64
|
+
2. Por cada archivo en `.agents/`: nombre del area + enlace relativo + cuando leer ese archivo (una frase).
|
|
65
|
+
3. Bloque `compact-guidance` (auto-gestionado por `refacil-sdd-ai`, no editar).
|
|
64
66
|
|
|
65
|
-
**6.
|
|
67
|
+
**6.3 Fallback** — Si el analisis falla: crear `.agents/summary.md` con resumen minimo + tabla refacil + TODOs, y `AGENTS.md` como indice apuntando a ese unico archivo.
|
|
66
68
|
|
|
67
|
-
**6.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
69
|
+
**6.4** — Muestra el resultado al usuario; si aprueba, escribe los archivos.
|
|
70
|
+
|
|
71
|
+
**6.5 Bloque compact-guidance**:
|
|
72
|
+
- `refacil-sdd-ai` inyecta en `AGENTS.md` un bloque entre marcadores `compact-guidance` con reglas de salida compacta.
|
|
73
|
+
- Se sincroniza automaticamente en cada `SessionStart`. No editar el contenido entre marcadores.
|
|
74
|
+
|
|
75
|
+
### Paso 6b: Sobreescribir `CLAUDE.md` y `.cursorrules`
|
|
76
|
+
|
|
77
|
+
Siempre **sobreescribe** ambos archivos aunque ya existan — son indices delgados hacia `AGENTS.md`, no deben contener detalle de proyecto.
|
|
78
|
+
|
|
79
|
+
**`CLAUDE.md`** — indice minimo, sin contenido de proyecto:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
# CLAUDE.md
|
|
83
|
+
|
|
84
|
+
Contexto completo del proyecto: ver `AGENTS.md` (indice) y `.agents/` (detalle por area).
|
|
85
|
+
Si `AGENTS.md` no existe, ejecuta `/refacil:setup`.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**`.cursorrules`** — contenido identico con header `# Cursor Rules`.
|
|
89
|
+
|
|
90
|
+
Todo el detalle de proyecto, stack, reglas y comandos `refacil:*` vive en `.agents/` y se indexa desde `AGENTS.md`. No duplicar nada en CLAUDE.md ni en .cursorrules.
|
|
72
91
|
|
|
73
92
|
### Paso 7: Archivos de exclusion de contexto
|
|
74
93
|
|
|
@@ -92,7 +111,7 @@ Si el usuario quiere personalizar exclusiones adicionales, puede editarlos direc
|
|
|
92
111
|
|
|
93
112
|
```
|
|
94
113
|
=== refacil:setup completado ===
|
|
95
|
-
Node.js / OpenSpec / perfil / openspec/ / config / AGENTS.md / .claudeignore / .cursorignore / skills OK
|
|
114
|
+
Node.js / OpenSpec / perfil / openspec/ / config / AGENTS.md / CLAUDE.md / .cursorrules / .claudeignore / .cursorignore / skills OK
|
|
96
115
|
|
|
97
116
|
Reiniciar sesion Claude Code o Cursor si es la primera instalacion de skills.
|
|
98
117
|
El siguiente paso es revisar el flujo disponible.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: refacil:update
|
|
3
|
+
description: Detectar y aplicar migraciones pendientes de la metodologia SDD-AI al proyecto actual
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# refacil:update — Migraciones de la Metodologia
|
|
8
|
+
|
|
9
|
+
Detecta el estado actual del repo y aplica solo lo que este pendiente. No repite pasos de instalacion (OpenSpec, hooks, skills).
|
|
10
|
+
|
|
11
|
+
## Paso 1: Detectar migraciones pendientes
|
|
12
|
+
|
|
13
|
+
Evalua cada condicion y marca si aplica:
|
|
14
|
+
|
|
15
|
+
| # | Condicion detectada | Migracion |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| 1 | `AGENTS.md` existe y no existe carpeta `.agents/` | Reestructurar en `.agents/` + reescribir como indice |
|
|
18
|
+
| 2 | `CLAUDE.md` tiene mas de 5 lineas o no apunta a `AGENTS.md` | Reemplazar por indice minimo |
|
|
19
|
+
| 3 | `.cursorrules` tiene mas de 5 lineas o no apunta a `AGENTS.md` | Reemplazar por indice minimo |
|
|
20
|
+
|
|
21
|
+
Si ninguna condicion aplica: informar al usuario que todo esta al dia y salir sin cambios.
|
|
22
|
+
|
|
23
|
+
## Paso 2: Confirmar con el usuario
|
|
24
|
+
|
|
25
|
+
Mostrar la lista de migraciones detectadas y pedir confirmacion antes de aplicar cualquier cambio.
|
|
26
|
+
|
|
27
|
+
## Paso 3: Aplicar migraciones confirmadas
|
|
28
|
+
|
|
29
|
+
Ejecutar solo las migraciones marcadas en el Paso 1.
|
|
30
|
+
|
|
31
|
+
### Migracion 1 — AGENTS.md → `.agents/` + indice
|
|
32
|
+
|
|
33
|
+
1. Lee el contenido completo de `AGENTS.md`.
|
|
34
|
+
2. Identifica y separa los **bloques gestionados** — NO deben moverse a `.agents/`:
|
|
35
|
+
- Bloque `compact-guidance`: entre `<!-- refacil-sdd-ai:compact-guidance:start -->` y `<!-- refacil-sdd-ai:compact-guidance:end -->`
|
|
36
|
+
- Bloque de presentacion del bus: entre `<!-- refacil-bus:presentation:start -->` y `<!-- refacil-bus:presentation:end -->`
|
|
37
|
+
3. Crea la carpeta `.agents/`.
|
|
38
|
+
4. Distribuye el contenido de proyecto (todo excepto los bloques gestionados) en archivos por area. Reglas:
|
|
39
|
+
- **`.agents/summary.md` es siempre obligatorio** — descripcion del proyecto, tabla mini de stack, scripts esenciales, reglas criticas condensadas. Si el AGENTS.md original no tiene resumen claro, sintetizalo a partir del contenido disponible.
|
|
40
|
+
- Los demas archivos se crean **solo si hay contenido relevante que redistribuir**. No crear archivos vacios:
|
|
41
|
+
- `.agents/architecture.md` — modulos, servicios, flujos principales, patrones clave.
|
|
42
|
+
- `.agents/stack.md` — dependencias, variables de entorno, bases de datos, integraciones.
|
|
43
|
+
- `.agents/testing.md` — estrategia de tests, comandos, convenciones, fixtures.
|
|
44
|
+
- `.agents/commands.md` — comandos de desarrollo, alias, scripts de CI/CD.
|
|
45
|
+
- Adaptar al tipo de proyecto: un monorepo puede necesitar `.agents/services.md`; una libreria simple puede combinar testing y stack en un solo archivo. Usar el mismo criterio que `/refacil:setup`.
|
|
46
|
+
5. Reescribe `AGENTS.md` como indice puro preservando los bloques gestionados al final:
|
|
47
|
+
- Primera linea: descripcion breve del proyecto.
|
|
48
|
+
- Por cada archivo en `.agents/`: nombre del area + enlace relativo + cuando leerlo (una frase).
|
|
49
|
+
- Bloques gestionados que ya existian (compact-guidance, bus presentation) al final, intactos.
|
|
50
|
+
- Si no existian, el bloque compact-guidance se re-inyectara automaticamente en el proximo SessionStart.
|
|
51
|
+
|
|
52
|
+
### Migracion 2 y 3 — CLAUDE.md / .cursorrules → indice minimo
|
|
53
|
+
|
|
54
|
+
Sobreescribir con exactamente este contenido:
|
|
55
|
+
|
|
56
|
+
**CLAUDE.md:**
|
|
57
|
+
```
|
|
58
|
+
# CLAUDE.md
|
|
59
|
+
|
|
60
|
+
Contexto completo del proyecto: ver `AGENTS.md`.
|
|
61
|
+
Si no existe, ejecuta `/refacil:setup`.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**`.cursorrules`:**
|
|
65
|
+
```
|
|
66
|
+
# Cursor Rules
|
|
67
|
+
|
|
68
|
+
Contexto completo del proyecto: ver `AGENTS.md`.
|
|
69
|
+
Si no existe, ejecuta `/refacil:setup`.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Paso 4: Resumen
|
|
73
|
+
|
|
74
|
+
Informar que archivos se crearon o modificaron. Mencionar que el bloque `compact-guidance` se sincronizara automaticamente en el proximo SessionStart.
|
|
75
|
+
|
|
76
|
+
## Reglas
|
|
77
|
+
|
|
78
|
+
- Solo aplica lo que este pendiente — no toca archivos que ya cumplen el patron.
|
|
79
|
+
- No inventa contenido: distribuye lo que ya existe en AGENTS.md sin agregar ni eliminar informacion.
|
|
80
|
+
- No ejecuta pasos de OpenSpec, hooks ni instalacion de skills.
|
|
81
|
+
- Extensible: futuras versiones de la metodologia agregaran filas a la tabla del Paso 1 sin cambiar la estructura de la skill.
|
|
@@ -1,45 +1,52 @@
|
|
|
1
|
-
Instrucciones completas del proyecto: ver `AGENTS.md`. Si falta, ejecuta `/refacil:setup`.
|
|
2
|
-
|
|
3
|
-
## Metodologia SDD-AI (Refacil)
|
|
4
|
-
|
|
5
|
-
Skills identicas en `.claude/skills/refacil-*/` (Claude Code) y `.cursor/skills/refacil-*/` (Cursor). Instaladas por `refacil-sdd-ai init`.
|
|
6
|
-
|
|
7
|
-
| Comando | Descripcion |
|
|
8
|
-
|---------|-------------|
|
|
9
|
-
| `/refacil:setup` | Instalar OpenSpec y generar AGENTS.md |
|
|
10
|
-
| `/refacil:guide` | Guia interactiva — que comando usar |
|
|
11
|
-
| `/refacil:explore` | Explorar el codebase sin cambios |
|
|
12
|
-
| `/refacil:propose` | Crear propuesta de cambio |
|
|
13
|
-
| `/refacil:apply` | Implementar tasks del cambio |
|
|
14
|
-
| `/refacil:test` | Generar tests unitarios |
|
|
15
|
-
| `/refacil:verify` | Validar implementacion vs specs |
|
|
16
|
-
| `/refacil:review` | Review con checklist de calidad |
|
|
17
|
-
| `/refacil:archive` | Archivar cambio completado |
|
|
18
|
-
| `/refacil:up-code` | Subir codigo y crear PR |
|
|
19
|
-
| `/refacil:bug` | Flujo guiado de bugfix |
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| `/refacil:
|
|
31
|
-
| `/refacil:
|
|
32
|
-
| `/refacil:
|
|
33
|
-
| `/refacil:
|
|
34
|
-
| `/refacil:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
Instrucciones completas del proyecto: ver `AGENTS.md`. Si falta, ejecuta `/refacil:setup`.
|
|
2
|
+
|
|
3
|
+
## Metodologia SDD-AI (Refacil)
|
|
4
|
+
|
|
5
|
+
Skills identicas en `.claude/skills/refacil-*/` (Claude Code) y `.cursor/skills/refacil-*/` (Cursor). Instaladas por `refacil-sdd-ai init`.
|
|
6
|
+
|
|
7
|
+
| Comando | Descripcion |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `/refacil:setup` | Instalar OpenSpec y generar AGENTS.md |
|
|
10
|
+
| `/refacil:guide` | Guia interactiva — que comando usar |
|
|
11
|
+
| `/refacil:explore` | Explorar el codebase sin cambios |
|
|
12
|
+
| `/refacil:propose` | Crear propuesta de cambio |
|
|
13
|
+
| `/refacil:apply` | Implementar tasks del cambio |
|
|
14
|
+
| `/refacil:test` | Generar tests unitarios |
|
|
15
|
+
| `/refacil:verify` | Validar implementacion vs specs |
|
|
16
|
+
| `/refacil:review` | Review con checklist de calidad |
|
|
17
|
+
| `/refacil:archive` | Archivar cambio completado |
|
|
18
|
+
| `/refacil:up-code` | Subir codigo y crear PR |
|
|
19
|
+
| `/refacil:bug` | Flujo guiado de bugfix |
|
|
20
|
+
| `/refacil:update` | Migrar documentacion al patron actual (.agents/) |
|
|
21
|
+
|
|
22
|
+
Flujo: `setup` → `propose` → `apply` → `test` → `verify` → `review` → `archive` → `up-code`
|
|
23
|
+
|
|
24
|
+
## Bus entre agentes (refacil-bus)
|
|
25
|
+
|
|
26
|
+
Canal local de texto plano entre sesiones de Claude Code / Cursor corriendo en distintos repos. Evita que el dev haga de transcriptor manual entre sus propios agentes.
|
|
27
|
+
|
|
28
|
+
| Comando | Descripcion |
|
|
29
|
+
|---------|-------------|
|
|
30
|
+
| `/refacil:join <sala>` | Crear o unirse a una sala. La primera vez genera un bloque de presentacion en `AGENTS.md`. |
|
|
31
|
+
| `/refacil:say "..."` | Anuncio a toda la sala. |
|
|
32
|
+
| `/refacil:ask @nombre "..." [--wait N]` | Pregunta dirigida a otra sesion. `--wait N` bloquea hasta respuesta o N seg. |
|
|
33
|
+
| `/refacil:reply "..."` | Responde la ultima pregunta dirigida (autocompleta `correlationId`). |
|
|
34
|
+
| `/refacil:attend` | Modo escucha activa: recibe preguntas y el LLM las responde, luego re-invoca para seguir escuchando. |
|
|
35
|
+
| `/refacil:inbox` | Ver mensajes nuevos desde la ultima lectura. |
|
|
36
|
+
|
|
37
|
+
Uso tipico: antes de arrancar una tarea que puede requerir contexto de otros repos, el dev pone al agente de cada otro repo en `/refacil:attend`. Despues, en su repo de trabajo, el LLM puede pedir contexto con `/refacil:ask @<repo> "..." --wait` y recibir la respuesta automaticamente sin que el dev salte entre ventanas.
|
|
38
|
+
|
|
39
|
+
CLI util para el dev: `refacil-sdd-ai bus view` (abre UI web en el navegador), `bus watch <session>` (panel en terminal), `bus status`, `bus rooms`. No consumen tokens.
|
|
40
|
+
|
|
41
|
+
## Estructura de documentacion del proyecto
|
|
42
|
+
|
|
43
|
+
El detalle del proyecto vive en `.agents/` — un archivo `.md` por area (summary, architecture, stack, testing, commands...).
|
|
44
|
+
`AGENTS.md` es el indice: una linea por archivo indicando que contiene y cuando leerlo.
|
|
45
|
+
`CLAUDE.md` y `.cursorrules` son indices minimos que solo apuntan a `AGENTS.md` — no contienen detalle de proyecto.
|
|
46
|
+
|
|
47
|
+
## Eficiencia de tokens (automatica)
|
|
48
|
+
|
|
49
|
+
- El hook `check-update` en `SessionStart` sincroniza el bloque `compact-guidance` en `AGENTS.md`.
|
|
50
|
+
- El bloque define reglas de salida compacta (lectura por rango, busqueda acotada, tests/logs resumidos).
|
|
51
|
+
- Si `AGENTS.md` aun no existe, la sincronizacion se omite sin error.
|
|
52
|
+
- No editar manualmente el contenido entre marcadores `compact-guidance`; se sobreescribe automaticamente.
|