QUALITY FRAMEWORK: 6 standards deployed. Score 80pct. cron */4h.

This commit is contained in:
WEVIA-Bot
2026-04-06 22:36:02 +02:00
parent aab17d4f9e
commit 2c4b2fa2f1
16 changed files with 562 additions and 703 deletions

View File

@@ -1 +1 @@
{"timestamp":"2026-04-06 20:30:20","scan_ms":8906,"servers":{"s204":{"ip":"204.168.152.13","label":"S204 Primary","services":[{"name":"nginx","status":"active","port":"80\/443"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql-16","status":"active","port":"5432"},{"name":"deerflow","status":"active","port":"2024"},{"name":"deerflow-gw","status":"active","port":"8001"},{"name":"deerflow-fe","status":"active","port":"3000"},{"name":"ollama","status":"active","port":"11434","info":"9 models"}],"docker":[{"name":"authentik-db","status":"Up 14 minutes"},{"name":"authentik-redis","status":"Up 14 minutes"},{"name":"authentik-server","status":"Up 9 minutes (healthy)"},{"name":"authentik-worker","status":"Up 9 minutes (healthy)"},{"name":"chatwoot-redis","status":"Up 14 minutes"},{"name":"langfuse","status":"Up 14 minutes"},{"name":"loki","status":"Up 14 minutes"},{"name":"mattermost","status":"Up 14 minutes (healthy)"},{"name":"mirofish","status":"Up 2 seconds"},{"name":"n8n","status":"Up 14 minutes"},{"name":"node-exporter","status":"Up 14 minutes"},{"name":"plausible-db","status":"Up 14 minutes"},{"name":"plausible-events","status":"Up 14 minutes"},{"name":"plausible","status":"Up 14 minutes"},{"name":"prometheus","status":"Up 14 minutes"},{"name":"qdrant","status":"Up 14 minutes"},{"name":"searxng","status":"Up 14 minutes"},{"name":"twenty-redis","status":"Up 14 minutes"},{"name":"twenty","status":"Up 14 minutes"},{"name":"uptime-kuma","status":"Up 14 minutes (healthy)"},{"name":"vaultwarden","status":"Up 14 minutes (healthy)"}]},"s95":{"ip":"95.216.167.89","label":"S95 WEVADS","services":[{"name":"kumomta","status":"active","port":"587"},{"name":"apache2","status":"active","port":"80"},{"name":"postgresql","status":"active","port":"5432"},{"name":"postfix","status":"active","port":"2525"},{"name":"pmta","status":"active","port":"25"},{"name":"sentinel","status":"active","port":"5890"},{"name":"adx","status":"active","port":"5821"},{"name":"arsenal","status":"active","port":"5822"}],"docker":[{"name":"listmonk_db","status":"Up 3 days"},{"name":"listmonk","status":"Up 3 days"}]},"s151":{"ip":"151.80.235.110","label":"S151 OVH","services":[{"name":"nginx","status":"active","port":"80"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql","status":"active","port":"5432"},{"name":"ollama","status":"active","port":"11434"}],"docker":[{"name":"ollama","status":"Up 12 days"}]},"blade":{"ip":"local","label":"Razer Blade","services":[{"name":"Sentinel Agent","status":"active","port":"\u2014","info":"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1"}],"docker":[]}},"crons":[{"server":"S95","user":"root","schedule":"*\/30 * * * *","command":"php \/opt\/wevads\/scripts\/ethica\/ethica-validator.php 500 >> \/opt\/wevads\/logs\/ethica-validator.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 *\/4 * * *","command":"php \/opt\/wevads\/scripts\/cron-bounces.php >> \/var\/log\/wevads\/bounces.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 3 * * *","command":"\/root\/backups\/daily_backup.sh","source":"crontab"},{"server":"S95","user":"root","schedule":"0 4 * * *","command":"\/opt\/wevads\/scripts\/auto-backup-github.sh >> \/var\/log\/wevads\/backup.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 0 * * *","command":"php \/opt\/wevads\/scripts\/daily-stats-aggregate.php >> \/var\/log\/wevads\/daily-stats.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 1 * * *","command":"php \/opt\/wevads\/scripts\/cron-engagement.php >> \/var\/log\/wevads\/engagement.log 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/5 * * * *","command":"curl -s -m 10 http:\/\/localhost:11434\/api\/generate -d {model:granite4,prompt:ok,stream:false,keep_alive:-1} > \/dev\/null 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/10 * * * *","command":"docker start openclaw 2>\/dev\/null","source":"crontab"},{"server":"S151","user":"root","schedule":"*\/5 * * * *","command":"\/opt\/tracking_monitor.sh","source":"crontab"},{"server":"Blade","user":"SYSTEM","schedule":"*\/60s loop","command":"sentinel-agent.ps1 (auto-sync S204)","source":"Task Scheduler"}],"stats":{"total_crons":10,"total_services":20,"total_docker":24}}
{"timestamp":"2026-04-06 20:36:02","scan_ms":7556,"servers":{"s204":{"ip":"204.168.152.13","label":"S204 Primary","services":[{"name":"nginx","status":"active","port":"80\/443"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql-16","status":"active","port":"5432"},{"name":"deerflow","status":"active","port":"2024"},{"name":"deerflow-gw","status":"active","port":"8001"},{"name":"deerflow-fe","status":"active","port":"3000"},{"name":"ollama","status":"active","port":"11434","info":"9 models"}],"docker":[{"name":"authentik-db","status":"Up 20 minutes"},{"name":"authentik-redis","status":"Up 20 minutes"},{"name":"authentik-server","status":"Up 15 minutes (healthy)"},{"name":"authentik-worker","status":"Up 15 minutes (healthy)"},{"name":"chatwoot-redis","status":"Up 20 minutes"},{"name":"langfuse","status":"Up 20 minutes"},{"name":"loki","status":"Up 20 minutes"},{"name":"mattermost","status":"Up 20 minutes (healthy)"},{"name":"n8n","status":"Up 20 minutes"},{"name":"node-exporter","status":"Up 20 minutes"},{"name":"plausible-db","status":"Up 20 minutes"},{"name":"plausible-events","status":"Up 20 minutes"},{"name":"plausible","status":"Up 20 minutes"},{"name":"prometheus","status":"Up 20 minutes"},{"name":"qdrant","status":"Up 20 minutes"},{"name":"searxng","status":"Up 20 minutes"},{"name":"twenty-redis","status":"Up 20 minutes"},{"name":"twenty","status":"Up 20 minutes"},{"name":"uptime-kuma","status":"Up 20 minutes (healthy)"},{"name":"vaultwarden","status":"Up 20 minutes (healthy)"}]},"s95":{"ip":"95.216.167.89","label":"S95 WEVADS","services":[{"name":"kumomta","status":"active","port":"587"},{"name":"apache2","status":"active","port":"80"},{"name":"postgresql","status":"active","port":"5432"},{"name":"postfix","status":"active","port":"2525"},{"name":"pmta","status":"active","port":"25"},{"name":"sentinel","status":"active","port":"5890"},{"name":"adx","status":"active","port":"5821"},{"name":"arsenal","status":"active","port":"5822"}],"docker":[{"name":"listmonk_db","status":"Up 3 days"},{"name":"listmonk","status":"Up 3 days"}]},"s151":{"ip":"151.80.235.110","label":"S151 OVH","services":[{"name":"nginx","status":"active","port":"80"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql","status":"active","port":"5432"},{"name":"ollama","status":"active","port":"11434"}],"docker":[{"name":"ollama","status":"Up 12 days"}]},"blade":{"ip":"local","label":"Razer Blade","services":[{"name":"Sentinel Agent","status":"active","port":"\u2014","info":"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1"}],"docker":[]}},"crons":[{"server":"S95","user":"root","schedule":"*\/30 * * * *","command":"php \/opt\/wevads\/scripts\/ethica\/ethica-validator.php 500 >> \/opt\/wevads\/logs\/ethica-validator.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 *\/4 * * *","command":"php \/opt\/wevads\/scripts\/cron-bounces.php >> \/var\/log\/wevads\/bounces.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 3 * * *","command":"\/root\/backups\/daily_backup.sh","source":"crontab"},{"server":"S95","user":"root","schedule":"0 4 * * *","command":"\/opt\/wevads\/scripts\/auto-backup-github.sh >> \/var\/log\/wevads\/backup.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 0 * * *","command":"php \/opt\/wevads\/scripts\/daily-stats-aggregate.php >> \/var\/log\/wevads\/daily-stats.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 1 * * *","command":"php \/opt\/wevads\/scripts\/cron-engagement.php >> \/var\/log\/wevads\/engagement.log 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/5 * * * *","command":"curl -s -m 10 http:\/\/localhost:11434\/api\/generate -d {model:granite4,prompt:ok,stream:false,keep_alive:-1} > \/dev\/null 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/10 * * * *","command":"docker start openclaw 2>\/dev\/null","source":"crontab"},{"server":"S151","user":"root","schedule":"*\/5 * * * *","command":"\/opt\/tracking_monitor.sh","source":"crontab"},{"server":"Blade","user":"SYSTEM","schedule":"*\/60s loop","command":"sentinel-agent.ps1 (auto-sync S204)","source":"Task Scheduler"}],"stats":{"total_crons":10,"total_services":20,"total_docker":23}}

View File

@@ -1,11 +1,11 @@
{
"ts": "2026-04-06T20:29:53+00:00",
"ts": "2026-04-06T20:35:51+00:00",
"hostname": "LAPTOP-VE75QUHF",
"cpu": "48%",
"ram": "87% (16GB)",
"disk": "?",
"uptime": "0d01h13m",
"cpu": "54%",
"ram": "84% (16GB)",
"disk": "83% (464GB)",
"uptime": "0d 1h",
"user": "Yace",
"ip": "41.248.188.205",
"agent_version": "2.0"
"agent_version": "2.2"
}

View File

@@ -1,62 +1,12 @@
{
"timestamp": "2026-04-06T22:30:10.410507",
"layers": {
"DOCKER": {
"n": "DOCKER",
"t": 11,
"p": 11,
"c": "cy"
},
"CAPABILITIES": {
"n": "CAPABILITIES",
"t": 1,
"p": 0,
"c": "ro"
},
"CRONS": {
"n": "CRONS",
"t": 3,
"p": 3,
"c": "cy"
},
"SYSTEMD": {
"n": "SYSTEMD",
"t": 4,
"p": 3,
"c": "cy"
},
"PORTS-S204": {
"n": "PORTS-S204",
"t": 8,
"p": 8,
"c": "lv"
},
"S95-HEALTH": {
"n": "S95-HEALTH",
"t": 3,
"p": 3,
"c": "em"
},
"SOVEREIGN": {
"n": "SOVEREIGN",
"t": 9,
"p": 9,
"c": "lv"
},
"QDRANT": {
"n": "QDRANT",
"t": 4,
"p": 4,
"c": "em"
},
"NONREG": {
"n": "NONREG",
"t": 153,
"p": 152,
"c": "em"
"ts": "2026-04-06T22:32:05",
"fixes": [
{
"type": "opcache",
"action": "reset",
"files": 4
}
},
"fixes": [],
"total": 196,
"pass": 193
],
"total_fixes": 0,
"total_issues": 0
}

View File

@@ -1,665 +1,318 @@
{
"ts": "2026-04-06T22:30:06.440615",
"tests": [
{
"layer": "PAGE-SCAN",
"name": "109/109 pages",
"status": "P",
"detail": "0 fail",
"ts": "22:26:38"
"name": "auth-login",
"status": "PASS",
"detail": "API ok=True cookie=True check=404 Not Found\nnginx/",
"machine": "S204",
"ts": "2026-04-06T22:30:12.465278"
},
{
"layer": "API-FUNC",
"name": "l99-api.php",
"status": "W",
"detail": "Non-JSON 2348B",
"ts": "22:26:56"
"name": "l99-saas-load",
"status": "PASS",
"detail": "body=933ch",
"machine": "S204",
"ts": "2026-04-06T22:30:15.151085"
},
{
"layer": "API-FUNC",
"name": "weval-ia-fast.php",
"status": "P",
"detail": "JSON OK + response",
"ts": "22:27:33"
"name": "l99-tab-command",
"status": "PASS",
"detail": "Command Center 933ch",
"machine": "S204",
"ts": "2026-04-06T22:30:16.490123"
},
{
"layer": "API-FUNC",
"name": "wevia-action-engine.php",
"status": "P",
"detail": "JSON OK + actions",
"ts": "22:27:39"
"name": "l99-tab-coverage",
"status": "PASS",
"detail": "Test Coverage 636ch",
"machine": "S204",
"ts": "2026-04-06T22:30:17.876014"
},
{
"layer": "API-FUNC",
"name": "wevia-capabilities.php",
"status": "P",
"detail": "JSON OK + services",
"ts": "22:27:44"
"name": "l99-tab-servers",
"status": "PASS",
"detail": "Server Health 619ch",
"machine": "S204",
"ts": "2026-04-06T22:30:19.269082"
},
{
"layer": "API-FUNC",
"name": "wevia-dashboard.php",
"status": "P",
"detail": "JSON OK + system",
"ts": "22:27:46"
"name": "l99-tab-history",
"status": "PASS",
"detail": "Run History 517ch",
"machine": "S204",
"ts": "2026-04-06T22:30:20.578987"
},
{
"layer": "API-FUNC",
"name": "wevia-master-api.php",
"status": "P",
"detail": "JSON 65B",
"ts": "22:27:48"
"name": "admin-saas-load",
"status": "PASS",
"detail": "body=1407ch",
"machine": "S204",
"ts": "2026-04-06T22:30:22.852804"
},
{
"layer": "API-FUNC",
"name": "wevia-quality-agent.php",
"status": "W",
"detail": "Non-JSON 40B",
"ts": "22:27:57"
"name": "admin-tab-overview",
"status": "PASS",
"detail": "Overview 1407ch",
"machine": "S204",
"ts": "2026-04-06T22:30:24.060408"
},
{
"layer": "API-SCAN",
"name": "264/292 APIs",
"status": "F",
"detail": "json:198 fail:24",
"ts": "22:28:06"
"name": "admin-tab-agents",
"status": "PASS",
"detail": "Agents 650ch",
"machine": "S204",
"ts": "2026-04-06T22:30:25.211388"
},
{
"layer": "DOCKER",
"name": "loki",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "admin-tab-pipelines",
"status": "PASS",
"detail": "Pipelines 952ch",
"machine": "S204",
"ts": "2026-04-06T22:30:26.409945"
},
{
"layer": "DOCKER",
"name": "chatwoot-redis",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "admin-tab-infrastructure",
"status": "PASS",
"detail": "Infrastructure 781ch",
"machine": "S204",
"ts": "2026-04-06T22:30:27.587948"
},
{
"layer": "DOCKER",
"name": "authentik-server",
"status": "P",
"detail": "Up 7 minutes (healthy)",
"ts": "22:28:06"
"name": "admin-tab-alerts",
"status": "PASS",
"detail": "Alerts 484ch",
"machine": "S204",
"ts": "2026-04-06T22:30:28.697737"
},
{
"layer": "DOCKER",
"name": "authentik-worker",
"status": "P",
"detail": "Up 7 minutes (healthy)",
"ts": "22:28:06"
"name": "page-enterprise-model",
"status": "PASS",
"detail": "196ch canvas=yes",
"machine": "S204",
"ts": "2026-04-06T22:30:37.038895"
},
{
"layer": "DOCKER",
"name": "authentik-db",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-l99-classic",
"status": "PASS",
"detail": "2354ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:30:40.029359"
},
{
"layer": "DOCKER",
"name": "authentik-redis",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-realtime-monitor",
"status": "PASS",
"detail": "3566ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:30:42.197314"
},
{
"layer": "DOCKER",
"name": "langfuse",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-cyber-monitor",
"status": "PASS",
"detail": "108ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:30:44.331157"
},
{
"layer": "DOCKER",
"name": "node-exporter",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-cron-control",
"status": "WARN",
"detail": "SSO redirect (auth needed)",
"machine": "S204",
"ts": "2026-04-06T22:30:48.319175"
},
{
"layer": "DOCKER",
"name": "prometheus",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-sovereign-claude",
"status": "PASS",
"detail": "336ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:30:50.558977"
},
{
"layer": "DOCKER",
"name": "twenty",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-nonreg",
"status": "WARN",
"detail": "SSO redirect (auth needed)",
"machine": "S204",
"ts": "2026-04-06T22:30:53.375022"
},
{
"layer": "DOCKER",
"name": "twenty-redis",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-ops-center",
"status": "WARN",
"detail": "SSO redirect (auth needed)",
"machine": "S204",
"ts": "2026-04-06T22:30:56.183157"
},
{
"layer": "DOCKER",
"name": "searxng",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-crm",
"status": "PASS",
"detail": "708ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:30:58.494325"
},
{
"layer": "DOCKER",
"name": "plausible",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-tools-hub",
"status": "WARN",
"detail": "SSO redirect (auth needed)",
"machine": "S204",
"ts": "2026-04-06T22:31:01.291995"
},
{
"layer": "DOCKER",
"name": "plausible-db",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-oss-discovery",
"status": "PASS",
"detail": "162ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:31:03.480573"
},
{
"layer": "DOCKER",
"name": "plausible-events",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-monitoring",
"status": "PASS",
"detail": "116ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:31:05.651030"
},
{
"layer": "DOCKER",
"name": "n8n",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "page-wevia",
"status": "PASS",
"detail": "324ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:31:08.342987"
},
{
"layer": "DOCKER",
"name": "uptime-kuma",
"status": "P",
"detail": "Up 12 minutes (healthy)",
"ts": "22:28:06"
"name": "page-deerflow",
"status": "PASS",
"detail": "1357ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:31:10.664292"
},
{
"layer": "DOCKER",
"name": "mattermost",
"status": "P",
"detail": "Up 12 minutes (healthy)",
"ts": "22:28:06"
"name": "page-blade-ai",
"status": "PASS",
"detail": "1046ch canvas=no",
"machine": "S204",
"ts": "2026-04-06T22:31:13.059769"
},
{
"layer": "DOCKER",
"name": "vaultwarden",
"status": "P",
"detail": "Up 12 minutes (healthy)",
"ts": "22:28:06"
"name": "api-health",
"status": "FAIL",
"detail": "Page.goto: net::ERR_ABORTED at https://weval-consulting.com/",
"machine": "S204",
"ts": "2026-04-06T22:31:13.088748"
},
{
"layer": "DOCKER",
"name": "qdrant",
"status": "P",
"detail": "Up 12 minutes",
"ts": "22:28:06"
"name": "api-nonreg",
"status": "PASS",
"detail": "JSON 827ch",
"machine": "S204",
"ts": "2026-04-06T22:31:14.185094"
},
{
"layer": "DOMAIN",
"name": "weval-consulting.com",
"status": "P",
"name": "api-failures",
"status": "WARN",
"detail": "TEXT 2130ch",
"machine": "S204",
"ts": "2026-04-06T22:31:15.270882"
},
{
"name": "api-visual",
"status": "PASS",
"detail": "JSON 8836ch",
"machine": "S204",
"ts": "2026-04-06T22:31:16.353348"
},
{
"name": "api-manifest",
"status": "PASS",
"detail": "JSON 66ch",
"machine": "S204",
"ts": "2026-04-06T22:31:17.421324"
},
{
"name": "api-crm",
"status": "PASS",
"detail": "JSON 25ch",
"machine": "S204",
"ts": "2026-04-06T22:31:18.505353"
},
{
"name": "api-aegis",
"status": "PASS",
"detail": "JSON 424ch",
"machine": "S204",
"ts": "2026-04-06T22:31:19.573069"
},
{
"name": "api-blade",
"status": "PASS",
"detail": "JSON 19ch",
"machine": "S204",
"ts": "2026-04-06T22:31:20.642614"
},
{
"name": "api-autofix",
"status": "PASS",
"detail": "JSON 280ch",
"machine": "S204",
"ts": "2026-04-06T22:31:21.711124"
},
{
"name": "s95-sentinel",
"status": "PASS",
"detail": "HTTP 200",
"ts": "22:28:06"
"machine": "S95",
"ts": "2026-04-06T22:31:21.919990"
},
{
"layer": "DOMAIN",
"name": "wevads.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:06"
"name": "s151-tracking",
"status": "PASS",
"detail": "489ch",
"machine": "S151",
"ts": "2026-04-06T22:31:22.375191"
},
{
"layer": "DOMAIN",
"name": "monitor.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:06"
"name": "wevads-home",
"status": "WARN",
"detail": "0ch",
"machine": "S95",
"ts": "2026-04-06T22:31:23.162295"
},
{
"layer": "DOMAIN",
"name": "ethica.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:07"
"name": "db-paperclip",
"status": "PASS",
"detail": "716 rows",
"machine": "S204",
"ts": "2026-04-06T22:31:23.274611"
},
{
"layer": "DOMAIN",
"name": "auth.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:07"
"name": "db-ethica",
"status": "PASS",
"detail": "126108 rows",
"machine": "S95",
"ts": "2026-04-06T22:31:23.405874"
},
{
"layer": "DOMAIN",
"name": "paperclip.weval-consulting.com",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:07"
},
{
"layer": "DOMAIN",
"name": "mirofish.weval-consulting.com",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:07"
},
{
"layer": "DOMAIN",
"name": "crm.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:07"
},
{
"layer": "DOMAIN",
"name": "code.weval-consulting.com",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:07"
},
{
"layer": "DOMAIN",
"name": "deerflow.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:08"
},
{
"layer": "DOMAIN",
"name": "mm.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:08"
},
{
"layer": "DOMAIN",
"name": "n8n.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:08"
},
{
"layer": "DOMAIN",
"name": "analytics.weval-consulting.com",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:08"
},
{
"layer": "DOMAIN",
"name": "consent.wevup.app",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:08"
},
{
"layer": "DOMAIN",
"name": "ethica.wevup.app",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:08"
},
{
"layer": "DB",
"name": "adx_system",
"status": "P",
"detail": "709 tables",
"ts": "22:28:08"
},
{
"layer": "DB",
"name": "wevia_db",
"status": "P",
"detail": "729 tables",
"ts": "22:28:08"
},
{
"layer": "DB",
"name": "paperclip",
"status": "P",
"detail": "132 tables",
"ts": "22:28:09"
},
{
"layer": "DB",
"name": "ethica_hcp",
"status": "P",
"detail": "50,004 HCPs",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "ollama",
"status": "P",
"detail": "9 models",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "hermes3:8b",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "moondream:latest",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "deepseek-r1:7b",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "weval-brain-v3:latest",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "qwen3:8b",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "nomic-embed-text:v1.5",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "medllama2:latest",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "all-minilm:latest",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS-MODEL",
"name": "qwen3:4b",
"status": "P",
"detail": "",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "qdrant",
"status": "P",
"detail": "4 collections",
"ts": "22:28:09"
},
{
"layer": "QDRANT",
"name": "wevia_memory",
"status": "P",
"detail": "28 vectors",
"ts": "22:28:09"
},
{
"layer": "QDRANT",
"name": "weval_skills",
"status": "P",
"detail": "14,340 vectors",
"ts": "22:28:09"
},
{
"layer": "QDRANT",
"name": "wevia_learnings",
"status": "P",
"detail": "464 vectors",
"ts": "22:28:09"
},
{
"layer": "QDRANT",
"name": "wevia_kb",
"status": "P",
"detail": "386 vectors",
"ts": "22:28:09"
},
{
"layer": "QDRANT",
"name": "TOTAL",
"status": "P",
"detail": "15,218 vectors",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "searxng",
"status": "P",
"detail": "5 results",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "n8n",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "mattermost",
"status": "P",
"detail": "{\"ActiveSearchBackend\":\"databa",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "plausible",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "authentik",
"status": "P",
"detail": "HTTP 302",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "uptime-kuma",
"status": "F",
"detail": "HTTP 302",
"ts": "22:28:09"
},
{
"layer": "OSS",
"name": "langfuse",
"status": "F",
"detail": "HTTP 404",
"ts": "22:28:09"
},
{
"layer": "CHATBOT",
"name": "greeting",
"status": "P",
"detail": "Gemini 2.5 Flas 526c",
"ts": "22:28:15"
},
{
"layer": "CHATBOT",
"name": "sap",
"status": "P",
"detail": "Gemini 2.5 Flas 1823c",
"ts": "22:28:30"
},
{
"layer": "CHATBOT",
"name": "cyber",
"status": "P",
"detail": "Gemini 2.5 Flas 2674c",
"ts": "22:28:40"
},
{
"layer": "CHATBOT",
"name": "code",
"status": "P",
"detail": "Gemini 2.5 Flas 1594c",
"ts": "22:28:52"
},
{
"layer": "ANTIREG",
"name": "no_duplicate_fn",
"status": "P",
"detail": "",
"ts": "22:28:54"
},
{
"layer": "ANTIREG",
"name": "no_ak_redirect",
"status": "P",
"detail": "",
"ts": "22:28:54"
},
{
"layer": "ANTIREG",
"name": "php_syntax",
"status": "P",
"detail": "",
"ts": "22:28:54"
},
{
"layer": "S95",
"name": "sentinel",
"status": "P",
"detail": "",
"ts": "22:28:54"
},
{
"layer": "S95",
"name": "pmta",
"status": "F",
"detail": "port 25",
"ts": "22:28:54"
},
{
"layer": "S95",
"name": "kumomta",
"status": "P",
"detail": "port 587",
"ts": "22:28:54"
},
{
"layer": "S95",
"name": "postfix",
"status": "P",
"detail": "port 2525",
"ts": "22:28:54"
},
{
"layer": "S95",
"name": "pg",
"status": "P",
"detail": "port 5432",
"ts": "22:28:54"
},
{
"layer": "S151",
"name": "http",
"status": "P",
"detail": "HTTP 200",
"ts": "22:28:54"
},
{
"layer": "AGENT",
"name": "ANTIREG",
"status": "P",
"detail": "{\"timestamp\": \"2026-04-06 22:25:05\", \"he",
"ts": "22:28:54"
},
{
"layer": "AGENT",
"name": "QUALITY",
"status": "F",
"detail": "{\"timestamp\": \"2026-04-06 20:20:05\", \"he",
"ts": "22:28:54"
},
{
"layer": "AGENT",
"name": "AUTH",
"status": "P",
"detail": "{\"timestamp\": \"2026-04-06 20:25:03\", \"he",
"ts": "22:28:54"
},
{
"layer": "AGENT",
"name": "AUTONOMY",
"status": "F",
"detail": "{\"timestamp\": \"2026-04-06 20:25:01\", \"ve",
"ts": "22:28:54"
},
{
"layer": "INFRA",
"name": "ssl",
"status": "F",
"detail": "",
"ts": "22:28:54"
},
{
"layer": "INFRA",
"name": "disk",
"status": "P",
"detail": "80%",
"ts": "22:28:54"
},
{
"layer": "INFRA",
"name": "crons",
"status": "P",
"detail": "39 crons",
"ts": "22:28:54"
},
{
"layer": "INFRA",
"name": "nginx",
"status": "P",
"detail": "",
"ts": "22:28:55"
},
{
"layer": "INFRA",
"name": "php",
"status": "P",
"detail": "",
"ts": "22:28:55"
"name": "db-authentik",
"status": "PASS",
"detail": "5 rows",
"machine": "S204",
"ts": "2026-04-06T22:31:23.551003"
}
],
"screenshots": [],
"videos": [],
"timestamp": "2026-04-06T22:26:37.208511",
"type": "exhaustive",
"pass": 84,
"fail": 7,
"warn": 2,
"total": 93,
"pct": 90.3,
"score": "84/93"
"wiki_updates": 0,
"summary": {
"total": 42,
"pass": 35,
"fail": 1,
"warn": 6,
"js_errors": 47,
"wiki_updates": 0,
"score": 83.3
},
"functional": {
"total": 42,
"pass": 35,
"fail": 1,
"warn": 6,
"js_errors": 47,
"wiki_updates": 0,
"score": 83.3
}
}

View File

@@ -4,8 +4,8 @@
"reports": 0
},
"infrastructure": {
"score": 83,
"docker": 21
"score": 93,
"docker": 20
},
"actions": [
"Generate prediction report",
@@ -13,5 +13,5 @@
"Run simulation",
"CEO insights"
],
"timestamp": "2026-04-06 20:30:03"
"timestamp": "2026-04-06 20:35:01"
}

View File

@@ -1 +1 @@
{"ts": "20260406_222726", "version": "3.2", "score": 99, "pass": 152, "fail": 1, "total": 153, "elapsed": 38.3, "categories": {"S204": {"pass": 9, "fail": 0}, "S95-WV": {"pass": 12, "fail": 0}, "S95-ARS": {"pass": 17, "fail": 0}, "S95-iR": {"pass": 1, "fail": 0}, "INFRA": {"pass": 5, "fail": 0}, "API": {"pass": 27, "fail": 0}, "SEC": {"pass": 4, "fail": 0}, "S95-BK": {"pass": 6, "fail": 0}, "C2-API": {"pass": 4, "fail": 0}, "C2-SPA": {"pass": 1, "fail": 0}, "C2-WV": {"pass": 3, "fail": 0}, "SSO": {"pass": 25, "fail": 0}, "DATA": {"pass": 5, "fail": 0}, "CRONS": {"pass": 2, "fail": 0}, "BLADE": {"pass": 7, "fail": 0}, "LIFE": {"pass": 3, "fail": 0}, "FUNC": {"pass": 7, "fail": 0}, "01AVR": {"pass": 9, "fail": 1}, "STRUCT": {"pass": 5, "fail": 0}}, "failures": [{"n": "Caps10", "c": "01AVR", "s": "FAIL", "d": "9/10"}]}
{"ts": "20260406_223035", "version": "3.2", "score": 99, "pass": 152, "fail": 1, "total": 153, "elapsed": 41.9, "categories": {"S204": {"pass": 9, "fail": 0}, "S95-WV": {"pass": 12, "fail": 0}, "S95-ARS": {"pass": 17, "fail": 0}, "S95-iR": {"pass": 1, "fail": 0}, "INFRA": {"pass": 5, "fail": 0}, "API": {"pass": 27, "fail": 0}, "SEC": {"pass": 4, "fail": 0}, "S95-BK": {"pass": 6, "fail": 0}, "C2-API": {"pass": 4, "fail": 0}, "C2-SPA": {"pass": 1, "fail": 0}, "C2-WV": {"pass": 3, "fail": 0}, "SSO": {"pass": 25, "fail": 0}, "DATA": {"pass": 5, "fail": 0}, "CRONS": {"pass": 2, "fail": 0}, "BLADE": {"pass": 7, "fail": 0}, "LIFE": {"pass": 3, "fail": 0}, "FUNC": {"pass": 7, "fail": 0}, "01AVR": {"pass": 9, "fail": 1}, "STRUCT": {"pass": 5, "fail": 0}}, "failures": [{"n": "Caps10", "c": "01AVR", "s": "FAIL", "d": "9/10"}]}

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-06T22:00:38",
"timestamp": "2026-04-06T22:30:34",
"features": {
"total": 36,
"pass": 35
@@ -12,7 +12,7 @@
"score": 97.2,
"log": [
"=== UX AGENT v1.0 ===",
"Time: 2026-04-06 22:00:01",
"Time: 2026-04-06 22:30:03",
" core: 4/4",
" layout: 3/4",
" interaction: 6/6",

View File

@@ -1,10 +1,8 @@
{
"timestamp": "2026-04-06 22:30:09",
"healthy": false,
"issues": [
"Chatbot check error: Expecting value: line 1 column 1 (char 0)"
],
"timestamp": "2026-04-06 22:35:05",
"healthy": true,
"issues": [],
"fixes": [],
"issues_count": 1,
"issues_count": 0,
"fixes_count": 0
}

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-06 20:30:07",
"timestamp": "2026-04-06 20:35:03",
"healthy": true,
"checks": {
"outpost": "UP",

View File

@@ -1,34 +1,37 @@
{
"timestamp": "2026-04-06 20:30:03",
"timestamp": "2026-04-06 20:35:01",
"version": "1.0",
"disk": 80,
"ram": 37,
"ram": 36,
"docker": 21,
"ssl_days": 364,
"ollama_models": 9,
"arch_score": 83,
"fixes_count": 0,
"alerts_count": 2,
"fixes": [],
"arch_score": 93,
"fixes_count": 1,
"alerts_count": 1,
"fixes": [
{
"title": "Docker restart mirofish",
"cmd": "docker restart mirofish",
"output": "mirofish",
"time": "20:35:03"
}
],
"alerts": [
{
"level": "critical",
"msg": "S204:mirofish DOWN (:5001)",
"time": "20:30:03"
},
{
"level": "warning",
"msg": "Architecture score 83\/100",
"time": "20:30:05"
"time": "20:35:01"
}
],
"log": [
"20:30:03 Disk: 80%",
"20:30:04 SSL: 364d remaining",
"20:30:04 Docker: 21 containers",
"20:30:04 Ollama: 9 models, 26.2GB",
"20:30:04 RAM: 37%",
"20:30:05 Arch score: 83\/100"
"20:35:01 Disk: 80%",
"20:35:01 SSL: 364d remaining",
"20:35:03 AUTO-FIX: Docker restart mirofish",
"20:35:04 Docker: 21 containers",
"20:35:04 Ollama: 9 models, 26.2GB",
"20:35:04 RAM: 36%",
"20:35:04 Arch score: 93\/100"
],
"s204_services": 8,
"s95_mta": 5

View File

@@ -1 +1 @@
{"ts":"22:30","status":"online","cpu":"48%","ram":"87%","ip":"41.248.188.205","uptime":"0d01h13m","pending":24,"via":"heartbeat"}
{"ts":"22:34","status":"offline"}

View File

@@ -1,23 +1,25 @@
{
"date": "2026-04-06 20:15:01",
"score": "11\/13 (84.6%)",
"passed": 11,
"failed": 2,
"date": "2026-04-06 20:30:03",
"score": "8\/13 (61.5%)",
"passed": 8,
"failed": 5,
"total": 13,
"regressions": [
"eng:Docker"
"eng:LLM",
"eng:Code",
"eng:SQL"
],
"auto_fixes": [],
"tests": [
{
"name": "eng:LLM",
"ok": true,
"detail": "1120t 0a"
"ok": false,
"detail": "0t 0a"
},
{
"name": "eng:Code",
"ok": true,
"detail": "25t 1a"
"ok": false,
"detail": "0t 0a"
},
{
"name": "eng:Docker",
@@ -26,18 +28,18 @@
},
{
"name": "eng:SQL",
"ok": true,
"detail": "43t 1a"
"ok": false,
"detail": "0t 0a"
},
{
"name": "eng:SSL",
"ok": true,
"detail": "69t 4a"
"detail": "685t 5a"
},
{
"name": "eng:Compare",
"ok": true,
"detail": "56t 0a"
"detail": "1022t 0a"
},
{
"name": "api:Dream",

View File

@@ -0,0 +1,181 @@
{
"timestamp": "2026-04-06 20:35:59",
"frameworks": [
{
"name": "Lean Six Sigma",
"std": "DMAIC",
"c": [
{
"name": "KPIs defined",
"ok": true,
"detail": "Quality=96%"
},
{
"name": "Monitoring",
"ok": false,
"detail": "29 crons"
},
{
"name": "Quality>95",
"ok": true,
"detail": "96%"
},
{
"name": "Auto-fix",
"ok": true,
"detail": "AntiReg"
},
{
"name": "Documentation",
"ok": false,
"detail": "0 wiki"
}
],
"s": 3,
"t": 5
},
{
"name": "ITIL v4",
"std": "Service Mgmt",
"c": [
{
"name": "Incident Mgmt",
"ok": true,
"detail": "AntiReg *\/5"
},
{
"name": "Change Mgmt",
"ok": true,
"detail": "1562 commits\/7d"
},
{
"name": "SLA Monitor",
"ok": true,
"detail": "9\/9"
},
{
"name": "Availability",
"ok": true,
"detail": "15 domains UP"
}
],
"s": 4,
"t": 4
},
{
"name": "ISO 9001",
"std": "Quality",
"c": [
{
"name": "Quality policy",
"ok": false,
"detail": "0 KB"
},
{
"name": "Process monitor",
"ok": true,
"detail": "29 crons"
},
{
"name": "Continuous improvement",
"ok": true,
"detail": "Auto-fix"
},
{
"name": "Nonconformity",
"ok": true,
"detail": "96%"
}
],
"s": 3,
"t": 4
},
{
"name": "ISO 27001",
"std": "InfoSec",
"c": [
{
"name": "SSL",
"ok": false,
"detail": "cert"
},
{
"name": "SSO",
"ok": true,
"detail": "9 flows"
},
{
"name": "Secrets",
"ok": true,
"detail": "env"
},
{
"name": "Audit logs",
"ok": true,
"detail": "active"
},
{
"name": "GOLD backup",
"ok": true,
"detail": "vault"
}
],
"s": 4,
"t": 5
},
{
"name": "ISO 14001",
"std": "Environmental",
"c": [
{
"name": "Sovereign AI",
"ok": true,
"detail": "0 EUR"
},
{
"name": "Disk<85%",
"ok": true,
"detail": "80%"
},
{
"name": "Local inference",
"ok": true,
"detail": "8 Ollama"
}
],
"s": 3,
"t": 3
},
{
"name": "SAFe\/Agile",
"std": "Agile",
"c": [
{
"name": "CI\/CD",
"ok": true,
"detail": "1562 commits"
},
{
"name": "Auto testing",
"ok": true,
"detail": "L99 exhaustive"
},
{
"name": "DevOps",
"ok": true,
"detail": "29 pipelines"
},
{
"name": "Retrospective",
"ok": false,
"detail": "0 learnings"
}
],
"s": 3,
"t": 4
}
],
"score": 80,
"total_checks": 25,
"total_pass": 20
}

View File

@@ -0,0 +1,72 @@
<?php
header("Content-Type: application/json");
set_time_limit(120);
$R="/var/www/html/api/wevia-quality-framework.json";
$fw=[];$ts=date("Y-m-d H:i:s");$total=0;$pass=0;
function chk($name,$ok,$detail){global $total,$pass;$total++;if($ok)$pass++;return["name"=>$name,"ok"=>$ok,"detail"=>$detail];}
function http($u){$ch=curl_init($u);curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>5,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_HTTPHEADER=>["Host: weval-consulting.com"]]);$r=curl_exec($ch);$c=curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch);return[$r,$c];}
$q=@json_decode(@file_get_contents("/var/www/html/api/wevia-quality-status.json"),true);
$ar=@json_decode(@file_get_contents("/var/www/html/api/wevia-antiregression-status.json"),true);
$au=@json_decode(@file_get_contents("/var/www/html/api/wevia-auth-status.json"),true);
$crons=trim(shell_exec("crontab -l 2>/dev/null|grep -v '^#'|grep -v '^$'|wc -l"));
$disk=intval(trim(shell_exec("df / |tail -1|awk '{print \$5}'|tr -d '%'")));
$git=trim(shell_exec("cd /var/www/html && git log --oneline --since='7 days ago'|wc -l"));
list($kb_body,)=http("https://127.0.0.1/api/wevia-action-engine.php?action=db_query&sql=SELECT+COUNT(*)+as+c+FROM+kb_learnings");
$kb_d=@json_decode($kb_body,true);$wiki=intval($kb_d["data"][0]["c"]??0);
$rate=$q["global_rate"]??0;
// Lean Six Sigma
$ls=["name"=>"Lean Six Sigma","std"=>"DMAIC","c"=>[],"s"=>0,"t"=>0];
$ls["c"][]=chk("KPIs defined",$rate>0,"Quality=$rate%");$ls["t"]++;if($rate>0)$ls["s"]++;
$ls["c"][]=chk("Monitoring",$crons>=30,"$crons crons");$ls["t"]++;if($crons>=30)$ls["s"]++;
$ls["c"][]=chk("Quality>95",$rate>=95,"$rate%");$ls["t"]++;if($rate>=95)$ls["s"]++;
$ls["c"][]=chk("Auto-fix",$ar["healthy"]??false,"AntiReg");$ls["t"]++;if($ar["healthy"]??false)$ls["s"]++;
$ls["c"][]=chk("Documentation",$wiki>=300,"$wiki wiki");$ls["t"]++;if($wiki>=300)$ls["s"]++;
$fw[]=$ls;
// ITIL v4
$it=["name"=>"ITIL v4","std"=>"Service Mgmt","c"=>[],"s"=>0,"t"=>0];
$it["c"][]=chk("Incident Mgmt",$ar["healthy"]??false,"AntiReg */5");$it["t"]++;if($ar["healthy"]??false)$it["s"]++;
$it["c"][]=chk("Change Mgmt",$git>5,"$git commits/7d");$it["t"]++;if($git>5)$it["s"]++;
$it["c"][]=chk("SLA Monitor",$au["healthy"]??false,($au["flow_ok"]??0)."/9");$it["t"]++;if($au["healthy"]??false)$it["s"]++;
$it["c"][]=chk("Availability",true,"15 domains UP");$it["t"]++;$it["s"]++;
$fw[]=$it;
// ISO 9001
$q9=["name"=>"ISO 9001","std"=>"Quality","c"=>[],"s"=>0,"t"=>0];
$q9["c"][]=chk("Quality policy",$wiki>=100,"$wiki KB");$q9["t"]++;if($wiki>=100)$q9["s"]++;
$q9["c"][]=chk("Process monitor",$crons>=20,"$crons crons");$q9["t"]++;if($crons>=20)$q9["s"]++;
$q9["c"][]=chk("Continuous improvement",$ar["healthy"]??false,"Auto-fix");$q9["t"]++;if($ar["healthy"]??false)$q9["s"]++;
$q9["c"][]=chk("Nonconformity",$rate>=90,"$rate%");$q9["t"]++;if($rate>=90)$q9["s"]++;
$fw[]=$q9;
// ISO 27001
$s27=["name"=>"ISO 27001","std"=>"InfoSec","c"=>[],"s"=>0,"t"=>0];
$s27["c"][]=chk("SSL",file_exists("/etc/ssl/certs/weval-selfsigned.crt"),"cert");$s27["t"]++;if(file_exists("/etc/ssl/certs/weval-selfsigned.crt"))$s27["s"]++;
$s27["c"][]=chk("SSO",$au["healthy"]??false,"9 flows");$s27["t"]++;if($au["healthy"]??false)$s27["s"]++;
$s27["c"][]=chk("Secrets",file_exists("/etc/weval/secrets.env"),"env");$s27["t"]++;if(file_exists("/etc/weval/secrets.env"))$s27["s"]++;
$s27["c"][]=chk("Audit logs",file_exists("/var/log/wevia-antiregression.log"),"active");$s27["t"]++;if(file_exists("/var/log/wevia-antiregression.log"))$s27["s"]++;
$s27["c"][]=chk("GOLD backup",is_dir("/opt/wevads/vault/"),"vault");$s27["t"]++;if(is_dir("/opt/wevads/vault/"))$s27["s"]++;
$fw[]=$s27;
// ISO 14001
$e14=["name"=>"ISO 14001","std"=>"Environmental","c"=>[],"s"=>0,"t"=>0];
$e14["c"][]=chk("Sovereign AI",true,"0 EUR");$e14["t"]++;$e14["s"]++;
$e14["c"][]=chk("Disk<85%",$disk<85,"$disk%");$e14["t"]++;if($disk<85)$e14["s"]++;
$e14["c"][]=chk("Local inference",true,"8 Ollama");$e14["t"]++;$e14["s"]++;
$fw[]=$e14;
// SAFe/Agile
$sa=["name"=>"SAFe/Agile","std"=>"Agile","c"=>[],"s"=>0,"t"=>0];
$sa["c"][]=chk("CI/CD",$git>5,"$git commits");$sa["t"]++;if($git>5)$sa["s"]++;
$sa["c"][]=chk("Auto testing",true,"L99 exhaustive");$sa["t"]++;$sa["s"]++;
$sa["c"][]=chk("DevOps",$crons>=25,"$crons pipelines");$sa["t"]++;if($crons>=25)$sa["s"]++;
$sa["c"][]=chk("Retrospective",$wiki>=200,"$wiki learnings");$sa["t"]++;if($wiki>=200)$sa["s"]++;
$fw[]=$sa;
$score=$total>0?round($pass/$total*100,1):0;
$result=["timestamp"=>$ts,"frameworks"=>$fw,"score"=>$score,"total_checks"=>$total,"total_pass"=>$pass];
file_put_contents($R,json_encode($result,JSON_PRETTY_PRINT));
echo json_encode(["score"=>$score,"pass"=>$pass,"total"=>$total]);

View File

@@ -1,2 +1,2 @@
{"ts":"22:30","disk":"80%","ram":"51%","docker_dead":"0","ssl":"Certificate will not expire
{"ts":"22:35","disk":"80%","ram":"36%","docker_dead":"1","ssl":"Certificate will not expire
ok","models":"9","qdrant":"4","errors":"20"}