Suivi d'Évolution de Documents

Traceur d'évolution de documents. Utilisez-le lorsque l'utilisateur possède une famille de versions de documents (fichiers horodatés ou nommés séquentiellement) et souhaite voir comment le document a changé au fil du temps — quels paragraphes/lignes/phrases ont été ajoutés, supprimés ou modifiés entre les versions consécutives, et comment un ensemble de concepts nommés (ou de titres détectés automatiquement) a évolué (introduit / conservé / modifié / supprimé). Se déclenche sur "suivre les modifications du document", "historique des versions", "ce qui a changé entre les brouillons", "lignée de concepts", "évolution du document". Émet une chronologie en Markdown + JSON.

Qu'est-ce que Suivi d'Évolution de Documents ?

Cette compétence (skill) permet de suivre l'évolution d'un document à travers ses différentes versions. Elle calcule les différences au niveau des paragraphes entre les versions consécutives et suit une lignée de concepts (introduit / conservé / modifié / supprimé). Elle est utile pour les familles de versions de documents (fichiers horodatés ou nommés séquentiellement) et se déclenche sur des requêtes comme "suivre les modifications du document", "historique des versions", "ce qui a changé entre les brouillons", ou "lignée de concepts". La compétence charge une configuration, vérifie qu'il existe au moins deux fichiers versionnés, puis exécute l'analyse. Les résultats sont générés dans les fichiers `evolution/evolution_<tracking_id>.{md,json}`. La granularité du diff peut être configurée : ligne, paragraphe (par défaut) ou phrase. Elle prend en charge les configurations JSON et YAML (avec PyYAML installé). Les limitations incluent une analyse strictement structurelle (basée sur `difflib`) et non sémantique, et les schémas de nommage doivent être soit séquentiels, soit basés sur un horodatage.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JiamingShi-JsPhys/agent-skills/tree/HEAD/skills/document-evolution-tracker

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · 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

document-evolution-tracker

Une compétence autonome qui suit l'évolution d'un document à travers ses versions. Étant donné une famille de versions (un répertoire contenant v1.md, v2.md, ... ou des fichiers horodatés), elle calcule les différences au niveau des paragraphes entre les versions consécutives et suit une lignée de concepts (introduit / conservé / modifié / supprimé).

WORKFLOW OBLIGATOIRE

Installation des dépendances (à la première exécution)

Avant la première exécution, vérifiez les dépendances d'exécution pour cette compétence :

  • Cœur : bibliothèque standard uniquement — aucune installation requise.
  • Optionnel : PyYAML (uniquement lorsque la configuration est un fichier .yaml ; les configurations JSON fonctionnent avec la bibliothèque standard seule).

Si PyYAML est manquant et que la configuration est au format YAML, prévenez l'utilisateur et demandez-lui s'il souhaite exécuter pip install pyyaml ; n'installez qu'après confirmation. N'installez jamais dans l'environnement global sans consentement explicite.

  1. Chargez une configuration (utilisez config/examples/family.json comme référence ; les configurations YAML sont également prises en charge si PyYAML est installé).
  2. Vérifiez que versions_dir contient au moins deux fichiers versionnés.
  3. Exécutez python -m src.cli run --config <chemin> [--concepts "A,B"].
  4. Signalez le nombre de transitions et dirigez l'utilisateur vers les fichiers ./evolution/evolution_<tracking_id>.{md,json}.

Quand l'utiliser

  • Une famille de versions de documents (fichiers horodatés ou nommés séquentiellement) doit être comparée au fil du temps.
  • L'utilisateur demande "suivre les modifications du document", "historique des versions", "ce qui a changé entre les brouillons", ou "lignée de concepts".
  • Un concept nommé (un terme, un titre, une définition) doit être tracé à travers les brouillons pour voir quand il a été introduit, modifié ou supprimé.
  • L'évolution d'un brouillon doit être rapportée sous forme de chronologie plutôt que d'une simple différence entre deux versions.

Exemples d'utilisation

# Validez une configuration et voyez les fichiers versionnés découverts.
python -m src.cli validate --config config/examples/family.json
python -m src.cli versions --config config/examples/family.json

# Exécutez le traceur ; nommez éventuellement les concepts à suivre.
python -m src.cli run --config config/examples/family.json --concepts "entropie,fonction de partition"

Les rapports sont écrits dans ./evolution/evolution_<tracking_id>.{md,json} ; la chronologie Markdown est destinée aux lecteurs, le JSON à un usage programmatique.

Gestion des échecs

  • Configuration invalide (validate se termine avec un code non nul) — corrigez le champ signalé et re-validez ; le schéma de nommage et versions_dir sont les causes habituelles.
  • Moins de deux versions découvertes — l'exécution est abandonnée ; vérifiez la règle version_naming par rapport aux noms de fichiers réels et réessayez.
  • Un concept n'apparaît jamais — il est signalé comme absent dans toutes les versions, ce qui est un résultat valide, pas une erreur.
  • Code de sortie inattendu — signalez le message textuellement ; ne passez pas à la comparaison manuelle des fichiers.

Granularité du diff

GranularitéRègle de division
ligneLignes non vides
paragraphe (par défaut)Blocs séparés par des lignes vides
phrasePhrases délimitées par la ponctuation

Limitations

  • La comparaison est structurelle (alignement de blocs via difflib), pas sémantique. Un concept est "présent" uniquement si son expression exacte (insensible à la casse) apparaît dans le texte de la version.
  • Les schémas de nommage personnalisés autres que sequential / timestamp ne sont pas pris en charge.

Individual skills in this repo

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

JiamingShi-JsPhys/agent-skills

Cross-document conflict detector. Use when the user has two or more documents, datasets, or extracted fact tables and wants to find contradictions between them. Triggers on "detect conflicts", "find contradictions", "do these documents agree", "cross-check claims", "inconsistency check", or when comparing a claim across multiple sources. Runs three detection levels: entity (numeric / boolean mismatch on the same key), clause (categorical mismatch), and argument (free-text disagreement). Emits a machine-readable conflict report in JSON / CSV / Markdown.

JiamingShi-JsPhys/agent-skills

Longitudinal statistical analysis pipeline. Use when the user has panel / repeated-measures data (one or more sessions per subject, with between-subject conditions) and wants to run a reproducible analysis: descriptive stats, a manipulation check, a linear mixed model, a lagged mediator, or a sensitivity analysis over random-effects / covariance structures. Triggers on any of the phrases "LMM", "mixed model", "repeated measures", "longitudinal analysis", "mediation over time", "lagged mediator", "sensitivity analysis of RE structure". When fired, load the YAML config that lists the enabled steps, run the pipeline, and report the per-step results plus the generated CSVs.

JiamingShi-JsPhys/agent-skills

State manager for multi-dimensional computational experiments. Iterate a parameter grid over many rounds, snapshot declared critical files each round, audit every round (params, hashes, timestamps, status), and roll back to any round non-destructively. Use it when a workflow runs hundreds of rounds across multiple parameter dimensions and needs per-round snapshots, full audit trail, and arbitrary rollback - e.g. longitudinal studies, parameter scans, or symbolic/ numerical sweeps calling external solvers (Mathematica, GAP, SymPy, custom scripts).

Skills associés