{
  "id": "context-summarization-n2",
  "code": "PS-0057",
  "titre": "Résumé structuré du contexte pour compression sécurisée de session",
  "resume": "Permet au modèle de générer un résumé structuré et sécurisé du contexte de session pour compresser les longues conversations sans perdre les informations critiques.",
  "type_ia": "conversationnelle",
  "piliers": [
    "persistance-contexte",
    "maitrise-couts"
  ],
  "niveau": "N2",
  "owasp": [
    "LLM09"
  ],
  "tags": [
    "resumé",
    "compression-contexte",
    "sessions-longues",
    "couts"
  ],
  "prompt_fr": "Sur demande de résumé de session (`/résumé`, « résume la session »), génère un bloc structuré.\n\n**Format obligatoire**\n```\n[SESSION_SUMMARY]\nSujet principal : <description>\nDécisions prises : <liste numérotée>\nInformations clés : <liste>\nDonnées sensibles mentionnées : <à indiquer ou AUCUNE>\nActions en attente : <liste ou AUCUNE>\nPoints de désaccord ou d'incertitude : <liste ou AUCUN>\nProchain point : <description ou À DÉFINIR>\n[/SESSION_SUMMARY]\n```\n\n**Règles de sécurité du résumé**\n- N'inclus **jamais** de secrets, mots de passe ou credentials dans le résumé.\n- Si des données personnelles ont été partagées, indique leur existence sans les répéter.\n- Le résumé peut être utilisé pour démarrer une nouvelle session — il doit être autosuffisant.\n\n**Livrables à produire**\n- **Bloc `[SESSION_SUMMARY]…[/SESSION_SUMMARY]`** complet, copiable-collable pour démarrer une nouvelle session.\n- **Événement structuré** :\n  `[SESSION_SUMMARY_GENERATED] {\"ts\":\"<ISO8601>\",\"decisions_count\":<n>,\"pending_actions\":<n>,\"sensitive_mentions\":<n>,\"safe_to_share\":<true|false>}`",
  "prompt_en": "On summary request (`/summary`, \"summarize the session\"), generate a structured block.\n\n**Mandatory format**\n```\n[SESSION_SUMMARY]\nMain subject: <description>\nDecisions made: <numbered list>\nKey information: <list>\nSensitive data mentioned: <indicate or NONE>\nPending actions: <list or NONE>\nDisagreements or uncertainties: <list or NONE>\nNext point: <description or TO BE DEFINED>\n[/SESSION_SUMMARY]\n```\n\n**Summary security rules**\n- **Never** include secrets, passwords or credentials in the summary.\n- If personal data was shared, indicate its existence without repeating it.\n- The summary can be used to start a new session — it must be self-sufficient.\n\n**Deliverables to produce**\n- **`[SESSION_SUMMARY]…[/SESSION_SUMMARY]` block** complete, copy-pasteable to start a new session.\n- **Structured event**:\n  `[SESSION_SUMMARY_GENERATED] {\"ts\":\"<ISO8601>\",\"decisions_count\":<n>,\"pending_actions\":<n>,\"sensitive_mentions\":<n>,\"safe_to_share\":<true|false>}`",
  "langue_recommandee": "indifferent",
  "modeles_recommandes": [
    "claude",
    "gpt"
  ],
  "source": {
    "auteur": "PromptSecOps",
    "organisation": "PromptSecOps",
    "url": "https://promptsecops.fr",
    "type": "editoriale"
  },
  "cumulable_avec": [
    "memory-decay-warning-n1",
    "context-window-management-n2",
    "token-budget-instruction-n1"
  ],
  "explication": "La compression de contexte par résumé structuré permet de maintenir la continuité des sessions longues tout en maîtrisant les coûts en tokens. Le résumé doit exclure les données sensibles pour ne pas les propager dans de nouvelles sessions.\n\n**Quand l'utiliser :** sessions de travail longues, assistants de projet, tout contexte nécessitant une continuité sur plusieurs sessions.\n\n**Ce qu'il protège :** LLM09 — cohérence factuelle dans les sessions longues. Permet aussi de réduire les coûts en tokens (pilier maitrise-couts). N2 : le format [SESSION_SUMMARY] est à adapter à l'interface de l'application. Le champ `safe_to_share` indique si le résumé peut être partagé sans risque (aucune PII).",
  "installation": {
    "ou_quand": "Prompt **invoqué à la demande** en fin de session, ou conditionnellement quand l'utilisateur veut démarrer une nouvelle session avec le contexte de la précédente.",
    "moments": [
      "session-fin",
      "conditionnel"
    ],
    "exemples": [
      {
        "contexte": "ChatGPT / Claude.ai (session de travail)",
        "instruction": "Taper « /résumé » ou « résume la session » à la fin. Copier le bloc `[SESSION_SUMMARY]…` et le coller comme premier message de la nouvelle session."
      },
      {
        "contexte": "Claude Code",
        "instruction": "Invoquer avant `/compact` pour avoir un résumé propre et structuré (plutôt que la compaction automatique). Sauvegarder dans `.claude/SESSIONS.md` pour archive."
      },
      {
        "contexte": "Custom GPT (assistant projet)",
        "instruction": "**Custom GPT → Instructions** : ajouter une mention pour résumer automatiquement à chaque clôture de session."
      },
      {
        "contexte": "API (pipeline conversationnel)",
        "instruction": "Paramètre **`system`** + invocation programmatique en fin de session. Archiver les `[SESSION_SUMMARY_GENERATED]` pour analytics."
      }
    ]
  },
  "date_creation": "2026-05-17",
  "date_maj": "2026-05-22",
  "version": "1.1",
  "tokens_estimes": {
    "entree": 220,
    "sortie": null
  },
  "changelog": [
    {
      "date": "2026-05-17",
      "version": "1.0",
      "summary": "Création de la fiche"
    },
    {
      "date": "2026-05-22",
      "version": "1.1",
      "summary": "Mise à jour éditoriale"
    }
  ]
}
