¿Qué hace asc-workflow?
Define, valida, ejecuta, reanuda y audita automatizaciones de múltiples pasos locales al repositorio con el comando asc workflow y el archivo .asc/workflow.json, incluyendo salidas de pasos y flujos seguros de lanzamiento/TestFlight.
Descripción
Esta habilidad permite a Claude Code gestionar flujos de trabajo de automatización definidos localmente en un archivo JSON. Puedes definir pasos, validar la configuración, ejecutar el flujo completo, reanudarlo desde un paso fallido y auditar las ejecuciones anteriores. Es ideal para tareas repetitivas como pruebas, construcción, despliegues y lanzamientos a TestFlight o la App Store.
Comandos principales
asc workflow init– Inicializa un nuevo archivo.asc/workflow.jsoncon una plantilla.asc workflow validate– Valida la estructura y configuración del flujo de trabajo.asc workflow run– Ejecuta el flujo de trabajo completo.asc workflow resume– Reanuda un flujo de trabajo desde el último paso fallido.asc workflow audit– Muestra un historial de ejecuciones anteriores.
Archivo de configuración
El flujo de trabajo se define en .asc/workflow.json con la siguiente estructura:
{
"name": "mi-flujo",
"steps": [
{
"id": "paso-1",
"command": "echo 'Hola mundo'",
"description": "Primer paso"
},
{
"id": "paso-2",
"command": "echo 'Paso completado'",
"description": "Segundo paso",
"dependsOn": ["paso-1"]
}
]
}
Uso de salidas de pasos
Los pasos pueden producir salidas que se almacenan y pueden ser utilizadas por pasos posteriores mediante la sintaxis {{steps.<id>.output}}. Por ejemplo:
{
"steps": [
{
"id": "build",
"command": "xcodebuild -project MiApp.xcodeproj -scheme MiApp -showBuildSettings | grep PRODUCT_BUNDLE_IDENTIFIER | awk '{print $3}'",
"description": "Obtener el identificador del paquete"
},
{
"id": "deploy",
"command": "echo 'El identificador del paquete es {{steps.build.output}}'",
"description": "Mostrar el identificador"
}
]
}
Flujo seguro de lanzamiento/TestFlight
Puedes definir flujos que automaticen la creación de versiones y su envío a TestFlight, con validaciones de seguridad para evitar errores. Ejemplo:
{
"name": "Lanzamiento a TestFlight segura",
"steps": [
{
"id": "incrementar-version",
"command": "agvtool next-version -all",
"description": "Incrementar el número de versión de compilación"
},
{
"id": "construir",
"command": "xcodebuild -workspace MiApp.xcworkspace -scheme MiApp -configuration Release -archivePath builds/MiApp.xcarchive archive",
"description": "Construir el archivo de la aplicación"
},
{
"id": "exportar-ipa",
"command": "xcodebuild -exportArchive -archivePath builds/MiApp.xcarchive -exportPath builds/ -exportOptionsPlist export.plist",
"description": "Exportar el archivo IPA"
},
{
"id": "subir-a-testflight",
"command": "xcrun altool --upload-app -f builds/MiApp.ipa -u [email protected] -p @keychain:AC_PASSWORD",
"description": "Subir la aplicación a TestFlight",
"safe": true
}
]
}
Buenas prácticas
- Usa
asc workflow validateantes de ejecutar para detectar errores de sintaxis o dependencias circulares. - Marca los pasos críticos como
"safe": truepara que el flujo no continúe automáticamente sin confirmación. - Revisa el historial con
asc workflow auditpara rastrear ejecuciones anteriores. - Mantén los comandos simples y legibles; si un comando es demasiado complejo, considera usar un script externo.
Limitaciones
- Los flujos no son distribuidos; se ejecutan localmente en el mismo repositorio.
- Las salidas de pasos solo almacenan texto plano (stdout).
- No se soportan bucles ni condiciones complejas fuera de las dependencias lineales.
Para más información, consulta la documentación oficial de rudrankriyam/asc-workflow.