---
suivi: 1151
date: 2026-08-03
sujet: Diagnostic — matière première consolidation Aktor (richesses tâches)
chantier: aktor
type: diagnostic
statut: poussé
hash: d961cda8
fichiers:
  - tools/diag/diag_consolidation_1151.php
  - docs/suivi/SUIVI_1151_diag_consolidation.md
---

## PROMPT ENVOYÉ

SUIVI #1151 — PHASE 1 DIAGNOSTIC (NE PAS CODER métier). Avant #1150 (refonte
consolidation en appel unique + contexte PHP), mesurer si les tâches ouvertes
ont assez de matière (descriptions, commentaires) pour un texte exploitable
sans que Robin lise chaque fiche. Script tools/diag commit + push. Aucune
écriture, aucun appel Anthropic.

## SYNTHÈSE

### Fiches lues (consultation-suivi)

- `SUIVI_1044_aktor_consolidation_backlog.md` — agent tool_use + CLI ; LEÇON :
  HTTPS CLI bloqué OVH ; pas de note vide.
- `SUIVI_1046_aktor_consolidation_declenchement_web.md` — correctif point
  d’entrée WEB (cURL error 7 en CLI prouvé). Change l’approche Q7 : les deux
  existent, seul le web marche en prod.
- Aucune fiche #1150 (prompt non encore envoyé). Dernier numéro avant ce lot :
  #1149.

---

### Q1 — Combien d’ouvertes ? (33 vs 35)

Définition alignée code : `deleted_at IS NULL` et `statut` ∈
`non_demarre, a_traiter, en_cours, en_attente, en_pause`
(= `TacheSuivi::ouvertes()`).

**Coller sortie script Q1** : `nb_ouvertes`, répartition par statut, par
créateur.

Pistes d’écart 33/35 (à confirmer sur chiffres) :
- total global vs périmètre **créateur OU associé** du user qui lance Aktor
  (filtre consolidation) ;
- soft-deleted exclus / inclus selon l’outil de comptage ;
- tâches `termine`/`abandonne` encore affichées quelque part.

---

### Q2 — Richesse descriptions (POINT DÉCISION)

Le script liste **chaque** tâche ouverte :
`id · statut · len_desc · nb_com/len_com · page? · échéance? · aktor? ·
demandeur · objet` + distribution 0 / &lt;100 / 100–500 / &gt;500.

**Note schéma :** pas de colonne `page_concernee` sur `taches_suivi`
(existe sur `bug_reports`). Détection = champ `url` non vide **ou** texte
« Page concernée » dans la description (pattern Aktor à la création).

**Coller Q2 prod** — c’est la table de vérité pour #1150.

---

### Q3 — 5 extraits bruts

Sélection automatique : 2 descriptions les plus longues, 2 plus courtes
non vides, 1 médiane. Description + commentaires **intégraux**, non tronqués.

**Coller Q3 prod** — jugement humain de Robin sur l’exploitabilité.

---

### Q4 — Volumétrie / tokens

`chars(objets + descriptions + commentaires)` ÷ 3,5.

Verdict script :
- ≤ 80k tokens → appel unique OK côté volume tâches ;
- 80–150k → limite ;
- &gt; 150k → lotir.

Rappel : le code actuel borne déjà le contexte à
`claude.cadrage_contexte_max_chars` (défaut **12 000** chars) — bien plus
strict que la fenêtre modèle. #1150 change ce modèle.

---

### Q5 — Aktor vs manuel

Une tâche est « via Aktor » si présente dans
`assistant_conversation_taches` **ou** `assistant_conversations.tache_suivi_id`
**ou** `assistant_propositions`. Lien `bug_report` via conversation compté
à part.

Le script compare moyennes `len_desc` / présence page / commentaires
Aktor vs manuel (hypothèse « Aktor mieux documenté » confirmée ou non
chiffres en main).

---

### Q6 — Frontmatters docs/suivi

Compte `docs/suivi/SUIVI_*.md` + taille des blocs YAML, puis taille des
seules clés `suivi, date, sujet, chantier, type, statut, fichiers`.
Estimation tokens ÷ 3,5 + combo avec payload tâches.

---

### Q7 — État code consolidation

| Point d’entrée | Présent | Prod OVH |
|----------------|---------|----------|
| `php artisan aktor:consolider` | Oui | **NON viable** — HTTPS CLI bloqué → cURL error 7 (#1044/#1046) |
| Web `POST /aktor/consolidations` (`AssistantConsolidationController::store`) | Oui (#1046) | **Oui** — PHP-FPM |

Les deux coexistent. Agent =
`AssistantConsolidationAgentService` (boucle tool_use Anthropic).
Outils : `lister_taches_ouvertes` (extrait desc **280** chars),
`lire_tache` (**sans commentaires** du fil), `chercher_historique`
(journal + frontmatters).

Cause supplémentaire possible de note médiocre **indépendante** de la
richesse : même avec de bons commentaires, l’agent actuel **ne les lit
pas**.

---

## RECOMMANDATION (tranchée — cadre + verdict à sceller après run prod)

### Cadre de décision (obligatoire)

| Signal Q2/Q3 | Verdict matière première | Conséquence chantier |
|--------------|--------------------------|----------------------|
| ≥ 50 % des ouvertes avec desc 0 ou &lt; 100 **et** peu/pas de commentaires | **NON** | Enrichir / cadrer les tâches **avant** #1150 ; un assemblage PHP ne créera pas l’info manquante |
| Majorité ≥ 100 chars **ou** commentaires compensent (Q3 lisible hors intitulé) | **OUI** | #1150 a de la matière ; assembler en PHP **description + commentaires + page/échéance** ; garder déclenchement **web** |
| Matière OK mais note actuelle mauvaise | Matière ≠ cause seule | Corriger aussi : commentaires absents de `lire_tache`, troncature 280, borne 12k chars, boucle tool_use opaque |

### Verdict structurel (déjà sûr sans prod)

1. **Ne pas compter sur la CLI** en prod pour valider #1150.
2. **Inclure les commentaires** dans le contexte assemblé (#1150) — aujourd’hui absents des outils.
3. Le chiffre exact 33 vs 35 et le **OUI/NON final matière** se scellent uniquement
   après `php tools/diag/diag_consolidation_1151.php` en prod (sections Q1–Q5).

### Case à cocher après run prod

- [ ] VERDICT MATIÈRE : OUI / NON
- [ ] nb_ouvertes = ___ (écart 33/35 expliqué : ___)
- [ ] % desc &lt; 100 = ___
- [ ] Aktor mieux documenté : oui / non (écarts moyennes)

## DÉPLOIEMENT-TEST

```bash
git pull origin main
php tools/diag/diag_consolidation_1151.php
```

Pas de migrate, pas de journal:sync, pas de npm, pas d’appel Anthropic.

## LEÇON

Diagnostiquer la **richesse des données** avant de refondre le prompt/agent.
Une consolidation « inutilisable » peut venir (a) de tâches quasi vides,
(b) d’un agent qui ne charge pas les commentaires / tronque, (c) du mauvais
point d’entrée CLI sur OVH — #1151 sépare (a) de (b)/(c).
)
