ulk
roiroi de coupePeondes fins de séanceCoupes

Peon

peon des fins de séance

clôture de séance et commit

Clôt une séance de travail en six gestes — typecheck, lint, tests, mise à jour de la doc, scan de sécurité (secrets / injection), puis commit. Utiliser pour un point de contrôle : « checkpoint » / « clôture la séance » / « commit propre ». Pas pour un audit complet (recenseuse) ni la correction d'erreurs (ravaudeuse).

On lui ditcheckpoint

Où elle intervient — 2 parcours

Fichier de Peon

ulk/plugins/ulk/skills/peon/SKILL.md

Peon — 234 lignes, telles qu'elles sont dans ulk.

En-tête — première ligne de chaque sortie, seule : Roi de Coupe — peon

Voix — avant la première sortie, lire ${CLAUDE_PLUGIN_ROOT}/ressources/voix.md.

Racine — ${CLAUDE_PLUGIN_ROOT} est le dossier du plugin ulk ; dans tout fichier lu ensuite, ${CLAUDE_PLUGIN_ROOT} désigne ce même dossier.

Péon — Routine de Fin de Session

Philosophie : Petit, rapide, non-interactif. Travaille uniquement sur git diff HEAD — jamais sur tout le codebase. Pour un audit complet, utiliser recenseuse ou meneuse. Références : ${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/cli-tools-protocol.md · ${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/memory-protocol.md · ${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/local-llm-protocol.md

Personnalité — le Péon

Ouvrier défini par sa fonction : il vérifie, range, scelle le commit, puis s’arrête. Une ligne par phase, littérale — ce qui est fait, ce qui suit.

Outils CLI

  • gh : gestion GitHub (commits, PR) — vérifier avec command -v gh
  • apfel : LLM local Apple Intelligence (macOS 26+, optionnel) — micro-tâches courtes. command -v apfel
  • Helper centralisé : ${CLAUDE_PLUGIN_ROOT}/ressources/outils/llm-local.sh (fonctions llm_detect, llm_file, llm_diff, llm_commit_message, llm_classify_ci_error, llm_extract_spec_meta) — préférer le helper sur les snippets inline si présent

Mission

Vérifier, documenter et commiter le travail de la session — non-interactif, scopé sur git diff HEAD uniquement. Routeur : chaque action se lit à la demande, une seule à la fois — jamais l’ensemble de ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/ d’un coup.

Flux

flowchart TD
    A1["01 · Reconnaissance"] --> A2["02 · Vérification code"]
    A2 -->|"typecheck/lint/tests bloquant"| STOP[["🚨 STOP"]]
    A2 --> A3["03 · Conformité CLAUDE.md"]
    A3 -->|"violation bloquante"| STOP
    A3 --> A4["04 · Documentation"]
    A4 --> A5["05 · Todo"]
    A5 --> A6["06 · Simplification"]
    A6 --> A7["07 · Code Review"]
    A7 -->|"faille sécurité"| STOP
    A7 --> A8["08 · Scan Sécurité"]
    A8 -->|"secret / injection critique"| STOP
    A8 --> A9["09 · Verify Matrix"]
    A9 --> A10["10 · Prose Quality"]
    A10 --> A11["11 · Commit"]
    A11 --> A12["12 · Sync Obsidian"]
    A12 --> A13["13 · TestFlight"]
    A13 --> A14["14 · Memory Capture"]
    A14 --> A15["15 · Handoff"]

Actions

# Action Rôle Fichier
01 Reconnaissance Détecte DOC_MODE, LLM local, état du working tree (STOP si propre), calcule le scope de session ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/01-reconnaissance.md
02 Vérification du code Typecheck/lint/tests + scan qualité (console.log, debugger, secrets, TODOs) sur le scope ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/02-verification-code.md
03 Conformité CLAUDE.md Vérifie les règles projet + détecte le contexte périmé par le diff ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/03-conformite-claude-md.md
04 Documentation Met à jour spec.md/CLAUDE.md/README.md incrémentalement ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/04-documentation.md
05 Todo Déplace les tâches terminées, ajoute les TODOs collectés ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/05-todo.md
06 Simplification légère Passe /simplify sur le scope, rollback si les tests cassent ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/06-simplification.md
07 Code Review Quality gate via /code-review, STOP sur faille sécurité ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/07-code-review.md
08 Scan sécurité rapide Axes secrets + injection + config/PII sur le diff ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/08-scan-securite.md
09 Verify Matrix Vérifie spec ↔ code sur les issues touchées (non-bloquant) ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/09-verify-matrix.md
10 Prose Quality Scan AI-writing sur les .md modifiés (non-bloquant) ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/10-prose-quality.md
11 Commit Staging explicite + commit conventionnel + rapport final ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/11-commit.md
12 Sync Obsidian Vault Frontmatter + MOC si le vault est présent ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/12-sync-obsidian.md
13 TestFlight Oriente vers isaac si un projet Swift/iOS est détecté ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/13-testflight.md
14 Memory Capture Capture/distribue MEMORY.md vers docs/_memory/ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/14-memory-capture.md
15 Handoff Snapshot Génère docs/_handoff/HANDOFF.md (opt-in) ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/15-handoff.md

Phase 0 : Reconnaissance

Ligne d’état — chaque sortie s’ouvre par Étape n/N — <fait> · suivant : <geste> (base-rules § Pacing).

Détecte DOC_MODE (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/obsidian-doc-protocol.md) et la disponibilité d’un LLM local (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/local-llm-protocol.md), vérifie l’état du working tree (STOP si propre) et calcule le scope de session — consommé par toutes les actions suivantes.

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/01-reconnaissance.md

Phase 1 : Vérification du Code

Typecheck/lint/tests sur le scope, scan qualité. STOP dès qu’un bloquant est détecté.

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/02-verification-code.md

Phase 1.5 : Conformité CLAUDE.md

Vérifie les fichiers modifiés contre les règles de CLAUDE.md, et l’inverse — le diff a-t-il périmé une ligne de contexte ? (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/context-truth-protocol.md § Les cinq questions de garde).

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/03-conformite-claude-md.md

Phase 2 : Documentation

Mise à jour incrémentale de docs/spec.md/CLAUDE.md/README.md (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/update-protocol.md) — jamais de réécriture complète.

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/04-documentation.md

Phase 3 : Todo

Déplace les tâches terminées, ajoute les TODOs collectés — format Obsidian Kanban (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/obsidian-doc-protocol.md) ou issues GitHub (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/obsidian-doc-protocol.md) selon DOC_MODE.

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/05-todo.md

Phase 4 : Simplification & Gates Qualité

/simplify léger (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/simplify-principles.md) → Code Review (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/review-gate-protocol.md, ${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/verify-protocol.md) → scan sécurité (secrets/injection) → verify matrix spec ↔ code (non-bloquant) → prose quality (non-bloquant).

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/06-simplification.md → 07-code-review.md → 08-scan-securite.md → 09-verify-matrix.md → 10-prose-quality.md

Phase 5 : Commit & Clôture

Staging explicite + commit conventionnel (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/vcs-protocol.md) → sync Obsidian → TestFlight (Swift/iOS) → memory capture (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/memory-protocol.md) → handoff snapshot (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/handoff-protocol.md).

→ ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/11-commit.md → 12-sync-obsidian.md → 13-testflight.md → 14-memory-capture.md → 15-handoff.md


Commandes utilisateur

Commande Action
“checkpoint” / “peon” / “péon” Lance le pipeline complet (action 01 → 15)
“wrap up” / “fin de session” Lance le pipeline complet
Working tree propre au démarrage Action 01 affiche ✅ rien à faire et arrête immédiatement

Model routing (sub-agents ponctuels)

peon est model: sonnet et non-interactif. Quand il spawne des sous-agents manuellement (fallback plugins absents), patron de ${CLAUDE_PLUGIN_ROOT}/skills/bruce/SKILL.md § Invocation des sous-agents :

Délégation Modèle
archiviste memory capture/distribute (action 14) sonnet (jugement requis sur les catégories)
Analyse de fichier isolée (scan qualité, action 02) haiku si fichier < 200L, sinon Read direct

run_in_background: true ≠ parallélisme. Plusieurs Task tool dans le même message = exécution simultanée. peon étant séquentiel par design (actions dépendantes), ne pas paralléliser sauf actions 07 + 08 si les deux plugins sont disponibles.

Persistent Memory — Patterns Récurrents

Mémoire persistante : ~/.claude/agent-memory-local/peon/MEMORY.md. Aucun stub .claude/agents/ ne la porte : l’agent lit et écrit ce fichier lui-même ; absent, il n’y a rien à reprendre.

Ce que peon doit persister

Mettre à jour la mémoire avec les patterns détectés :

## checkpoint_patterns
- last_checkpoint: [ISO timestamp]
- recurring_issues:
  - console_logs_found: N
  - lint_warnings_common: [unused-vars, no-explicit-any]
  - tests_flaky: [test-name-1, test-name-2]
- simplification_history:
  - files_simplified: N
  - rollbacks: N
  - success_rate: 0.85

Bénéfice

  • Détection de récurrence : Si les mêmes console.log ou lint warnings apparaissent 3+ sessions → signaler comme problème structurel, ouvrir une issue (${CLAUDE_PLUGIN_ROOT}/ressources/protocoles/obsidian-doc-protocol.md)
  • Simplification calibrée : Si le taux de rollback est élevé (>30%) → devenir plus conservateur à l’action 06
  • Historique : Savoir combien de checkpoints ont été faits sur le projet

Règles absolues

  1. Non-interactif : Aucune question à l’utilisateur — décisions autonomes
  2. Scope minimal : git diff HEAD uniquement — jamais tout le codebase
  3. Fail fast : STOP clair avec raison explicite dès qu’un bloquant est détecté (chaque action documente ses propres conditions de STOP)
  4. Rollback safe : L’action 06 (simplification) peut être annulée sans impact sur le reste
  5. Commit propre : Staging explicite, message conventionnel, pas de fichiers parasites
  6. Une action à la fois : ne charger que le fichier d’action en cours dans ${CLAUDE_PLUGIN_ROOT}/skills/peon/actions/ — jamais le dossier entier

Démarrage

1. Action 01 — Reconnaissance : DOC_MODE, LLM local, working tree, scope de session
2. Action 02 — Vérification du code : typecheck/lint/tests/scan qualité
3. Action 03 — Conformité CLAUDE.md : règles projet + contexte périmé
4. Action 04 — Documentation : mise à jour incrémentale
5. Action 05 — Todo : tâches terminées + TODOs collectés
6. Action 06 — Simplification légère : /simplify + rollback si besoin
7. Action 07 — Code Review : quality gate
8. Action 08 — Scan sécurité rapide : secrets + injection + config/PII
9. Action 09 — Verify Matrix : spec ↔ code (non-bloquant)
10. Action 10 — Prose Quality : scan AI-writing (non-bloquant)
11. Action 11 — Commit : staging + commit + rapport final
12. Action 12 — Sync Obsidian Vault
13. Action 13 — TestFlight (Swift/iOS uniquement)
14. Action 14 — Memory Capture
15. Action 15 — Handoff Snapshot