ce-pickup

Extrayez localement les handoffs de session sans utiliser de tokens frontier.

Qu'est-ce que ce-pickup ?

Ce skill extrait des documents ce-handoff/v1 à partir de sessions Hermes passées en utilisant un modèle local, sans aucun coût de tokens frontier. Il est particulièrement utile pour reprendre une session inachevée sans avoir à la relire avec un modèle coûteux, ou pour générer un handoff à partir d'une ou plusieurs sessions anciennes sans charger le contexte. Le skill s'appuie sur une simple combinaison de sqlite3, curl, jq et awk pour lire la base de données Hermes et appeler un modèle Ollama local (par défaut Ornith-1.5-35B-A3B). Il respecte le format ce-handoff/v1 et produit des fichiers Markdown compatibles avec la commande `/ce-handoff resume`. Il inclut également un watchdog optionnel de plafond contextuel pour surveiller en temps réel la taille du contexte et déclencher des extractions locales si nécessaire. À utiliser sur des postes de développement ou des environnements CI sans accès à des modèles frontier.

Compatible avec~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/wesleymatosdev/skills/tree/main/workflow/ce-pickup

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

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

Documentation

Que fait ce-pickup ?

Extrait les documents ce-handoff/v1 des sessions Hermes passées en utilisant un modèle local. Zéro coût de token frontier. La sortie est au format Markdown ce-handoff/v1 standard, donc /ce-handoff resume <chemin> fonctionne immédiatement.

Utilisez ceci au lieu d'exécuter /ce-handoff sur une session froide qui brûlerait votre quota d'abonnement juste pour rattraper le retard.

Quand l'utiliser

  • L'utilisateur souhaite reprendre une session laissée inachevée sans dépenser de tokens frontier pour la relire
  • Vous avez besoin d'un handoff d'une ou plusieurs sessions passées mais la fenêtre de contexte est déjà chargée
  • L'utilisateur demande un "pickup" ou "catch-up" pour une ancienne session
  • Exécuter /ce-handoff sur une grande session froide serait coûteux

Démarrage rapide

bash ~/.hermes/scripts/ce-pickup.sh ID_SESSION[,ID_SESSION,...]

La sortie est écrite par défaut dans /tmp/compound-engineering-$(id -u)/ce-pickup/.

Reprenez ensuite depuis n'importe quel fichier de sortie :

/ce-handoff resume /tmp/compound-engineering-<uid>/ce-pickup/<slug>.md

Arguments

  • Arg 1 (obligatoire) : identifiants de session séparés par des virgules (depuis session_search ou Hermes browse)
  • Arg 2 (facultatif) : nom du modèle Ollama — défaut hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q5_K_M
  • Arg 3 (facultatif) : répertoire de sortie personnalisé

Surcharges d'environnement (pour les tests et les hôtes alternatifs) : CE_PICKUP_DB (défaut ~/.hermes/state.db), CE_PICKUP_OLLAMA_URL (défaut http://localhost:11434/api/chat), CE_PICKUP_MAX_CHARS (défaut 24000).

Routage du modèle

Par défaut : Ornith-1.5-35B-A3B-GGUF:Q5_K_M — qualité d'extraction vérifiée, s'exécute localement.

Si Ornith n'est pas chargé, tout modèle Ollama local capable fonctionne. N'utilisez PAS un modèle frontier (cela irait à l'encontre du but).

Vérifiez ce qui est disponible : ollama list

Fonctionnement

  1. Lit ~/.hermes/state.db via sqlite3 — pas de Python, pas de dialogues TCC
  2. Extrait les messages user + assistant ordonnés par horodatage
  3. Tronque la transcription à 24 000 caractères (~6k tokens) — suffisant pour une extraction significative
  4. Appelle l'API /api/chat d'Ollama via curl avec une invite d'extraction structurée
  5. Écrit le frontmatter ce-handoff/v1 + le corps du modèle dans le répertoire de sortie
  6. Le nom de fichier est un slug du titre de la session ; suffixe numérique en cas de collision

Format de sortie

Chaque fichier de sortie est un ce-handoff/v1 valide avec :

  • artifact_contract: "ce-handoff/v1" dans le frontmatter
  • session_id, cwd, branch, repository lorsque disponibles
  • Extraction couvrant : objectif, travail accompli, état actuel, décisions/contraintes, blocages, approches échouées, références, prochaines étapes

Watchdog de plafond contextuel (compagnon)

scripts/context-ceiling-watchdog.sh est un moniteur déterministe, sans agent, pour le contexte de session en direct. Il estime le contexte actuel de chaque session en direct (contenu du message active=1 ÷ 4 caractères/token — n'utilisez jamais sessions.input_tokens, qui est un volume de facturation cumulatif incluant les relectures de contexte) et applique :

  • >= 50k RAPPEL — message d'une ligne, se répète toutes les heures
  • >= 70k ALERTE — avertissement de point de contrôle, se répète toutes les 30 min
  • >= 80k EXTRACTION — exécute ce-pickup localement et rapporte le chemin ce-handoff/v1 ; après extraction, ne ré-alerte que si la session grimpe d'environ 10k supplémentaires (CRITIQUE)

Il est silencieux (stdout vide) sauf si un seuil est déclenché, donc il s'intègre directement dans un cron sans agent avec détection de changement. L'état réside dans ~/.cache/context-ceiling-watchdog/ (TSV plat — pas de mémoire LLM, pas de continuité récursive). Il n'écrit jamais dans la configuration Hermes ou l'état d'exécution ; state.db est ouvert avec sqlite3 -readonly.

Testez-le sans modèle réel : bash scripts/mock-ollama.sh 21143 & puis bash scripts/test-watchdog.sh (DB de fixture + seuils adaptés, 20 vérifications).

Pièges

Dialogues TCC depuis Python (macOS Sequoia+) : Exécuter Python comme sous-processus d'une application avec des droits étendus peut déclencher des dialogues TCC pour iCloud Drive ou Documents — même en lisant uniquement ~/.hermes/state.db. Le script shell utilise uniquement sqlite3 + curl + jq + awk et NE déclenche PAS TCC. N'utilisez jamais d'implémentation Python de ce workflow sauf si l'utilisateur accepte explicitement les dialogues TCC.

Troncature de la transcription : 24k caractères couvre la plupart des sessions. Les sessions très longues (200+ messages avec des sorties d'outils volumineuses) sont tronquées en fin de fichier. Si le handoff semble léger, divisez en requêtes plus ciblées.

Modèles de raisonnement + num_predict : num_predict d'Ollama limite le total des tokens générés Y COMPRIS message.thinking. Un modèle de raisonnement (Ornith en est un) peut brûler tout le budget dans le canal de raisonnement et renvoyer un message.content vide ou tronqué — que le script lit exclusivement. Symptôme : "réponse vide d'Ollama" ou un handoff qui s'arrête au milieu d'une phrase, ressemblant à un problème de qualité du modèle alors que c'est un bogue de payload. Le script envoie think:false (avec un retour sans le drapeau pour les modèles qui le rejettent). Note de Wesley : ce drapeau est correct UNIQUEMENT pour ce travail d'extraction mécanique — le raisonnement d'Ornith est un atout dans l'ingénierie agentique, et une extraction ne dit rien sur la capacité agentique. Ne généralisez pas une mauvaise extraction en verdict sur le modèle.

Ollama doit être en cours d'exécution : Vérifiez avec ollama list avant d'invoquer.

La sortie est dans /tmp : Le système d'exploitation peut la récupérer au redémarrage. Copiez vers un chemin stable si vous reprenez après un redémarrage.

Script

L'implémentation canonique est scripts/ce-pickup.sh dans ce skill — appelez-la par son chemin de skill. Une copie côté hôte existait historiquement dans ~/.hermes/scripts/ce-pickup.sh (documentée comme un lien symbolique) ; sur les machines où cette copie existe mais N'EST PAS un lien symbolique, elle est obsolète — faites confiance au répertoire du skill.

Voir aussi : le skill ce-handoff pour le workflow de reprise une fois le document de handoff créé.

Individual skills in this repo

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

Skills associés