Docs Desarrollo
Desarrollo
Flujos de trabajo prácticos del día a día para trabajar en ASDT mismo: compilar, lintear, agregar skills, y probar el TUI del instalador sin tocar la configuración real de tu asistente de IA.
Prerrequisitos
- Go (versión fijada en
go.mod) - golangci-lint v2 — instalá específicamente la ruta del módulo v2:
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
La configuración de
.golangci.ymldeclaraversion: "2". Instalar la ruta del módulo v1 te da un binario v1 que rechaza la config.
- lefthook (opcional) —
make hookslo instala y registra el hook de lint pre-push
Comandos del día a día
make build # go build ./...
make test # go test ./...
make lint # golangci-lint run ./...
make hooks # instala lefthook + registra el hook pre-push
Corré el TUI del instalador desde el código fuente sin un paso de build:
go run ./cmd/asdt-tui
Testing en un sandbox
asdt-tui escribe directamente en el directorio real de skills de tu asistente de IA (~/.claude/skills, ~/.config/opencode/skills). Para evitar tocar tu configuración real, sobreescribí $HOME:
mkdir -p /tmp/asdt-sandbox
HOME=/tmp/asdt-sandbox go run ./cmd/asdt-tui
Esto instala en /tmp/asdt-sandbox/.claude/skills y /tmp/asdt-sandbox/.config/opencode/skills. Tu ~/.claude real nunca se toca.
Inspeccioná el resultado:
eza --tree /tmp/asdt-sandbox/.claude/skills
Volvé a correrlo contra el mismo $HOME para probar el camino de detección de “ya instalado / actualizar”. Limpiá cuando termines:
rm -rf /tmp/asdt-sandbox
Agregar un nuevo especialista — checklist de registro
Los detalles completos de autoría están en Contribuir. Lo que conviene saber de entrada:
El embed no necesita cableado. skill/embedded.go usa un glob:
//go:embed SKILL.md asdt-*
var skillFS embed.FS
Cualquier directorio llamado asdt-{name} se shippea automáticamente en el próximo build — no hay lista a la cual agregarlo ni forma de olvidarse. Lo que sí hay que hacer a mano es el registro: las filas de Specialist Registry y Tailored Workflow Generation en skill/SKILL.md, la fila de ASDT Specialists en internal/installer/assets/agents-template.md, y la lista de specialists hardcodeada en skill/embedded_test.go. Si te salteás eso, la skill igual se shippea, solo que nunca se enruta.
Después de agregar el directorio:
- Corré el flujo de sandbox para confirmar que la skill aparece en
/tmp/asdt-sandbox/.claude/skills/{name}/ - Corré
go test ./skill/...— el test del registro embebido verifica que la skill esté presente
Verificar ediciones de prompts
Editar el SKILL.md o los steps/*.md de un especialista existente no requiere ningún cambio de cableado. Simplemente:
go test ./skill/...
go:embed vuelve a leer los archivos en tiempo de compilación, así que go test y go run siempre reflejan tus últimas ediciones — sin caché de la cual preocuparse.
Estructura del proyecto
cmd/asdt-tui/ # punto de entrada del TUI del instalador
internal/
grader/ # califica payloads de artefactos contra probe sets
i18n/ # catálogo de strings del TUI (en + es)
installer/ # detección de skills, instalación, lógica de actualización
setup/ # vistas del TUI y máquina de estados
tui/panels/ # primitivas puras de render del TUI (badge, hero, spinner)
skill/
SKILL.md # orquestador raíz + registro de especialistas
TEMPLATE.md # contrato de autoría de especialistas (solo repo)
README.md # panorama de la capa de skills
embedded.go # registro go:embed
embedded_test.go # tests de invariantes routed + embed
asdt-core/ # protocolo, headers y referencias opcionales
asdt-architect/ # especialista Architect
asdt-developer/ # especialista Developer
asdt-pm/ # especialista Product Manager
asdt-qa/ # especialista QA
asdt-researcher/ # especialista Researcher
asdt-security/ # especialista Security
asdt-ux-ui/ # especialista UX/UI
asdt-init/ # especialista de inicialización de proyecto (clase setup)
site/ # Este sitio de documentación (Astro)