Mémoire de session
Conservez un enregistrement durable et lisible par l'humain de la session de travail actuelle afin qu'un autre agent puisse reprendre après une déconnexion avec une perte de contexte minimale.
Quand l'utiliser
Utilisez cette compétence quand :
- L'utilisateur demande de préserver, récupérer, sauvegarder ou gérer la mémoire de l'agent.
- Le travail est long, expérimental ou susceptible de s'étendre sur plusieurs déconnexions.
- Vous êtes sur le point de faire des modifications non triviales, d'exécuter des tâches longues, de changer de branche ou de faire une pause pour une saisie utilisateur.
- Vous reprenez dans un dépôt qui contient déjà des répertoires
./session/.
Répertoire de session
Créez un répertoire par session de travail :
mkdir -p session
date +%Y%m%d_%H%M%S
mkdir -p session/<session_date_time>
Utilisez l'heure locale de la machine. Réutilisez le même répertoire de session pour tous les points de contrôle de la même conversation, sauf si l'utilisateur démarre explicitement une nouvelle session.
Fichiers attendus :
session_state.md- objectif global, sous-tâche actuelle, compétences chargées, statut, plan, hypothèses, blocages et prochaines actions.timeline.md- journal d'ajout unique des actions majeures, commandes, résultats et décisions.files.md- fichiers inspectés, fichiers modifiés et pourquoi ils importent.handoff.md- instructions de reprise concises pour l'agent suivant.
Ajoutez d'autres fichiers uniquement si utiles, comme experiments.tsv, review_notes.md ou journaux de commandes copiés.
Démarrer ou reprendre
Au démarrage d'une session :
- Vérifiez les répertoires de session existants :
ls -dt session/* 2>/dev/null | head
- Si l'utilisateur reprend du travail, lisez les fichiers
session_state.md,timeline.mdethandoff.mdles plus récents et pertinents. - S'il n'existe aucune session pertinente, créez un nouveau répertoire horodaté.
- Écrivez un
session_state.mdinitial avec l'objectif global de l'utilisateur, la sous-tâche actuelle, les compétences chargées, le chemin du dépôt, la branche et les contraintes connues.
Ne traitez pas les notes de session comme la seule source de vérité. Vérifiez les affirmations importantes par rapport à l'état git, aux fichiers et à la sortie de commandes avant d'agir.
Rythme des points de contrôle
Écrivez un point de contrôle :
- Après avoir rassemblé suffisamment de contexte pour former un plan.
- Avant et après des modifications de code significatives.
- Avant des commandes longues, des expériences, des changements de branche ou tout ce qui est difficile à reconstruire à partir de la conversation.
- Quand l'utilisateur change de direction.
- Avant la réponse finale si la session a un état significatif à reprendre.
- Au minimum toutes les 30 minutes pendant un travail long actif.
Préférez mettre à jour les mêmes fichiers plutôt que de créer de nombreux petits fichiers de point de contrôle. Gardez l'enregistrement compact et facile à scanner.
Modèles de fichiers
session_state.md
# Session State
- Session: <session_date_time>
- Repo: <chemin absolu du dépôt>
- Branch: <nom de la branche>
- Started: <horodatage local>
- Updated: <horodatage local>
## Goal
<Objectif global stable de l'utilisateur en une ou deux phrases. Conservez-le à travers les ajustements de suivi, sauf si l'utilisateur le change explicitement.>
## Current Subtask
<Tâche immédiate ou demande d'ajustement actuellement traitée.>
## Loaded Skills
- `<skill-name>` - <pourquoi elle a été chargée et toute instruction importante à conserver.>
## Current Status
<Ce qui est vrai maintenant. Incluez le travail complété et le statut de vérification.>
## Plan
- [ ] <Prochaine étape concrète>
- [ ] <Prochaine étape concrète>
## Assumptions
- <Hypothèse et comment la vérifier si nécessaire.>
## Blockers
- <Blocage ou « Aucun connu ».>
timeline.md
# Timeline
## <horodatage local>
- User asked: <demande brève>
- Context gathered: <fichiers/commandes et résultat clé>
- Decision: <choix important et justification>
- Result: <modifications/tests/résultat>
files.md
# Files
## Inspected
- `<chemin>` - <pourquoi cela a importé>
## Changed
- `<chemin>` - <ce qui a changé et pourquoi>
## Generated
- `<chemin>` - <but>
handoff.md
# Handoff
## Resume From Here
<Un paragraphe résumant l'état actuel.>
## Next Actions
- <Action suivante la plus importante>
- <Vérification ou nettoyage encore nécessaire>
## Watch Outs
- <Risques, préférences utilisateur ou contraintes du dépôt que l'agent suivant doit conserver.>
Workflow de récupération
Lors de la reprise après une déconnexion :
- Trouvez le répertoire de session le plus récent probable.
- Lisez d'abord
handoff.md, puissession_state.md, puis letimeline.mdrécent. - Exécutez une vérification légère comme
git status --short,git branch --show-currentet des lectures de fichier ciblées. - Continuez à partir de la dernière action vérifiée.
- Ajoutez une entrée de chronologie notant la récupération et tout écart trouvé.
Règles de qualité
- Gardez les notes factuelles et concises. Les agents futurs ont besoin d'état, pas d'une transcription.
- Enregistrez les résultats de commandes qui importent, en particulier les tests échoués ou la vérification ignorée.
- Mentionnez les modifications non validées et si elles ont été faites par l'agent actuel ou pré-existantes.
- Ne stockez pas de secrets, de tokens, d'identifiants privés ou de gros journaux dans les fichiers de session.
- Si un fichier de session devient volumineux, résumez les anciens détails et gardez les dernières actions suivantes près du début de
handoff.md.