{
  "id": "structured-output-long-document-n1",
  "code": "PS-0066",
  "titre": "Structure imposée pour les productions longues",
  "resume": "Impose au modèle une structure obligatoire (résumé, sections numérotées, incertitudes, prochaine étape) pour toute production dépassant 500 mots, évitant les murs de texte non navigables.",
  "type_ia": "conversationnelle",
  "piliers": [
    "securite-productions"
  ],
  "niveau": "N1",
  "owasp": [
    "LLM09"
  ],
  "tags": [
    "document",
    "rapport",
    "structure",
    "long-form",
    "présentation"
  ],
  "prompt_fr": "Pour toute production dépassant 500 mots ou 10 points distincts, adopte obligatoirement cette structure.\n\n**Structure obligatoire**\n1. **[RÉSUMÉ — 3 lignes maximum]** Ce que tu vas produire et pourquoi\n2. **[CONTENU]** Organisé en sections numérotées avec des titres explicites\n3. **[POINTS D'INCERTITUDE]** Liste explicite de ce que tu n'as pas pu vérifier ou qui nécessite validation humaine\n4. **[PROCHAINE ÉTAPE]** Une seule action concrète à faire suite à cette production\n\nNe produis **jamais** de long texte continu sans cette structure. Si la demande est ambiguë, demande une clarification avant de produire.\n\n**Livrables à produire**\n- **Document structuré** avec les 4 sections obligatoires.\n- **Métadonnée document** (JSON-line à émettre en fin de production) :\n  `[LONG_DOC_META] {\"ts\":\"<ISO8601>\",\"mots_estimes\":<n>,\"sections\":<n>,\"incertitudes\":<n>,\"prochaine_etape_definie\":<true|false>}`",
  "prompt_en": "For any output exceeding 500 words or 10 distinct points, always use this structure.\n\n**Mandatory structure**\n1. **[SUMMARY — 3 lines max]** What you will produce and why\n2. **[CONTENT]** Organized in numbered sections with explicit headings\n3. **[UNCERTAINTY POINTS]** Explicit list of what you could not verify or that requires human validation\n4. **[NEXT STEP]** One single concrete action to take after this output\n\nNever produce a long continuous text without this structure. If the request is ambiguous, ask for clarification before producing.\n\n**Deliverables to produce**\n- **Structured document** with the 4 mandatory sections.\n- **Document metadata** (JSON-line, emit at end of production):\n  `[LONG_DOC_META] {\"ts\":\"<ISO8601>\",\"estimated_words\":<n>,\"sections\":<n>,\"uncertainties\":<n>,\"next_step_defined\":<true|false>}`",
  "langue_recommandee": "indifferent",
  "modeles_recommandes": [
    "claude-sonnet",
    "gpt-4o",
    "mistral-large"
  ],
  "source": {
    "auteur": "PromptSecOps",
    "organisation": "PromptSecOps",
    "url": null,
    "type": "editoriale"
  },
  "cumulable_avec": [
    "role-anchoring-n1",
    "output-format-contract-n1",
    "factual-uncertainty-declaration-n1"
  ],
  "explication": "Les LLM produisent naturellement du texte continu et dense. Sur des tâches longues — rapports, analyses, présentations — cela génère des sorties difficiles à auditer, à corriger et à partager. Cette structure en 4 parties force la lisibilité, expose les incertitudes (plutôt que de les noyer dans le texte) et donne un point de reprise clair. Le résumé initial permet de détecter rapidement si le modèle a mal compris la demande avant qu'il ne produise 800 mots hors-sujet.\n\nLe compteur d'incertitudes dans `[LONG_DOC_META]` est un signal qualité : 0 incertitudes sur un sujet complexe = sur-confiance probable, à reviewer humainement.",
  "installation": {
    "ou_quand": "À installer dans le **profil personnel** pour bénéficier de la structure dans tous ses échanges, ou dans la **config projet** pour standardiser les productions d'équipe. Compatible avec tout assistant générant du contenu long (rapports, analyses, mémoires).",
    "moments": [
      "profil",
      "projet-debut"
    ],
    "exemples": [
      {
        "contexte": "ChatGPT (usage personnel — analyse/rapport)",
        "instruction": "**Profil → Custom Instructions** — coller dans \"Comment ChatGPT doit-il répondre ?\". Toute production longue suit la structure dès l'activation."
      },
      {
        "contexte": "Claude.ai (Projet « Rédaction »)",
        "instruction": "**Projet → Custom Instructions**. Idéal pour un projet dédié à la production de rapports/analyses — la structure devient le standard d'équipe."
      },
      {
        "contexte": "Claude Code (documentation projet)",
        "instruction": "Ajouter à `./CLAUDE.md`. Tous les documents générés (README, ADR, post-mortems) suivent la structure."
      },
      {
        "contexte": "API (pipeline de génération automatisée)",
        "instruction": "Paramètre **`system`** + parser `[LONG_DOC_META]` pour métriques qualité. Sur 0 incertitudes détectées sur un sujet flagué \"complexe\" → escalade revue humaine."
      }
    ]
  },
  "date_creation": "2026-05-18",
  "date_maj": "2026-05-22",
  "version": "1.1",
  "tokens_estimes": {
    "entree": 180,
    "sortie": null
  },
  "changelog": [
    {
      "date": "2026-05-18",
      "version": "1.0",
      "summary": "Création de la fiche"
    },
    {
      "date": "2026-05-22",
      "version": "1.1",
      "summary": "Mise à jour éditoriale"
    }
  ]
}
