# Checklist de vérification — Rapport Settings

Les règles s’accumulent dans le temps. Chaque exécution workflow-changelog DOIT exécuter TOUTES les règles à la profondeur indiquée. Quand un nouveau type de dérive est détecté et qu’une règle existante aurait dû le détecter (mais n’existait pas ou était trop superficielle), ajouter une nouvelle règle ici.

## Niveaux de profondeur

| Depth | Signification | Exemple |
|-------|---------------|---------|
| `exists` | Vérifier si une section/table/fichier existe | "Le rapport a-t-il un tableau Sandbox Settings ?" |
| `presence-check` | Vérifier si un élément précis est présent ou absent | "L’événement `ConfigChange` est-il dans Hook Events ?" |
| `content-match` | Comparer les valeurs réelles mot à mot avec la source | "La description du paramètre `model` correspond-elle à la doc officielle ?" |
| `field-level` | Vérifier que chaque champ individuel est comptabilisé | "Chaque clé settings officielle apparaît-elle dans le bon tableau ?" |
| `cross-file` | Une même valeur doit correspondre entre plusieurs fichiers | "La section hooks de CLAUDE.md correspond-elle au rapport ?" |

---

## 1. Settings Keys Tables

Règles vérifiant les tableaux de clés de paramètres contre la documentation officielle.

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 1A | Key Completeness | Pour chaque clé de paramètre dans la doc officielle, vérifier qu’elle apparaît dans la bonne section du rapport | field-level | settings documentation page | 2026-03-05 | Checklist initiale — éviter de manquer de nouvelles clés |
| 1B | Key Types | Pour chaque clé, vérifier que la colonne Type correspond à la doc officielle | content-match | settings documentation page | 2026-03-05 | Les erreurs de type créent de la confusion |
| 1C | Key Defaults | Pour chaque clé avec défaut, vérifier que la colonne Default correspond à la doc officielle | content-match | settings documentation page | 2026-03-05 | Mauvais défauts = comportement inattendu |
| 1D | Key Descriptions | Pour chaque clé, vérifier que la description reflète précisément le comportement officiel | content-match | settings documentation page | 2026-03-05 | Descriptions obsolètes trompeuses |
| 1E | Scope Column | Pour chaque clé avec colonne Scope, vérifier que la portée correspond à la doc officielle | content-match | settings documentation page | 2026-03-15 | Des portées incorrectes ont été détectées sur `extraKnownMarketplaces` et `autoMemoryDirectory` |
| 1F | Inverse Completeness | Pour chaque clé du rapport, vérifier qu’elle existe dans la doc officielle OU qu’elle est explicitement marquée non vérifiée | field-level | settings documentation page + JSON schema | 2026-03-15 | Empêche l’accumulation de clés suspectes |
| 1G | Edge-Case Semantics | Pour les paramètres avec comportements limites (`0`, chaîne vide, `null`), vérifier que le comportement est documenté et correct | content-match | settings documentation page | 2026-03-15 | Les cas limites étaient sous-vérifiés |
| 1H | File Scope Check | Vérifier que les clés listées comme `settings.json` ne sont pas des préférences uniquement `~/.claude.json` | content-match | settings documentation page "Available settings" vs "Global config settings" | 2026-03-18 | `showTurnDuration` et `terminalProgressBarEnabled` étaient dans la mauvaise portée |
| 1I | Skills Settings Keys | Vérifier explicitement les clés settings liées aux skills (`skillOverrides`, `disableSkillShellExecution`, `maxSkillDescriptionChars`, `skillListingBudgetFraction`, etc.) | field-level | settings documentation page | 2026-05-25 | Les clés de budget/listing de skills avaient été manquées |

## 2. Settings Hierarchy

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 2A | Priority Levels | Vérifier que tous les niveaux de priorité correspondent à la doc officielle (chaîne 5 niveaux + managed policy) | field-level | settings documentation page | 2026-03-05 | Mauvaise priorité = confusion de surcharge |
| 2B | File Locations | Pour chaque niveau, vérifier le chemin de fichier | content-match | settings documentation page | 2026-03-05 | Mauvais chemins = paramètres ignorés |
| 2C | Merge Semantics | Vérifier que la description de fusion array/object correspond à la doc officielle | content-match | settings documentation page | 2026-03-15 | Changement "merged" → "concatenated and deduplicated" |
| 2D | Managed Internals | Vérifier méthodes de livraison managed-tier, précédence interne, chemins plateforme et notes de dépréciation | field-level | settings documentation page | 2026-03-15 | Détails managed non couverts auparavant |

## 3. Permissions

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 3A | Permission Modes | Vérifier que tous les modes de permission correspondent à la doc officielle | field-level | settings documentation page | 2026-03-05 | Modes manquants = options limitées |
| 3B | Tool Syntax Patterns | Vérifier les motifs et exemples de syntaxe des permissions d’outils | content-match | settings documentation page | 2026-03-05 | Mauvaise syntaxe = échecs de permission |
| 3C | Bidirectional Mode Check | Vérifier dans les deux sens que chaque mode du rapport existe dans la doc et inversement | field-level | settings + permissions documentation pages | 2026-03-15 | `askEdits`/`viewOnly` étaient non vérifiés |
| 3D | Evaluation Semantics | Vérifier ordre d’évaluation deny-first, restrictions remote et significations des préfixes de chemins | content-match | permissions documentation page | 2026-03-15 | Les détails sémantiques manquaient |

## 4. Hooks (REDIRECTED)

L’analyse des hooks est exclue de ce workflow. Les hooks sont maintenus dans [claude-code-hooks](https://github.com/shanraisshan/claude-code-hooks). Vérifier seulement que le lien de redirection reste valide.

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 4A | Hooks Redirect | Vérifier que la section hooks du rapport contient un lien valide vers claude-code-hooks | exists | report file | 2026-03-05 | Hooks externalisés vers un dépôt dédié |

## 5. Environment Variables

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 5A | Env Var Completeness | Vérifier que toutes les variables configurables via `env` apparaissent dans le rapport | field-level | settings documentation page | 2026-03-05 | Variables manquantes = options limitées |
| 5B | Ownership Boundary | Vérifier qu’aucune variable du fichier CLI startup n’est dupliquée dans le rapport settings, et inversement | cross-file | claude-cli-startup-flags.md vs settings report | 2026-03-05 | Prévenir les doublons après séparation des fichiers |
| 5C | Env Var Descriptions | Vérifier que descriptions, formats, valeurs et comportements correspondent à `/en/env-vars` | content-match | env-vars documentation page | 2026-03-15 | `ANTHROPIC_CUSTOM_HEADERS` était mal décrit |
| 5D | Inverse Env Var Check | Pour chaque env var du rapport, vérifier son existence officielle ou son annotation non vérifiée | field-level | env-vars documentation page | 2026-03-15 | Évite les variables orphelines |

## 6. Examples

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 6A | Quick Reference Example | Vérifier que l’exemple complet utilise les paramètres actuels valides avec syntaxe correcte | content-match | settings documentation page | 2026-03-05 | L’exemple doit rester actuel |
| 6B | Example URL Validation | Vérifier les URLs intégrées dans les blocs JSON d’exemple | exists | HTTP response | 2026-03-15 | `$schema` utilisait un mauvais domaine |

## 7. Cross-File Consistency

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 7A | CLAUDE.md Sync | Vérifier que les sections Configuration Hierarchy et Hooks System de CLAUDE.md sont cohérentes avec le rapport | cross-file | CLAUDE.md vs report | 2026-03-05 | CLAUDE.md peut dériver du rapport |

## 8. Process

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 8A | Source Credibility Guard | Ne signaler une dérive que si elle est confirmée par des sources officielles ; les blogs tiers servent de pistes uniquement | content-match | official docs only | 2026-03-05 | Évite les faux positifs |

## 10. Version Metadata & Suspect Key Lifecycle

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 10A | Version Metadata | Vérifier que badge de version, compte de paramètres et compte d’env vars reflètent la version auditée et les lignes réelles | content-match | report file internal consistency | 2026-03-15 | Les métadonnées avaient dérivé |
| 10B | Suspect Key Escalation | Après 5 runs ON HOLD consécutifs, les clés suspectes doivent être résolues ou annotées précisément | exists | changelog history | 2026-03-15 | Évite l’accumulation indéfinie |
| 10C | Bidirectional Completeness | Toute clé, mode de permission et env var du rapport doit être traçable vers une source officielle ou explicitement non vérifiée | field-level | official docs vs report | 2026-03-15 | Règle inverse transversale |

## 9. Hyperlinks

| # | Category | Check | Depth | Compare Against | Added | Origin |
|---|----------|-------|-------|-----------------|-------|--------|
| 9A | Local File Links | Vérifier que tous les liens relatifs existent | exists | local filesystem | 2026-03-05 | Des déplacements de fichiers cassent les liens |
| 9B | External URL Links | Vérifier que toutes les URLs externes retournent une page valide | exists | HTTP response | 2026-03-05 | Les docs externes peuvent changer |
| 9C | Anchor Links | Vérifier que toutes les ancres internes pointent vers des titres existants | exists | file headings | 2026-03-05 | Des renommages de sections peuvent casser les ancres |
