hermes-backup/daily/2026-04-28_203212/skills/devops/arif-sites-production-sync/SKILL.md
Sync /999 credential artifacts from arif-sites source repo to live Nginx production web root — includes key consistency checks and manual deploy steps.
npx skillsauth add ariffazil/openclaw-workspace arif-sites-production-syncInstall 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.
The arifOS identity/verification surface lives at https://arif-fazil.com/999/ (the "Verification Room"). Source code lives in /root/sites/arif/ (GitHub: ariffazil/arif-sites), but production is served from a SEPARATE web root via Nginx — NOT via git push or Caddy.
Production did.json key can differ from source repo did.json key.
The production /var/www/arif-fazil.com/.well-known/did.json was independently updated and contained a DIFFERENT Ed25519 Multikey (z6MkuQTtujH...) than the source repo's version (z6MkkWQz...).
If you generate .sig files using a key from the source repo but the production did.json has a different key, verification will FAIL in production even though it works locally.
Rule: Always read production files before making artifacts.
caddy)/root/compose/Caddyfile/var/www/html/arif/ (served at https://arif-fazil.com/)/root/sites/ (git remote: github.com/ariffazil/arif-sites)site-autoresearch/apr26 is the working branch — commit here, push when verifiedExternal agent deploy scripts often use wrong paths (e.g. /mnt/agents/output/,
/root/sites/arif/ as root, or Nginx paths). Always verify against git staging first.
# External agents stage work in /root/sites/ git repo
cd /root/sites && git status -s # Shows all modified/new/untracked files
ls /root/sites/arif/ # Human surface source files
ls /root/sites/apex/ # Apex surface source files
# Human surface (arif-fazil.com)
cp /root/sites/arif/<file> /var/www/html/arif/
cp -r /root/sites/arif/888 /var/www/html/arif/
cp -r /root/sites/arif/history /var/www/html/arif/
cp -r /root/sites/arif/weight /var/www/html/arif/
# Apex surface (apex.arif-fazil.com)
cp /root/sites/apex/<file> /var/www/html/apex/
# Verify served correctly
curl -s -o /dev/null -w "%{http_code}" https://arif-fazil.com/<path>
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
No nginx reload — Caddy handles everything.
cd /root/sites
git add arif/888 arif/history arif/weight ...
git commit -m "feat(surface): <description>"
git push origin site-autoresearch/apr26
Before deploying, verify the key in did.json matches keys.json:
import json
did_key = json.load(open('/path/to/.well-known/did.json'))['verificationMethod'][0]['publicKeyMultibase']
keys_key = json.load(open('/path/to/999/keys.json'))['keys'][0]['public_key']
assert did_key == keys_key, f"DID key ({did_key}) != keys.json ({keys_key}) — signatures will fail!"
print("Consistent ✅")
| File | Source | Production | Permissions |
|------|--------|------------|-------------|
| did.json | /root/sites/arif/.well-known/ | /var/www/arif-fazil.com/.well-known/ | 755 |
| keys.json | /root/sites/arif/999/ | /var/www/arif-fazil.com/999/ | 644 |
| *.sig files | /root/sites/arif/999/ | /var/www/arif-fazil.com/999/ | 644 |
| verify.sh | /root/sites/arif/999/ | /var/www/arif-fazil.com/999/ | 755 |
| index.html | /root/sites/arif/999/ | /var/www/arif-fazil.com/999/ | 644 |
| Private key | /root/arifOS/secrets/did_ed25519_private.key | N/A — never public | 600 |
Current state:
keys.json had PLACEHOLDER — replaced with real Ed25519 Multikey.sig files existed — generated 4 detached Ed25519 signaturesdid.json key ≠ keys.json key — discovered via production read, fixed both/proof/geologist-credential.json links broken — fixed to /999/ pathsThe .sig files are self-signed (issuer = did:web:arif-fazil.com). To reach L4, a third-party issuer must sign the geoscientist credential. This requires Arif to initiate, not an agent.
development
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.