specleap-framework 2.1.10 → 2.1.12

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/CHANGELOG.md CHANGED
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.1.12] - 2026-04-30
11
+
12
+ ### Added
13
+
14
+ - **`scripts/convert-docs.sh`** — wrapper sobre [Microsoft markitdown](https://github.com/microsoft/markitdown) para convertir PDF, Word, PowerPoint, Excel, HTML, CSV, JSON, XML, EPub, imágenes (OCR) y audio (transcripción) a Markdown que el framework pueda usar como contexto. markitdown es una **dependencia opcional** (no se incluye en el tarball npm, no se instala automáticamente): si no está presente, el script muestra el mensaje de instalación (`pip install markitdown` o `uv tool install markitdown`) y termina con exit 1 sin tocar ningún archivo. Bilingüe ES/EN según `SPECLEAP_LANG`.
15
+ - Acepta tanto un archivo individual (`brief.pdf` → `brief.md`) como una carpeta entera (recursivo, max 3 niveles, filtra por extensiones soportadas).
16
+ - Documentación en `README.md` (sección "Convertir documentos a Markdown") y `SETUP.md` (sección "Herramientas Opcionales") con caso de uso típico (briefs de cliente, user stories exportadas, reference docs).
17
+
18
+ ### Notes
19
+
20
+ - Decisión de diseño: markitdown se queda como opcional para no imponer Python 3.10+ a usuarios que no lo necesiten. SpecLeap solo requiere bash + node + git + curl + jq como antes.
21
+ - Caso de uso típico: cliente entrega brief en PDF → `bash scripts/convert-docs.sh brief.pdf` → `brief.md` → se referencia desde el cuestionario inicial. El AI gana contexto rico desde el primer comando.
22
+
23
+ ## [2.1.11] - 2026-04-30
24
+
25
+ ### Fixed
26
+
27
+ - **`setup.sh` was lying about how many Agent Skills get installed.** The "Paso 4/6" header correctly read "34 skills" but the description right below said "SpecLeap incluye 20 Agent Skills profesionales" with a four-bullet breakdown that summed to exactly 20 — leftover text from before the 14 TIER 2 skills were added in v2.1.0. Reported by Styng during v2.1.10 testing.
28
+
29
+ #### What the user sees now
30
+
31
+ - The full count (34) is stated up front.
32
+ - TIER 1 (20) is broken down into its 6 actual categories: Consistency (3), Backend/Dev (7), Design (4), DevOps (3), Testing (2), Frontend (1).
33
+ - TIER 2 (14) is broken down into its 8 actual categories: Design/Frontend advanced (3), Mobile (2), Security audits/GDPR (2), Testing advanced (2), Infrastructure (2), Brainstorming (1), PDF (1), Documentation (1).
34
+ - Both blocks are localised (ES + EN) and visually grouped with bold tier headers so the user can scan them quickly before deciding whether to install.
35
+
36
+ The numbers now match exactly what `scripts/install-skills.sh` actually downloads from upstream repos (obra/superpowers, jeffallan/claude-skills, anthropics/skills, vercel-labs/agent-*, alirezarezvani/claude-skills).
37
+
10
38
  ## [2.1.10] - 2026-04-30
11
39
 
12
40
  ### Added
package/README.md CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  SpecLeap convierte cualquier IDE con asistente de IA en un entorno de desarrollo spec-first. Combina un contrato de proyecto inmutable, agentes conversacionales especializados, 34 Agent Skills profesionales y un pipeline de validación en tres capas para entregar código consistente y probado sin improvisación.
22
22
 
23
- **Versión actual:** 2.1.10 · **Licencia:** MIT · **Autor:** Styng Arias ([ConceptualCreative](https://conceptualcreative.com))
23
+ **Versión actual:** 2.1.12 · **Licencia:** MIT · **Autor:** Styng Arias ([ConceptualCreative](https://conceptualcreative.com))
24
24
 
25
25
  ---
26
26
 
@@ -245,6 +245,41 @@ Ambos modos coexisten. Lo habitual es trabajar conversacionalmente en el día a
245
245
 
246
246
  ---
247
247
 
248
+ ## Convertir documentos a Markdown (opcional)
249
+
250
+ Si tienes el brief de un cliente en PDF, user stories en Word, o specs antiguas en Excel, SpecLeap incluye un wrapper sobre [Microsoft markitdown](https://github.com/microsoft/markitdown) para convertirlos a Markdown que el framework pueda usar como contexto.
251
+
252
+ **Instalación de markitdown** (dependencia opcional):
253
+
254
+ ```bash
255
+ pip install markitdown
256
+ # o, si usas uv:
257
+ uv tool install markitdown
258
+ ```
259
+
260
+ Requiere Python 3.10+. No es obligatorio: SpecLeap funciona perfectamente sin él. Solo lo necesitas si vas a alimentar archivos no-Markdown.
261
+
262
+ **Uso:**
263
+
264
+ ```bash
265
+ # Un archivo individual
266
+ bash scripts/convert-docs.sh brief.pdf
267
+ # → genera brief.md
268
+
269
+ # Una carpeta entera (recursivo, max 3 niveles)
270
+ bash scripts/convert-docs.sh ./briefings/
271
+ # → convierte todos los pdf/docx/xlsx/pptx/html/csv/json/xml/epub que encuentre
272
+
273
+ # Ayuda
274
+ bash scripts/convert-docs.sh --help
275
+ ```
276
+
277
+ Formatos soportados: **PDF, Word, PowerPoint, Excel, HTML, CSV, JSON, XML, EPub, imágenes (con OCR), audio (con transcripción)**.
278
+
279
+ Si markitdown no está instalado, el script muestra un mensaje claro con las instrucciones de instalación y termina sin tocar nada.
280
+
281
+ ---
282
+
248
283
  ## Preguntas Frecuentes (FAQ)
249
284
 
250
285
  Las preguntas habituales están respondidas en archivos dedicados:
package/SETUP.md CHANGED
@@ -254,6 +254,50 @@ El commit es rechazado. Corrige y vuelve a intentar.
254
254
 
255
255
  ---
256
256
 
257
+ ## 🔄 Herramientas Opcionales
258
+
259
+ ### markitdown — Convertir PDF/Word/Excel a Markdown
260
+
261
+ Útil cuando un cliente te entrega el brief en PDF, las user stories en Word, o cualquier doc de referencia que quieras alimentar a SpecLeap como contexto. **No es obligatorio**: SpecLeap funciona sin él, sólo lo necesitas si trabajas con archivos no-Markdown.
262
+
263
+ **Requisito previo:** Python 3.10 o superior.
264
+
265
+ **Instalación:**
266
+
267
+ ```bash
268
+ pip install markitdown
269
+ # o, si prefieres uv:
270
+ uv tool install markitdown
271
+ ```
272
+
273
+ **Uso (vía wrapper de SpecLeap):**
274
+
275
+ ```bash
276
+ # Un archivo
277
+ bash scripts/convert-docs.sh ./brief-cliente.pdf
278
+
279
+ # Una carpeta entera (max 3 niveles de profundidad)
280
+ bash scripts/convert-docs.sh ./referencias/
281
+
282
+ # Ayuda
283
+ bash scripts/convert-docs.sh --help
284
+ ```
285
+
286
+ **Formatos soportados:** PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), HTML, CSV, JSON, XML, EPub, imágenes (con OCR), audio (con transcripción).
287
+
288
+ Si markitdown no está instalado, el script muestra el mensaje de instalación y termina con exit 1. No toca ningún archivo. Es seguro ejecutarlo aunque no lo tengas.
289
+
290
+ **Caso típico de uso en SpecLeap:**
291
+
292
+ 1. Recibes el brief de un cliente en PDF.
293
+ 2. `bash scripts/convert-docs.sh ./brief.pdf` → genera `brief.md`.
294
+ 3. Lo pegas o referencias en el cuestionario al responder "¿Qué hace este proyecto?" / "¿Qué problema resuelve?".
295
+ 4. El AI tiene contexto rico desde el primer comando.
296
+
297
+ Más info sobre markitdown: https://github.com/microsoft/markitdown
298
+
299
+ ---
300
+
257
301
  ## 📚 Documentación Completa
258
302
 
259
303
  ### Guías Detalladas
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specleap-framework",
3
- "version": "2.1.10",
3
+ "version": "2.1.12",
4
4
  "description": "Spec-Driven Development Framework — Transform VSCode, Cursor, JetBrains into spec-first development machines",
5
5
  "keywords": [
6
6
  "spec-driven-development",
@@ -0,0 +1,165 @@
1
+ #!/usr/bin/env bash
2
+ # SpecLeap — Wrapper para convertir documentos a Markdown.
3
+ #
4
+ # Usa Microsoft markitdown (https://github.com/microsoft/markitdown) por
5
+ # debajo. markitdown es una dependencia OPCIONAL: si no está instalada,
6
+ # este script muestra cómo instalarla y termina sin tocar nada.
7
+ #
8
+ # Formatos soportados (por markitdown): PDF, Word (.docx), PowerPoint
9
+ # (.pptx), Excel (.xlsx), HTML, imágenes (con OCR), audio (con
10
+ # transcripción), CSV, JSON, XML, ZIP, EPub, YouTube URLs.
11
+ #
12
+ # Uso:
13
+ # bash scripts/convert-docs.sh <archivo-o-carpeta>
14
+ #
15
+ # Ejemplos:
16
+ # bash scripts/convert-docs.sh brief.pdf
17
+ # bash scripts/convert-docs.sh ./docs/
18
+ # bash scripts/convert-docs.sh user-stories.docx
19
+
20
+ set -euo pipefail
21
+
22
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23
+
24
+ # ─── Detectar idioma ──────────────────────────────────────────────────────
25
+ SPECLEAP_LANG="${SPECLEAP_LANG:-}"
26
+
27
+ if [ -z "$SPECLEAP_LANG" ] && [ -f "$SCRIPT_DIR/../.specleap/config.json" ]; then
28
+ SPECLEAP_LANG=$(grep -o '"language": "[^"]*"' "$SCRIPT_DIR/../.specleap/config.json" 2>/dev/null | cut -d'"' -f4 || true)
29
+ fi
30
+ SPECLEAP_LANG="${SPECLEAP_LANG:-es}"
31
+
32
+ # ─── Mensajes bilingües ───────────────────────────────────────────────────
33
+ if [ "$SPECLEAP_LANG" = "en" ]; then
34
+ MSG_USAGE="Usage: bash scripts/convert-docs.sh <file-or-directory>"
35
+ MSG_NOT_INSTALLED="markitdown is not installed."
36
+ MSG_INSTALL_TIP="Install with: pip install markitdown (or: uv tool install markitdown)"
37
+ MSG_PYTHON_REQ="Requires Python 3.10 or higher."
38
+ MSG_DOCS="Docs: https://github.com/microsoft/markitdown"
39
+ MSG_CONVERTING="Converting"
40
+ MSG_DONE="Done"
41
+ MSG_NOT_FOUND="File or directory not found"
42
+ MSG_CONVERTED_TO="→"
43
+ MSG_NO_FILES="No convertible files found in"
44
+ MSG_SUMMARY="Summary"
45
+ MSG_FAIL="FAIL"
46
+ MSG_PROCESSING_DIR="Processing directory"
47
+ MSG_HELP_INTRO="Convert documents (PDF, Word, Excel, HTML, etc.) to Markdown using markitdown."
48
+ MSG_HELP_FORMATS="Supported formats: PDF, DOCX, PPTX, XLSX, HTML, CSV, JSON, XML, EPub, images, audio."
49
+ MSG_HELP_EXAMPLES="Examples:"
50
+ else
51
+ MSG_USAGE="Uso: bash scripts/convert-docs.sh <archivo-o-carpeta>"
52
+ MSG_NOT_INSTALLED="markitdown no está instalado."
53
+ MSG_INSTALL_TIP="Instala con: pip install markitdown (o: uv tool install markitdown)"
54
+ MSG_PYTHON_REQ="Requiere Python 3.10 o superior."
55
+ MSG_DOCS="Docs: https://github.com/microsoft/markitdown"
56
+ MSG_CONVERTING="Convirtiendo"
57
+ MSG_DONE="Listo"
58
+ MSG_NOT_FOUND="Archivo o carpeta no encontrado"
59
+ MSG_CONVERTED_TO="→"
60
+ MSG_NO_FILES="No se encontraron archivos convertibles en"
61
+ MSG_SUMMARY="Resumen"
62
+ MSG_FAIL="FALLO"
63
+ MSG_PROCESSING_DIR="Procesando carpeta"
64
+ MSG_HELP_INTRO="Convierte documentos (PDF, Word, Excel, HTML, etc.) a Markdown usando markitdown."
65
+ MSG_HELP_FORMATS="Formatos soportados: PDF, DOCX, PPTX, XLSX, HTML, CSV, JSON, XML, EPub, imágenes, audio."
66
+ MSG_HELP_EXAMPLES="Ejemplos:"
67
+ fi
68
+
69
+ # ─── Colores ──────────────────────────────────────────────────────────────
70
+ if [[ -t 1 ]]; then
71
+ RED='\033[0;31m'
72
+ GREEN='\033[0;32m'
73
+ YELLOW='\033[1;33m'
74
+ CYAN='\033[0;36m'
75
+ BOLD='\033[1m'
76
+ NC='\033[0m'
77
+ else
78
+ RED=''; GREEN=''; YELLOW=''; CYAN=''; BOLD=''; NC=''
79
+ fi
80
+
81
+ # ─── Help ─────────────────────────────────────────────────────────────────
82
+ show_help() {
83
+ echo "$MSG_HELP_INTRO"
84
+ echo ""
85
+ echo "$MSG_USAGE"
86
+ echo ""
87
+ echo "$MSG_HELP_FORMATS"
88
+ echo ""
89
+ echo "$MSG_HELP_EXAMPLES"
90
+ echo " bash scripts/convert-docs.sh brief.pdf"
91
+ echo " bash scripts/convert-docs.sh ./docs/"
92
+ echo " bash scripts/convert-docs.sh user-stories.docx"
93
+ echo ""
94
+ echo "$MSG_DOCS"
95
+ }
96
+
97
+ if [ $# -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
98
+ show_help
99
+ exit 0
100
+ fi
101
+
102
+ # ─── Verificar markitdown instalado ───────────────────────────────────────
103
+ if ! command -v markitdown >/dev/null 2>&1; then
104
+ echo -e "${RED}❌ $MSG_NOT_INSTALLED${NC}"
105
+ echo ""
106
+ echo -e "${YELLOW}💡 $MSG_INSTALL_TIP${NC}"
107
+ echo -e " $MSG_PYTHON_REQ"
108
+ echo ""
109
+ echo -e "${CYAN}📖 $MSG_DOCS${NC}"
110
+ exit 1
111
+ fi
112
+
113
+ INPUT="$1"
114
+ if [ ! -e "$INPUT" ]; then
115
+ echo -e "${RED}❌ $MSG_NOT_FOUND: $INPUT${NC}"
116
+ exit 1
117
+ fi
118
+
119
+ # ─── Conversión ────────────────────────────────────────────────────────────
120
+ CONVERTED_OK=0
121
+ CONVERTED_FAIL=0
122
+
123
+ convert_one() {
124
+ local file="$1"
125
+ local base="${file%.*}"
126
+ local out="${base}.md"
127
+
128
+ echo -ne " ${CYAN}→${NC} $MSG_CONVERTING $(basename "$file") ... "
129
+ if markitdown "$file" > "$out" 2>/dev/null; then
130
+ echo -e "${GREEN}✅${NC} $MSG_CONVERTED_TO $(basename "$out")"
131
+ CONVERTED_OK=$((CONVERTED_OK + 1))
132
+ else
133
+ echo -e "${RED}❌ $MSG_FAIL${NC}"
134
+ # No dejar archivo .md basura si falló
135
+ rm -f "$out"
136
+ CONVERTED_FAIL=$((CONVERTED_FAIL + 1))
137
+ fi
138
+ }
139
+
140
+ if [ -f "$INPUT" ]; then
141
+ convert_one "$INPUT"
142
+ elif [ -d "$INPUT" ]; then
143
+ echo -e "${BOLD}📁 $MSG_PROCESSING_DIR: $INPUT${NC}"
144
+ echo ""
145
+
146
+ # Extensiones que markitdown soporta
147
+ EXTENSIONS=(pdf docx xlsx pptx html htm csv json xml epub rtf odt ods odp txt)
148
+ FOUND_ANY=0
149
+
150
+ for ext in "${EXTENSIONS[@]}"; do
151
+ while IFS= read -r -d '' file; do
152
+ convert_one "$file"
153
+ FOUND_ANY=1
154
+ done < <(find "$INPUT" -maxdepth 3 -type f -iname "*.${ext}" -print0 2>/dev/null)
155
+ done
156
+
157
+ if [ $FOUND_ANY -eq 0 ]; then
158
+ echo -e "${YELLOW}⚠️ $MSG_NO_FILES $INPUT${NC}"
159
+ echo " (pdf, docx, xlsx, pptx, html, csv, json, xml, epub, ...)"
160
+ exit 0
161
+ fi
162
+ fi
163
+
164
+ echo ""
165
+ echo -e "${GREEN}✅ $MSG_DONE${NC} — $MSG_SUMMARY: ${BOLD}$CONVERTED_OK${NC} OK, ${BOLD}$CONVERTED_FAIL${NC} $MSG_FAIL"
package/setup.sh CHANGED
@@ -395,20 +395,48 @@ echo -e "${CYAN}${LINE}${NC}"
395
395
  echo ""
396
396
 
397
397
  if [ "$LANG" = "es" ]; then
398
- echo "SpecLeap incluye 20 Agent Skills profesionales:"
399
- echo " • 5 Seguridad (OWASP, STRIDE)"
400
- echo " 3 Consistencia (verification-before-completion)"
401
- echo " 6 Diseño (Vercel-style, UI/UX)"
402
- echo " 6 Backend/Dev (Laravel, React, TDD)"
398
+ echo "SpecLeap incluye 34 Agent Skills profesionales:"
399
+ echo ""
400
+ echo " ${BOLD}TIER 1 (20 skills):${NC}"
401
+ echo " 3 Consistencia (verification-before-completion, code review)"
402
+ echo " 7 Backend/Dev (Laravel, React, Python, API, DB)"
403
+ echo " • 4 Diseño (Vercel-style, UI/UX, Canvas)"
404
+ echo " • 3 DevOps (Cloud, Architecture)"
405
+ echo " • 2 Testing (TDD, Code Review)"
406
+ echo " • 1 Frontend (TypeScript)"
407
+ echo ""
408
+ echo " ${BOLD}TIER 2 (14 skills):${NC}"
409
+ echo " • 3 Design/Frontend avanzado (Vercel agent-browser)"
410
+ echo " • 2 Mobile (React Native, Flutter)"
411
+ echo " • 2 Security (audits, GDPR/DSGVO)"
412
+ echo " • 2 Testing avanzado (Playwright, Test Master)"
413
+ echo " • 2 Infrastructure (Terraform, Monitoring)"
414
+ echo " • 1 Brainstorming"
415
+ echo " • 1 PDF"
416
+ echo " • 1 Documentation"
403
417
  echo ""
404
418
  echo "⏱️ Tiempo: 2-3 minutos"
405
419
  echo ""
406
420
  else
407
- echo "SpecLeap includes 20 professional Agent Skills:"
408
- echo " • 5 Security (OWASP, STRIDE)"
409
- echo " 3 Consistency (verification-before-completion)"
410
- echo " 6 Design (Vercel-style, UI/UX)"
411
- echo " 6 Backend/Dev (Laravel, React, TDD)"
421
+ echo "SpecLeap includes 34 professional Agent Skills:"
422
+ echo ""
423
+ echo " ${BOLD}TIER 1 (20 skills):${NC}"
424
+ echo " 3 Consistency (verification-before-completion, code review)"
425
+ echo " 7 Backend/Dev (Laravel, React, Python, API, DB)"
426
+ echo " • 4 Design (Vercel-style, UI/UX, Canvas)"
427
+ echo " • 3 DevOps (Cloud, Architecture)"
428
+ echo " • 2 Testing (TDD, Code Review)"
429
+ echo " • 1 Frontend (TypeScript)"
430
+ echo ""
431
+ echo " ${BOLD}TIER 2 (14 skills):${NC}"
432
+ echo " • 3 Design/Frontend advanced (Vercel agent-browser)"
433
+ echo " • 2 Mobile (React Native, Flutter)"
434
+ echo " • 2 Security (audits, GDPR/DSGVO)"
435
+ echo " • 2 Testing advanced (Playwright, Test Master)"
436
+ echo " • 2 Infrastructure (Terraform, Monitoring)"
437
+ echo " • 1 Brainstorming"
438
+ echo " • 1 PDF"
439
+ echo " • 1 Documentation"
412
440
  echo ""
413
441
  echo "⏱️ Time: 2-3 minutes"
414
442
  echo ""