# Tooling Mesh — Pre-commit (headers) + Snippets VS Code Ce document fournit : 1) un **contrôle automatique** (pre-commit) qui vérifie la présence des headers de traçabilité Mesh 2) des **snippets VS Code** pour insérer rapidement les headers Référence normative : `docs/headers-template.md`. --- ## 1) Pre-commit : vérification des headers ### 1.1 Fichiers à ajouter #### `.pre-commit-config.yaml` (à la racine) ```yaml repos: - repo: local hooks: - id: mesh-traceability-headers name: Mesh traceability headers check entry: python3 scripts/check_trace_headers.py language: system types_or: [python, javascript, typescript, rust, yaml, toml, markdown, css, html] pass_filenames: true ``` #### `scripts/check_trace_headers.py` ```python #!/usr/bin/env python3 # Created by: Claude — 2025-12-29 # Purpose: Validate Mesh traceability headers in repo files from __future__ import annotations import re import sys from pathlib import Path # File extensions we validate VALID_EXTS = { ".rs", ".py", ".ts", ".tsx", ".js", ".jsx", ".yml", ".yaml", ".toml", ".md", ".css", ".html", ".htm", } # For markdown we allow HTML comment headers HEADER_PATTERNS = [ re.compile(r"^\s*//\s*Created by:\s*.+$", re.IGNORECASE), re.compile(r"^\s*#\s*Created by:\s*.+$", re.IGNORECASE), re.compile(r"^\s*/\*\s*$", re.IGNORECASE), re.compile(r"^\s*", "" ], "description": "Insert Mesh traceability header for Markdown files" }, "Mesh Header — CSS": { "prefix": "mesh-header-css", "body": [ "/*", "Created by: ${1:AgentName}", "Date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}", "Purpose: ${2:Short description}", "Refs: ${3:optional}", "*/", "" ], "description": "Insert Mesh traceability header for CSS files" }, "Mesh Header — HTML": { "prefix": "mesh-header-html", "body": [ "", "" ], "description": "Insert Mesh traceability header for HTML files" }, "Mesh Modified Tag": { "prefix": "mesh-mod", "body": [ "Modified by: ${1:AgentName} — ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} — ${2:reason}" ], "description": "Insert a Mesh modified-by tag" } } ``` ### 2.2 Activation Les snippets dans `.vscode/*.code-snippets` sont automatiquement pris en compte par VS Code. Utilisation : - taper `mesh-header-` puis sélectionner le snippet. --- ## 3) Recommandation Mesh - Appliquer le hook pre-commit sur tous les développeurs. - Dans Codex, fixer `AgentName` à une valeur stable (ex. `Codex`). - Pour les sous-agents : `SubAgent:SecurityReview`, etc.