Saltar al contenido
Volver a proyectos

KataSmith

KataSmith es una Agent Skill portable y agnóstica del lenguaje: un paquete reutilizable de instrucciones para practicar katas de programación. Combina enseñanza socrática, práctica deliberada y entrevistas simuladas, y mantiene separados el currículo, el acompañamiento y el trabajo del estudiante.

Ver el código fuente de KataSmith en GitHub

Tres repositorios, un límite deliberado

El currículo es de solo lectura, la skill es portable y el trabajo del estudiante vive en su propio repositorio. Esa separación es una regla de trabajo, no solo un diagrama.

  1. Currículo de solo lecturaContiene material docente, tests públicos, starters, referencias y declaraciones del toolchain.
  2. Skill portableDescubre, inicializa y acompaña sin convertirse en el currículo.
  3. Repo independiente del estudianteGuarda intentos y progreso fuera del currículo.
Ver el límite entre repositorios en GitHub

El contrato del espacio de trabajo en kata-smith.json

{
  "artifacts": [...],
  "required_commands": [...],
  "setup_commands": [...],
  "compile_command": [...],
  "test_command": [...]
}
Ver el contrato kata-smith.json en GitHub

Invariantes que se pueden inspeccionar

  • Las rutas de origen y destino de los artefactos son relativas y no pueden contener ..
  • La preparación nunca lee ni copia archivos de solución.
  • Las rutas del estudiante y del currículo no pueden solaparse.
  • Un intento en conflicto se detiene salvo que lo reemplaces explícitamente; el reemplazo crea una copia de respaldo.
  • El material de referencia solo se desbloquea al completar o abandonar la kata de forma explícita.

Evidencia de ejecución

26 tests pasaron contra la revisión fijada, cubriendo aislamiento, rechazo de sobrescritura y backups, exclusión de solutions, referencias protegidas, finalización y reflexión.

Comando para ejecutar las pruebas

python3 -m unittest discover -s tests -v

Ver el código de las pruebas en GitHub

Límites actuales e instalación

Trabajo en curso. El repositorio solo declara compatibilidad integral de FizzBuzz para Java y TypeScript en algorithms@b35586d; la distribución actual de pruebas públicas de Go queda excluida.

Instalar en OpenCode

Comando de instalación en OpenCode

npx skills add RubenOAlvarado/kata-smith@kata-smith -g -a opencode

Requiere Python 3.11+, Git y el toolchain declarado por el lenguaje seleccionado en el currículo.

Ver requisitos, estado WIP y código fuente en GitHub