skills/FORGE-agentic-web-builder/SKILL.md
Build, deploy, audit, and repair arif-fazil.com constellation sites autonomously. Class-level umbrella: DOCTOR (web_zen CLI), DEPLOY, AUDIT, REPAIR, SEAL, EPHEMERAL. Humans use six missions — not tool menus. USE WHEN: "deploy site", "site down", "audit all pages", "404 on arif-fazil.com", "deploy-vps.sh", "makcikgpt broken", "web zen", "missions 404", "vitals proxies", "rsync --delete", "ephemeral tool". DO NOT USE FOR: Caddy SSL/DNS/tunnel (FORGE-infra-guardian), LLM SEO (AGI-web-optimization), generic CI/CD (FORGE-cicd-docker-deploy).
npx skillsauth add ariffazil/openclaw-workspace FORGE-agentic-web-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
One night, three identical failures:
organ_proxy.py(code),999/index.html(doctrine),static/wealth.html(renderer output) — all lived ONLY in the deployed tree, all destroyed or nearly destroyed by deploys. This skill is the metabolized scar. Nothing generated lives only in the deployed tree.2026-07-30: Stop inventory cosplay. Humans →
/missions. Agents →web_zen.py doctorbefore inventing a new deploy path.
VERSION CONTROL FIRST. LIVE TREE SECOND.
If a file must exist on a public site, it must exist in git first.
rsync --delete is an executioner — anything not in source is sentenced.
Capability ≠ authority. Ephemeral tools die. Permission stays with arifOS/Arif.
python3 /root/arif-fazil.com/scripts/web-zen/web_zen.py doctor
| Mode | Band | Purpose |
|------|------|---------|
| sense | GREEN | source/live, Caddy missions routes, commodity :3456–3458 |
| verify | GREEN | content-truth crawl (SPA checks JS bundle, not shell HTML only) |
| orphan | YELLOW | dry-run rsync --delete — fail closed if deletes listed |
| ephemeral | GREEN | generate → test → destroy disposable script (no secrets) |
| caddy-reload-hint | ORANGE | systemd reload often fails NAMESPACE — use in-process caddy reload |
README: /root/arif-fazil.com/scripts/web-zen/README.md
Human cockpit: https://arif-fazil.com/missions · Machine: /missions.json
MCP: forge_web_zen(mode=doctor) · Kernel: arif_route(mission_id=…)
Caddy reload: systemctl reload caddy (PrivateTmp=false fixed 2026-07-30)
| Symptom | Cause | Fix |
|---------|-------|-----|
| /missions 404 | not in Caddy @spa_routes | add /missions*; caddy validate; /usr/bin/caddy reload --config /etc/caddy/Caddyfile --force |
| /missions.json 404 | not in @root_static | add path; reload as above |
| VITALS proxies UNAVAILABLE | gold/oil/gas API down | systemctl start gold-api oil-api gas-api (not API keys) |
| systemctl reload caddy fail NAMESPACE | host /tmp mount bug | in-process caddy reload (above) |
| Doctor fails SPA markers | checking HTML shell only | web_zen reads live /assets/index-*.js |
Canonical source: /root/arif-sites/sites/ → built/synced to /var/www/html/<site>/
Canonical script: /var/www/html/deploy-vps.sh (mirrored in repo root)
Pre-deploy checklist (mandatory):
cp -a /var/www/html /root/backups/www-html-$(date +%Y%m%d)-pre-<reason> — snapshot BEFORE mutation. Tonight this snapshot saved two restores.rsync --delete, list what will die:
rsync -avzn --delete SRC/ DEST/ | grep '^deleting' | head -50
Any file you don't recognize = HOLD. Either seed it into source or quarantine it.grep <site> deploy-vps.sh).Host → source map: | Host | Live root | Source | |---|---|---| | arif-fazil.com | /var/www/html/arif | sites/arif-fazil.com (build → dist → rsync) | | aaa | /var/www/html/aaa | sites/aaa.arif-fazil.com | | arifos / geox / wealth | /var/www/html/<organ> | sites/<organ>.arif-fazil.com | | mcp | /var/www/html/mcp | sites/mcp.arif-fazil.com (rsync, no --delete — .well-known live assets) | | well | /var/www/html/well | sites/well.arif-fazil.com (llms.txt only) | | /oil /gas /gold (apex paths) | /var/www/html/{oil,gas,gold} | dist/{oil,gas,gold} — exclude live api/ + vendor/ |
74-URL method, proven 2026-07-23. Evidence dir pattern:
/root/A-FORGE/forge_work/<date>/site-audit/
grep -oE "^[a-z0-9.-]+\.arif-fazil\.com \{" /etc/caddy/Caddyfile | sort -u<loc> entries + Caddy @spa_routes path list + every handle target + static handles (@root_static).curl -s -o body -w "%{http_code}|%{size_download}" -L url. 0-byte 404 = catch-all respond; 17-byte 404 = explicit respond directive. Both are failures for content pages.GPTBot/1.0, curl/x) AND browser UA (Mozilla + Accept: text/html). Bot lane serves .md/.html from makcikgpt-md/; browser lane gets SPA. Both must 200.@root_static list)? file never built (pre-existing gap — label it, don't fake-fix)?The drift detector for deployed content:
diff -rq <snapshot-or-source>/ <live>/ | grep "^Only in"
public/ (survives build) → commit → redeploy. Never hand-edit live-only.999/index.html vs public/999/index.html): converge to one canonical, sync, commit. Both copies must carry both truths.cp -a src dst when dst exists → dst/src): verify with ls dst after every restore; flatten with cp -a dst/src/. dst/ then mv dst/src quarantine/.rm -rf — F1 tripwire will (correctly) block. Quarantine: mkdir -p /root/backups/quarantine-<date> && mv target quarantine-<date>/.caddy validate → systemctl reload → verify affected URLs. Backup exists at /etc/caddy/Caddyfile.bak.*. Reload is T3-class: only under sovereign directive or incident repair with immediate verification.web_zen.py doctor --json receipt under forge_work/<date>/web-zen/.results.tsv), URL list, truth-check output → forge_work/<date>/site-audit/AUDIT-REPORT.md.forge_vault(mode="seal") with: scope, pass count, content-truth table, gaps closed, commits, skill.python3 /root/arif-fazil.com/scripts/web-zen/web_zen.py ephemeral \
--task "mission gap: why needed" \
--code-file /path/to/temp_tool.py
Loop: gap → search existing → reuse → generate → sandbox test → invoke → verify → destroy → promote only if repeated + human-approved.
GREEN: parsers, converters, disposable analysis. RED never self-grant: secrets, production deploy, persistent MCP, force-push, Caddy authority, payments. No arif_create_random_tool — modes under forge only.
rsync --delete without orphan preview — destroyed 36 files 2026-07-23rm -rf for cleanup — quarantine insteadweb_zen.py doctor and reinventing the deploy path every sessionDITEMPA BUKAN DIBERI.
testing
OpenClaw edge agent bridge — operational triage, doctor, restart, and A2A bridge routing for the federation edge (Telegram surface). USE WHEN: "openclaw unhealthy", "gateway down", "edge bot not responding", "a2a bridge disconnected", "watchdog tripped", "openclaw doctor", "openclaw restart". NOT for token/security audit — use FORGE-telegram-audit.
tools
Generate images, videos, TTS, voice clone, and music via MiniMax MCP server. Use when user asks to "draw", "generate image", "create picture", "make a photo", "text to image", "image generation".
testing
Single load-bearing constitutional-judgment skill. Routes all F1–F13, verdict, hold, seal, scope, authority and floor-check calls through the live arif_judge surface. Replaces 7 overlapping predecessors (arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge, arifos-constitutional-judge).
development
MANDATORY LSP grounding gate BEFORE any code mutation on .ts, .py, .js, .tsx, .jsx files. Forces the agent to read real-time compiler diagnostics and structural project context before editing — eliminating blind guesses and anchoring every mutation in F2 (TRUTH). Routes through arifOS kernel (:8088) for centralized gate logic.