@icarusmx/creta 1.4.18 → 1.5.1
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 +395 -0
- package/bin/creta.js +1645 -25
- package/docs/diagrams/README.md +131 -0
- package/docs/diagrams/architecture-overview.mmd +71 -0
- package/docs/diagrams/architecture.svg +1 -0
- package/docs/diagrams/ecosystem-integration.mmd +49 -0
- package/docs/diagrams/evolution-phases.mmd +49 -0
- package/docs/diagrams/output.svg +1 -0
- package/docs/diagrams/phase2-command-help-flow.mmd +51 -0
- package/docs/diagrams/user-journey.mmd +78 -0
- package/lib/cli/index.js +6 -0
- package/lib/customizers/TerminalCustomizer.js +186 -15
- package/lib/data/command-help/cd.js +47 -0
- package/lib/data/command-help/git-add.js +43 -0
- package/lib/data/command-help/git-commit.js +39 -0
- package/lib/data/command-help/git-log.js +47 -0
- package/lib/data/command-help/git-push.js +35 -0
- package/lib/data/command-help/git-status.js +31 -0
- package/lib/data/command-help/index.js +30 -0
- package/lib/data/command-help/ls.js +51 -0
- package/lib/data/command-help/mkdir.js +31 -0
- package/lib/data/command-help/touch.js +26 -0
- package/lib/data/command-help/wc.js +43 -0
- package/lib/data/messages.js +16 -4
- package/lib/executors/CommandHelpExecutor.js +93 -0
- package/lib/papers/AccessControl.js +121 -0
- package/lib/papers/PapersExecutor.js +276 -0
- package/package.json +1 -4
package/README.md
ADDED
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
# 🏛️ Creta CLI
|
|
2
|
+
|
|
3
|
+
**Creta** es el compañero CLI que evoluciona contigo - desde tus primeros comandos hasta tu carrera profesional.
|
|
4
|
+
|
|
5
|
+
> "Salgamos de este laberinto" 🏛️
|
|
6
|
+
|
|
7
|
+
## 🌱 Un CLI que crece con el desarrollador
|
|
8
|
+
|
|
9
|
+
Creta no es una herramienta que "terminas" y dejas atrás. Se adapta a tu nivel:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
🎓 Aprendiz → 💻 Desarrollador → 🏗️ Constructor
|
|
13
|
+
Learn interactively Quick references Professional workflow
|
|
14
|
+
creta sintaxis creta ls creta requirement
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Versión actual:** 1.4.16 (Phase 1 - Aprendiz)
|
|
18
|
+
**Próxima:** 1.5.0 (Phase 2 - Desarrollador)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Instalación
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Instalación global (recomendado)
|
|
26
|
+
npm install -g @icarusmx/creta
|
|
27
|
+
|
|
28
|
+
# Uso directo con npx (sin instalar)
|
|
29
|
+
npx @icarusmx/creta
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 🎓 Phase 1: Aprendiz (LIVE)
|
|
35
|
+
|
|
36
|
+
**Para estudiantes aprendiendo desde cero**
|
|
37
|
+
|
|
38
|
+
### El Flujo de Aprendizaje
|
|
39
|
+
|
|
40
|
+
Creta es parte de un ecosistema educativo que combina **Discord**, **CLI** y **videos**:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Discord Server
|
|
44
|
+
↓ Aprende tus primeros comandos
|
|
45
|
+
↓ Instala Node.js
|
|
46
|
+
↓
|
|
47
|
+
npx @icarusmx/creta
|
|
48
|
+
↓ Practica comandos interactivos
|
|
49
|
+
↓ Completa lecciones
|
|
50
|
+
↓ Obtén un hash especial
|
|
51
|
+
↓
|
|
52
|
+
Discord: /redeem <hash>
|
|
53
|
+
↓ Recibe link de YouTube oculto
|
|
54
|
+
↓
|
|
55
|
+
Videos educativos
|
|
56
|
+
↓ Aprende conceptos
|
|
57
|
+
↓ Regresa al CLI para practicar
|
|
58
|
+
↓
|
|
59
|
+
🔁 Ciclo continuo de aprendizaje
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Comandos de Aprendizaje
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Menú principal (empieza aquí)
|
|
66
|
+
creta
|
|
67
|
+
|
|
68
|
+
# Lecciones de sintaxis con práctica interactiva
|
|
69
|
+
creta sintaxis
|
|
70
|
+
|
|
71
|
+
# Explorar los 7 enunciados fundamentales (OOP)
|
|
72
|
+
creta enunciados
|
|
73
|
+
|
|
74
|
+
# Ver proyectos disponibles
|
|
75
|
+
creta proyectos
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 💻 Sistema de Práctica Interactiva
|
|
79
|
+
|
|
80
|
+
**Ejecuta comandos reales en sandboxes aislados:**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
creta sintaxis
|
|
84
|
+
# → Selecciona "Primeros comandos"
|
|
85
|
+
# → Ejecuta ls, mkdir, cd en entorno seguro
|
|
86
|
+
# → Validación estricta de sintaxis
|
|
87
|
+
# → Los cambios persisten entre pasos
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Características:**
|
|
91
|
+
- 🔒 **Seguro:** Todo ocurre en `/tmp/`, nunca toca tus archivos reales
|
|
92
|
+
- ✅ **Validación estricta:** Aprende la sintaxis exacta, sin atajos
|
|
93
|
+
- 🔁 **Estado persistente:** Los cambios se mantienen entre pasos
|
|
94
|
+
- 🧹 **Auto-limpieza:** Sandboxes se limpian automáticamente
|
|
95
|
+
|
|
96
|
+
### 📚 Curriculum Completo
|
|
97
|
+
|
|
98
|
+
**4 Lecciones de Sintaxis (con práctica interactiva):**
|
|
99
|
+
1. **Primeros comandos** - `ls`, `mkdir`, `cd` en sandbox real
|
|
100
|
+
2. **Git** - Control de versiones con definiciones rigurosas
|
|
101
|
+
3. **Combina comandos** - Standard streams (stdin/stdout/stderr) + piping
|
|
102
|
+
4. **Escribe scripts** - Automatización desde `echo` hasta scripts de deployment
|
|
103
|
+
|
|
104
|
+
**7 Enunciados Fundamentales (Conceptos OOP):**
|
|
105
|
+
1. Sistema - Descomposición de bibliotecas digitales
|
|
106
|
+
2. Solicitudes - Chat system object requests
|
|
107
|
+
3. Única forma - Cajas fuertes digitales
|
|
108
|
+
4. Firmas - Calculadora financiera
|
|
109
|
+
5. Conjunto - Music player interfaces
|
|
110
|
+
6. Énfasis - Banking system design
|
|
111
|
+
7. Objeto - Datos + procedimientos que operan sobre datos
|
|
112
|
+
|
|
113
|
+
### 🚀 Generación de Portafolios
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Crear portafolio personal (reto completo con instrucciones)
|
|
117
|
+
creta portafolio
|
|
118
|
+
|
|
119
|
+
# Nivel 1: Navbar completado
|
|
120
|
+
creta portafolio-1
|
|
121
|
+
|
|
122
|
+
# Nivel 2: Navbar + Hero completados
|
|
123
|
+
creta portafolio-2
|
|
124
|
+
|
|
125
|
+
# Nivel 3: Solución completa
|
|
126
|
+
creta portafolio-3
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Stack del portafolio:** SvelteKit 5 + Tailwind CSS 4
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 💻 Phase 2: Desarrollador (COMING SOON - v1.5.0)
|
|
134
|
+
|
|
135
|
+
**Para junior devs que necesitan referencias rápidas**
|
|
136
|
+
|
|
137
|
+
### Reemplaza `man` con ayuda en español
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# En lugar de: man ls
|
|
141
|
+
creta ls
|
|
142
|
+
# → Quick reference en español
|
|
143
|
+
# → Solo lo esencial (no 500 líneas)
|
|
144
|
+
# → Ejemplos prácticos reales
|
|
145
|
+
# → Link a lecciones relacionadas
|
|
146
|
+
|
|
147
|
+
# Funciona con cualquier comando
|
|
148
|
+
creta git status
|
|
149
|
+
creta mkdir
|
|
150
|
+
creta wc
|
|
151
|
+
creta grep
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Por qué mejor que `man`:
|
|
155
|
+
|
|
156
|
+
- 🇪🇸 **Documentación nativa en español** - Sin traducción mental
|
|
157
|
+
- 🎯 **Solo lo esencial** - No más walls of text de 500 líneas
|
|
158
|
+
- 💡 **Ejemplos prácticos** - Casos reales de tu contexto de estudiante
|
|
159
|
+
- 🔗 **Conectado a tu aprendizaje** - Links a lecciones si necesitas profundizar
|
|
160
|
+
- 🚀 **Sin context-switching** - No Google, no browser, solo terminal
|
|
161
|
+
|
|
162
|
+
**Status:** 🚧 En desarrollo - Ships en v1.5.0
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 🏗️ Phase 3: Constructor (VISION - v2.0.0+)
|
|
167
|
+
|
|
168
|
+
**Para profesionales trabajando en proyectos de Icarus**
|
|
169
|
+
|
|
170
|
+
### Asistente personalizado de workflow
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Autenticación (desbloquea features personalizados)
|
|
174
|
+
creta login
|
|
175
|
+
|
|
176
|
+
# Ver tu ticket actual (Jira-like en terminal)
|
|
177
|
+
creta requirement
|
|
178
|
+
# →
|
|
179
|
+
# 📋 Current Ticket: CRETA-142
|
|
180
|
+
# 🏷️ Add dark mode toggle to dashboard
|
|
181
|
+
# 👤 Assigned to: Guillermo
|
|
182
|
+
# ⏱️ Due: 2 days
|
|
183
|
+
# 📝 Description: Implement dark mode...
|
|
184
|
+
# 💡 Related docs: creta tailwind, creta svelte
|
|
185
|
+
|
|
186
|
+
# Revisar progreso y asignaciones
|
|
187
|
+
creta status
|
|
188
|
+
|
|
189
|
+
# Enviar trabajo completado
|
|
190
|
+
creta submit
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Features:**
|
|
194
|
+
- 🔐 Authentication con cuenta de Icarus
|
|
195
|
+
- 📋 Ticket management (agile workflow)
|
|
196
|
+
- 👥 Team workspace sync
|
|
197
|
+
- 📊 Progress tracking personalizado
|
|
198
|
+
|
|
199
|
+
**Status:** 🔮 Vision - Requiere infraestructura de autenticación
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 🛠️ Utilidades Actuales
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Sesión interactiva de programación con Claude
|
|
207
|
+
creta code
|
|
208
|
+
|
|
209
|
+
# Personalizar terminal con tema de Icarus
|
|
210
|
+
creta icarus-terminal
|
|
211
|
+
|
|
212
|
+
# Revertir personalización de terminal
|
|
213
|
+
creta revert-terminal
|
|
214
|
+
|
|
215
|
+
# Mostrar ayuda
|
|
216
|
+
creta help
|
|
217
|
+
creta ayuda
|
|
218
|
+
|
|
219
|
+
# Reiniciar estado de usuario (nombre, progreso, estadísticas)
|
|
220
|
+
creta reset
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 💾 Datos Locales
|
|
226
|
+
|
|
227
|
+
Creta almacena estos datos en tu sistema:
|
|
228
|
+
|
|
229
|
+
| Ubicación | Contenido | Limpieza |
|
|
230
|
+
|-----------|-----------|----------|
|
|
231
|
+
| `~/.creta/user.json` | Nombre, lecciones completadas, proyectos, estadísticas | `creta reset` |
|
|
232
|
+
| `/tmp/creta-practice-*` | Sesiones de práctica interactiva (sandboxes temporales) | Auto-limpieza al iniciar CLI |
|
|
233
|
+
| `{nombre}-portafolio/` | Proyectos generados por ti | Manual (son tus proyectos) |
|
|
234
|
+
|
|
235
|
+
**Nota:** Los sandboxes de práctica se limpian automáticamente cada vez que ejecutas Creta.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 🎯 Filosofía Creta
|
|
240
|
+
|
|
241
|
+
> **"Partir de enunciados que generan 'ruido' para construir comprensión real, no solo sintaxis."**
|
|
242
|
+
|
|
243
|
+
### Principios
|
|
244
|
+
|
|
245
|
+
**Evolution Over Replacement:**
|
|
246
|
+
- No abandonamos features a medida que creces
|
|
247
|
+
- Agregamos capas de funcionalidad
|
|
248
|
+
- Misma herramienta, diferentes modos
|
|
249
|
+
- Progresión sin fisuras
|
|
250
|
+
|
|
251
|
+
**Always Relevant:**
|
|
252
|
+
- Estudiantes la usan para aprender
|
|
253
|
+
- Juniors la usan para referencias
|
|
254
|
+
- Profesionales la usan para workflow
|
|
255
|
+
- Nunca te quedas sin tu compañero
|
|
256
|
+
|
|
257
|
+
**Spanish-First:**
|
|
258
|
+
- Aprendizaje en tu idioma nativo
|
|
259
|
+
- Sin barrera de traducción
|
|
260
|
+
- Contexto cultural importa
|
|
261
|
+
- Comunidad LATAM de desarrolladores
|
|
262
|
+
|
|
263
|
+
**CLI-Native:**
|
|
264
|
+
- Rápido, keyboard-driven
|
|
265
|
+
- Sin cambio de contexto
|
|
266
|
+
- La terminal es tu hogar
|
|
267
|
+
- Funciona donde los devs trabajan
|
|
268
|
+
|
|
269
|
+
### Valores
|
|
270
|
+
|
|
271
|
+
- 🎯 **Aprender construyendo** - Learn by doing
|
|
272
|
+
- 🧠 **Conceptos antes que sintaxis** - Fundamentos sólidos
|
|
273
|
+
- 💪 **Progresión por niveles** - Salta adelante o obtén soluciones
|
|
274
|
+
- 🔁 **Aprendizaje cíclico** - Discord → CLI → Videos → Repite
|
|
275
|
+
- 🎮 **Gamificación** - Hashes, recompensas, desbloqueos
|
|
276
|
+
- 🇪🇸 **Todo en español** - Educación accesible en tu idioma
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 🔧 Desarrollo
|
|
281
|
+
|
|
282
|
+
### Estructura del Proyecto
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
cli/
|
|
286
|
+
├── bin/creta.js # Punto de entrada
|
|
287
|
+
├── lib/
|
|
288
|
+
│ ├── cli/index.js # Lógica principal del CLI
|
|
289
|
+
│ ├── builders/ # MenuBuilder, LessonBuilder
|
|
290
|
+
│ ├── data/ # Lecciones, menús, mensajes
|
|
291
|
+
│ ├── executors/ # Ejecutores de sintaxis, enunciados, proyectos
|
|
292
|
+
│ ├── sandbox/ # Sistema de práctica interactiva
|
|
293
|
+
│ │ ├── SandboxManager.js
|
|
294
|
+
│ │ ├── CommandValidator.js
|
|
295
|
+
│ │ └── CommandExecutor.js
|
|
296
|
+
│ └── utils/ # User state, greeting, etc.
|
|
297
|
+
└── templates/
|
|
298
|
+
└── sveltekit-portfolio/ # Template de portafolio
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Comandos de Desarrollo
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# Probar CLI localmente
|
|
305
|
+
node bin/creta.js
|
|
306
|
+
|
|
307
|
+
# Probar comando específico
|
|
308
|
+
node bin/creta.js sintaxis
|
|
309
|
+
node bin/creta.js portafolio
|
|
310
|
+
|
|
311
|
+
# Publicar a npm (incrementar versión primero)
|
|
312
|
+
npm publish
|
|
313
|
+
|
|
314
|
+
# O usar el script de deployment
|
|
315
|
+
./deploy-patch.sh
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Tecnologías
|
|
319
|
+
|
|
320
|
+
- **Runtime:** Node.js (ES modules, no TypeScript)
|
|
321
|
+
- **CLI Framework:** Vanilla Node.js con readline
|
|
322
|
+
- **Template Engine:** SvelteKit 5 + Tailwind CSS 4
|
|
323
|
+
- **Package Manager:** npm
|
|
324
|
+
- **Publicado como:** `@icarusmx/creta` (acceso público)
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## 🗺️ Roadmap
|
|
329
|
+
|
|
330
|
+
### ✅ Ahora: Phase 1 Complete (v1.4.16)
|
|
331
|
+
- Core curriculum (7 enunciados + 4 sintaxis)
|
|
332
|
+
- Interactive practice system
|
|
333
|
+
- Portfolio generation
|
|
334
|
+
- User state tracking
|
|
335
|
+
|
|
336
|
+
### 🚀 Próximo: Phase 2 Launch (v1.5.0)
|
|
337
|
+
- Command reference system (`creta ls`)
|
|
338
|
+
- Reemplazar `man` para estudiantes
|
|
339
|
+
- Polish existing content
|
|
340
|
+
- Neovim curriculum
|
|
341
|
+
|
|
342
|
+
### 📈 3-6 meses: Phase 2 Expansion
|
|
343
|
+
- Advanced command references
|
|
344
|
+
- Hash/YouTube loop completado
|
|
345
|
+
- Scythe integration (tokens)
|
|
346
|
+
- 500+ monthly active users
|
|
347
|
+
|
|
348
|
+
### 🏗️ 6-12 meses: Phase 3 Vision
|
|
349
|
+
- Authentication system
|
|
350
|
+
- Requirement management (`creta requirement`)
|
|
351
|
+
- Team workspace features
|
|
352
|
+
- Constructor tools live
|
|
353
|
+
|
|
354
|
+
Ver **[ROADMAP.md](./ROADMAP.md)** para detalles completos.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 📊 Métricas de Éxito
|
|
359
|
+
|
|
360
|
+
**Phase 1 (Aprendiz):**
|
|
361
|
+
- Monthly active learners
|
|
362
|
+
- Lessons completed per user
|
|
363
|
+
- Hash redemption rate
|
|
364
|
+
|
|
365
|
+
**Phase 2 (Desarrollador):**
|
|
366
|
+
- `creta [command]` usage vs `man [command]`
|
|
367
|
+
- Command reference engagement
|
|
368
|
+
- Time saved vs Google/man
|
|
369
|
+
|
|
370
|
+
**Phase 3 (Constructor):**
|
|
371
|
+
- Authenticated users
|
|
372
|
+
- Daily active professionals
|
|
373
|
+
- Tickets managed through Creta
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 🤝 Contribuir
|
|
378
|
+
|
|
379
|
+
Este proyecto es parte de [Icarus](https://icarus.mx), una escuela de software enfocada en formar desarrolladores mediante la construcción de proyectos reales.
|
|
380
|
+
|
|
381
|
+
**Queremos contribuciones que:**
|
|
382
|
+
- Agreguen nuevas lecciones de sintaxis
|
|
383
|
+
- Mejoren la experiencia de aprendizaje
|
|
384
|
+
- Expandan el sistema de ayuda de comandos
|
|
385
|
+
- Compartan feedback de estudiantes
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 📄 Licencia
|
|
390
|
+
|
|
391
|
+
ISC
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
🏛️ **Hecho con <3 por [icarus.mx](https://icarus.mx)** - Salgamos de este laberinto
|