---
suivi: 1027
date: 2026-07-28
sujet: Aktor produit une fiche de cadrage transparente à l'escalade d'évolution
chantier: aktor
type: feature
statut: poussé
hash: b609319e
fichiers:
  - database/migrations/2026_07_28_190000_create_assistant_propositions_table.php
  - app/Models/AssistantProposition.php
  - app/Models/TacheSuivi.php
  - app/Services/Assistant/AssistantCadrageContexteService.php
  - app/Services/Assistant/AssistantPropositionCadrageService.php
  - app/Services/Assistant/AssistantAnthropicService.php
  - app/Services/Assistant/AssistantPropositionMarkerParser.php
  - app/Services/Assistant/AssistantTacheSuiviService.php
  - app/Services/AlerteService.php
  - app/Http/Controllers/AssistantController.php
  - app/Http/Controllers/AssistantPropositionController.php
  - config/assistant.php
  - database/seeders/SettingsSeeder.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - routes/web.php
  - resources/js/Components/TachesSuivi/TacheSuiviPropositionAktor.vue
  - resources/js/Components/TachesSuivi/TacheSuiviDetailModal.vue
  - resources/js/Pages/TachesSuivi/Show.vue
  - public/build/manifest.json
  - public/build/assets/TacheSuiviPersonnesEditor-CxRewizp.js
  - public/build/assets/Index-D2JAB4Wr.js
  - public/build/assets/Show-D3eqSDvr.js
  - public/build/assets/app-CPKyzTbL.js
  - docs/suivi/SUIVI_1027_aktor_fiche_cadrage.md
---

## PROMPT ENVOYÉ

SUIVI #1027 — (prompt intégral reçu en session ; base `origin/main` = `493550bb` après #1028).

Extension de l'appel LLM d'escalade Aktor existant : champs structurés `est_evolution` + `fiche_cadrage` dans le marqueur HECTARION_PROPOSITION ; corpus PROJECT.md (en-tête + sections par mots-clés) + frontmatters `docs/suivi/` injectés en lecture seule ; borne `claude.cadrage_contexte_max_chars` ; table `assistant_propositions` ; consultation GS_ADMIN_ERP ; alerte cloche ; aucun 2e appel LLM ; tâche créée dans tous les cas.

Prompt système final (bloc instructions `AssistantAnthropicService::buildSystemBlocks`, variables `{$relancesDeja}` / `{$forceLigne}` / demandeur interpolées à l'exécution) :

Tu es Aktor, l'assistant IA d'Hectarion (helpdesk N1). Tu tutoyes, tu es direct, pragmatique et HONNÊTE.
[… grounding FAQ/Journal/Tâches suivi #910/#922 inchangé …]

CADRAGE INTERNE (#1027) — TRANSPARENT pour l'utilisateur (jamais dans le texte visible) :
Quand action=propose, ajoute OBLIGATOIREMENT dans le JSON du marqueur (format plat OU chaque item de "taches") :
- est_evolution (booléen) : true si le besoin est une ÉVOLUTION / nouvelle fonctionnalité / changement produit de l'ERP ; false si support ponctuel, question d'usage, incident, bug à corriger sans évolution produit, ou simple orientation.
- fiche_cadrage (string markdown OU null) : UNIQUEMENT si est_evolution=true ; sinon null.
  Contenu markdown avec frontmatter YAML (SANS numéro SUIVI — règle absolue, tu n'alloues JAMAIS de n°) :
  ---
  type: proposition
  statut: à cadrer
  chantier: <slug identifié d'après le corpus, ou vide>
  ---
  Puis sections :
  ## BESOIN REFORMULÉ
  ## CHANTIER DE RATTACHEMENT
  ## DOUBLON ÉVENTUEL
  ## RÈGLES MÉTIER APPLICABLES
  ## À VÉRIFIER DANS LE CODE
  ## RISQUES / VIGILANCE
  Règles ABSOLUES pour fiche_cadrage :
  - Tu es AVEUGLE au code source : JAMAIS affirmer un nom de fichier, classe, table, colonne ou service comme un fait. Formule UNIQUEMENT des QUESTIONS (« Existe-t-il déjà… ? », « Où serait géré… ? »).
  - Ne te base QUE sur le bloc CONTEXTE CADRAGE (PROJECT.md extrait + frontmatters docs/suivi) fourni dans CE tour.
  - Pas de promesse de livraison, pas d'écriture repo, pas de numéro SUIVI.
  - Le JSON du marqueur doit être STRICT (pas de préambule, pas de balises code autour du JSON). Échappe correctement les retours à la ligne dans fiche_cadrage (\n).

Marqueur étendu : est_evolution + fiche_cadrage dans le JSON HECTARION_PROPOSITION (mono/multi). max_tokens=8192. Source de vérité : app/Services/Assistant/AssistantAnthropicService.php.

## SYNTHÈSE

- Table `assistant_propositions` (unique `tache_suivi_id`, cascade tâche, nullOnDelete conversation).
- Extension marqueur propose : `est_evolution` / `fiche_cadrage` ; sanitization client (invisible demandeur).
- Corpus lecture seule `AssistantCadrageContexteService` + setting `claude.cadrage_contexte_max_chars`.
- Persistance `AssistantPropositionCadrageService` à la création tâche Aktor ; alerte `GS_ADMIN_ERP`.
- UI `TacheSuiviPropositionAktor` (copie / traité / écarté) — middleware + `hasM365Groupe`.
- #1028 reorder/position intact (coexistence vérifiée).
- Tests locaux : php -l + ReflectionClass/DI OK ; parser unit OK ; JSON malformé → action null ; contexte PROJECT.md borné ; MySQL local indisponible → migrate à faire en prod ; clé Anthropic locale invalide → fiche exemple via parser (pas d'appel LLM réel).

## DÉPLOIEMENT / TEST


