{"id":51626721,"url":"https://github.com/waitdeadai/habemus-deploy","last_synced_at":"2026-07-13T02:02:20.065Z","repository":{"id":361017450,"uuid":"1252735140","full_name":"waitdeadai/habemus-deploy","owner":"waitdeadai","description":"Non-blocking Claude Code pre-deploy blessing hook: deploy journal + prod-vs-preview + opt-in Padre Nuestro. Independent, unofficial tribute to the Rome Call for AI Ethics.","archived":false,"fork":false,"pushed_at":"2026-05-28T20:28:38.000Z","size":230,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T22:15:01.948Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waitdeadai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-28T20:20:31.000Z","updated_at":"2026-05-28T20:28:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/waitdeadai/habemus-deploy","commit_stats":null,"previous_names":["waitdeadai/habemus-deploy"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/waitdeadai/habemus-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitdeadai%2Fhabemus-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitdeadai%2Fhabemus-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitdeadai%2Fhabemus-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitdeadai%2Fhabemus-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waitdeadai","download_url":"https://codeload.github.com/waitdeadai/habemus-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitdeadai%2Fhabemus-deploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35407393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-13T02:02:19.455Z","updated_at":"2026-07-13T02:02:20.054Z","avatar_url":"https://github.com/waitdeadai.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/emblem.png\" alt=\"Habemus Deploy emblem\" width=\"180\"/\u003e\n\n  # Habemus Deploy — Rome Call Blessing Hook\n\n  *A non-blocking pre-deploy benediction for Claude Code: it journals what ships, surfaces prod-vs-preview, and (opt-in) prays a Padre Nuestro over your releases.*\n\u003c/div\u003e\n\n---\n\n\u003e **What this is.** An independent, **unofficial** open-source Claude Code hook offered as a respectful tribute to the Vatican's multi-year body of work on AI ethics — the **Rome Call for AI Ethics** (2020), the doctrinal Note **_Antiqua et Nova_** (2025), and Pope Leo XIV's first encyclical **_Magnifica humanitas_** (2026).\n\u003e\n\u003e **What this is NOT.** It is **not** an official Anthropic–Vatican partnership, **not** a Rome Call signatory artifact, and **not** endorsed by the Holy See, the Pontifical Academy for Life, the RenAIssance Foundation, or Anthropic. See [Honest framing](#honest-framing) and [`NOTICE`](NOTICE).\n\n## Why a deploy blessing?\n\nA deploy is the moment code leaves your hands and touches the world. Faith traditions have always marked thresholds with a pause and a blessing. The Vatican's recent AI-ethics work frames technology as something to be stewarded toward human dignity, not rushed heedlessly — *Magnifica humanitas* (2026) calls for **robust oversight** and a pause before **irreversible** machine actions. A production deploy is exactly such a threshold.\n\nSo this hook does the small, serious thing: at the instant your agent is about to ship, it **stops for one beat** — records what is shipping, names whether it is production, and (if you opt in) offers a Padre Nuestro. The ritual rides on tooling you actually want (a deploy journal + prod-vs-preview surfacing), so it earns its place instead of being decoration.\n\nIt **never blocks, denies, delays, gates, or auto-approves a deploy.**\n\n## What it does\n\nWhen your Claude Code agent is about to run a deploy command (`vercel --prod`, `git push origin main`, `docker compose up`, `kubectl apply`, `terraform apply`, `fly deploy`, `gh release create`, `npm run deploy`, and more), the hook:\n\n1. **Surfaces the environment** — classifies the command as **prod** or **preview**, so the blessing only fires on real production and previews stay quiet (no crying wolf).\n2. **Appends a deploy-journal line** — `timestamp · env · command · git short-sha · branch · cwd` to `.claude/deploy-journal.log`, a grep-able \"what shipped, when, from which commit\" trail. Journal write errors are swallowed so they can never affect the deploy.\n3. **Offers a mindful pause** — a one-line summary always, plus an optional gentle \"deploying on a Friday / late at night — are you sure?\" nudge.\n4. **Prays (opt-in)** — if `PRAYER_ENABLED=true`, renders the Padre Nuestro / Pater Noster / Our Father over production deploys, in your chosen language, from a **swappable** text file.\n\n## How it stays non-blocking (by construction)\n\nThis is a `PreToolUse` hook matched on the `Bash` tool. On a deploy match it **exits 0** and emits only a `{\"systemMessage\": \"...\"}` object — the one field that surfaces a user-visible message without altering control flow. For non-deploy commands it exits 0 with no output.\n\nIt **never** uses any blocking or flow-altering path: never `exit 2`, never `permissionDecision: deny`/`ask`, never `continue: false`, and — deliberately — **never `permissionDecision: allow`** either, because `allow` would skip your normal deploy confirmation and auto-run the command. We keep your usual permission flow intact; we only add a blessing. Every failure path is `exit 0` with no output.\n\n\u003e Caveat (from the Claude Code hooks docs): if you run a *separate* deny hook or a settings `deny` rule, that can still block a deploy independently — \"most restrictive wins.\" This hook can never be the thing that hard-stops your deploy, but it also can't loosen someone else's block.\n\n## Install\n\n```bash\n# 1. Get the files (clone, submodule, or copy hooks/ + prayers/ into your repo)\ngit clone https://github.com/\u003cyou\u003e/habemus-deploy\ncp -r habemus-deploy/hooks habemus-deploy/prayers your-project/\n\n# 2. Make the hook executable\nchmod +x your-project/hooks/bless-deploy.sh\n\n# 3. Wire it in .claude/settings.json (project) or ~/.claude/settings.json (all projects)\n```\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [\n      { \"matcher\": \"Bash\", \"hooks\": [\n        { \"type\": \"command\", \"command\": \"\\\"$CLAUDE_PROJECT_DIR\\\"/hooks/bless-deploy.sh\" }\n      ]}\n    ]\n  }\n}\n```\n\nRequires `jq` (used to parse and safely encode JSON). Without `jq`, the hook degrades to a harmless no-op. See [`.claude/settings.json`](.claude/settings.json) for a copy-paste example.\n\n## Configuration (all via environment variables)\n\n| Variable | Default | Effect |\n|---|---|---|\n| `HABEMUS_DEPLOY_DISABLE` | unset | `1` = global kill switch; hook becomes a total no-op. |\n| `PRAYER_ENABLED` | `false` | **Disabled by default.** `true` renders the prayer (journal + summary still work when off). |\n| `PRAYER_LANG` | `la` | `la` Pater Noster · `es` Padre Nuestro · `en` Our Father. |\n| `HABEMUS_DEPLOY_PROD_ONLY` | `true` | `false` also blesses preview deploys. |\n| `HABEMUS_DEPLOY_PRAYER_FILE` | — | Absolute path to a custom prayer/quote file — swap in any text, or another tradition, or a secular line. |\n| `HABEMUS_DEPLOY_JOURNAL` | `.claude/deploy-journal.log` | Journal path; set to `/dev/null` to disable journaling. |\n| `HABEMUS_DEPLOY_SILENT` | unset | `1` = journal-only mode; no user-visible message. |\n| `HABEMUS_DEPLOY_FRIDAY_NUDGE` | `true` | Toggle the Friday / late-night gentle reminder. Never blocks. |\n\n## Test\n\n```bash\nbash test/test-hook.sh\n```\n\nAsserts the hook always exits 0, detects deploys, classifies prod vs preview, journals, renders the opt-in prayer only when enabled, and never emits a `permissionDecision`.\n\n## Honest framing\n\nAs of **2026-05-28**, research for this project found a **real but limited, event-based** Anthropic–Vatican connection — **not** a formal union and **not** Rome Call signatory status:\n\n- The **Rome Call for AI Ethics** was signed in Rome on **28 Feb 2020**, promoted by the Pontifical Academy for Life; original signatories were the Pontifical Academy for Life, Microsoft, IBM, the UN's FAO, and Italy's Ministry of Innovation. Its six principles: transparency, inclusion, accountability, impartiality, reliability, and security \u0026 privacy. ([romecall.org/the-call](https://www.romecall.org/the-call/))\n- ***Antiqua et Nova***, a doctrinal Note on AI and human intelligence, was co-issued by the Dicastery for the Doctrine of the Faith and the Dicastery for Culture and Education, approved **14 Jan 2025**, published **28 Jan 2025**. ([vatican.va](https://www.vatican.va/roman_curia/congregations/cfaith/documents/rc_ddf_doc_20250128_antiqua-et-nova_en.html))\n- **Pope Leo XIV** (Robert Francis Prevost), elected **8 May 2025**, issued his first encyclical ***Magnifica humanitas*** on AI and the human person (signed **15 May 2026**, presented **25 May 2026**), calling for robust regulation, independent oversight, and a ban on autonomous lethal/irreversible AI decisions. ([CNN](https://www.cnn.com/2025/05/08/europe/new-pope-conclave-white-smoke-vatican-intl); [vatican.va](https://www.vatican.va/content/leo-xiv/en/encyclicals/documents/20260515-magnifica-humanitas.html))\n- **Anthropic** co-founder Chris Olah delivered remarks at the **25 May 2026** Vatican presentation of *Magnifica humanitas*, and Anthropic has held faith/cultural dialogues and consulted Catholic thinkers (incl. Bishop Paul Tighe) for its Claude Constitution work. **Anthropic is NOT a signatory of the Rome Call**; its corporate signatories remain Microsoft, IBM, Cisco, Salesforce, etc. ([anthropic.com](https://www.anthropic.com/news/chris-olah-pope-leo-encyclical))\n\nSo this project is an **independent, unofficial tribute** to that dialogue, not a claim of partnership. It serves users of **all faiths and none**: the prayer is **disabled by default**, stored as **swappable data**, and including or running this hook is **never a condition of use**.\n\n*Sources gathered via live web research on 2026-05-28; some outlets (Vatican News, NCR, Religion News Service) returned HTTP 403 to automated fetch and were corroborated via search summaries — see the project's research notes. Verify time-sensitive claims against the primary sources.*\n\n## License\n\n[Apache-2.0](LICENSE) for the code. The included prayer texts are **public-domain** liturgical works; see [`NOTICE`](NOTICE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitdeadai%2Fhabemus-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaitdeadai%2Fhabemus-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitdeadai%2Fhabemus-deploy/lists"}