Revue de session par déroulement de pile

VérifiéPrudence

Génère un arbre des tâches terminées et des points ouverts à partir d'une session de conversation, dimensionné selon la forme mesurée du fil. Utile pour revoir de longues sessions de travail.

Spar Skills Guide Bot
ProductiviteIntermédiaire
02/08/2026
Claude Code
#session-review#retrospective#context-management#open-loops#task-tracking

Recommandé pour

Synthèse automatique

Reconstruit une session de travail passée sous forme d'arbre de dépilement : les tâches réellement terminées, barrées, et tout ce qui a été soulevé puis abandonné, imbriqué à la profondeur où cela s'est produit.

Points forts

  • Le dimensionnement de l'arbre est calculé par script à partir du nombre mesuré de prompts (1,5 × √prompts, borné 5–30), ce qui garantit un rendu cohérent d'une session à l'autre au lieu d'une longueur arbitraire
  • L'instance d'analyse n'a aucun accès à la conversation d'origine : elle juge sur la transcription seule, sans supposer de contexte projet
  • Le spine traite explicitement les cas difficiles : interruptions, retours de sous-agents, résumés de compaction et branches mortes (avec priorité au fil vivant)
  • Les outils sont restreints à la lecture et au script census.sh, donc la revue ne peut pas modifier la session

Limites

  • Fortement lié à Claude Code : s'appuie sur CLAUDE_SESSION_ID, CLAUDE_SKILL_DIR, context fork et agent general-purpose
  • Les prompts sont tronqués (800 caractères utilisateur, 400 pour l'IA) : les nuances des longs messages peuvent disparaître
  • Le plafond de nœuds (30 max) et la profondeur limitée à 3 imposent de compresser les très longues sessions, donc une partie du détail est perdue
Quand l'utiliser

À utiliser en fin de longue session pour savoir ce qui a réellement été fait et quels points restent en suspens.

Quand l'éviter

À éviter sur une session courte et linéaire, ou hors de Claude Code où ni l'identifiant de session ni le script de census ne sont disponibles.

Analyse de sécurité

Prudence
Score qualité84/100

The skill is a read-only analysis workflow: it invokes one bundled script with a scoped Bash allowlist, reads a locally generated transcript spine, and emits markdown. Nothing in it deletes data, contacts the network, or moves secrets off-machine. The residual concern is mechanical rather than malicious: unquoted `$ARGUMENTS` injected into a shell command is a command-injection shape, so a human should glance at census.sh, but the declared intent is legitimate and low-risk.

Points d'attention
  • •Runs a bundled shell script via Bash on every invocation; allowlist is scoped to `bash ${CLAUDE_SKILL_DIR}/census.sh:*` but the scope still permits arbitrary arguments after the script path
  • •`$ARGUMENTS` is interpolated unquoted into the shell command line (`census.sh ${CLAUDE_SESSION_ID} $ARGUMENTS`), so user-supplied text could be interpreted as shell syntax rather than a filename/session id
  • •Reads a `.jsonl` conversation transcript (possibly from a path the user supplies), which may contain sensitive session content, though it stays local with no network egress
  • •No exfiltration, no destructive commands, no obfuscation, no safety-disabling instructions in the SKILL.md itself
Comment cette analyse est faite

Exemples

Review current session
/opens
Review a specific transcript
/opens ~/.claude/projects/-Users-me-app/9f3c1a2b-session.jsonl
Review by session id
/opens 9f3c1a2b-4d7e-4c11-8a55-2e6b0f1d3c90

description: Stack-unwind review of this conversation - a tree of main tasks done (struck through) and every open left behind at the depth it was abandoned, sized by the thread's measured shape, never by feel. Optional argument - a .jsonl path or session id to review a different session. argument-hint: [session.jsonl | session-id] disable-model-invocation: true context: fork agent: general-purpose background: false allowed-tools: Read, Bash(bash ${CLAUDE_SKILL_DIR}/census.sh:*)

/opens - stack-unwind review

You are a fresh instance with NO access to the conversation you are about to review. That is by design: you must not assume anything about the user, the project, or what a "normal" conversation looks like.

The concept: long working sessions are depth-first. The user starts with an objective, drills into one aspect (leaving opens behind), drills deeper inside that, and so on - a stack, not a list. Your job is to reconstruct the whole thread as a stack-unwind tree: the main tasks that actually got done, checked and struck through, and everything raised-but-never-resolved as unchecked opens, nested at the stack depth where each was abandoned.

Step 1 - census (deterministic, run exactly this)

bash ${CLAUDE_SKILL_DIR}/census.sh ${CLAUDE_SESSION_ID} $ARGUMENTS

It prints SESSION, USER_PROMPTS, SPAN, BUDGET, SPINE (a file path), SPINE_BYTES. If it prints ERROR, stop and report that error text as your final message.

BUDGET is the sizing law and it is not yours to adjust, in either direction. Why it exists: opens are created by descents, and descents happen at user prompts - not at tokens, which are dominated by tool noise. So the tree size is computed from the measured prompt count (round(1.5 * sqrt(USER_PROMPTS)), clamped 5..30) by the script, before any model is involved. A zero-knowledge instance like you would otherwise default to "about a page" no matter the thread; the computed budget is what makes a 15-prompt evening yield 6 nodes and a 5-day monster yield 25, consistently, on every run.

Step 2 - read the spine

Read the SPINE file completely (use offset/limit chunks if it is large). It is the conversation reduced to plain chronological text:

  • [USER <timestamp>] - a user prompt (truncated to 800 chars)
  • [AI] - an assistant text reply (truncated to 400 chars)
  • [INTERRUPTED] - the user cut the assistant off mid-turn; a frame likely got popped without unwinding - strong open signal nearby
  • [TASK-RESULT] - a background subagent returned; its findings may contain deferred items
  • [COMPACTED SUMMARY <date>] - condensed earlier history; treat its contents as thread events
  • [USER dead-branch <timestamp>] / [AI dead-branch] - content from an abandoned or rewound timeline: the user backtracked and the thread continued differently. Real work and real opens can live there, but the live thread wins on any conflict, and nothing from a dead branch counts as done unless the live thread confirms it

Step 3 - build the tree

  1. First enumerate ALL candidate opens internally, end to end. Their count is K.
    • An open is anything raised but never resolved later in the thread: a deferred fix or rename, a "later/TODO", a question asked and never answered, an unverified claim ("should work"), a rabbithole abandoned mid-descent, a "we should also X" nobody did, next-steps proposed at the close and never picked up.
    • NOT an open: anything resolved later in the thread (render it done or omit it), transient debugging, plans that were superseded.
  2. Rank candidates by "would the user still care today". Recency, explicit user words ("later", "don't do X now"), and blocked-on-user gates rank high; stale trivia dies.
  3. Build the tree under these hard constraints:
    • max BUDGET nodes TOTAL (done + open combined), max depth 3, one line per node
    • top level = the thread's main tasks in chronological order
    • done: - [x] ~~task~~ - 3-6 word outcome
    • open: - [ ] item (MM-DD) with the date hint when useful
    • nesting mirrors the drill-down stack: an open left while inside sub-task B of task A nests under A > B
    • telegraphic but readable - no invented codenames, no abbreviations the tree itself doesn't explain

Step 4 - output

Your final message must be EXACTLY this raw markdown and nothing else - no preamble, no closing remarks, no code fence around it:

## <invented 4-8 word thread title> - <USER_PROMPTS> prompts, <SPAN>
<the tree>
_pruned: kept <nodes-shown-as-open> of <K> candidate opens_

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/stack-unwind-session-review-msba3n5v/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/stack-unwind-session-review-msba3n5v' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/stack-unwind-session-review-msba3n5v/download' --output '.skill-downloads/stack-unwind-session-review-msba3n5v/SKILL.md.part' && mv '.skill-downloads/stack-unwind-session-review-msba3n5v/SKILL.md.part' '.skill-downloads/stack-unwind-session-review-msba3n5v/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Bash(bash ${CLAUDE_SKILL_DIR}/census.sh:*)

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/stack-unwind-session-review-msba3n5v/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires