{
  "ok": true,
  "role": "product",
  "slug": "shadowlock",
  "name": "ShadowLock",
  "version": "0.2.0",
  "one_line": "Zero-retention observation of a job list you already have. No OS hook.",
  "author": "Aziel Eliab",
  "identity": "Aziel Eliab",
  "license": "Apache-2.0",
  "github": "https://github.com/AzielEliab/shadowlock",
  "skill_url": "https://aziel-runtime.vibelock.workers.dev/v1/pull/shadowlock/skill",
  "worker_skill": "https://shadowlock-download-tracker.vibelock.workers.dev/v1/skill",
  "skill": "---\nname: ShadowLock\ndescription: Use when comparing an observed outcome to a counterfactual without storing PII. OS-hooks into AZ-OS for process/job observation under ethics policy. Hosted /v1 via this Worker or aziel-runtime. Author Aziel Eliab.\n---\n\n# ShadowLock\n\nChange is optional. Truth is not.\n\nAuthor: **Aziel Eliab**.\n\nUse when comparing an observed outcome to a counterfactual without storing PII. OS-hooks into AZ-OS for process/job observation under ethics policy.\n\nAlways send `User-Agent: Mozilla/5.0`. Cloudflare Workers may 403 an empty agent.\n\n## Endpoints (this Worker)\n\nHost: `https://shadowlock-download-tracker.vibelock.workers.dev`\n\n| Method | Path | What |\n|--------|------|------|\n| GET | `/v1/health` | Liveness. Does not increment downloads. |\n| GET | `/v1/skill` | This markdown. Does not increment downloads. |\n| POST | `/v1/observe` | Observe {observed, counterfactual}. Not stored. |\n| POST | `/v1/hook` | Ethics-gated AZ-OS hook frame. Not stored. |\n\nOpenAPI: `https://shadowlock-download-tracker.vibelock.workers.dev/openapi.json`\n\nCatalog OpenAPI: `https://aziel-runtime.vibelock.workers.dev/openapi.json`\n\nMCP: `POST https://aziel-runtime.vibelock.workers.dev/mcp`\n\nCatalog aliases under `/p/shadowlock/…`.\n\n## How to call (Mozilla/5.0)\n\n```bash\ncurl -s -A 'Mozilla/5.0' https://shadowlock-download-tracker.vibelock.workers.dev/v1/health\ncurl -s -A 'Mozilla/5.0' -X POST https://shadowlock-download-tracker.vibelock.workers.dev/v1/observe \\\n  -H 'content-type: application/json' \\\n  -d '{\"observed\":{\"id\":\"job-1\",\"outcome\":\"done\"},\"counterfactual\":{\"outcome\":\"skipped\"}}'\ncurl -s -A 'Mozilla/5.0' -X POST https://shadowlock-download-tracker.vibelock.workers.dev/v1/hook \\\n  -H 'content-type: application/json' \\\n  -d '{\"jobs\":[{\"id\":\"job-1\",\"task_class\":\"repair\",\"actual_outcome\":\"complete\"}]}'\ncurl -s -A 'Mozilla/5.0' https://shadowlock-download-tracker.vibelock.workers.dev/v1/skill\n```\n\nGrok: import the catalog OpenAPI as a custom tool. ChatGPT: GPT Actions. Venice: HTTP tools.\n\n## Local (after one-click install)\n\n```bash\ncurl -fsSL https://shadowlock-download-tracker.vibelock.workers.dev/install.sh | bash\nshadowlock ui\nshadowlock attach\n```\n\nThen open http://127.0.0.1:8764 (this computer only). AZ-OS: `azos ui` at http://127.0.0.1:8800.\n\n## Honest banner\n\nTHIS IS: a counterfactual observation envelope with hashed ids. OS-hooks into AZ-OS under ethics policy. THIS IS NOT: a people profiler, PII store, truth score, kernel hook, or process controller. Zero-retention on /v1. Author Aziel Eliab.\n\nDOI: https://doi.org/10.5281/zenodo.21435707  \nRecord: https://zenodo.org/records/21435707\n\nApache-2.0 (or the repo LICENSE). Forks are welcome and always allowed.\n\n## Catalog + local UI\n\nAuthor: **Aziel Eliab**. Honest scope: OS-hooks into AZ-OS for process/job observation under ethics policy.\n\n- Catalog product: https://aziel-runtime.vibelock.workers.dev/p/shadowlock/\n- Catalog OpenAPI: https://aziel-runtime.vibelock.workers.dev/openapi.json\n- Catalog MCP: `POST https://aziel-runtime.vibelock.workers.dev/mcp`\n- This Worker skill: `GET https://shadowlock-download-tracker.vibelock.workers.dev/v1/skill`\n- This Worker OpenAPI: https://shadowlock-download-tracker.vibelock.workers.dev/openapi.json\n\nLocal UI: **Import JSON file** or **Attach via AZ-OS**, then **Export JSON**. Then `shadowlock doctor`.\n",
  "download": "https://shadowlock-download-tracker.vibelock.workers.dev/download",
  "count": "https://shadowlock-download-tracker.vibelock.workers.dev/count",
  "install": "https://shadowlock-download-tracker.vibelock.workers.dev/install.sh",
  "install_sh": "curl -fsSL https://shadowlock-download-tracker.vibelock.workers.dev/install.sh | bash",
  "openapi": "https://shadowlock-download-tracker.vibelock.workers.dev/openapi.json",
  "runtime_openapi": "https://aziel-runtime.vibelock.workers.dev/openapi.json",
  "ops": [
    {
      "op": "health",
      "method": "GET",
      "summary": "Liveness. Does not increment download KV."
    },
    {
      "op": "observe",
      "method": "POST",
      "summary": "Zero-retention observation of a job list you already have."
    },
    {
      "op": "skill",
      "method": "GET",
      "summary": "Return ShadowLock skill markdown. Does not increment download KV."
    }
  ],
  "banner": "ShadowLock is a gate on an outcome you already have. No OS hook. No process intercept.",
  "limitations": "ShadowLock is a gate on an outcome you already have. No OS hook. No process intercept.",
  "aliases": {
    "catalog_card": "https://aziel-runtime.vibelock.workers.dev/p/shadowlock",
    "catalog_skill": "https://aziel-runtime.vibelock.workers.dev/p/shadowlock/skill",
    "catalog_health": "https://aziel-runtime.vibelock.workers.dev/p/shadowlock/health",
    "invoke_prefix": "https://aziel-runtime.vibelock.workers.dev/p/shadowlock",
    "worker_home": "https://shadowlock-download-tracker.vibelock.workers.dev/",
    "slugs": [
      "shadowlock"
    ]
  },
  "doi": "10.5281/zenodo.21435707",
  "doi_note": "Historical DOI only. Do not invent a replacement. See /cite.json.",
  "skill_source": "https://shadowlock-download-tracker.vibelock.workers.dev/v1/skill (service binding)",
  "kv_increment": false
}