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
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.