Communitygithub.com

delivery-gate

Crochet d'arrêt qui empêche Claude de terminer une session tant que les contrôles de qualité ne sont pas passés. Détecte les schémas de rationalisation, les journaux d'apprentissage obsolètes et l'espace disque insuffisant.

Qu'est-ce que delivery-gate ?

**Delivery Gate** est un crochet d'arrêt (stop hook) pour Claude Code qui applique mécaniquement des contrôles de qualité avant de permettre à l'agent de déclarer une session terminée. Il vérifie trois choses de manière déterministe — sans utiliser d'IA : les schémas de rationalisation dans le texte de la transcription (via des expressions régulières), la fraîcheur des bibliothèques d'apprentissage (via les timestamps de modification des fichiers), et l'espace disque disponible. Contrairement aux portes de raisonnement comme `self-audit`, celui-ci se concentre sur des faits vérifiables par machine : « La bibliothèque d'apprentissage a-t-elle été touchée aujourd'hui ? L'espace disque est-il suffisant ? ». Il est conçu pour être utilisé en complément de `self-audit` pour une défense en profondeur : delivery-gate vérifie l'hygiène de la session, self-audit vérifie la qualité du contenu. Le hook bloque la session (code de sortie 2) si au moins trois bibliothèques d'apprentissage sont obsolètes dans une tâche complexe, ou si l'espace disque tombe sous 15 Go, et émet des avertissements pour les cas moins graves. Il est écrit en Python 3.8+ sans dépendances externes, compatible Windows, macOS et Linux. L'installation se fait via un fichier de configuration JSON et un script Python copié dans le répertoire des scripts de Claude.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/delivery-gate

Demander à votre IA préférée

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

Documentation

Delivery Gate — Porte de qualité mécanique pour Claude Code

Un crochet d'arrêt qui vérifie trois choses avant que Claude puisse terminer une session, en utilisant uniquement des vérifications déterministes — horodatages de modification de fichiers, utilisation disque et motifs regex sur le texte de la transcription. Aucune inférence IA.

Ceci est différent des portes de raisonnement (comme self-audit) : delivery-gate vérifie des faits vérifiables par machine ; self-audit vérifie la qualité des sorties selon quatre dimensions de raisonnement. Ensemble, ils forment une défense en profondeur :

  • delivery-gate : « La bibliothèque d'apprentissage a-t-elle été touchée aujourd'hui ? L'espace disque est-il sûr ? »
  • self-audit : « Le contenu du fichier est-il correct, complet et honnête ? »

Il s'agit du même motif que les portes de pipeline CI — des vérifications automatisées et déterministes qui vérifient des faits lisibles par machine plutôt que de se fier à un état autodéclaré.

Ce qu'il vérifie

VérificationMécanismeEn cas de déclenchement
Schémas de rationalisationRegex sur la queue de la transcriptionAvertissement uniquement (ne bloque jamais)
Bibliothèques d'apprentissage obsolètesmtime sur 5 chemins configurablesAvertissement si certaines sont obsolètes ; Blocage si >=3 obsolètes OU growth-log obsolète + tâche complexe
Espace disque < 50 Goshutil.disk_usageAvertissement
Espace disque < 15 Goshutil.disk_usageBlocage (exit 2)

La détection de rationalisation avertit sur des motifs comme « ignorer les tests pour l'instant » et « bogue préexistant » — des signaux de surface indiquant que la réflexion a peut-être été écourtée. Elle ne bloque jamais d'elle-même, car les heuristiques regex peuvent produire des faux positifs. Les conditions de blocage sont : disque critique, >=3 bibliothèques d'apprentissage obsolètes, OU growth-log spécifiquement obsolète (toutes nécessitent une tâche complexe >=3 modifications).

Pourquoi

Les vérifications intégrées de Claude Code couvrent la qualité du code (construction → typage → lint → tests). Mais il existe un mode d'échec différent : l'agent produit du code fonctionnel alors que l'hygiène de la session a été négligée — apprentissage non capturé, raccourcis rationalisés, disque qui se remplit silencieusement.

Après plusieurs sessions de « livrer et oublier », l'humain n'a pas progressé. Ce crochet impose l'habitude : tâche complexe → doit toucher les bibliothèques d'apprentissage.

Installation

cp quality-gate.py ~/.claude/scripts/

Ajoutez à ~/.claude/settings.json :

{
  "hooks": {
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "python3 ~/.claude/scripts/quality-gate.py",
        "timeout": 5000
      }]
    }]
  }
}

Bibliothèques d'apprentissage

Créez ces fichiers dans le répertoire mémoire de votre projet. Le crochet vérifie si au moins un a été mis à jour aujourd'hui :

memory/
├── growth-log/          # Entrées d'apprentissage quotidiennes (répertoire)
├── decisions/log.md     # Journal des décisions
├── output-index.md      # Index des sorties de session
├── ratings-tracker.md   # Suivi des évaluations de compétences
└── tooling_capabilities.md  # Inventaire des outils connus

Personnalisez le dictionnaire LIBS pour correspondre à votre propre structure de fichiers.

Configuration

Modifiez quality-gate.py :

VariableDéfautObjectif
RATIONALIZE4 motifsMotifs regex pour la détection de rationalisation
LIBS5 bibliothèquesFichiers/répertoires à vérifier pour les mises à jour du jour
COMPLEX_THRESHOLD3Appels Edit/Write pour classer comme complexe
DISK_WARN_GB50Avertir en dessous de ce seuil
DISK_CRIT_GB15Bloquer en dessous de ce seuil

Exemples

Session simple — autorisée :

edit_count=1 (< 3, pas complexe) → exit 0

Tâche complexe, apprentissage capturé — autorisée :

edit_count=5 (complexe) → vérifie LIBS → growth-log mis à jour aujourd'hui → exit 0

Tâche complexe, pas d'apprentissage — BLOQUÉE :

edit_count=4 (complexe) → vérifie LIBS → les 5 obsolètes → exit 2
stderr: "Blocage : tâche complexe terminée mais aucun apprentissage capturé aujourd'hui."

Espace disque faible — BLOQUÉE :

disk_free=12Go < 15Go critique → exit 2
stderr: "Blocage : espace disque à 12Go (seuil : 15Go)."

Limites

Le crochet impose l'habitude de toucher les bibliothèques d'apprentissage, pas la qualité de ce qui a été enregistré. Si output-index.md est mis à jour mais que growth-log est ignoré, le crochet passe (1 bibliothèque sur 5 touchée). C'est intentionnel : les portes mécaniques vérifient des faits vérifiables par machine. Pour la vérification de la qualité du contenu, associez-le à self-audit.

Compatibilité

  • Python 3.8+ (utilise from __future__ import annotations)
  • Multi-plateforme : Windows, macOS, Linux
  • Zéro dépendance en dehors de la bibliothèque standard

Qualité

Ce code a subi 4 cycles de revue de code automatisée (CodeRabbit + Greptile) avec 9 bogues réels trouvés et corrigés.

Voir aussi

  • self-audit — Porte de qualité de raisonnement (exhaustivité/cohérence/fondement/honnêteté)
  • verification-loop — Vérifications de qualité du code (construction/typage/lint/tests)
  • gateguard — Porte de sécurité PreToolUse

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/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

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.

Skills associés