Communitygithub.com

balantrapu87/amds

Exécute le cycle de vie SDLC agentique en 4 phases (Spécification → Test Rouge → Implémentation Verte → Porte Qualité) pour AI Motion Design Studio.

Qu'est-ce que amds ?

Cette compétence fournit un playbook structuré en 4 phases pour l'implémentation de fonctionnalités ou de corrections de bugs dans un dépôt de studio de design animé par IA. Elle impose une synchronisation stricte des contrats entre les schémas Python (Pydantic) et TypeScript (Remotion) avant toute implémentation. Ensuite, elle guide via une phase de test rouge (écriture de tests unitaires échouants), une phase d'implémentation minimale respectant la loi de trame déterministe, et enfin une porte qualité automatisée avec trois niveaux de vérification (analyse statique, suites de tests, rastérisation Chromium headless). En cas d'échec, un mécanisme d'auto-guérison permet jusqu'à 3 tentatives, avec une politique de rollback ciblé si le budget est épuisé. Supporte les environnements Python et Node.js/Remotion.

Compatible avec~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/balantrapu87/amds/tree/HEAD/.agents/skills/motion-sdlc

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Playbook d'Exécution SDLC du Studio de Design Animé

Lorsqu'une tâche d'implémentation de fonctionnalité ou de correction de bug est confiée dans ce dépôt, exécutez ces étapes exactement dans l'ordre :

Étape 1 : Synchronisation des Contrats (Porte Spécification)

  1. Inspectez engine/schemas.py et remotion/src/types.ts.
  2. Ajoutez ou modifiez les champs pour satisfaire les exigences de la fonctionnalité.
  3. Validez que les modèles Pydantic se compilent :
    python3 -c "import engine.schemas as s; print('Schemas OK')"
    
    (Remarque : si un venv de projet existe, invoquez via .venv/bin/python3).
  4. Ne passez jamais au code d'implémentation tant que les contrats dans les deux langages ne sont pas alignés.

Étape 2 : Phase Rouge (Écrire des Tests Échouants)

  1. Écrivez un nouveau fichier de test ou cas de test dans tests/ (Pytest) ou remotion/src/__tests__/ (Vitest/Jest).
  2. Testez la validation du schéma, les cas limites et la sortie sérialisée attendue.
  3. Exécutez le test et confirmez l'échec :
    pytest tests/
    # Si un runner de test frontend est configuré dans remotion/package.json :
    npm --prefix remotion test -- --run
    
  4. Enregistrez la trace d'échec. Si le test réussit immédiatement, réécrivez-le pour tester la nouvelle capacité réelle. La phase Rouge est satisfaite uniquement lorsque les tests échouent avec les assertions attendues.

Étape 3 : Phase Verte (Implémentation Minimale)

  1. Écrivez le code minimal dans engine/ ou remotion/src/ pour satisfaire le test échouant.
  2. Dans Remotion, respectez strictement la Loi de Trame Déterministe :
    • La dérivation doit venir strictement de useCurrentFrame() et useVideoConfig().
    • N'utilisez jamais Date.now(), Math.random(), ou requestAnimationFrame() non borné.
  3. Préservation des motifs architecturaux existants (<Series>, <Sequence>, <ThreeScene>, <KineticScene>).
  4. Assurez-vous que les actifs vectoriels conservent les IDs et classes conformément à remotion/svgo.config.mjs pour le ciblage GSAP.

Étape 4 : Porte Qualité et Boucle d'Auto-Guérison Automatisée

Suivez le compteur d'itérations de la boucle (ATTEMPT ∈ {1, 2, 3}). Exécutez chaque porte séquentiellement sans masquer les codes de sortie (n'ajoutez pas || true) :

# Niveau 1 : Analyse Statique de Types
python3 -m mypy engine/schemas.py engine/api.py
npm --prefix remotion run build -- --bundle-cache=false

# Niveau 2 : Suites de Tests Automatisées
pytest tests/
# Si un runner de test frontend est configuré dans remotion/package.json :
npm --prefix remotion test -- --run

# Niveau 3 : Rastérisation de Tramage Chromium Headless
(cd remotion && npx remotion still src/index.ts MainComposition /tmp/smoke.png \
  --props='{"scenes":[],"theme":{}}' \
  --gl=angle \
  --overwrite)

Politique d'Auto-Guérison et Rollback

  • En cas d'échec (Tentative 1 ou 2) :

    1. Capturez le chemin exact du fichier, le numéro de ligne défaillant et la trace d'erreur/stderr.
    2. Implémentez un correctif minimal et ciblé répondant strictement à l'erreur rapportée.
    3. Incrémentez ATTEMPT et redémarrez le Niveau 1.
  • En cas d'échec (Tentative 3 - Budget Épuisé) : Arrêtez immédiatement les modifications spéculatives et restaurez uniquement les fichiers de fonctionnalité modifiés et créés (ne jamais effectuer un nettoyage global général) :

    # Solution de repli d'épuisement du Niveau 4 : ciblez uniquement les périmètres du code fonctionnel
    git restore --staged --worktree engine/ remotion/ tests/
    git clean -fd engine/ remotion/ tests/
    rm -f /tmp/smoke.png
    echo "La porte qualité a échoué après 3 tentatives. Les chemins de code cibles ont été restaurés à une base de code propre."
    exit 1
    

    (Alternative pour préserver le travail pour une analyse post-mortem : git stash push -u -m "sdlc-failed-attempt-$(date +%s)" -- engine/ remotion/ tests/)

  • En cas de succès (Tous les Niveaux Quittent avec 0) : Supprimez les artefacts transitoires et créez le commit vérifié :

    rm -f /tmp/smoke.png
    git add engine/ remotion/ tests/
    git commit -m "feat(motion-sdlc): implement verified feature with green test gate"
    

Skills associés