skills/arifos-deploy/SKILL.md
arifOS sovereign deployment: static hub, docs, runtime, and machine files. Use when deploying arifOS estate surfaces. Encodes deployment philosophy, estate roles, CI/CD policy, machine file invariants, and rollback doctrine. Triggers: deploy, build site, CI/CD, publish, machine files, llms.txt, static hub, Cloudflare, GitHub Pages, VPS runtime.
npx skillsauth add ariffazil/openclaw-workspace arifos-deployInstall 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.
Ditempa Bukan Diberi. Every deployment is a thermodynamic state transition. Only deploy what is proven reversible.
These are constitutional-level constraints. No tool, command, or convenience may violate them.
arif-fazil.com → Ring 1 — THE SOUL (identity, philosophy, human witness)
arifos.arif-fazil.com → Ring 2 — THE MIND (constitutional kernel, ΔΩΨ, 13 floors)
aaa.arif-fazil.com → Ring 3 — THE BODY (AAA runtime, agents, tools, execution)
mcp.arif-fazil.com → VPS MCP runtime (37 constitutional tools, health-checked)
Role rule: Hub never hosts full docs content. Docs never hosts hub content. Runtime is never a static site. These boundaries never swap.
Machine-readable files MUST be at root-level stable canonical paths:
/llms.txt → LLM context injection (text/plain)
/robots.txt → Crawler control
/sitemap.xml → Search indexing
/.well-known/agent.json → Agent discovery (application/json)
/.well-known/ai-plugin.json → Plugin manifest
Rule: These paths NEVER change. They never route through SPA. They never redirect. They always return correct Content-Type. If a hosting platform cannot serve a file at its canonical path, that platform is not suitable for this surface.
| File | Content-Type | |------|-------------| | llms.txt | text/plain; charset=utf-8 | | agent.json | application/json | | robots.txt | text/plain | | sitemap.xml | application/xml |
Rule: Any deploy that breaks Content-Type for machine files is a failed deploy.
Every deploy MUST be GitHub Actions triggered by push to main. No manual scp or FTP. No exceptions.
Before any production deploy, the pipeline checks:
Every runtime deploy MUST verify /health returns 200 before marking deploy complete. If health check fails, deploy is marked failed — not degraded-ok.
Every deploy MUST produce a documented rollback path before executing. Rollback must be achievable in ≤2 minutes without data loss.
Standard rollback: Re-run previous successful workflow. GitHub Pages and GitHub Actions both support instant rollback to previous deployment.
Hub deploys when files in sites/arif-fazil.com-source/pages/, assets/, machine files, or deploy-hub.yml workflow change.
Docs deploys when files in arifOSmcp/sites/developer/ or deploy-sites.yml workflow change.
Runtime deploys when arifOSmcp/, docker-compose.yml, Dockerfile, or deploy-vps.yml change. Requires health check confirmation.
Do NOT deploy if:
Path filters in GitHub Actions enforce this automatically.
Purge ONLY files whose source content changed:
/llms.txt → republish when MEMORY.md, SOUL.md, or REPOS.md changes/.well-known/agent.json → republish when waw/.well-known/agent.json changesCache purge is CI-triggered, not blanket. Default GitHub Pages cache is acceptable. Cloudflare Pages cache purge only on explicit content change.
Purge-everything is operationally noisy and risks collateral damage. It is forbidden as a default step.
Transition rule: State B activates only after: (1) machine files verified working at canonical paths, (2) 5 consecutive successful deploys, (3) Cloudflare token available and configured.
| Error | Response | |-------|----------| | Deploy fails health check | Rollback immediately | | Machine file returns wrong Content-Type | Rollback deploy | | Hub/docs content swapped | Rollback + bug ticket | | Runtime unreachable | Rollback runtime deploy only | | Cache poisoning | Purge specific affected files |
| Tool | Purpose | Access |
|------|---------|--------|
| gh CLI | GitHub Actions, repo, secrets | Authenticated via gh auth |
| wrangler v4 | Cloudflare Pages, DNS, Cache Rules | Needs CLOUDFLARE_API_TOKEN env var |
| docker / docker compose | VPS runtime management | SSH to VPS via deploy-vps.yml |
| rsync | File transfer to VPS | Via SSH in deploy-vps.yml |
| Python urllib | Direct Cloudflare REST API | Needs CF token |
| GitHub Actions | Automated CI/CD | Push-to-main trigger |
Current blockers: CLOUDFLARE_API_TOKEN not available in runtime. deploy-vps.yml secrets partially encrypted.
Every task that enters this skill must pass through a simplified run-state before any action is taken. This is the agentic embodiment of the 000→999 pipeline.
000_INIT → Identify surface, authority, and intent
111_CHECK → Classify: hub / docs / runtime / meta-deploy / query
333_REASON → Validate facts, check truth ownership, flag uncertainty
555_HEART → Assess blast radius, human impact, reversibility
777_ROUTE → Choose safe path: deploy / refuse / escalate / defer
888_HOLD → Pause if irreversible or high-risk; require human decision
999_SEAL → Emit final plan with rollback path and verification evidence
| Stage | Question | Output | |-------|---------|--------| | 000_INIT | What surface? Who authorized? What is the requested outcome? | Surface identified, authority confirmed | | 111_CHECK | Is this hub, docs, runtime, or meta? Does it match the three-surface rule? | Task classified, path filters identified | | 333_REASON | Is the claimed fact true? Who owns this truth? Is this canonical? | Fact map, uncertainty band | | 555_HEART | What breaks if this goes wrong? Who is affected? Can we reverse it? | Blast radius score, reversibility | | 777_ROUTE | Deploy / refuse / escalate / defer / query-only? | Action path chosen | | 888_HOLD | Is this irreversible? Is uncertainty > Ω? Is human required? | HOLD if yes, else proceed | | 999_SEAL | What is the exact deploy step? What is the rollback? What verifies success? | Final plan with rollback |
These are binding on every agent operating under this skill. No override, no convenience exception.
/llms.txt and /.well-known/agent.json must always be at root.When the correct action is unknown or uncertain:
Every agent operating under this skill must know when to stop, ask, or refuse. These are not optional politeness protocols — they are structural safeguards.
Stop and ask the human when ANY of these conditions are true:
| Condition | Example | |-----------|---------| | Required secret/token is missing | CF token unavailable, VPS SSH key encrypted | | Action is irreversible | DNS record deletion, production data deletion | | Uncertainty > Ω threshold | Cannot verify Content-Type before deploy | | Surface role violation requested | "Put full docs on the hub" | | Non-canonical machine file path requested | "Serve llms.txt from /docs/llms.txt" | | Blanket purge requested | "Purge everything" | | No rollback path stated | Deploy without documented revert |
HOLD format:
888_HOLD — [Exact reason]
What is unclear: [Specific thing]
Why human judgment is needed: [Specific reason]
Required to proceed: [Specific input or token]
Refuse and do not proceed when:
| Request | Reason | |---------|--------| | Ask to serve machine files at non-canonical paths | Machine discovery invariants are constitutional | | Ask to use blanket purge | Cache purge doctrine forbids it | | Ask to deploy without health check on runtime | Health check requirement is mandatory | | Ask to skip rollback documentation | F1 rollback mandate is mandatory | | Ask to swap hub/docs surface roles | Three-surface rule is constitutional | | Ask to claim deployment success without verification | Behavioral invariant | | Ask to publish mystical/unsubstantiated claims | Anti-mythological framing invariant | | Ask to reveal secrets via logs or output | Security non-negotiable |
Refusal format:
REFUSE — [Verdict: VOID]
Reason: [Constitutional clause violated]
What would be required to reconsider: [Specific fix]
Plan mode proposes. Execution mode acts. Switch from plan to execution ONLY when:
Never switch to execution mode based on assumption or implicit approval.
When in doubt:
Agent uncertainty
↓
Check canonical sources (MEMORY.md, deploy-matrix.md, file-inventory.md)
↓
Still uncertain → 888_HOLD with specific question
↓
Human provides answer → Document it → Continue
↓
Human refuses → Stop, do not proceed
This skill is governed by two principles that override all convenience:
Architecture first. Slogans second. If a deployment choice is architecturally cleaner but less impressive-sounding, choose the cleaner architecture. The estate must work correctly before it looks impressive. Every structural decision must be justifiable in terms of entropy, blast radius, and operational simplicity — not in terms of how it sounds.
Do not choose cleverness that obscures truth. A deployment that is simple, honest, and slightly inconvenient is worth more than an elegant, opaque, automated solution that no one can audit. If a tool or pattern makes the system harder to understand, it has violated maruah — even if it saves time.
These are not aspirational statements. They are operational filters: any proposed action that violates physics-over-narrative or maruah-over-convenience must be refused or redesigned.
docker compose up) — use vps-docker skillskill-creator skillLayer 3 — Operations:
references/deploy-matrix.md — domain → platform → CI trigger mappingreferences/file-inventory.md — machine files, paths, content typesreferences/cicd-patterns.md — workflow patterns (populate after State A proven)references/cloudflare-commands.md — exact CLI syntax (populate after CF token available)Layer 4 — Rituals:
references/verification-runbooks.md — exact checks for every surfacereferences/change-classification.md — classify every change type with required gatesreferences/888-hold-matrix.md — which actions require explicit human confirmationLayer 2 — Cognition:
references/constitutional-execution.md — task-to-stage mapping for each change typereferences/agent-behaviors.md — voice, refusal style, evidence thresholdsdevelopment
Governed intelligence skill for AAA as the abstraction, attestation, and abduction control plane across arifOS, APEX, A-FORGE, GEOX, WEALTH, WELL, and the ariffazil profile repository. Use when the user asks to explain or design AAA, route agentic work, reduce chaos/entropy in an arifOS federation task, create AREP/task declarations, classify risk, plan multi-repo changes, review governance boundaries, or translate human intent into evidence-backed, authority-safe, recursively agentic workflows. Provides deterministic F1-F13 floor checking, bounded abduction, and FederationReceipt composition.
development
Check every skill’s “use when” and “do not use when” clauses for collisions, missing negatives, and vague verbs like “help,” “assist,” or “improve.” Load when linting, reviewing, or validating trigger boundaries.
development
Bootstrap, design, and package new skills. Load when capturing user intent for a new skill or drafting its initial instruction framework.
content-media
Diagnose which federation services are up, down, or drifting. Produce a prioritized remediation plan.