V81 ORPHANS RESCUE · 66 orphelins rescuables depuis WTP drawer + chat. Yacine directive continue V80: relier toutes pages fonctions archi pas orphelin enrichissement consolidation. Scan exhaustif git log pas nouveau commit Claude. LIVRABLES zero ecrasement: (1) section V81 4.3KB injectee dans WTP APRES V80 block, lazy load on drawer click, fetch /api/wevia-pages-registry.php?action=orphans, groupe par classe dans details/summary HTML natif, chaque orphelin = lien direct + titre + size_kb (2) /api/v76-scripts/v81-orphans-rescue.sh lit cache /tmp/wevia-pages-registry-cache.json 159KB ou fallback API, output 12 classes top 5 + ...+N more (3) intent opus4-v81_rescue_orphelins 13 triggers naturels (rescue orphelins / rescuer les orphelins / sauver les orphelins / orphelins par classe / v81 / comment relier orphelins / archi complete / drawer wtp etc). 12 classes orphelins: module 32, wevia 12, agents 5, operations 4, monitoring 3, dashboard 2, architecture 2, ethica 2, office 1, strategy 1, hub 1, test 1. E2E Playwright 6/6 PASS: WTP load, V80 toggle drawer opens, V81 section loaded avec 12 class details + 66 links, expand class OK, scroll bottom, 0 JS errors. Video aa268090e6a5a9c983b55440fa766adf.webm + screenshots. Chat test: rescue orphelins → intent v81 fire → total:253 orphelins:66 refd:187 liens:1265 + 12 classes + instructions acces WTP. Anti-regression: GOLD backup pre-v81, lsattr +e respecte, V80 drawer + Opus Yacine sidebar + V75 AvatarUnifier tous preserves, zero suppression zero fake data zero hardcode zero ecrasement. Reconciliation train: 66 orphelins accessibles depuis WTP canon (point entree UNIQUE doctrine 88 v3.1), fin eparpillement, route claire 2 clics depuis bouton Archi complete ou Ctrl+K.
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus-Yacine
2026-04-19 17:09:24 +02:00
parent bbea3d96ab
commit c6d5c07bfd
5 changed files with 153 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
#!/bin/bash
# V81 Orphans Rescue v2 - reads cache JSON or API
CACHE=/tmp/wevia-pages-registry-cache.json
echo "=== V81 ORPHELINS RESCUE ==="
# Read cache (richer data) or fallback API
if [ -f "$CACHE" ] && [ -s "$CACHE" ]; then
python3 <<PY
import json
d = json.load(open('$CACHE'))
print(f"Total pages: {d['total_pages']}")
print(f"Orphelins: {d['orphans_count']}")
print(f"Référencées: {d['referenced_pages']}")
print(f"Liens: {d['links_count']}")
print()
by_class = {}
pages = d.get('pages', {})
for n in d.get('orphans', []):
meta = pages.get(n, {})
c = meta.get('class', 'other')
by_class.setdefault(c, []).append(n)
for cls, items in sorted(by_class.items(), key=lambda x: -len(x[1])):
print(f"[{cls}] {len(items)} orphelins:")
for i in items[:5]:
print(f" - {i}")
if len(items) > 5:
print(f" ...+{len(items)-5} more")
print()
PY
else
RESP=$(curl -sk --max-time 3 'http://127.0.0.1:5890/api/wevia-pages-registry.php?action=orphans' -H 'Host: weval-consulting.com' 2>/dev/null)
echo "$RESP" | python3 -c "
import sys, json
try:
d = json.load(sys.stdin)
print(f'Total orphelins: {d[chr(34)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(34)]}')
by = {}
for n, m in d['orphans'].items():
by.setdefault(m['class'], []).append(n)
for c, items in sorted(by.items(), key=lambda x: -len(x[1])):
print(f'[{c}] {len(items)}')
except Exception as e:
print(f'ERROR fallback: {e}')
"
fi
echo ""
echo "=== ACCÈS VIA WTP ==="
echo "URL: https://weval-consulting.com/weval-technology-platform.html"
echo " 1. Bouton 'Archi complète' (bottom-right) ou Ctrl+K"
echo " 2. Section 'Orphelines'"
echo " 3. Expand classe -> clic lien direct"
echo ""
echo "API JSON: /api/wevia-pages-registry.php?action=orphans"

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-19T15:06:44+00:00",
"ts": "2026-04-19T15:08:44+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

View File

@@ -0,0 +1,24 @@
<?php
return [
'name' => 'v81_rescue_orphelins',
'triggers' => [
'rescue orphelins',
'rescuer les orphelins',
'sauver les orphelins',
'orphelins par classe',
'liste orphelins detaillee',
'v81',
'comment relier orphelins',
'ou rescuer orphelins',
'orphelins sauvetage',
'open drawer archi',
'archi complete',
'drawer wtp',
'wtp drawer',
],
'cmd' => 'bash /var/www/html/api/v76-scripts/v81-orphans-rescue.sh',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-19T17:10:00+00:00',
'source' => 'opus-yacine-v81',
'description' => 'Liste orphelins par classe + accès rescue depuis WTP drawer',
];

View File

@@ -1502,3 +1502,18 @@ GOLD backup pre-v80 · chattr +e respecté · zero page autre modifiée · V75 A
**Pour autres Claude** : la liste actionnable des 21 pages à rebrancher est dispo directement via `curl /api/opus5-orphans-classifier.php | jq .classification.ACTIVE_ORPHAN`
---
## 19avr 17h10 — V81 ORPHANS RESCUE · 66 orphelins accessibles depuis WTP
### Livrables
- V81 section injectée dans drawer V80 (lazy load on click)
- /api/v76-scripts/v81-orphans-rescue.sh (cache + fallback)
- Intent opus4-v81_rescue_orphelins (13 triggers chat)
### Résultat
66 orphelins listés par classe dans drawer WTP (12 classes details/summary), accessibles en 2 clics. Chat répond à 13 phrases naturelles.
### Anti-régression
GOLD backup pre-v81 · lsattr +e respecté · V80 + Opus Yacine sidebar + V75 AvatarUnifier préservés · Lint PHP + bash OK · Playwright 6/6 PASS.

View File

@@ -0,0 +1,58 @@
# Session Opus — 19avr 1710 — V81 ORPHANS RESCUE · 66 orphelins rescuables depuis WTP
## Contexte
Session continue post-V80. WTP = point entrée canonique (Doctrine 88 v3.1 Opus WIRE). V80 nav drawer + Opus Yacine sidebar coexistent. Mission V81: rescuer les 66 orphelins détectés par V79, les exposer dans WTP sans duplication.
## Scan exhaustif
- Git log: pas de nouveau commit Claude entre mon 89c1c8461 et maintenant
- WTP = 121KB (V80 + sidebar), lsattr +e (extensible)
- Orphelins réduits 69 → 66 via réconciliation train
- 12 classes d'orphelins: module 32, wevia 12, agents 5, operations 4, monitoring 3, dashboard 2, architecture 2, ethica 2, office 1, strategy 1, hub 1, test 1
## Livrable V81 (zero écrasement)
### 1. /v81-orphans-rescue.html (4.3KB) injecté dans WTP
MutationObserver-free lazy load: fetch orphans quand V80 drawer ouvre.
Section "⚠️ Orphelines · 66 pages non-reliées" avec details/summary par classe.
Chaque item = lien direct + titre + taille kb.
Insertion AVANT la footer V80 via DOM insertBefore.
### 2. /api/v76-scripts/v81-orphans-rescue.sh (1.5KB)
Lit cache /tmp/wevia-pages-registry-cache.json (159KB) ou fallback API curl.
Output formaté par classe avec top 5 + "...+N more".
### 3. /api/wired-pending/intent-opus4-v81_rescue_orphelins.php
13 triggers naturels: rescue orphelins / rescuer les orphelins / sauver les orphelins / orphelins par classe / liste orphelins detaillee / v81 / comment relier orphelins / ou rescuer orphelins / orphelins sauvetage / open drawer archi / archi complete / drawer wtp / wtp drawer
## E2E Playwright 6/6 PASS
- WTP load OK
- V80 toggle drawer opens
- V81 orphans section: 1 section + 12 class details + 66 links
- Class expand works
- Scroll drawer OK
- 0 JS errors
Video: aa268090e6a5a9c983b55440fa766adf.webm
4 screenshots: 01-wtp-loaded, 02-drawer-open, 03-orphans-section, 04-class-expanded, 05-bottom-drawer, 99-final
## Chat WEVIA Master test
`rescue orphelins` → intent v81_rescue_orphelins fire → répond:
- Total pages: 253, Orphelins: 66, Référencées: 187, Liens: 1265
- 12 classes détaillées
- Accès via WTP bouton 'Archi complète' ou Ctrl+K
## Doctrine respectée
- SCAN EXHAUSTIF avant (git log vérifié)
- ZERO écrasement (V81 ajouté APRÈS V80 block, WTP conservé intact ailleurs)
- ZERO suppression
- ZERO régression (V80 drawer + Opus Yacine sidebar + V75 AvatarUnifier tous préservés)
- ZERO hardcode (fetch API live)
- ZERO fake data (66 orphelins réels)
- Cache utilization (JSON 159KB, pas recomputation)
- GOLD backup pre-v81
- lsattr +e respecté
- Lint PHP + bash OK
## Issues résiduelles
- 32 orphelins classe 'module' à classifier plus finement
- qa-hub.html et unified-hub toujours orphelins hubs
- Créer intent "rescue_class module" pour lier auto les modules dans tools-hub
- Intégrer V81 section dans sidebar Opus Yacine aussi (coordination train)