@ancleto/spec 0.6.1 → 0.6.4
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 +184 -91
- package/agents/spec-writer.md +2 -2
- package/commands/{opsx-apply.md → cleto-apply.md} +4 -4
- package/commands/{opsx-archive.md → cleto-archive.md} +3 -3
- package/commands/{opsx-bulk-archive.md → cleto-bulk-archive.md} +1 -1
- package/commands/{opsx-continue.md → cleto-continue.md} +3 -3
- package/commands/{opsx-explore.md → cleto-explore.md} +1 -1
- package/commands/{opsx-ff.md → cleto-ff.md} +2 -2
- package/commands/{opsx-new.md → cleto-new.md} +4 -4
- package/commands/{opsx-onboard.md → cleto-onboard.md} +22 -22
- package/commands/{opsx-propose.md → cleto-propose.md} +3 -3
- package/commands/{opsx-recall.md → cleto-recall.md} +6 -6
- package/commands/{opsx-sync.md → cleto-sync.md} +1 -1
- package/commands/{opsx-verify.md → cleto-verify.md} +1 -1
- package/package.json +1 -1
- package/skills/{openspec-apply → ancleto-apply}/SKILL.md +2 -2
- package/skills/{openspec-archive → ancleto-archive}/SKILL.md +1 -1
- package/skills/{openspec-bulk-archive → ancleto-bulk-archive}/SKILL.md +1 -1
- package/skills/{openspec-continue → ancleto-continue}/SKILL.md +4 -4
- package/skills/{openspec-explore → ancleto-explore}/SKILL.md +1 -1
- package/skills/{openspec-ff → ancleto-ff}/SKILL.md +2 -2
- package/skills/{openspec-new → ancleto-new}/SKILL.md +2 -2
- package/skills/{openspec-onboard → ancleto-onboard}/SKILL.md +11 -11
- package/skills/{openspec-propose → ancleto-propose}/SKILL.md +4 -4
- package/skills/{openspec-recall → ancleto-recall}/SKILL.md +3 -3
- package/skills/{openspec-sync-specs → ancleto-sync-specs}/SKILL.md +1 -1
- package/skills/ancleto-upgrade/SKILL.md +2 -2
- package/skills/{openspec-verify → ancleto-verify}/SKILL.md +1 -1
- package/skills/{openspec-workflow → ancleto-workflow}/SKILL.md +17 -17
- package/skills/triage-clarifier/SKILL.md +1 -1
- package/src/cli/index.js +81 -34
- package/src/cli/ui.js +181 -0
package/README.md
CHANGED
|
@@ -1,120 +1,213 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# ☕ ANCLETO (aspec)
|
|
4
|
+
**Orquestador SDD (Spec-Driven Development) y Toolkit Personal Asistido por IA**
|
|
5
|
+
|
|
6
|
+
[](#requisitos)
|
|
7
|
+
[](#uso-rápido)
|
|
8
|
+
[](#requisitos)
|
|
9
|
+
|
|
10
|
+
*Descubrimiento técnico, memoria persistente y control estricto de tokens para tu IDE.*
|
|
11
|
+
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 📖 Tabla de Contenidos
|
|
17
|
+
|
|
18
|
+
- [¿Qué es Ancleto?](#-qué-es-ancleto)
|
|
19
|
+
- [¿Por qué fue creado?](#-por-qué-fue-creado)
|
|
20
|
+
- [Características Principales](#-características-principales)
|
|
21
|
+
- [Requisitos](#-requisitos)
|
|
22
|
+
- [Instalación](#-instalación)
|
|
23
|
+
- [Configuración y Tiers de Costo](#-configuración-y-tiers-de-costo)
|
|
24
|
+
- [Uso Rápido](#-uso-rápido)
|
|
25
|
+
- [Referencia de Comandos CLI](#-referencia-de-comandos-cli)
|
|
26
|
+
- [Motor de Memoria Persistente](#-motor-de-memoria-persistente)
|
|
27
|
+
- [Comandos del Ciclo SDD en tu IDE](#-comandos-del-ciclo-sdd-en-tu-ide)
|
|
28
|
+
- [Azure DevOps (Opcional)](#-azure-devops-opcional)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 🚀 ¿Qué es Ancleto?
|
|
33
|
+
|
|
34
|
+
**Ancleto** (cuyo alias de CLI es `aspec`) es un orquestador ligero diseñado para potenciar el desarrollo de software asistido por Inteligencia Artificial bajo el paradigma **SDD (Spec-Driven Development)**.
|
|
35
|
+
|
|
36
|
+
Funciona como un conjunto de herramientas y agentes que viven en tu entorno de desarrollo local (como OpenCode, Cursor, VS Code, Roo, etc.), permitiéndote automatizar la escritura de especificaciones, el descubrimiento topológico del código y la retención de memoria de las decisiones técnicas.
|
|
37
|
+
|
|
38
|
+
Todo esto está envuelto en una CLI moderna, interactiva y construida bajo una filosofía estricta de **cero dependencias (Zero-Deps)**.
|
|
39
|
+
|
|
40
|
+
## 💡 ¿Por qué fue creado?
|
|
41
|
+
|
|
42
|
+
Al trabajar en repositorios complejos con asistentes de IA, surgen tres problemas críticos:
|
|
43
|
+
|
|
44
|
+
1. **La "Memoria de Pez" de los LLMs:** Los agentes olvidan las convenciones del proyecto o las decisiones arquitectónicas pasadas en cuanto se limpia la ventana de contexto.
|
|
45
|
+
2. **El Costo Oculto (Token Budgeting):** Empaquetar todo un monorepo para darle contexto a la IA consume presupuestos de tokens masivos y encarece el uso de las APIs.
|
|
46
|
+
3. **Falta de Estandarización:** Cada agente de IA actúa por su cuenta, sin seguir un ciclo de vida definido de especificación -> revisión -> implementación -> verificación.
|
|
47
|
+
|
|
48
|
+
**Ancleto** nace para resolver esto. Centraliza las reglas de negocio en un motor de memoria local (`node:sqlite`), empaqueta inteligentemente el contexto según el nivel de tu suscripción (Tiers) y orquesta 10 subagentes nativos para que el código que escriba la IA cumpla estrictamente con tus estándares, minimizando la fricción y los costos.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## ✨ Características Principales
|
|
53
|
+
|
|
54
|
+
- 🤖 **Catálogo Multi-Agente (10 Agents):** Orquestador, Coder, Tester, Spec-Writer, Reviewer, Documenter, Technical-Discovery, Technical-Seed-Writer, Memory-Keeper y Context-Resolver.
|
|
55
|
+
- 🧠 **Motor de Memoria Persistente (FTS5):** Base local SQLite (`.ancleto/memory.db`) que provee al LLM herramientas para registrar y recuperar reglas arquitectónicas y decisiones pasadas proactivamente.
|
|
56
|
+
- 🗺️ **Discovery Engine:** Un escáner topológico rápido que genera mapas del repositorio (`.discovery-map.json`) y empaqueta el contexto vía Repomix con presupuestos de tokens dinámicos.
|
|
57
|
+
- 💸 **Gestión de Tiers de Costo:** Control absoluto sobre qué modelos y cuánto contexto se envía (`normal`, `minimo`, `gratis`), protegiendo tus cuotas de API.
|
|
58
|
+
- ⚡ **Agentic OpenSpec Engine:** Totalmente independiente, sin binarios externos. Las 11 skills del ciclo de vida (`new`, `propose`, `apply`, `verify`, `archive`, `bulk-archive`, `continue`, `explore`, `ff`, `onboard`, `workflow`) se instalan e inyectan nativamente en tu IDE favorito, más skills auxiliares (`ancleto-commit`, `ancleto-pr`, `triage-clarifier`, entre otras).
|
|
59
|
+
- 🎨 **Wizard Interactivo:** Inicialización por TTY con banner animado y menús navegables con flechas, sin requerir librerías pesadas (Zero-Deps).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🛠 Requisitos
|
|
64
|
+
|
|
65
|
+
Dado que Ancleto mantiene una política de cero dependencias externas, aprovecha las capacidades nativas más recientes de Node:
|
|
66
|
+
|
|
67
|
+
- **Node.js >= 24.0.0** (requerido estrictamente para el módulo nativo `node:sqlite`).
|
|
68
|
+
- **Repomix** (utilizado dinámicamente vía `npx` si no está instalado globalmente, para el empaquetado de contexto).
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 📦 Instalación
|
|
73
|
+
|
|
74
|
+
Puedes instalar la herramienta a nivel global o por proyecto.
|
|
29
75
|
|
|
30
76
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
77
|
+
# Instalación global (disponible en todos tus proyectos)
|
|
78
|
+
npm install -g @ancleto/spec
|
|
79
|
+
|
|
80
|
+
# O alternativamente a través de la CLI de ancleto:
|
|
81
|
+
ancleto install
|
|
82
|
+
|
|
83
|
+
# Instalación circunscrita a un proyecto específico (inyecta templates y .opencode/)
|
|
84
|
+
ancleto install --project /ruta/repo
|
|
85
|
+
|
|
86
|
+
# Instalación sin modificar la configuración MCP de tu IDE
|
|
87
|
+
ancleto install --no-mcp
|
|
88
|
+
|
|
89
|
+
# Actualizar a la última versión manteniendo tus personalizaciones
|
|
90
|
+
ancleto update
|
|
35
91
|
```
|
|
36
92
|
|
|
37
|
-
El instalador configura por defecto los MCP locales **engram**
|
|
38
|
-
**caveman** (compresion de contexto) en `~/.config/opencode/opencode.json`, fusionandose
|
|
39
|
-
con la config existente (no pisa nada). Si un binario no se encuentra en el sistema, ese
|
|
40
|
-
MCP se omite con un warning.
|
|
93
|
+
*(El instalador configura por defecto los MCP locales **engram** y **caveman**. Si un binario no se encuentra en tu sistema, se omitirá con un warning sin romper el flujo).*
|
|
41
94
|
|
|
42
|
-
|
|
95
|
+
---
|
|
43
96
|
|
|
44
|
-
|
|
45
|
-
|
|
97
|
+
## ⚙️ Configuración y Tiers de Costo
|
|
98
|
+
|
|
99
|
+
Al ejecutar la CLI por primera vez, un **Wizard interactivo (ASCII animado)** te guiará para configurar el Agente (IDE) y tu nivel de gasto. También puedes pasarlos por flags:
|
|
46
100
|
|
|
47
101
|
```bash
|
|
48
|
-
ancleto
|
|
49
|
-
ancleto install --tier minimo # todo al modelo pagado mas economico viable
|
|
50
|
-
ancleto install --tier gratis # solo modelos gratuitos (ej. opencode/big-pickle)
|
|
102
|
+
ancleto init --agent opencode --tier normal
|
|
51
103
|
```
|
|
52
104
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
105
|
+
**Tiers Disponibles:**
|
|
106
|
+
|
|
107
|
+
* `normal`: Modelos balanceados sin restricciones agresivas de contexto (default).
|
|
108
|
+
* `minimo`: Enfoque en el modelo pago más económico viable, con alta compresión de contexto y exclusión de tests/docs en el discovery.
|
|
109
|
+
* `gratis`: Bloqueado a modelos gratuitos (ej. `opencode/big-pickle`), empaquetado ultra-agresivo y un límite estricto (budget) de tokens enviado al LLM.
|
|
110
|
+
|
|
111
|
+
La configuración se preserva en `.ancletorc` (raíz del proyecto) y `.ancleto-tier` (junto a la configuración instalada).
|
|
112
|
+
|
|
113
|
+
---
|
|
56
114
|
|
|
57
|
-
##
|
|
115
|
+
## 💻 Uso Rápido
|
|
58
116
|
|
|
59
|
-
|
|
60
|
-
- `openspec` CLI (`npm i -g @openspec/cli`) para el ciclo de changes
|
|
61
|
-
- Repomix (usado por `ancleto discovery`, se resuelve via `npx` si no esta instalado)
|
|
117
|
+
El ciclo diario con Ancleto consiste en preparar el terreno técnico para tu Agente y luego usar los comandos del ciclo SDD dentro de tu IDE.
|
|
62
118
|
|
|
63
|
-
|
|
119
|
+
### 1. Inicialización en un Repositorio
|
|
64
120
|
|
|
65
121
|
```bash
|
|
66
|
-
|
|
67
|
-
ancleto init
|
|
68
|
-
ancleto discovery --check # estado del technical seed (READY/STALE/PARTIAL/MISSING)
|
|
69
|
-
ancleto discovery # empaca el repo con Repomix y guarda estado
|
|
70
|
-
# en opencode: /opsx-new, /opsx-propose, /opsx-ff para iniciar un change
|
|
122
|
+
cd tu-proyecto
|
|
123
|
+
ancleto init # Crea .ancletorc, plantillas AGENTS.md y PRODUCT.md
|
|
71
124
|
```
|
|
72
125
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Azure viene **desactivado por defecto**. Para activarlo en un proyecto:
|
|
126
|
+
### 2. Descubrimiento Técnico de Contexto
|
|
76
127
|
|
|
77
128
|
```bash
|
|
78
|
-
ancleto
|
|
129
|
+
ancleto discovery --check # Verifica si el 'technical seed' requiere actualización (READY/STALE)
|
|
130
|
+
ancleto discovery # Genera .discovery-map.json y empaqueta el repo
|
|
79
131
|
```
|
|
80
132
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
133
|
+
### 3. Integración Diaria
|
|
134
|
+
|
|
135
|
+
Utiliza los comandos barra (`/`) expuestos en el chat de tu IDE (ej. Cursor, OpenCode):
|
|
136
|
+
|
|
137
|
+
* `/cleto-new` y `/cleto-propose`: Para planificar un nuevo feature.
|
|
138
|
+
* `/cleto-verify` y `/cleto-apply`: Para validar reglas, chequear tests y aplicar el código.
|
|
139
|
+
* `/cleto-archive`: Para consolidar el historial y registrar aprendizajes en la memoria de Ancleto.
|
|
140
|
+
|
|
141
|
+
---
|
|
84
142
|
|
|
85
|
-
##
|
|
143
|
+
## 📟 Referencia de Comandos CLI
|
|
86
144
|
|
|
87
|
-
|
|
145
|
+
Todos los comandos de mantenimiento que puedes necesitar en el día a día:
|
|
88
146
|
|
|
89
147
|
```bash
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
#
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
148
|
+
ancleto init [--agent <nombre>] [--tier <nivel>] [--with-azure]
|
|
149
|
+
# Configura el proyecto (interactivo en TTY)
|
|
150
|
+
|
|
151
|
+
ancleto install [--project <dir>] [--tier <nivel>] [--agent <nombre>] [--no-mcp]
|
|
152
|
+
# Instala agents, skills y templates
|
|
153
|
+
|
|
154
|
+
ancleto update # Re-instala la última versión sobre lo existente
|
|
155
|
+
|
|
156
|
+
ancleto upgrade # Re-aplica templates y skills respetando tus personalizaciones
|
|
157
|
+
|
|
158
|
+
ancleto check # Verifica la integridad de la instalación (0 faltantes, 0 huérfanos)
|
|
159
|
+
|
|
160
|
+
ancleto doctor # Diagnostica el entorno (Node, node:sqlite, opencode.json)
|
|
161
|
+
|
|
162
|
+
ancleto memory context [--scope <project|feature|task>] [--out <archivo>]
|
|
163
|
+
# Muestra el bloque de memoria activa del proyecto
|
|
164
|
+
|
|
165
|
+
ancleto memory doctor [--rebuild]
|
|
166
|
+
# Diagnostica la base de memoria (y reconstruye el índice con --rebuild)
|
|
167
|
+
|
|
168
|
+
ancleto discovery [--compress] [--include <glob>] [--ignore <glob>] [--token-budget <n>]
|
|
169
|
+
# Empaqueta el repo con Repomix según tu tier
|
|
108
170
|
```
|
|
109
171
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 🧠 Motor de Memoria Persistente
|
|
175
|
+
|
|
176
|
+
Ancleto **no** usa bases de datos vectoriales pesadas. Implementa una solución elegante en **SQLite nativo** con búsqueda full-text (FTS5) y BM25.
|
|
177
|
+
|
|
178
|
+
El LLM tiene a su disposición 3 herramientas (tools):
|
|
179
|
+
|
|
180
|
+
* `searchMemory`: Recupera contexto de decisiones previas.
|
|
181
|
+
* `recordRule`: Guarda una regla arquitectónica estricta de manera jerárquica (Proyecto > Feature > Tarea).
|
|
182
|
+
* `recordDecision`: Inmortaliza el "por qué" de un cambio en el código.
|
|
183
|
+
|
|
184
|
+
El orquestador inyecta proactivamente los bloques `<ProjectMemoryRules>` y `<ProjectTopology>` (contexto desde el día cero, incluso sin reglas previas) en el System Prompt de tu Agente para que **nunca repita los mismos errores**.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 🔄 Comandos del Ciclo SDD en tu IDE
|
|
113
189
|
|
|
114
|
-
|
|
190
|
+
Una vez instalado, tu IDE expone el ciclo de vida completo como comandos barra (`/`):
|
|
191
|
+
|
|
192
|
+
| Comando | Para qué sirve |
|
|
193
|
+
|---|---|
|
|
194
|
+
| `/cleto-new` | Iniciar la especificación de un feature |
|
|
195
|
+
| `/cleto-propose` | Proponer el diseño técnico |
|
|
196
|
+
| `/cleto-ff` | Avanzar rápido con contexto recuperado |
|
|
197
|
+
| `/cleto-apply` | Aplicar el código del change |
|
|
198
|
+
| `/cleto-verify` | Verificar reglas, tests y memoria antes de cerrar |
|
|
199
|
+
| `/cleto-sync` | Sincronizar specs con el estado del repo |
|
|
200
|
+
| `/cleto-archive` | Archivar el change y registrar aprendizajes |
|
|
201
|
+
| `/cleto-continue`, `/cleto-explore`, `/cleto-onboard` | Retomar, explorar y orientarse en el proyecto |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 🔗 Azure DevOps (Opcional)
|
|
206
|
+
|
|
207
|
+
Por defecto, los comandos asumen el uso de **GitHub** (`ancleto-pr`). Si tu equipo utiliza Azure DevOps:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
ancleto init --with-azure
|
|
211
|
+
```
|
|
115
212
|
|
|
116
|
-
|
|
117
|
-
- [x] Agents/skills/commands adaptados (sin referencias corporativas)
|
|
118
|
-
- [x] Motor de descubrimiento (`ancleto discovery`, Repomix + `--check` por hash)
|
|
119
|
-
- [x] Skills base: `triage-clarifier`, `openspec-recall`, `openspec-sync-specs`
|
|
120
|
-
- [x] Motor de memoria core (v0.2.0): `.ancleto/memory.db`, 3 tools, supersesión atómica
|
|
213
|
+
Esto escribe `azure.enabled: true` en tu `.ancletorc`. Solo deberás completar la sección de Azure en el archivo `PRODUCT.md` e instalar su extensión (`az extension add --name azure-devops`).
|
package/agents/spec-writer.md
CHANGED
|
@@ -28,7 +28,7 @@ Generate an OpenSpec change in:
|
|
|
28
28
|
|
|
29
29
|
- `openspec/changes/{change-name}/`
|
|
30
30
|
|
|
31
|
-
using the `
|
|
31
|
+
using the `ancleto-workflow` skill and the conventions of:
|
|
32
32
|
|
|
33
33
|
- `AGENTS.md`
|
|
34
34
|
|
|
@@ -36,7 +36,7 @@ using the `openspec-workflow` skill and the conventions of:
|
|
|
36
36
|
|
|
37
37
|
1. Use the repository context received in the delegation, including its cited source paths and seed state; exploratory sweeping is prohibited. You MAY open a specific path that the received context cites when a detail needs confirmation.
|
|
38
38
|
2. Read relevant source-of-truth specs in `openspec/specs/` when they exist
|
|
39
|
-
3. Load and follow the `
|
|
39
|
+
3. Load and follow the `ancleto-workflow` skill
|
|
40
40
|
4. Create a clear `change-name`
|
|
41
41
|
5. Generate the minimum correct set of artifacts for the requested change:
|
|
42
42
|
- `proposal.md`
|
|
@@ -4,7 +4,7 @@ description: Implement tasks from an OpenSpec change (Experimental)
|
|
|
4
4
|
|
|
5
5
|
Implement tasks from an OpenSpec change.
|
|
6
6
|
|
|
7
|
-
**Input**: Optionally specify a change name (e.g., `/
|
|
7
|
+
**Input**: Optionally specify a change name (e.g., `/cleto-apply add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ Implement tasks from an OpenSpec change.
|
|
|
16
16
|
- Auto-select if only one active change exists
|
|
17
17
|
- If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select
|
|
18
18
|
|
|
19
|
-
Always announce: "Using change: <name>" and how to override (e.g., `/
|
|
19
|
+
Always announce: "Using change: <name>" and how to override (e.g., `/cleto-apply <other>`).
|
|
20
20
|
|
|
21
21
|
2. **Check status to understand the schema**
|
|
22
22
|
|
|
@@ -44,7 +44,7 @@ Implement tasks from an OpenSpec change.
|
|
|
44
44
|
|
|
45
45
|
**Handle states:**
|
|
46
46
|
|
|
47
|
-
- If `state: "blocked"` (missing artifacts): show message, suggest using `/
|
|
47
|
+
- If `state: "blocked"` (missing artifacts): show message, suggest using `/cleto-continue`
|
|
48
48
|
- If `state: "all_done"`: congratulate, suggest archive
|
|
49
49
|
- Otherwise: proceed to implementation
|
|
50
50
|
|
|
@@ -119,7 +119,7 @@ Working on task 4/7: <task description>
|
|
|
119
119
|
- [x] Task 2
|
|
120
120
|
...
|
|
121
121
|
|
|
122
|
-
All tasks complete! You can archive this change with `/
|
|
122
|
+
All tasks complete! You can archive this change with `/cleto-archive`.
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**Output On Pause (Issue Encountered)**
|
|
@@ -4,7 +4,7 @@ description: Archive a completed change in the experimental workflow
|
|
|
4
4
|
|
|
5
5
|
Archive a completed change in the experimental workflow.
|
|
6
6
|
|
|
7
|
-
**Input**: Optionally specify a change name after `/
|
|
7
|
+
**Input**: Optionally specify a change name after `/cleto-archive` (e.g., `/cleto-archive add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -61,7 +61,7 @@ Archive a completed change in the experimental workflow.
|
|
|
61
61
|
- If changes needed: "Sync now (recommended)", "Archive without syncing"
|
|
62
62
|
- If already synced: "Archive now", "Sync anyway", "Cancel"
|
|
63
63
|
|
|
64
|
-
If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke
|
|
64
|
+
If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke ancleto-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
|
|
65
65
|
|
|
66
66
|
5. **Perform the archive**
|
|
67
67
|
|
|
@@ -167,5 +167,5 @@ Target archive directory already exists.
|
|
|
167
167
|
- Don't block archive on warnings - just inform and confirm
|
|
168
168
|
- Preserve .openspec.yaml when moving to archive (it moves with the directory)
|
|
169
169
|
- Show clear summary of what happened
|
|
170
|
-
- If sync is requested, use the Skill tool to invoke `
|
|
170
|
+
- If sync is requested, use the Skill tool to invoke `ancleto-sync-specs` (agent-driven)
|
|
171
171
|
- If delta specs exist, always run the sync assessment and show the combined summary before prompting
|
|
@@ -124,7 +124,7 @@ This skill allows you to batch-archive changes, handling spec conflicts intellig
|
|
|
124
124
|
|
|
125
125
|
a. **Sync specs** if delta specs exist:
|
|
126
126
|
|
|
127
|
-
- Use the
|
|
127
|
+
- Use the ancleto-sync-specs approach (agent-driven intelligent merge)
|
|
128
128
|
- For conflicts, apply in resolved order
|
|
129
129
|
- Track if sync was done
|
|
130
130
|
|
|
@@ -4,7 +4,7 @@ description: Continue working on a change - create the next artifact (Experiment
|
|
|
4
4
|
|
|
5
5
|
Continue working on a change by creating the next artifact.
|
|
6
6
|
|
|
7
|
-
**Input**: Optionally specify a change name after `/
|
|
7
|
+
**Input**: Optionally specify a change name after `/cleto-continue` (e.g., `/cleto-continue add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -53,7 +53,7 @@ Continue working on a change by creating the next artifact.
|
|
|
53
53
|
|
|
54
54
|
- Congratulate the user
|
|
55
55
|
- Show final status including the schema used
|
|
56
|
-
- Suggest: "All artifacts created! You can now implement this change with `/
|
|
56
|
+
- Suggest: "All artifacts created! You can now implement this change with `/cleto-apply` or archive it with `/cleto-archive`."
|
|
57
57
|
- STOP
|
|
58
58
|
|
|
59
59
|
***
|
|
@@ -102,7 +102,7 @@ After each invocation, show:
|
|
|
102
102
|
- Schema workflow being used
|
|
103
103
|
- Current progress (N/M complete)
|
|
104
104
|
- What artifacts are now unlocked
|
|
105
|
-
- Prompt: "Run `/
|
|
105
|
+
- Prompt: "Run `/cleto-continue` to create the next artifact"
|
|
106
106
|
|
|
107
107
|
**Artifact Creation Guidelines**
|
|
108
108
|
|
|
@@ -8,7 +8,7 @@ Enter explore mode. Think deeply. Visualize freely. Follow the conversation wher
|
|
|
8
8
|
|
|
9
9
|
**This is a stance, not a workflow.** There are no fixed steps, no required sequence, no mandatory outputs. You're a thinking partner helping the user explore.
|
|
10
10
|
|
|
11
|
-
**Input**: The argument after `/
|
|
11
|
+
**Input**: The argument after `/cleto-explore` is whatever the user wants to think about. Could be:
|
|
12
12
|
|
|
13
13
|
- A vague idea: "real-time collaboration"
|
|
14
14
|
- A specific problem: "the auth system is getting unwieldy"
|
|
@@ -4,7 +4,7 @@ description: Create a change and generate all artifacts needed for implementatio
|
|
|
4
4
|
|
|
5
5
|
Fast-forward through artifact creation - generate everything needed to start implementation.
|
|
6
6
|
|
|
7
|
-
**Input**: The argument after `/
|
|
7
|
+
**Input**: The argument after `/cleto-ff` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -108,7 +108,7 @@ After completing all artifacts, summarize:
|
|
|
108
108
|
- Change name and location
|
|
109
109
|
- List of artifacts created with brief descriptions
|
|
110
110
|
- What's ready: "All artifacts created! Ready for implementation."
|
|
111
|
-
- Prompt: "Run `/
|
|
111
|
+
- Prompt: "Run `/cleto-apply` to start implementing."
|
|
112
112
|
|
|
113
113
|
**Artifact Creation Guidelines**
|
|
114
114
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Start a new change using the experimental artifact workflow
|
|
2
|
+
description: Start a new change using the experimental artifact workflow
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
Start a new change using the experimental artifact-driven approach.
|
|
6
6
|
|
|
7
|
-
**Input**: The argument after `/
|
|
7
|
+
**Input**: The argument after `/cleto-new` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
8
8
|
|
|
9
9
|
**Steps**
|
|
10
10
|
|
|
@@ -106,12 +106,12 @@ After completing the steps, summarize:
|
|
|
106
106
|
- Schema/workflow being used and its artifact sequence
|
|
107
107
|
- Current status (0/N artifacts complete)
|
|
108
108
|
- The template for the first artifact
|
|
109
|
-
- Prompt: "Ready to create the first artifact? Run `/
|
|
109
|
+
- Prompt: "Ready to create the first artifact? Run `/cleto-continue` or just describe what this change is about and I'll draft it."
|
|
110
110
|
|
|
111
111
|
**Guardrails**
|
|
112
112
|
|
|
113
113
|
- Do NOT create any artifacts yet - just show the instructions
|
|
114
114
|
- Do NOT advance beyond showing the first artifact template
|
|
115
115
|
- If the name is invalid (not kebab-case), ask for a valid name
|
|
116
|
-
- If a change with that name already exists, suggest using `/
|
|
116
|
+
- If a change with that name already exists, suggest using `/cleto-continue` instead
|
|
117
117
|
- Pass --schema if using a non-default workflow
|
|
@@ -19,7 +19,7 @@ openspec --version 2>&1 || echo "CLI_NOT_INSTALLED"
|
|
|
19
19
|
|
|
20
20
|
**If CLI not installed:**
|
|
21
21
|
|
|
22
|
-
> OpenSpec CLI is not installed. Install it first, then come back to `/
|
|
22
|
+
> OpenSpec CLI is not installed. Install it first, then come back to `/cleto-onboard`.
|
|
23
23
|
|
|
24
24
|
Stop here if not installed.
|
|
25
25
|
|
|
@@ -149,7 +149,7 @@ Spend 1-2 minutes investigating the relevant code:
|
|
|
149
149
|
│ [Optional: ASCII diagram if helpful] │
|
|
150
150
|
└─────────────────────────────────────────┘
|
|
151
151
|
|
|
152
|
-
Explore mode (`/
|
|
152
|
+
Explore mode (`/cleto-explore`) is for this kind of thinking—investigating before implementing. You can use it anytime you need to think through a problem.
|
|
153
153
|
|
|
154
154
|
Now let's create a change to hold our work.
|
|
155
155
|
```
|
|
@@ -483,25 +483,25 @@ This same rhythm works for any size change—a small fix or a major feature.
|
|
|
483
483
|
|
|
484
484
|
| Command | What it does |
|
|
485
485
|
|---------|--------------|
|
|
486
|
-
| `/
|
|
487
|
-
| `/
|
|
488
|
-
| `/
|
|
489
|
-
| `/
|
|
486
|
+
| `/cleto-propose` | Create a change and generate all artifacts |
|
|
487
|
+
| `/cleto-explore` | Think through problems before/during work |
|
|
488
|
+
| `/cleto-apply` | Implement tasks from a change |
|
|
489
|
+
| `/cleto-archive` | Archive a completed change |
|
|
490
490
|
|
|
491
491
|
**Additional commands:**
|
|
492
492
|
|
|
493
493
|
| Command | What it does |
|
|
494
494
|
|---------|--------------|
|
|
495
|
-
| `/
|
|
496
|
-
| `/
|
|
497
|
-
| `/
|
|
498
|
-
| `/
|
|
495
|
+
| `/cleto-new` | Start a new change, step through artifacts one at a time |
|
|
496
|
+
| `/cleto-continue` | Continue working on an existing change |
|
|
497
|
+
| `/cleto-ff` | Fast-forward: create all artifacts at once |
|
|
498
|
+
| `/cleto-verify` | Verify implementation matches artifacts |
|
|
499
499
|
|
|
500
500
|
---
|
|
501
501
|
|
|
502
502
|
## What's Next?
|
|
503
503
|
|
|
504
|
-
Try `/
|
|
504
|
+
Try `/cleto-propose` on something you actually want to build. You've got the rhythm now!
|
|
505
505
|
```
|
|
506
506
|
|
|
507
507
|
---
|
|
@@ -516,8 +516,8 @@ If the user says they need to stop, want to pause, or seem disengaged:
|
|
|
516
516
|
No problem! Your change is saved at `openspec/changes/<name>/`.
|
|
517
517
|
|
|
518
518
|
To pick up where we left off later:
|
|
519
|
-
- `/
|
|
520
|
-
- `/
|
|
519
|
+
- `/cleto-continue <name>` - Resume artifact creation
|
|
520
|
+
- `/cleto-apply <name>` - Jump to implementation (if tasks exist)
|
|
521
521
|
|
|
522
522
|
The work won't be lost. Come back whenever you're ready.
|
|
523
523
|
```
|
|
@@ -535,21 +535,21 @@ If the user says they just want to see the commands or skip the tutorial:
|
|
|
535
535
|
|
|
536
536
|
| Command | What it does |
|
|
537
537
|
|---------|--------------|
|
|
538
|
-
| `/
|
|
539
|
-
| `/
|
|
540
|
-
| `/
|
|
541
|
-
| `/
|
|
538
|
+
| `/cleto-propose <name>` | Create a change and generate all artifacts |
|
|
539
|
+
| `/cleto-explore` | Think through problems (no code changes) |
|
|
540
|
+
| `/cleto-apply <name>` | Implement tasks |
|
|
541
|
+
| `/cleto-archive <name>` | Archive when done |
|
|
542
542
|
|
|
543
543
|
**Additional commands:**
|
|
544
544
|
|
|
545
545
|
| Command | What it does |
|
|
546
546
|
|---------|--------------|
|
|
547
|
-
| `/
|
|
548
|
-
| `/
|
|
549
|
-
| `/
|
|
550
|
-
| `/
|
|
547
|
+
| `/cleto-new <name>` | Start a new change, step by step |
|
|
548
|
+
| `/cleto-continue <name>` | Continue an existing change |
|
|
549
|
+
| `/cleto-ff <name>` | Fast-forward: all artifacts at once |
|
|
550
|
+
| `/cleto-verify <name>` | Verify implementation |
|
|
551
551
|
|
|
552
|
-
Try `/
|
|
552
|
+
Try `/cleto-propose` to start your first change.
|
|
553
553
|
```
|
|
554
554
|
|
|
555
555
|
Exit gracefully.
|
|
@@ -10,11 +10,11 @@ I'll create a change with artifacts:
|
|
|
10
10
|
- design.md (how)
|
|
11
11
|
- tasks.md (implementation steps)
|
|
12
12
|
|
|
13
|
-
When ready to implement, run /
|
|
13
|
+
When ready to implement, run /cleto-apply
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
**Input**: The argument after `/
|
|
17
|
+
**Input**: The argument after `/cleto-propose` is the change name (kebab-case), OR a description of what the user wants to build.
|
|
18
18
|
|
|
19
19
|
**Steps**
|
|
20
20
|
|
|
@@ -118,7 +118,7 @@ After completing all artifacts, summarize:
|
|
|
118
118
|
- Change name and location
|
|
119
119
|
- List of artifacts created with brief descriptions
|
|
120
120
|
- What's ready: "All artifacts created! Ready for implementation."
|
|
121
|
-
- Prompt: "Run `/
|
|
121
|
+
- Prompt: "Run `/cleto-apply` to start implementing."
|
|
122
122
|
|
|
123
123
|
**Artifact Creation Guidelines**
|
|
124
124
|
|
|
@@ -4,13 +4,13 @@ description: Recuperar memoria episódica del proyecto (.ancleto/memory.db) sobr
|
|
|
4
4
|
|
|
5
5
|
Recuperar de la memoria compartida del repositorio lo que se aprendió en changes anteriores sobre un tema.
|
|
6
6
|
|
|
7
|
-
Este comando es la invocación **a mano** de la memoria. La invocación automática vive dentro de `/
|
|
7
|
+
Este comando es la invocación **a mano** de la memoria. La invocación automática vive dentro de `/cleto-new`, `/cleto-propose` y `/cleto-ff`, que ejecutan el mismo paso al iniciar un change. El contrato completo está en la skill `ancleto-recall`.
|
|
8
8
|
|
|
9
|
-
**Input**: el argumento después de `/
|
|
9
|
+
**Input**: el argumento después de `/cleto-recall` es el tema a consultar. Por ejemplo:
|
|
10
10
|
|
|
11
|
-
- `/
|
|
12
|
-
- `/
|
|
13
|
-
- `/
|
|
11
|
+
- `/cleto-recall autenticación JWT en LiteLLM`
|
|
12
|
+
- `/cleto-recall por qué elegimos pgvector`
|
|
13
|
+
- `/cleto-recall` (sin argumento — ver paso 1)
|
|
14
14
|
|
|
15
15
|
**Steps**
|
|
16
16
|
|
|
@@ -53,5 +53,5 @@ Este comando es la invocación **a mano** de la memoria. La invocación automát
|
|
|
53
53
|
|
|
54
54
|
**Referencia**
|
|
55
55
|
|
|
56
|
-
- Contrato completo: skill `
|
|
56
|
+
- Contrato completo: skill `ancleto-recall`
|
|
57
57
|
- Contrato de lectura y modelo de scope: `AGENTS.md` (Memoria Persistente)
|
|
@@ -6,7 +6,7 @@ Sync delta specs from a change to main specs.
|
|
|
6
6
|
|
|
7
7
|
This is an **agent-driven** operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
|
|
8
8
|
|
|
9
|
-
**Input**: Optionally specify a change name after `/
|
|
9
|
+
**Input**: Optionally specify a change name after `/cleto-sync` (e.g., `/cleto-sync add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
10
10
|
|
|
11
11
|
**Steps**
|
|
12
12
|
|