{
  "id": "token-budget-instruction-n1",
  "code": "PS-0004",
  "titre": "Instruction de budget de tokens dans le system prompt",
  "resume": "Contraint le modèle à produire des réponses concises en définissant un budget de tokens explicite, sans dépendance à des paramètres API.",
  "type_ia": "conversationnelle",
  "piliers": [
    "maitrise-couts"
  ],
  "niveau": "N1",
  "owasp": [
    "LLM10"
  ],
  "tags": [
    "tokens",
    "basique",
    "maitrise-couts"
  ],
  "prompt_fr": "**Règle de concision** — tes réponses ne doivent pas dépasser [N] phrases sauf demande explicite contraire.\n\nSi une réponse complète nécessite plus, propose d'abord un résumé et demande si l'utilisateur souhaite les détails.\n\n**Livrables à produire**\n- **Réponse respectant la limite** + mention si nécessaire : « *Réponse contrainte à [N] phrases. Tapez « développer » pour plus de détails.* »\n- **Événement structuré** (JSON-line) :\n  `[CONCISION_APPLIED] {\"ts\":\"<ISO8601>\",\"limit_phrases\":<n>,\"actual_phrases\":<n>,\"summary_offered\":<true|false>}`",
  "prompt_en": "**Conciseness rule** — your responses must not exceed [N] sentences unless explicitly asked otherwise.\n\nIf a complete answer requires more, first provide a summary and ask if the user wants the details.\n\n**Deliverables to produce**\n- **Response respecting the limit** + mention if needed: \"*Response constrained to [N] sentences. Type \"expand\" for more details.*\"\n- **Structured event** (JSON-line):\n  `[CONCISION_APPLIED] {\"ts\":\"<ISO8601>\",\"limit_phrases\":<n>,\"actual_phrases\":<n>,\"summary_offered\":<true|false>}`",
  "langue_recommandee": "indifferent",
  "modeles_recommandes": [
    "tous"
  ],
  "source": {
    "auteur": "Anthropic",
    "organisation": "Anthropic",
    "url": "https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/be-clear-and-direct",
    "type": "officielle"
  },
  "cumulable_avec": [],
  "explication": "Sans contrainte explicite, les LLM tendent à produire des réponses longues par défaut. Ce prompt établit un plafond en langage naturel, complémentaire au paramètre `max_tokens` de l'API.\n\n**Quand l'utiliser :** chatbots, assistants intégrés, tout contexte où la verbosité est un coût (tokens facturés, interface mobile, temps de réponse).\n\n**Ce qu'il protège :** LLM10 (consommation non bornée de ressources). Simple, sans prérequis technique. Pour un contrôle plus fin avec adaptations dynamiques, voir `token-budget-advanced-n2`.",
  "installation": {
    "ou_quand": "À installer dès le déploiement de tout assistant facturé au token. Compatible profil personnel (pour qui veut des réponses courtes) ou projet (pour standardiser).",
    "moments": [
      "profil",
      "projet-debut"
    ],
    "exemples": [
      {
        "contexte": "ChatGPT / Claude.ai (préférence personnelle)",
        "instruction": "**Profil → Custom Instructions** avec [N] = 3 ou 5. Idéal pour qui préfère des réponses concises."
      },
      {
        "contexte": "Application chatbot (UX mobile)",
        "instruction": "Coller dans `system_prompt` avec [N] adapté à la taille d'écran (3 phrases pour mobile). Doubler avec `max_tokens` côté API pour garantie."
      },
      {
        "contexte": "API en pipeline",
        "instruction": "Paramètre **`system`** + `max_tokens` API. Capturer `[CONCISION_APPLIED]` pour mesurer le respect effectif de la limite."
      },
      {
        "contexte": "Claude Code",
        "instruction": "`./CLAUDE.md` si vous voulez des réponses code-only sans verbosité dans les explications."
      }
    ]
  },
  "date_creation": "2026-05-17",
  "date_maj": "2026-05-22",
  "version": "1.1",
  "tokens_estimes": {
    "entree": 120,
    "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"
    }
  ]
}
