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
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
55
api/v76-scripts/v81-orphans-rescue.sh
Executable file
55
api/v76-scripts/v81-orphans-rescue.sh
Executable 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"
|
||||
@@ -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,
|
||||
|
||||
24
api/wired-pending/intent-opus4-v81_rescue_orphelins.php
Normal file
24
api/wired-pending/intent-opus4-v81_rescue_orphelins.php
Normal 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',
|
||||
];
|
||||
@@ -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.
|
||||
|
||||
58
wiki/session-opus-19avr-1710-v81-orphans-rescue.md
Normal file
58
wiki/session-opus-19avr-1710-v81-orphans-rescue.md
Normal 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)
|
||||
Reference in New Issue
Block a user