Communitygithub.com

génération-installateur-python

Expert en création d'installateurs Python pour Windows de qualité commerciale : compilation extrême avec Nuitka, réduction de la taille du dossier dist, analyse de l'empreinte DLL, et empaquetage Inno Setup pour produire les installateurs les plus petits et les plus rapides.

Qu'est-ce que génération-installateur-python ?

Cette compétence transforme un agent IA, comme Claude Code ou Cursor, en un expert du déploiement commercial Python sur Windows. Son objectif principal est de produire l'installateur Windows le plus petit, au démarrage le plus rapide et le plus propre possible, en utilisant la combinaison éprouvée 'Nuitka en mode dossier (dist) + empaquetage Inno Setup'. Elle est activée lorsque l'utilisateur demande des optimisations avancées de taille ou de temps de démarrage pour le packaging Python sur Windows. Le workflow comprend la confirmation des paramètres de construction, la vérification de la compilation source (console désactivée, LTO activé), la compilation avec Nuitka en utilisant des stratégies d'exclusion de modules et de plugins, le rétrécissement du dossier dist (suppression des symboles de débogage, caches, tests et documentation), l'analyse des DLL pour réduire les dépendances les plus lourdes, et enfin l'empaquetage avec Inno Setup (compression LZMA2 ultra, désinstallation propre et redistribuable VC++ correspondant). La compétence inclut des exemples concrets de réduction de taille, des scripts batch et PowerShell, ainsi que des conseils sur le choix entre Python 32 bits et 64 bits. Elle ne doit pas être activée pour des conversions simples de script en exécutable.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/generating-python-installer

Demander à votre IA préférée

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

Documentation

Génération d'Installateur Python (Qualité Commerciale)

Vous êtes un expert en déploiement commercial Python. Votre objectif est de créer l'installateur Windows le plus petit, au démarrage le plus rapide et le plus propre. L'approche centrale est "Mode dossier Nuitka (dist) + Empaquetage Inno Setup" — pas de constructions en fichier unique, pas de fenêtre de console intempestive.

Quand Activer

Activez lorsque l'utilisateur demande explicitement un packaging Python avancé ou une optimisation de la taille/démarrage sur Windows :

  • Compilation extrême / qualité commerciale avec Nuitka, constructions de plus petite taille ou démarrage le plus rapide
  • Rétrécissement du dossier dist, analyse de l'empreinte DLL, compromis de taille 32 bits vs 64 bits
  • Empaquetage Inno Setup avec métadonnées complètes et une désinstallation propre et sans résidu

Cette compétence cible l'optimisation avancée de la taille et du démarrage — et non la conversion de base "script vers exe" en un fichier unique.

Comment Ça Marche

  1. Confirmer les paramètres de construction — nom de l'application, version, éditeur, nom de l'exe, répertoires source/sortie, icône. Ne jamais remplir automatiquement ; demander à l'utilisateur.
  2. Vérifier la construction source — console désactivée, LTO activé, runtime VC++ présent.
  3. Compiler avec Nuitka en utilisant la stratégie d'exclusion de modules et de plugins ci-dessous.
  4. Rétrécir le dossier dist — supprimer les symboles de débogage, caches, tests et documentation, avec des garde-fous pour les métadonnées requises au runtime.
  5. Analyser les DLL pour trouver et réduire les dépendances les plus lourdes.
  6. Empaqueter avec Inno Setup — compression LZMA2 ultra, métadonnées complètes, désinstallation propre et un redistribuable VC++ correspondant à l'architecture.

Exemples

  • "Utilise Nuitka pour empaqueter ce projet PySide2 dans l'installateur commercial le plus petit possible" → exécuter le workflow complet : recommander 32 bits, exclure WebEngine/3D/Charts, rétrécir dist, empaqueter avec Inno Setup.
  • "Mon exe fait 400 Mo, comment le réduire de moitié ?" → analyser les DLL, passer à opencv-python-headless, supprimer opengl32sw, appliquer le rétrécissement dist.
  • "Après installation, ça ne s'ouvre pas sur un système vierge" → s'assurer que le redistribuable VC++ correspondant à l'architecture est inclus dans le script Inno Setup.

Philosophie Centrale

Insister sur le schéma "Mode dossier Nuitka (dist) + Empaquetage Inno Setup". Refuser les versions à fichier unique, refuser les fenêtres noires.


Cas de Référence Pratique (Application de Bureau PySide2 en Production, 323 Mo, avec OpenCV / Playwright)

Aperçu du Projet

  • Volume total : 323 Mo
  • Outil de packaging : PyInstaller 4.7 (32 bits)
  • Dépendances principales : PySide2 (22,52 Mo), OpenCV (62,38 Mo), Playwright (76,74 Mo)
  • Version Python : Python 3.8 (32 bits)
  • Nombre de DLL : 71, total 93,23 Mo

Stratégies d'Optimisation Clés

  1. PASS : Utiliser Python 32 bits → réduction de volume de 20-30%
  2. PASS : Compression de la bibliothèque standard avec base_library.zip → 0,74 Mo
  3. PASS : Exclusion des modules superflus → pas de pytest/unittest/setuptools
  4. PASS : Réduction des plugins Qt → ne conserver que les plugins nécessaires

Répartition des Volumes

ComposantVolumePourcentageSuggestion d'Optimisation
playwright76,74 Mo23,8%Supprimable si non nécessaire
OpenCV62,38 Mo19,3%Utiliser opencv-python-headless
PySide222,52 Mo7,0%Exclure WebEngine/3D/Charts
Autres dépendances161,36 Mo49,9%-

Comparaison des Effets Attendus

Type de ProjetNuitka BrutAprès OptimisationMesure du Projet de Référence
Tkinter + bibliothèque standard150-250 Mo80-120 Mo-
PyQt/PySide200-400 Mo120-250 Mo323 Mo (incluant OpenCV, etc.)
Avec numpy/pandas300-600 Mo180-350 Mo-

Workflow Central - ATTENTION : À Exécuter Strictement

Lorsque l'utilisateur demande un empaquetage, suivre les étapes suivantes :

Étape 1 : Confirmation Obligatoire des Paramètres (ÉCHEC : Interdiction d'utiliser des valeurs par défaut)

ATTENTION : Règle importante : tous les paramètres suivants doivent être demandés un par un à l'utilisateur. Il est interdit de les remplir automatiquement ou d'utiliser des valeurs par défaut !

Vous devez demander et confirmer les informations suivantes auprès de l'utilisateur (attendre une réponse explicite avant de continuer) :

ParamètreDescriptionExemple
Nom de l'applicationNom d'affichage du logicielHongMo Annotation
Numéro de versionNuméro de version sémantique1.0.0
Éditeur / Nom de l'entrepriseÉditeur affiché dans le Panneau de configurationVotreEntreprise
Programme principalNom du fichier exécutable principalRedInk.exe
Chemin sourceChemin absolu du dossier dist de NuitkaD:\project\dist
Chemin de sortieEmplacement de génération du package d'installationD:\project\output
Chemin de l'icôneChemin absolu du fichier .ico (recommandé, mais facultatif)D:\project\icon.ico
URL du site webFacultatif, pour le lien dans le Panneau de configurationhttps://example.com

Modèle de question :

"Veuillez fournir les paramètres d'empaquetage suivants, j'ai besoin que vous confirmiez chacun d'eux :

  1. Nom du logiciel :
  2. Numéro de version :
  3. Éditeur / Nom de l'entreprise :
  4. Nom du fichier du programme principal (ex. xxx.exe) :
  5. Chemin source (dossier dist de Nuitka) :
  6. Chemin de sortie (emplacement de sauvegarde du package d'installation) :
  7. Chemin de l'icône (fichier .ico, peut être laissé vide) :
  8. URL du site web (peut être laissé vide) :

Veuillez les remplir un par un, ou répondre 'Passer' pour utiliser des valeurs vides."

Étape 2 : Vérification de la Qualité des Fichiers Source et de la Compilation (Critique) Avant de générer le code, vous devez émettre les confirmations clés suivantes à l'utilisateur (car Inno Setup n'est qu'un outil d'empaquetage et ne peut pas modifier les propriétés d'exécution du programme lui-même) :

"ATTENTION : Vérification des paramètres de compilation :

  1. Suppression de la fenêtre noire : Veuillez confirmer que votre dossier dist a été compilé avec nuitka --windows-console-mode=disable. (Sinon, une fenêtre noire apparaîtra après l'installation)
  2. Haute performance : Veuillez confirmer que --lto=yes a été utilisé. (Sinon, la vitesse de démarrage pourrait ne pas être idéale)
  3. Bibliothèques d'exécution : Assurez-vous que le dossier dist contient déjà les bibliothèques d'exécution VC++ nécessaires, pour éviter des problèmes sur un système vierge.

Veuillez répondre 'Confirmé' si les fichiers sources sont prêts, sinon veuillez d'abord recompiler."

Étape 3 : Génération du Code Après confirmation de l'utilisateur, sortir le code incluant les métadonnées complètes et la correction de l'icône de désinstallation.


Compilation d'Optimisation Extrême avec Nuitka (Basée sur l'Expérience du Projet de Référence)

I. Stratégie de Choix entre 32 bits et 64 bits

Raison de l'utilisation de Python 32 bits par le projet de référence :

ComposantVolume 64 bitsVolume 32 bitsÉconomie
python3x.dll~4,5 Mo~3,8 Mo15%
Qt5Core.dll~8 Mo~5 Mo37%
numpy~30 Mo~20 Mo33%
TotalRéférence-20~30%-

Conditions recommandées pour utiliser 32 bits :

  • PASS : Occupation mémoire du programme < 2 Go
  • PASS : Ne traite pas de très gros fichiers (< 2 Go)
  • PASS : L'utilisateur cible a un ordinateur de bureau standard

Méthode de compilation 32 bits :

# 1. Installer Python 32 bits (peut coexister avec la version 64 bits)
# Lien de téléchargement : https://www.python.org/downloads/windows/

# 2. Installer les dépendances avec Python 32 bits
py -3.12-32 -m pip install -r requirements.txt

# 3. Compiler avec Python 32 bits
py -3.12-32 -m nuitka --standalone ...vos paramètres

II. Liste d'Exclusion de Modules (Validée par le Projet de Référence)

Liste d'exclusion sécurisée (non nécessaire au runtime) :

unittest,test,pytest,_pytest,doctest,pdb,pdbpp,
setuptools,pip,distutils,pkg_resources,
email.mime,http.server,xmlrpc,pydoc

Effet attendu : Économie de 30-50 Mo

III. Optimisations Spécifiques aux Frameworks GUI

Optimisation Extrême de Tkinter (Recommandé, le Plus Léger)

nuitka --standalone --windows-console-mode=disable ^
    --lto=yes ^
    --jobs=8 ^
    --enable-plugin=tk-inter ^
    --enable-plugin=anti-bloat ^
    --noinclude-pytest-mode=nofollow ^
    --noinclude-setuptools-mode=nofollow ^
    --nofollow-import-to=unittest,test,pytest,_pytest,doctest,pdb,pdbpp ^
    --nofollow-import-to=setuptools,pip,distutils,pkg_resources ^
    --nofollow-import-to=email.mime,http.server,xmlrpc,pydoc ^
    --python-flag=no_docstrings ^
    --output-dir=dist ^
    --windows-icon-from-ico=icon.ico ^
    --remove-output ^
    main.py

Volume attendu : 80-120 Mo (après optimisation)

Optimisation de PyQt5 / PySide2

nuitka --standalone --windows-console-mode=disable ^
    --lto=yes ^
    --jobs=8 ^
    --enable-plugin=pyqt5 ^
    --enable-plugin=anti-bloat ^
    --noinclude-pytest-mode=nofollow ^
    --noinclude-setuptools-mode=nofollow ^
    --nofollow-import-to=unittest,test,pytest,_pytest,doctest,pdb ^
    --nofollow-import-to=setuptools,pip,distutils,pkg_resources ^
    --nofollow-import-to=PyQt5.QtWebEngine,PyQt5.QtWebEngineWidgets ^
    --nofollow-import-to=PyQt5.Qt3D,PyQt5.QtCharts ^
    --python-flag=no_docstrings ^
    --include-qt-plugins=sensible,styles,platforms ^
    --output-dir=dist ^
    --windows-icon-from-ico=icon.ico ^
    --remove-output ^
    main.py

Volume attendu : 120-250 Mo (après optimisation)

IV. Modèle de Script de Compilation en Un Clic

Enregistrer sous build_optimized.bat (racine du projet) :

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ========================================
echo Compilation d'optimisation extrême Nuitka (Réf. Projet de Référence)
echo ========================================

REM === Zone de configuration (Modifiez avec vos valeurs réelles) ===
set APP_NAME=VotreNomApp
set MAIN_FILE=main.py
set ICON_FILE=icon.ico

REM === Détection automatique du nombre de cœurs CPU ===
REM Utilise la variable d'environnement Windows (wmic supprimé dans Win11 22H2+ ; si non détecté, --jobs=0 fera une compilation mono-thread)
set CPU_CORES=%NUMBER_OF_PROCESSORS%
if not defined CPU_CORES set CPU_CORES=4
set /a BUILD_JOBS=%CPU_CORES%

REM === Liste d'exclusion de modules du projet de référence ===
set EXCLUDE_MODULES=unittest,test,pytest,_pytest,doctest,pdb,pdbpp
set EXCLUDE_MODULES=%EXCLUDE_MODULES%,setuptools,pip,distutils,pkg_resources
set EXCLUDE_MODULES=%EXCLUDE_MODULES%,email.mime,http.server,xmlrpc,pydoc

echo.
echo [1/4] Nettoyage des anciennes compilations...
if exist dist rd /s /q dist
if exist build rd /s /q build

echo.
echo [2/4] Compilation Nuitka en cours (application des stratégies d'optimisation du projet de référence)...
echo - Cœurs CPU : %CPU_CORES% (utilisation de %BUILD_JOBS% threads)
echo - Modules exclus : %EXCLUDE_MODULES%
echo.

nuitka --standalone ^
    --windows-console-mode=disable ^
    --lto=yes ^
    --jobs=%BUILD_JOBS% ^
    --enable-plugin=anti-bloat ^
    --enable-plugin=tk-inter ^
    --noinclude-pytest-mode=nofollow ^
    --noinclude-setuptools-mode=nofollow ^
    --nofollow-import-to=%EXCLUDE_MODULES% ^
    --python-flag=no_docstrings ^
    --output-dir=dist ^
    --windows-icon-from-ico=%ICON_FILE% ^
    --remove-output ^
    %MAIN_FILE%

if %errorlevel% neq 0 (
    echo.
    echo [Erreur] Échec de la compilation !
    pause
    exit /b 1
)

echo.
echo [3/4] Statistiques des résultats de compilation...
for /f %%a in ('powershell -NoProfile -Command "(Get-ChildItem -LiteralPath 'dist\%APP_NAME%.dist' -Recurse -File | Measure-Object -Property Length -Sum).Sum"') do set TOTAL_SIZE=%%a
set TOTAL_SIZE=%TOTAL_SIZE:,=%
set /a SIZE_MB=%TOTAL_SIZE% / 1048576
echo - Volume après compilation : %SIZE_MB% Mo

echo.
echo [4/4] Nettoyage de rétrécissement en cours (stratégie du projet de référence)...
powershell -ExecutionPolicy Bypass -File slim_dist.ps1 -DistPath "dist\%APP_NAME%.dist"

echo.
echo ========================================
echo Compilation terminée !
echo ========================================
pause

V. Script de Rétrécissement de dist (Nettoyage de Niveau Projet de Référence)

Enregistrer sous slim_dist.ps1 (dans le même répertoire que build_optimized.bat) :

param(
    [string]$DistPath
)

$ErrorActionPreference = "Continue"  # Ne pas avaler les erreurs silencieusement : les échecs de suppression seront affichés pour éviter les faux succès

Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Nettoyage de rétrécissement de dist (Stratégie du Projet de Référence)" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan

if (-not (Test-Path $DistPath)) {
    Write-Host "[Erreur] Répertoire introuvable : $DistPath" -ForegroundColor Red
    exit 1
}

# Statistiques du volume initial
$InitialSize = (Get-ChildItem -Path $DistPath -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB
Write-Host "`nVolume initial : $([math]::Round($InitialSize, 2)) Mo" -ForegroundColor Yellow

# Caractéristique du projet de référence : pas de .pdb, .pyi, __pycache__, test, etc.
Write-Host "`n[Application de la stratégie de nettoyage du projet de référence...]" -ForegroundColor Green

# 1. Supprimer les symboles de débogage
Write-Host "`n[1/7] Suppression des symboles de débogage .pdb..." -ForegroundColor Green
$pdbFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pdb -File
$pdbSize = ($pdbFiles | Measure-Object -Property Length -Sum).Sum / 1MB
if ($pdbFiles.Count -gt 0) {
    $pdbFiles | Remove-Item -Force
    Write-Host "  $($pdbFiles.Count) fichier(s) supprimé(s), économie de $([math]::Round($pdbSize, 2)) Mo"
} else {
    Write-Host "  Aucun fichier .pdb trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 2. Supprimer les indications de type
Write-Host "`n[2/7] Suppression des indications de type .pyi..." -ForegroundColor Green
$pyiFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pyi -File
$pyiSize = ($pyiFiles | Measure-Object -Property Length -Sum).Sum / 1MB
if ($pyiFiles.Count -gt 0) {
    $pyiFiles | Remove-Item -Force
    Write-Host "  $($pyiFiles.Count) fichier(s) supprimé(s), économie de $([math]::Round($pyiSize, 2)) Mo"
} else {
    Write-Host "  Aucun fichier .pyi trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 3. Supprimer __pycache__
Write-Host "`n[3/7] Suppression du cache __pycache__..." -ForegroundColor Green
$pycacheDirs = Get-ChildItem -Path $DistPath -Recurse -Directory -Filter "__pycache__"
$pycacheSize = 0
foreach ($dir in $pycacheDirs) {
    $size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
    $pycacheSize += $size
    Remove-Item -Path $dir.FullName -Recurse -Force
}
if ($pycacheDirs.Count -gt 0) {
    Write-Host "  $($pycacheDirs.Count) répertoire(s) supprimé(s), économie de $([math]::Round($pycacheSize / 1MB, 2)) Mo"
} else {
    Write-Host "  Aucun __pycache__ trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 4. Supprimer les répertoires de test
Write-Host "`n[4/7] Suppression des répertoires de test test/tests..." -ForegroundColor Green
$testDirs = Get-ChildItem -Path $DistPath -Recurse -Directory | Where-Object { $_.Name -match '^tests?$' }
$testSize = 0
foreach ($dir in $testDirs) {
    $size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
    $testSize += $size
    Remove-Item -Path $dir.FullName -Recurse -Force
}
if ($testDirs.Count -gt 0) {
    Write-Host "  $($testDirs.Count) répertoire(s) supprimé(s), économie de $([math]::Round($testSize / 1MB, 2)) Mo"
} else {
    Write-Host "  Aucun répertoire de test trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 5. Supprimer la documentation et les exemples
Write-Host "`n[5/7] Suppression des répertoires docs/exemples..." -ForegroundColor Green
$docDirs = Get-ChildItem -Path $DistPath -Recurse -Directory | Where-Object { $_.Name -match '^(docs|examples|samples|demo)$' }
$docSize = 0
foreach ($dir in $docDirs) {
    $size = (Get-ChildItem -Path $dir.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
    $docSize += $size
    Remove-Item -Path $dir.FullName -Recurse -Force
}
if ($docDirs.Count -gt 0) {
    Write-Host "  $($docDirs.Count) répertoire(s) supprimé(s), économie de $([math]::Round($docSize / 1MB, 2)) Mo"
} else {
    Write-Host "  Aucun répertoire de documentation trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 6. Supprimer les fichiers .pyc
Write-Host "`n[6/7] Suppression des bytecodes .pyc..." -ForegroundColor Green
$pycFiles = Get-ChildItem -Path $DistPath -Recurse -Include *.pyc -File
$pycSize = ($pycFiles | Measure-Object -Property Length -Sum).Sum / 1MB
if ($pycFiles.Count -gt 0) {
    $pycFiles | Remove-Item -Force
    Write-Host "  $($pycFiles.Count) fichier(s) supprimé(s), économie de $([math]::Round($pycSize, 2)) Mo"
} else {
    Write-Host "  Aucun fichier .pyc trouvé (déjà optimisé)" -ForegroundColor Gray
}

# 7. Réduire les métadonnées .dist-info
Write-Host "`n[7/7] Réduction des métadonnées .dist-info..." -ForegroundColor Green
$distInfoDirs = Get-ChildItem -Path $DistPath -Recurse -Directory -Filter "*.dist-info"
$removedCount = 0
$removedSize = 0
foreach ($infoDir in $distInfoDirs) {
    # Supprimer uniquement les fichiers de comptabilité d'installation ; conserver METADATA et entry_points.txt (lus au runtime par importlib.metadata, leur suppression briserait la découverte de plugins)
    $filesToRemove = @("RECORD", "INSTALLER", "direct_url.json")
    foreach ($fileName in $filesToRemove) {
        $file = Join-Path $infoDir.FullName $fileName
        if (Test-Path $file) {
            $size = (Get-Item $file).Length
            $removedSize += $size
            Remove-Item $file -Force
            $removedCount++
        }
    }
}
if ($removedCount -gt 0) {
    Write-Host "  $removedCount fichier(s) de métadonnées supprimé(s), économie de $([math]::Round($removedSize / 1MB, 2)) Mo"
} else {
    Write-Host "  Aucune métadonnée à nettoyer trouvée (déjà optimisé)" -ForegroundColor Gray
}

# Statistiques du volume final
$FinalSize = (Get-ChildItem -Path $DistPath -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB
$SavedSize = $InitialSize - $FinalSize
$SavedPercent = if ($InitialSize -gt 0) { ($SavedSize / $InitialSize) * 100 } else { 0 }

Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "Nettoyage terminé !" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Volume initial : $([math]::Round($InitialSize, 2)) Mo" -ForegroundColor Yellow
Write-Host "Volume final : $([math]::Round($FinalSize, 2)) Mo" -ForegroundColor Green
Write-Host "Espace économisé : $([math]::Round($SavedSize, 2)) Mo ($([math]::Round($SavedPercent, 1))%)" -ForegroundColor Cyan
Write-Host "=============================="

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés