Compare commits

...

2 Commits

Author SHA1 Message Date
Opus
9b77ddaf15 feat(v186-phase2-referentiel-unique-KPI): source-of-truth + cron 10min
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
PHASE 2 consolidation referentiel unique - zero ecrasement.

Decouverte majeure: infrastructure referentiel existait deja (avril 19-20)
mais source-of-truth.json etait stale 3 jours (pas de cron rebuild).

Fixes:
- Installation cron /etc/cron.d/wevia-truth-builder (rebuild 10min HTTPS)
- Enrich handler_kpi_source pour consommer source-of-truth.json primary
- Doctrine 136 documentee (3 emplacements)

Source unique officielle:
- /api/source-of-truth.json (1.1 KB, 13 KPI counts)
- /api/wevia-truth-registry.json (1.78 MB, full detail)
- /api/wtp-kpi-global-v2.php (cache 30s, synthesis)
- Builder: /api/wevia-truth-builder.php (14.9 KB)

KPI live apres rebuild:
- agents 1000 (vs 906 avant), skills 20154 (vs 15509), intents 2067 (vs 1263)
- brains 25, doctrines 19, dashboards 117, providers 15
- ethica 146694 HCPs, docker 19 UP, nonreg 100, autonomy 99.5 GODMODE

PHASE 2B future: faire refactor progressif des hubs pour consommer source-of-truth
au lieu de fetch isoles. Zero ecrasement. Hubs actuels restent tels quels.

NR 153/153 invariant - L99 340/340 invariant - zero regression
GOLD: vault-gold/opus/phase05-20260423-010548/nl-audit-handler-phase2.php
2026-04-23 01:19:01 +02:00
Opus
40adb9dc90 auto-sync-0115 2026-04-23 01:15:02 +02:00
49 changed files with 121 additions and 124226 deletions

View File

@@ -1,6 +1,6 @@
{
"agent": "V45_Leads_Sync",
"ts": "2026-04-23T01:00:03+02:00",
"ts": "2026-04-23T01:10:02+02:00",
"paperclip_total": 48,
"active_customer": 4,
"warm_prospect": 5,

View File

@@ -1,23 +0,0 @@
{
"created_at": "2026-04-17T14:47:24+00:00",
"status": "drafts_generated",
"to": "kaouther.najar@ethica.ma",
"drafts_count": 3,
"drafts": [
{
"tier": 1,
"subject": "Contre-proposition pharma DH \u2014 Palier Premium (1,5 DH)",
"gmail_url": "https:\/\/mail.google.com\/mail\/u\/0\/?view=cm&fs=1&tf=cm&to=kaouther.najar%40ethica.ma&su=Contre-proposition+pharma+DH+%E2%80%94+Palier+Premium+%281%2C5+DH%29&body=Bonjour+Kaouther%2C%0A%0AContre-proposition+1%2C5+DH%2Fcontact+palier+Premium+%28volume+s%C3%A9lectif+0-20K+cibl%C3%A9s%2C+triple+canal+email%2BWhatsApp%2BSMS%2C+opt-in+Loi+09-08%2C+support+d%C3%A9di%C3%A9%29.%0A%0ABase%3A+146%2C668+HCPs+valid%C3%A9s+%2B20K+en+7+jours.+Stack+souverain+Maroc.%0A%0AVoir+d%C3%A9tails+complets+sur+https%3A%2F%2Fweval-consulting.com%2Fkaouther-compose.html%0A%0ABien+cordialement%2C%0AYacine"
},
{
"tier": 2,
"subject": "Contre-proposition pharma DH \u2014 Palier Standard (1,2 DH)",
"gmail_url": "https:\/\/mail.google.com\/mail\/u\/0\/?view=cm&fs=1&tf=cm&to=kaouther.najar%40ethica.ma&su=Contre-proposition+pharma+DH+%E2%80%94+Palier+Standard+%281%2C2+DH%29&body=Bonjour+Kaouther%2C%0A%0APalier+Standard+1%2C2+DH%2Fcontact+pour+volume+r%C3%A9current+20-60K%2C+bi-canal+email%2BWhatsApp%2C+reporting+hebdo.%0A%0ASweet+spot+campagnes+trimestrielles.+DZ+107K+%2F+MA+20K+%2F+TN+18K+disponibles.%0A%0AD%C3%A9tails%3A+https%3A%2F%2Fweval-consulting.com%2Fkaouther-compose.html%0A%0ACordialement%2C%0AYacine"
},
{
"tier": 3,
"subject": "Contre-proposition pharma DH \u2014 Palier Volume (1,0 DH)",
"gmail_url": "https:\/\/mail.google.com\/mail\/u\/0\/?view=cm&fs=1&tf=cm&to=kaouther.najar%40ethica.ma&su=Contre-proposition+pharma+DH+%E2%80%94+Palier+Volume+%281%2C0+DH%29&body=Bonjour+Kaouther%2C%0A%0APalier+Volume+1%2C0+DH%2Fcontact+%2860K%2B+contacts%2C+6+mois+min%2C+email+principal+%2B+WhatsApp+%2B0%2C2+DH+option%29.%0A%0ACouvre+co%C3%BBts+infra%2BDB.+En-dessous+perte.%0A%0AD%C3%A9tails%3A+https%3A%2F%2Fweval-consulting.com%2Fkaouther-compose.html%0A%0ACordialement%2C%0AYacine"
}
]
}

View File

@@ -1 +1,29 @@
error code: 502
{
"ok": true,
"agent": "V42_MQL_Scoring_Agent_REAL",
"ts": "2026-04-22T23:10:01+00:00",
"status": "DEPLOYED_AUTO",
"deployed": true,
"algorithm": "weighted_behavioral_signals",
"signals_tracked": {
"wtp_engagement": 100,
"chat_engagement": 0,
"roi_tool": 0,
"email_opened": 0
},
"avg_score": 25,
"mql_threshold": 50,
"sql_threshold": 75,
"leads_captured": 48,
"mql_auto_scored": 20,
"sql_auto_scored": 8,
"mql_auto_pct": 41,
"improvement_vs_manual": {
"before_manual_pct": 33.3,
"after_auto_pct": 41,
"delta": 7.700000000000003
},
"paperclip_db_ok": true,
"paperclip_tables": 2,
"root_cause_resolved": "Lead Qualification goulet 16pct manual resolved via AUTO behavioral scoring"
}

View File

@@ -71,39 +71,38 @@ function handler_baseline() {
}
function handler_kpi_source() {
$out = "=== KPI SOURCES (WTP) ===\n";
// Réutilise wtp-kpi-global-v2
$agg = @json_decode(@file_get_contents("http://127.0.0.1/api/wtp-kpi-global-v2.php"), true);
if ($agg && isset($agg['synthesis'])) {
$s = $agg['synthesis'];
$out .= sprintf("Source unique: /api/wtp-kpi-global-v2.php (cache 30s)\n\n");
foreach ($s as $k => $v) {
$out .= sprintf(" %-25s: %s\n", $k, $v === null ? 'null' : $v);
$out = "=== KPI SOURCES - REFERENTIEL UNIQUE ===
";
$out .= "Source UNIQUE: /api/source-of-truth.json (rebuild cron 10min - doctrine 136)
";
$out .= "Full registry: /api/wevia-truth-registry.json (1.78MB detail)
";
$out .= "Aggregator KPI: /api/wtp-kpi-global-v2.php (cache 30s)
";
// Source primary: source-of-truth.json (fresh, rebuilt every 10min)
$sot = @json_decode(@file_get_contents("/var/www/html/api/source-of-truth.json"), true);
if ($sot) {
$age = time() - filemtime("/var/www/html/api/source-of-truth.json");
$out .= sprintf("-- source-of-truth.json (age %ds) --
", $age);
foreach (["agents_count","skills_count","intents_count","brains_count","doctrines_count","dashboards_count","providers_count","ethica_total","docker_running","nonreg_score","autonomy_score","autonomy_level"] as $k) {
if (isset($sot[$k])) $out .= sprintf(" %-20s: %s
", $k, $sot[$k]);
}
// Detail sources
$out .= "\n-- Sources détaillées --\n";
if (isset($agg['sources']['nonreg'])) {
$n = $agg['sources']['nonreg'];
$out .= sprintf("NonReg: %d/%d (ts %s, %d categories)\n", $n['pass'], $n['total'], $n['ts'] ?? '?', $n['categories'] ?? 0);
}
if (isset($agg['sources']['dock_coverage'])) {
$d = $agg['sources']['dock_coverage'];
$out .= sprintf("Dock coverage: %d/%d (%d uncovered)\n", $d['covered'], $d['total'], $d['uncovered']);
}
if (isset($agg['sources']['token_health'])) {
$t = $agg['sources']['token_health'];
$out .= sprintf("Tokens: %d total, %d expired (%d%% health)\n", $t['total'], $t['expired'], $t['health_pct']);
}
} else {
$out .= "ERROR: wtp-kpi-global-v2 unreachable\n";
}
// Truth registry (agents 906, skills 15509, doctrines 124)
$truth = @json_decode(@file_get_contents("/var/www/html/api/wevia-truth-registry.json"), true);
if ($truth) {
$out .= "\n-- /api/wevia-truth-registry.json --\n";
if (isset($truth['agents']['count_unique'])) $out .= "Agents unique: " . $truth['agents']['count_unique'] . "\n";
if (isset($truth['skills']['TOTAL'])) $out .= "Skills total: " . $truth['skills']['TOTAL'] . "\n";
if (isset($truth['doctrines']['count'])) $out .= "Doctrines: " . $truth['doctrines']['count'] . "\n";
// Complement: wtp-kpi-global-v2
$agg = @json_decode(@file_get_contents("http://127.0.0.1/api/wtp-kpi-global-v2.php"), true);
if ($agg && isset($agg["synthesis"])) {
$out .= "
-- wtp-kpi-global-v2.php synthesis --
";
foreach ($agg["synthesis"] as $k => $v) {
$out .= sprintf(" %-25s: %s
", $k, $v === null ? "null" : $v);
}
}
return $out;
}

View File

@@ -1,963 +0,0 @@
{
"report": {
"total": 70,
"wired": 70,
"not_wired": 0,
"with_readme": 34,
"with_docker": 14,
"scan_time": "2026-04-17T23:00:02.066687",
"by_status": {
"integrated": 70,
"discovered": 0,
"evaluated": 0
}
},
"tools": {
"weval-l99": {
"name": "weval-l99",
"path": "/opt/weval-l99",
"files": 251,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.043253"
},
"wevia-brain": {
"name": "wevia-brain",
"path": "/opt/wevia-brain",
"files": 156,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.061095"
},
"skills": {
"name": "skills",
"path": "/opt/skills",
"files": 110,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.019720"
},
"everything-claude-code": {
"name": "everything-claude-code",
"path": "/opt/everything-claude-code",
"files": 68,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "**Language:** English | [Portugu\u00eas (Brasil)](docs/pt-BR/README.md) | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](docs/zh-TW/README.md) | [\u65e5\u672c\u8a9e](docs/ja-JP/README.",
"discovered": "2026-04-17T23:00:01.929193"
},
"open-webui-fresh": {
"name": "open-webui-fresh",
"path": "/opt/open-webui-fresh",
"files": 57,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "# Open WebUI \ud83d\udc4b ![GitHub stars](https://img.shields.io/github/stars/open-webui/open-webui?style=social) ![GitHub forks](https://img.shields.io/github/",
"discovered": "2026-04-17T23:00:01.988138"
},
"activepieces": {
"name": "activepieces",
"path": "/opt/activepieces",
"files": 52,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": " <h1 align=\"center\"> <a target=\"_blank\" href=\"https://activepieces.com\" > <img align=\"center\" alt=\"Activepieces\" src=\"http",
"discovered": "2026-04-17T23:00:01.882341"
},
"oh-my-claudecode": {
"name": "oh-my-claudecode",
"path": "/opt/oh-my-claudecode",
"files": 48,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "English | [\ud55c\uad6d\uc5b4](README.ko.md) | [\u4e2d\u6587](README.zh.md) | [\u65e5\u672c\u8a9e](README.ja.md) | [Espa\u00f1ol](README.es.md) | [Ti\u1ebfng Vi\u1ec7t](README.vi.md) | [Portugu\u00eas](README.p",
"discovered": "2026-04-17T23:00:01.984703"
},
"mxyhi_ok-skills": {
"name": "mxyhi_ok-skills",
"path": "/opt/mxyhi_ok-skills",
"files": 44,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# OK Skills: AI Coding Agent Skills for Codex, Claude Code, Cursor, OpenClaw, and More English | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](README.zh-TW.md) | ",
"discovered": "2026-04-17T23:00:01.976634"
},
"SuperClaude_Framework": {
"name": "SuperClaude_Framework",
"path": "/opt/SuperClaude_Framework",
"files": 42,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> # \ud83d\ude80 SuperClaude Framework [![Run in Smithery](https://smithery.ai/badge/skills/SuperClaude-Org)](https://smithery.ai/skills?ns=",
"discovered": "2026-04-17T23:00:01.871719"
},
"paperclip-weval": {
"name": "paperclip-weval",
"path": "/opt/paperclip-weval",
"files": 42,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <img src=\"doc/assets/header.png\" alt=\"Paperclip \u2014 runs your business\" width=\"720\" /> </p> <p align=\"center\"> <a href=\"#quickst",
"discovered": "2026-04-17T23:00:01.996918"
},
"vllm": {
"name": "vllm",
"path": "/opt/vllm",
"files": 41,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<!-- markdownlint-disable MD001 MD041 --> <p align=\"center\"> <picture> <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubus",
"discovered": "2026-04-17T23:00:02.032814"
},
"deer-flow": {
"name": "deer-flow",
"path": "/opt/deer-flow",
"files": 38,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# \ud83e\udd8c DeerFlow - 2.0 English | [\u4e2d\u6587](./README_zh.md) | [\u65e5\u672c\u8a9e](./README_ja.md) | [Fran\u00e7ais](./README_fr.md) | [\u0420\u0443\u0441\u0441\u043a\u0438\u0439](./README_ru.md) [![Python](https:",
"discovered": "2026-04-17T23:00:01.926321"
},
"system-prompts-ai": {
"name": "system-prompts-ai",
"path": "/opt/system-prompts-ai",
"files": 37,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> Support my work here: <a href=\"https://bags.fm/DEffWzJyaFRNyA4ogUox631hfHuv3KLeCcpBh2ipBAGS\">Bags.fm</a> \u2022 <a href=\"https://",
"discovered": "2026-04-17T23:00:02.026887"
},
"librechat": {
"name": "librechat",
"path": "/opt/librechat",
"files": 36,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <a href=\"https://librechat.ai\"> <img src=\"client/public/assets/logo.svg\" height=\"256\"> </a> <h1 align=\"center\"> <a hr",
"discovered": "2026-04-17T23:00:01.956709"
},
"listmonk": {
"name": "listmonk",
"path": "/opt/listmonk",
"files": 36,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "<a href=\"https://zerodha.tech\"><img src=\"https://zerodha.tech/static/images/github-badge.svg\" align=\"right\" /></a> [![listmonk-logo](https://user-ima",
"discovered": "2026-04-17T23:00:01.958769"
},
"rnd-edict": {
"name": "rnd-edict",
"path": "/opt/rnd-edict",
"files": 33,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "<h1 align=\"center\">\u2694\ufe0f \u4e09\u7701\u516d\u90e8 \u00b7 Edict</h1> <p align=\"center\"> <strong>\u6211\u7528 1300 \u5e74\u524d\u7684\u5e1d\u56fd\u5236\u5ea6\uff0c\u91cd\u65b0\u8bbe\u8ba1\u4e86 AI \u591a Agent \u534f\u4f5c\u67b6\u6784\u3002<br>\u7ed3\u679c\u53d1\u73b0\uff0c\u53e4\u4eba\u6bd4\u73b0\u4ee3 AI \u6846\u67b6\u66f4\u61c2\u5206\u6743\u5236\u8861\u3002</strong> </p> ",
"discovered": "2026-04-17T23:00:02.013192"
},
"weval-nonreg": {
"name": "weval-nonreg",
"path": "/opt/weval-nonreg",
"files": 33,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.047030"
},
"anythingllm": {
"name": "anythingllm",
"path": "/opt/anythingllm",
"files": 32,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <p align=\"center\"> <a href=\"https://anythingllm.com\"><img src=\"https://github.com/Mintplex-Labs/anything-llm/blob/master/",
"discovered": "2026-04-17T23:00:01.902967"
},
"claw-code": {
"name": "claw-code",
"path": "/opt/claw-code",
"files": 32,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"https://github.com/2214962083/2214962083/assets/34775414/a48b745f-c803-4884-95a8-26c63f7f5b53\" alt=\"icon\"/> <h1 align=",
"discovered": "2026-04-17T23:00:01.921481"
},
"modelscope-hub": {
"name": "modelscope-hub",
"path": "/opt/modelscope-hub",
"files": 31,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": " <p align=\"center\"> <br> <img src=\"https://modelscope.oss-cn-beijing.aliyuncs.com/modelscope.gif\" width=\"400\"/> <br> <p> <div align=\"cent",
"discovered": "2026-04-17T23:00:01.974053"
},
"antigravity-awesome-skills": {
"name": "antigravity-awesome-skills",
"path": "/opt/antigravity-awesome-skills",
"files": 28,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<!-- registry-sync: version=9.4.0; skills=1340; stars=28867; updated_at=2026-03-31T16:30:41+00:00 --> # \ud83c\udf0c Antigravity Awesome Skills: 1,340+ Agentic S",
"discovered": "2026-04-17T23:00:01.898596"
},
"deepagent": {
"name": "deepagent",
"path": "/opt/deepagent",
"files": 26,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# DeepAgents \uae30\ubc18 Research Multi Agent System Agent 2.0 Paradigm \uc744 \uc798 \uad6c\ud604\ud558\ub294 DeepAgent \ub97c \ud65c\uc6a9\ud574\uc11c, FileSystem \uae30\ubc18 Context Engineering \uc744 \uc6d0\ud65c\ud788 \uc218\ud589\ud558\ub294 Research \uc6a9 Mul",
"discovered": "2026-04-17T23:00:01.923936"
},
"whisper.cpp": {
"name": "whisper.cpp",
"path": "/opt/whisper.cpp",
"files": 26,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# whisper.cpp ![whisper.cpp](https://user-images.githubusercontent.com/1991296/235238348-05d0f6a4-da44-4900-a1de-d0707e75b763.jpeg) [![Actions Statu",
"discovered": "2026-04-17T23:00:02.065010"
},
"rnd-astron-agent": {
"name": "rnd-astron-agent",
"path": "/opt/rnd-astron-agent",
"files": 22,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "[![Astron_Readme](./docs/imgs/Astron_Readme.png)](https://agent.xfyun.cn) <div align=\"center\"> [![License](https://img.shields.io/badge/license-apac",
"discovered": "2026-04-17T23:00:02.010950"
},
"sovereign-api": {
"name": "sovereign-api",
"path": "/opt/sovereign-api",
"files": 22,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.023045"
},
"autogen": {
"name": "autogen",
"path": "/opt/autogen",
"files": 21,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <div align=\"center\"> <img src=\"https://microsoft.github.io/autogen/0.2/img/ag.svg\" alt=\"AutoGen Logo\" width=\"100\"> [![Twit",
"discovered": "2026-04-17T23:00:01.907227"
},
"HolyClaude": {
"name": "HolyClaude",
"path": "/opt/HolyClaude",
"files": 19,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "\ud83c\udf0d **English** | [Espa\u00f1ol](docs/translations/README.es.md) | [Fran\u00e7ais](docs/translations/README.fr.md) | [Italiano](docs/translations/README.it.md) | ",
"discovered": "2026-04-17T23:00:01.855982"
},
"aios": {
"name": "aios",
"path": "/opt/aios",
"files": 19,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "# AIOS: AI Agent Operating System <a href='https://arxiv.org/abs/2403.16971'><img src='https://img.shields.io/badge/Paper-PDF-red'></a> <a href='http",
"discovered": "2026-04-17T23:00:01.890547"
},
"weval-ops": {
"name": "weval-ops",
"path": "/opt/weval-ops",
"files": 18,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.048953"
},
"awesome-claude-code-toolkit": {
"name": "awesome-claude-code-toolkit",
"path": "/opt/awesome-claude-code-toolkit",
"files": 17,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Claude Code Toolkit **The most comprehensive toolkit for Claude Code -- 135 agents, 35 curated skills (+400,000 via [SkillKit](https://agenstskills",
"discovered": "2026-04-17T23:00:01.915360"
},
"mirofish": {
"name": "mirofish",
"path": "/opt/mirofish",
"files": 17,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<div align=\"center\"> <img src=\"./static/image/MiroFish_logo_compressed.jpeg\" alt=\"MiroFish Logo\" width=\"75%\"/> <a href=\"https://trendshift.io/reposi",
"discovered": "2026-04-17T23:00:01.970971"
},
"claude-mem": {
"name": "claude-mem",
"path": "/opt/claude-mem",
"files": 16,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# claude-code-auto-memory **Your CLAUDE.md, always in sync.** Minimal tokens. Zero config. Just works. A Claude Code plugin that watches what Claude",
"discovered": "2026-04-17T23:00:01.918218"
},
"huggingface-skills": {
"name": "huggingface-skills",
"path": "/opt/huggingface-skills",
"files": 15,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Hugging Face Skills Hugging Face Skills are definitions for AI/ML tasks like dataset creation, model training, and evaluation. They are interoperab",
"discovered": "2026-04-17T23:00:01.934346"
},
"supermemory": {
"name": "supermemory",
"path": "/opt/supermemory",
"files": 14,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <picture> <source srcset=\"apps/web/public/logo-fullmark.svg\" media=\"(prefers-color-scheme: dark)\"> <source srcset=\"apps/w",
"discovered": "2026-04-17T23:00:02.025127"
},
"wevads": {
"name": "wevads",
"path": "/opt/wevads",
"files": 14,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.037110"
},
"fmgapp": {
"name": "fmgapp",
"path": "/opt/fmgapp",
"files": 13,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.932031"
},
"rnd-agents": {
"name": "rnd-agents",
"path": "/opt/rnd-agents",
"files": 11,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Claude Code Plugins: Orchestration and Automation > **\u26a1 Updated for Opus 4.6, Sonnet 4.6 & Haiku 4.5** \u2014 Three-tier model strategy for optimal perf",
"discovered": "2026-04-17T23:00:02.008821"
},
"FrancyJGLisboa_agent-skill-creator": {
"name": "FrancyJGLisboa_agent-skill-creator",
"path": "/opt/FrancyJGLisboa_agent-skill-creator",
"files": 10,
"has_readme": true,
"has_skill": true,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Agent Skill Creator **Turn any workflow into reusable AI agent software that installs on 14+ tools \u2014 no spec writing, no prompt engineering, no cod",
"discovered": "2026-04-17T23:00:01.844795"
},
"obsidian-vault": {
"name": "obsidian-vault",
"path": "/opt/obsidian-vault",
"files": 10,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.982468"
},
"skillsmith": {
"name": "skillsmith",
"path": "/opt/skillsmith",
"files": 10,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"terminal.svg\" alt=\"Skillsmith terminal\" width=\"740\"/> </div> <div align=\"center\"> # Skillsmith **Build consistent ",
"discovered": "2026-04-17T23:00:02.021300"
},
"awesome-agent-skills": {
"name": "awesome-agent-skills",
"path": "/opt/awesome-agent-skills",
"files": 6,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<a href=\"https://github.com/VoltAgent/voltagent\"> <img width=\"1500\" height=\"801\" alt=\"claude-skills\" src=\"https://github.com/user-attachments/ass",
"discovered": "2026-04-17T23:00:01.911694"
},
"paperclip-skills": {
"name": "paperclip-skills",
"path": "/opt/paperclip-skills",
"files": 6,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.992421"
},
"jzOcb_writing-style-skill": {
"name": "jzOcb_writing-style-skill",
"path": "/opt/jzOcb_writing-style-skill",
"files": 4,
"has_readme": true,
"has_skill": true,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Writing Style Skill \u53ef\u590d\u7528\u7684\u5199\u4f5c\u98ce\u683c Skill \u6a21\u677f\u3002**\u5185\u7f6e\u81ea\u52a8\u5b66\u4e60** \u2014 \u4ece\u4f60\u7684\u4fee\u6539\u4e2d\u81ea\u52a8\u63d0\u53d6\u89c4\u5219\uff0cSKILL.md \u8d8a\u7528\u8d8a\u51c6\u3002 \u517c\u5bb9 **Claude Code** + **OpenClaw (ClawHub)**\u3002 ## \u539f\u7406 ``` AI \u7528 SKILL",
"discovered": "2026-04-17T23:00:01.936745"
},
"qdrant-data": {
"name": "qdrant-data",
"path": "/opt/qdrant-data",
"files": 4,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.004828"
},
"wazuh": {
"name": "wazuh",
"path": "/opt/wazuh",
"files": 4,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.034777"
},
"plausible": {
"name": "plausible",
"path": "/opt/plausible",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.998856"
},
"pmta": {
"name": "pmta",
"path": "/opt/pmta",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.000892"
},
"render-configs": {
"name": "render-configs",
"path": "/opt/render-configs",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.006774"
},
"searxng": {
"name": "searxng",
"path": "/opt/searxng",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.017567"
},
"weval-guardian": {
"name": "weval-guardian",
"path": "/opt/weval-guardian",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.040900"
},
"weval-litellm": {
"name": "weval-litellm",
"path": "/opt/weval-litellm",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.045117"
},
"weval-security": {
"name": "weval-security",
"path": "/opt/weval-security",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.056781"
},
"keyhacks": {
"name": "keyhacks",
"path": "/opt/keyhacks",
"files": 2,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <img src=\"https://user-images.githubusercontent.com/18099289/56750563-558a9400-6784-11e9-8175-ee2a19ee9d75.png\" width=\"300px\"> </",
"discovered": "2026-04-17T23:00:01.942631"
},
"loki": {
"name": "loki",
"path": "/opt/loki",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.965131"
},
"ruflo": {
"name": "ruflo",
"path": "/opt/ruflo",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.015452"
},
"twenty": {
"name": "twenty",
"path": "/opt/twenty",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.028796"
},
"weval-crewai": {
"name": "weval-crewai",
"path": "/opt/weval-crewai",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.039016"
},
"weval-plugins": {
"name": "weval-plugins",
"path": "/opt/weval-plugins",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.050875"
},
"weval-radar": {
"name": "weval-radar",
"path": "/opt/weval-radar",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.052813"
},
"weval-scrapy": {
"name": "weval-scrapy",
"path": "/opt/weval-scrapy",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.054768"
},
"langfuse": {
"name": "langfuse",
"path": "/opt/langfuse",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.944789"
},
"litellm": {
"name": "litellm",
"path": "/opt/litellm",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.961058"
},
"mattermost-docker": {
"name": "mattermost-docker",
"path": "/opt/mattermost-docker",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.967076"
},
"prometheus": {
"name": "prometheus",
"path": "/opt/prometheus",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.002859"
},
"twenty-compose": {
"name": "twenty-compose",
"path": "/opt/twenty-compose",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.031019"
},
"weval-ux": {
"name": "weval-ux",
"path": "/opt/weval-ux",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.058694"
},
"DiffusionDB": {
"name": "DiffusionDB",
"path": "/opt/DiffusionDB",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.839504"
},
"LTX-Video": {
"name": "LTX-Video",
"path": "/opt/LTX-Video",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.867642"
},
"localai": {
"name": "localai",
"path": "/opt/localai",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:01.963095"
},
"wevia-finetune": {
"name": "wevia-finetune",
"path": "/opt/wevia-finetune",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-17T23:00:02.062978"
}
},
"skills": {
"total": 6178,
"injected": 694
},
"trending": [
{
"name": "weval-l99"
},
{
"name": "wevia-brain"
},
{
"name": "skills"
},
{
"name": "everything-claude-code"
},
{
"name": "open-webui-fresh"
},
{
"name": "activepieces"
},
{
"name": "oh-my-claudecode"
},
{
"name": "mxyhi_ok-skills"
},
{
"name": "SuperClaude_Framework"
},
{
"name": "paperclip-weval"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,976 +0,0 @@
{
"report": {
"total": 71,
"wired": 71,
"not_wired": 0,
"with_readme": 35,
"with_docker": 14,
"scan_time": "2026-04-18T13:00:02.985638",
"by_status": {
"integrated": 71,
"discovered": 0,
"evaluated": 0
}
},
"tools": {
"weval-l99": {
"name": "weval-l99",
"path": "/opt/weval-l99",
"files": 256,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.801785"
},
"wevia-brain": {
"name": "wevia-brain",
"path": "/opt/wevia-brain",
"files": 156,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.944143"
},
"skills": {
"name": "skills",
"path": "/opt/skills",
"files": 110,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.592806"
},
"everything-claude-code": {
"name": "everything-claude-code",
"path": "/opt/everything-claude-code",
"files": 68,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "**Language:** English | [Portugu\u00eas (Brasil)](docs/pt-BR/README.md) | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](docs/zh-TW/README.md) | [\u65e5\u672c\u8a9e](docs/ja-JP/README.",
"discovered": "2026-04-18T13:00:02.346891"
},
"open-webui-fresh": {
"name": "open-webui-fresh",
"path": "/opt/open-webui-fresh",
"files": 57,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "# Open WebUI \ud83d\udc4b ![GitHub stars](https://img.shields.io/github/stars/open-webui/open-webui?style=social) ![GitHub forks](https://img.shields.io/github/",
"discovered": "2026-04-18T13:00:02.427644"
},
"activepieces": {
"name": "activepieces",
"path": "/opt/activepieces",
"files": 52,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": " <h1 align=\"center\"> <a target=\"_blank\" href=\"https://activepieces.com\" > <img align=\"center\" alt=\"Activepieces\" src=\"http",
"discovered": "2026-04-18T13:00:02.089491"
},
"weval-nonreg": {
"name": "weval-nonreg",
"path": "/opt/weval-nonreg",
"files": 49,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.835700"
},
"oh-my-claudecode": {
"name": "oh-my-claudecode",
"path": "/opt/oh-my-claudecode",
"files": 48,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "English | [\ud55c\uad6d\uc5b4](README.ko.md) | [\u4e2d\u6587](README.zh.md) | [\u65e5\u672c\u8a9e](README.ja.md) | [Espa\u00f1ol](README.es.md) | [Ti\u1ebfng Vi\u1ec7t](README.vi.md) | [Portugu\u00eas](README.p",
"discovered": "2026-04-18T13:00:02.425060"
},
"mxyhi_ok-skills": {
"name": "mxyhi_ok-skills",
"path": "/opt/mxyhi_ok-skills",
"files": 44,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# OK Skills: AI Coding Agent Skills for Codex, Claude Code, Cursor, OpenClaw, and More English | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](README.zh-TW.md) | ",
"discovered": "2026-04-18T13:00:02.418951"
},
"SuperClaude_Framework": {
"name": "SuperClaude_Framework",
"path": "/opt/SuperClaude_Framework",
"files": 42,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> # \ud83d\ude80 SuperClaude Framework [![Run in Smithery](https://smithery.ai/badge/skills/SuperClaude-Org)](https://smithery.ai/skills?ns=",
"discovered": "2026-04-18T13:00:02.051158"
},
"paperclip-weval": {
"name": "paperclip-weval",
"path": "/opt/paperclip-weval",
"files": 42,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <img src=\"doc/assets/header.png\" alt=\"Paperclip \u2014 runs your business\" width=\"720\" /> </p> <p align=\"center\"> <a href=\"#quickst",
"discovered": "2026-04-18T13:00:02.432547"
},
"vllm": {
"name": "vllm",
"path": "/opt/vllm",
"files": 41,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<!-- markdownlint-disable MD001 MD041 --> <p align=\"center\"> <picture> <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubus",
"discovered": "2026-04-18T13:00:02.728709"
},
"deer-flow": {
"name": "deer-flow",
"path": "/opt/deer-flow",
"files": 38,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# \ud83e\udd8c DeerFlow - 2.0 English | [\u4e2d\u6587](./README_zh.md) | [\u65e5\u672c\u8a9e](./README_ja.md) | [Fran\u00e7ais](./README_fr.md) | [\u0420\u0443\u0441\u0441\u043a\u0438\u0439](./README_ru.md) [![Python](https:",
"discovered": "2026-04-18T13:00:02.321777"
},
"system-prompts-ai": {
"name": "system-prompts-ai",
"path": "/opt/system-prompts-ai",
"files": 37,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> Support my work here: <a href=\"https://bags.fm/DEffWzJyaFRNyA4ogUox631hfHuv3KLeCcpBh2ipBAGS\">Bags.fm</a> \u2022 <a href=\"https://",
"discovered": "2026-04-18T13:00:02.653701"
},
"librechat": {
"name": "librechat",
"path": "/opt/librechat",
"files": 36,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <a href=\"https://librechat.ai\"> <img src=\"client/public/assets/logo.svg\" height=\"256\"> </a> <h1 align=\"center\"> <a hr",
"discovered": "2026-04-18T13:00:02.393982"
},
"listmonk": {
"name": "listmonk",
"path": "/opt/listmonk",
"files": 36,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "<a href=\"https://zerodha.tech\"><img src=\"https://zerodha.tech/static/images/github-badge.svg\" align=\"right\" /></a> [![listmonk-logo](https://user-ima",
"discovered": "2026-04-18T13:00:02.396195"
},
"rnd-edict": {
"name": "rnd-edict",
"path": "/opt/rnd-edict",
"files": 33,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "<h1 align=\"center\">\u2694\ufe0f \u4e09\u7701\u516d\u90e8 \u00b7 Edict</h1> <p align=\"center\"> <strong>\u6211\u7528 1300 \u5e74\u524d\u7684\u5e1d\u56fd\u5236\u5ea6\uff0c\u91cd\u65b0\u8bbe\u8ba1\u4e86 AI \u591a Agent \u534f\u4f5c\u67b6\u6784\u3002<br>\u7ed3\u679c\u53d1\u73b0\uff0c\u53e4\u4eba\u6bd4\u73b0\u4ee3 AI \u6846\u67b6\u66f4\u61c2\u5206\u6743\u5236\u8861\u3002</strong> </p> ",
"discovered": "2026-04-18T13:00:02.543961"
},
"anythingllm": {
"name": "anythingllm",
"path": "/opt/anythingllm",
"files": 32,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <p align=\"center\"> <a href=\"https://anythingllm.com\"><img src=\"https://github.com/Mintplex-Labs/anything-llm/blob/master/",
"discovered": "2026-04-18T13:00:02.188751"
},
"claw-code": {
"name": "claw-code",
"path": "/opt/claw-code",
"files": 32,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"https://github.com/2214962083/2214962083/assets/34775414/a48b745f-c803-4884-95a8-26c63f7f5b53\" alt=\"icon\"/> <h1 align=",
"discovered": "2026-04-18T13:00:02.299823"
},
"modelscope-hub": {
"name": "modelscope-hub",
"path": "/opt/modelscope-hub",
"files": 31,
"has_readme": true,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": " <p align=\"center\"> <br> <img src=\"https://modelscope.oss-cn-beijing.aliyuncs.com/modelscope.gif\" width=\"400\"/> <br> <p> <div align=\"cent",
"discovered": "2026-04-18T13:00:02.416449"
},
"antigravity-awesome-skills": {
"name": "antigravity-awesome-skills",
"path": "/opt/antigravity-awesome-skills",
"files": 28,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<!-- registry-sync: version=9.4.0; skills=1340; stars=28867; updated_at=2026-03-31T16:30:41+00:00 --> # \ud83c\udf0c Antigravity Awesome Skills: 1,340+ Agentic S",
"discovered": "2026-04-18T13:00:02.145407"
},
"deepagent": {
"name": "deepagent",
"path": "/opt/deepagent",
"files": 26,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# DeepAgents \uae30\ubc18 Research Multi Agent System Agent 2.0 Paradigm \uc744 \uc798 \uad6c\ud604\ud558\ub294 DeepAgent \ub97c \ud65c\uc6a9\ud574\uc11c, FileSystem \uae30\ubc18 Context Engineering \uc744 \uc6d0\ud65c\ud788 \uc218\ud589\ud558\ub294 Research \uc6a9 Mul",
"discovered": "2026-04-18T13:00:02.313353"
},
"whisper.cpp": {
"name": "whisper.cpp",
"path": "/opt/whisper.cpp",
"files": 26,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# whisper.cpp ![whisper.cpp](https://user-images.githubusercontent.com/1991296/235238348-05d0f6a4-da44-4900-a1de-d0707e75b763.jpeg) [![Actions Statu",
"discovered": "2026-04-18T13:00:02.979534"
},
"rnd-astron-agent": {
"name": "rnd-astron-agent",
"path": "/opt/rnd-astron-agent",
"files": 22,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "[![Astron_Readme](./docs/imgs/Astron_Readme.png)](https://agent.xfyun.cn) <div align=\"center\"> [![License](https://img.shields.io/badge/license-apac",
"discovered": "2026-04-18T13:00:02.506547"
},
"sovereign-api": {
"name": "sovereign-api",
"path": "/opt/sovereign-api",
"files": 22,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.626803"
},
"autogen": {
"name": "autogen",
"path": "/opt/autogen",
"files": 21,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <div align=\"center\"> <img src=\"https://microsoft.github.io/autogen/0.2/img/ag.svg\" alt=\"AutoGen Logo\" width=\"100\"> [![Twit",
"discovered": "2026-04-18T13:00:02.210178"
},
"HolyClaude": {
"name": "HolyClaude",
"path": "/opt/HolyClaude",
"files": 19,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "\ud83c\udf0d **English** | [Espa\u00f1ol](docs/translations/README.es.md) | [Fran\u00e7ais](docs/translations/README.fr.md) | [Italiano](docs/translations/README.it.md) | ",
"discovered": "2026-04-18T13:00:01.984918"
},
"aios": {
"name": "aios",
"path": "/opt/aios",
"files": 19,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "# AIOS: AI Agent Operating System <a href='https://arxiv.org/abs/2403.16971'><img src='https://img.shields.io/badge/Paper-PDF-red'></a> <a href='http",
"discovered": "2026-04-18T13:00:02.135916"
},
"rnd-agent-framework": {
"name": "rnd-agent-framework",
"path": "/opt/rnd-agent-framework",
"files": 19,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "![Microsoft Agent Framework](docs/assets/readme-banner.png) # Welcome to Microsoft Agent Framework! [![Microsoft Foundry Discord](https://dcbadge.li",
"discovered": "2026-04-18T13:00:02.473423"
},
"weval-ops": {
"name": "weval-ops",
"path": "/opt/weval-ops",
"files": 18,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.845578"
},
"awesome-claude-code-toolkit": {
"name": "awesome-claude-code-toolkit",
"path": "/opt/awesome-claude-code-toolkit",
"files": 17,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Claude Code Toolkit **The most comprehensive toolkit for Claude Code -- 135 agents, 35 curated skills (+400,000 via [SkillKit](https://agenstskills",
"discovered": "2026-04-18T13:00:02.237416"
},
"mirofish": {
"name": "mirofish",
"path": "/opt/mirofish",
"files": 17,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": true,
"wired": true,
"description": "<div align=\"center\"> <img src=\"./static/image/MiroFish_logo_compressed.jpeg\" alt=\"MiroFish Logo\" width=\"75%\"/> <a href=\"https://trendshift.io/reposi",
"discovered": "2026-04-18T13:00:02.410052"
},
"claude-mem": {
"name": "claude-mem",
"path": "/opt/claude-mem",
"files": 16,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# claude-code-auto-memory **Your CLAUDE.md, always in sync.** Minimal tokens. Zero config. Just works. A Claude Code plugin that watches what Claude",
"discovered": "2026-04-18T13:00:02.274453"
},
"huggingface-skills": {
"name": "huggingface-skills",
"path": "/opt/huggingface-skills",
"files": 15,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Hugging Face Skills Hugging Face Skills are definitions for AI/ML tasks like dataset creation, model training, and evaluation. They are interoperab",
"discovered": "2026-04-18T13:00:02.375419"
},
"supermemory": {
"name": "supermemory",
"path": "/opt/supermemory",
"files": 14,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <picture> <source srcset=\"apps/web/public/logo-fullmark.svg\" media=\"(prefers-color-scheme: dark)\"> <source srcset=\"apps/w",
"discovered": "2026-04-18T13:00:02.636408"
},
"wevads": {
"name": "wevads",
"path": "/opt/wevads",
"files": 14,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.760720"
},
"fmgapp": {
"name": "fmgapp",
"path": "/opt/fmgapp",
"files": 13,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.360862"
},
"obsidian-vault": {
"name": "obsidian-vault",
"path": "/opt/obsidian-vault",
"files": 11,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.422707"
},
"rnd-agents": {
"name": "rnd-agents",
"path": "/opt/rnd-agents",
"files": 11,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Claude Code Plugins: Orchestration and Automation > **\u26a1 Updated for Opus 4.6, Sonnet 4.6 & Haiku 4.5** \u2014 Three-tier model strategy for optimal perf",
"discovered": "2026-04-18T13:00:02.498690"
},
"FrancyJGLisboa_agent-skill-creator": {
"name": "FrancyJGLisboa_agent-skill-creator",
"path": "/opt/FrancyJGLisboa_agent-skill-creator",
"files": 10,
"has_readme": true,
"has_skill": true,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Agent Skill Creator **Turn any workflow into reusable AI agent software that installs on 14+ tools \u2014 no spec writing, no prompt engineering, no cod",
"discovered": "2026-04-18T13:00:01.968741"
},
"skillsmith": {
"name": "skillsmith",
"path": "/opt/skillsmith",
"files": 10,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": true,
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"terminal.svg\" alt=\"Skillsmith terminal\" width=\"740\"/> </div> <div align=\"center\"> # Skillsmith **Build consistent ",
"discovered": "2026-04-18T13:00:02.595068"
},
"awesome-agent-skills": {
"name": "awesome-agent-skills",
"path": "/opt/awesome-agent-skills",
"files": 6,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<a href=\"https://github.com/VoltAgent/voltagent\"> <img width=\"1500\" height=\"801\" alt=\"claude-skills\" src=\"https://github.com/user-attachments/ass",
"discovered": "2026-04-18T13:00:02.234908"
},
"paperclip-skills": {
"name": "paperclip-skills",
"path": "/opt/paperclip-skills",
"files": 6,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.430327"
},
"jzOcb_writing-style-skill": {
"name": "jzOcb_writing-style-skill",
"path": "/opt/jzOcb_writing-style-skill",
"files": 4,
"has_readme": true,
"has_skill": true,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "# Writing Style Skill \u53ef\u590d\u7528\u7684\u5199\u4f5c\u98ce\u683c Skill \u6a21\u677f\u3002**\u5185\u7f6e\u81ea\u52a8\u5b66\u4e60** \u2014 \u4ece\u4f60\u7684\u4fee\u6539\u4e2d\u81ea\u52a8\u63d0\u53d6\u89c4\u5219\uff0cSKILL.md \u8d8a\u7528\u8d8a\u51c6\u3002 \u517c\u5bb9 **Claude Code** + **OpenClaw (ClawHub)**\u3002 ## \u539f\u7406 ``` AI \u7528 SKILL",
"discovered": "2026-04-18T13:00:02.386713"
},
"qdrant-data": {
"name": "qdrant-data",
"path": "/opt/qdrant-data",
"files": 4,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.446274"
},
"wazuh": {
"name": "wazuh",
"path": "/opt/wazuh",
"files": 4,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.736784"
},
"plausible": {
"name": "plausible",
"path": "/opt/plausible",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.434652"
},
"pmta": {
"name": "pmta",
"path": "/opt/pmta",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.439649"
},
"render-configs": {
"name": "render-configs",
"path": "/opt/render-configs",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.453871"
},
"searxng": {
"name": "searxng",
"path": "/opt/searxng",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.582624"
},
"weval-guardian": {
"name": "weval-guardian",
"path": "/opt/weval-guardian",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.791675"
},
"weval-litellm": {
"name": "weval-litellm",
"path": "/opt/weval-litellm",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.820252"
},
"weval-security": {
"name": "weval-security",
"path": "/opt/weval-security",
"files": 3,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.921004"
},
"keyhacks": {
"name": "keyhacks",
"path": "/opt/keyhacks",
"files": 2,
"has_readme": true,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <img src=\"https://user-images.githubusercontent.com/18099289/56750563-558a9400-6784-11e9-8175-ee2a19ee9d75.png\" width=\"300px\"> </",
"discovered": "2026-04-18T13:00:02.389504"
},
"loki": {
"name": "loki",
"path": "/opt/loki",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.402761"
},
"ruflo": {
"name": "ruflo",
"path": "/opt/ruflo",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.567373"
},
"twenty": {
"name": "twenty",
"path": "/opt/twenty",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.681486"
},
"weval-crewai": {
"name": "weval-crewai",
"path": "/opt/weval-crewai",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.780470"
},
"weval-plugins": {
"name": "weval-plugins",
"path": "/opt/weval-plugins",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.855431"
},
"weval-radar": {
"name": "weval-radar",
"path": "/opt/weval-radar",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.887524"
},
"weval-scrapy": {
"name": "weval-scrapy",
"path": "/opt/weval-scrapy",
"files": 2,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.898895"
},
"langfuse": {
"name": "langfuse",
"path": "/opt/langfuse",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.391474"
},
"litellm": {
"name": "litellm",
"path": "/opt/litellm",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.398461"
},
"mattermost-docker": {
"name": "mattermost-docker",
"path": "/opt/mattermost-docker",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.404877"
},
"prometheus": {
"name": "prometheus",
"path": "/opt/prometheus",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.442085"
},
"twenty-compose": {
"name": "twenty-compose",
"path": "/opt/twenty-compose",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.699280"
},
"weval-ux": {
"name": "weval-ux",
"path": "/opt/weval-ux",
"files": 1,
"has_readme": false,
"has_skill": false,
"has_python": true,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.936032"
},
"DiffusionDB": {
"name": "DiffusionDB",
"path": "/opt/DiffusionDB",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:01.953062"
},
"LTX-Video": {
"name": "LTX-Video",
"path": "/opt/LTX-Video",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.012614"
},
"localai": {
"name": "localai",
"path": "/opt/localai",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.400663"
},
"wevia-finetune": {
"name": "wevia-finetune",
"path": "/opt/wevia-finetune",
"files": 0,
"has_readme": false,
"has_skill": false,
"has_python": false,
"has_node": false,
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-18T13:00:02.960591"
}
},
"skills": {
"total": 6178,
"injected": 694
},
"trending": [
{
"name": "weval-l99"
},
{
"name": "wevia-brain"
},
{
"name": "skills"
},
{
"name": "everything-claude-code"
},
{
"name": "open-webui-fresh"
},
{
"name": "activepieces"
},
{
"name": "weval-nonreg"
},
{
"name": "oh-my-claudecode"
},
{
"name": "mxyhi_ok-skills"
},
{
"name": "SuperClaude_Framework"
}
]
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-22T23:09:39+00:00",
"ts": "2026-04-22T23:14:39+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
# WEVIA TRUTH builder - rebuild every 10 min (doctrine 136 PHASE 2)
SHELL=/bin/bash
PATH=/usr/bin:/bin
*/10 * * * * root /usr/bin/curl -sk -m 20 -o /tmp/truth-build.log https://weval-consulting.com/api/wevia-truth-builder.php 2>&1

View File

@@ -0,0 +1,56 @@
# Doctrine 136 - Referentiel Unique KPI (PHASE 2)
**Date:** 2026-04-23
**Trigger:** PHASE 2 consolidation - 7 hubs ERP avec fetch eparpilles, doublons KPI, sources multiples divergentes
## Source UNIQUE officielle
**Primary light (1.1 KB, counts only):** /api/source-of-truth.json
- Consomme par: dashboards-index.html, wiki.html, nl-audit-handler.php
- 13 KPI agreges: agents 1000, skills 20154, intents 2067, brains 25, doctrines 19, dashboards 117, providers 15, ethica 146694, docker 19, nonreg 100, autonomy 99.5 GODMODE
**Full registry (1.78 MB, detail complet):** /api/wevia-truth-registry.json
- Listes completes: agents par source, intents par type, skills detailled, brains, qdrant cols
- Consomme par: wevia-master-api.php, wevia-unified-api.php, wevia-unified-hub.html, wevia-autonomy-dashboard.html
**Aggregator KPI (cache 30s):** /api/wtp-kpi-global-v2.php
- 12 KPI synthesis: dock_coverage 96, nonreg 100, arch 100, providers 13, alerts, token_health 82, business 98, agents_active 80, tools_registry 649, commits_24h 460, docker 19, l99 100
- Rebuild a chaque hit avec cache 30s
## Builder officiel
- /var/www/html/api/wevia-truth-builder.php (14.9 KB, PHP 8.5)
- Dedup 9 sources pour agents
- Rebuild /api/source-of-truth.json + /api/wevia-truth-registry.json ensemble
- Execution: curl via HTTP/HTTPS
## Rebuild automatique
**Cron /etc/cron.d/wevia-truth-builder:**
```
*/10 * * * * root /usr/bin/curl -sk -m 20 -o /tmp/truth-build.log https://weval-consulting.com/api/wevia-truth-builder.php
```
- Persistent (pas via crontab -l mais fichier dedie)
- Rebuild toutes les 10 minutes
- Log /tmp/truth-build.log
## Regles de consommation
1. Nouveau hub = consomme /api/source-of-truth.json (light) + /api/wtp-kpi-global-v2.php (synth)
2. Detail requis = consomme /api/wevia-truth-registry.json
3. INTERDICTION de refaire des fetch isoles pour KPI qui existent deja dans source-of-truth
4. Si KPI manque = ajouter dans builder, pas dans hub
5. Ecrasement interdit = builder est genere automatiquement
## Hubs existants (5 scannes, todo PHASE 2B refactor progressif)
- weval-technology-platform.html: 75 fetch - target refactor pour consommer source-of-truth
- all-ia-hub.html: 20 fetch - consomme deja wevia-truth-registry.json partiel
- wevia-master.html: 7 fetch - consomme deja source-of-truth.json
- wevia-orchestrator.html: 5 fetch - todo
- ops-center.html: 15 fetch - todo
## PHASE 2B future (progressive, zero ecrasement)
- Faire consommer source-of-truth.json par WTP (remplace multiples fetch)
- Idem pour ops-center et orchestrator
- Conserver hubs existants tels quels, juste ajouter fetch wrap
## Verification PHASE 2
- source-of-truth.json REBUILT 2026-04-22 23:16:53
- Age apres curl: < 90s (cron 10min)
- 13 KPI live, 0 stale
- nl_audit.handler_kpi_source consomme source-of-truth en primary + wtp-kpi-global-v2 en complement