CI Hosting Manual Gates
Overview
Set repository CI and hosting providers so normal commits, pushes, and PR creation do not automatically spend build minutes. Replace automatic behavior with explicit checkpoint-triggered CI and deploy runs, then document the new operating rule in the repo's Product OS or agent instructions.
Default Policy
- Treat frequent commits, branch pushes, and PR creation as no-build events.
- Run GitHub Actions, deploy previews, production builds, smoke tests, and paid hosting builds only at meaningful checkpoints.
- Prefer manual triggers that are obvious to humans and agents: GitHub
workflow_dispatch, provider dashboard manual deploys, provider deploy hooks, or CLI deploy commands.
- Keep security scanning, dependency alerts, and required compliance checks separate from cost-heavy build/deploy workflows. Do not disable security controls just to save build minutes.
- If a repo has branch protection or required checks, update those rules before removing automatic PR/push workflows. Otherwise skipped or absent checks can block merges.
Meaningful checkpoints usually include:
- implementation complete and moving to
in-review,
- before a human walkthrough/sign-off,
- before merging a release PR,
- before production deploy,
- after dependency, infrastructure, auth, payment, data migration, or routing changes,
- when the user explicitly requests a build, CI run, preview, or deploy.
Workflow
- Run the audit script from this skill:
python3 <skill_dir>/scripts/audit_build_triggers.py --repo /path/to/repo
Use the output to identify .github/workflows/, vercel.json, netlify.toml, render.yaml, package scripts, and hosting config files that may trigger builds automatically.
- Inspect the repo manually for provider clues:
rg -n "vercel|netlify|render|deploy hook|workflow_dispatch|pull_request|push|autoDeploy|deploymentEnabled|ignore =" .
- Read only the reference needed for the provider being changed:
- Provider recipes:
references/provider-recipes.md
- Product OS/checkpoint SOP:
references/checkpoint-sop.md
- Patch local repo files with safe-write behavior:
- Add
workflow_dispatch to expensive GitHub Actions workflows.
- Remove or narrow
push and pull_request triggers from expensive workflows unless the user explicitly wants an automatic exception.
- Add manual deploy commands or docs for the detected hosting provider.
- Add repo-local instructions that default pushes and PRs are no-build events.
- Add
MAGGIE TODO: callouts for dashboard-only settings that cannot be changed from files.
- Record the operating rule where agents will see it:
AGENTS.md
DOCS/development/checkpoint-workflow.md or the repo's equivalent
- the active project doc under
DOCS/PROJECTS/
ROADMAP.md or CHANGELOG.md only when the change affects release process materially
- Verify before finishing:
- normal
git commit and git push no longer trigger expensive workflows by config,
- GitHub workflows still have an explicit manual path,
- hosting providers have either file-backed manual gates or visible
MAGGIE TODO: dashboard steps,
- required checks/branch protection are not left pointing at removed automatic jobs,
- checkpoint docs say when and how to run CI/deploys.
GitHub Actions Pattern
For expensive workflows, prefer:
on:
workflow_dispatch:
inputs:
checkpoint:
description: "Checkpoint or project id"
required: true
type: string
scope:
description: "What to run"
required: true
default: "standard"
type: choice
options:
- standard
- full
- deploy-readiness
Keep reusable workflows available through workflow_call when other manual workflows compose them. Avoid relying on commit-message skip phrases as the main policy; they are easy to forget and can leave required checks pending.
Hosting Provider Pattern
- Vercel: prefer
git.deploymentEnabled: false in vercel.json when the repo owns Vercel config. Use manual dashboard deployments, deploy hooks, or CLI deployments for checkpoints.
- Netlify: prefer stopped builds in the dashboard when all Git-triggered builds should stop. If builds must remain active for hooks, use
[build].ignore in netlify.toml to skip normal Git-triggered builds and allow intentional hook/API/manual deploys.
- Render: prefer Auto-Deploy
Off in the dashboard or autoDeploy: false in render.yaml blueprints when present. Use manual deploy, deploy hook, CLI, or API at checkpoints.
- Other providers: find the Git integration setting that deploys on push/PR and turn it off or gate it behind manual deployment, deploy hooks, tags, releases, or approved environments.
Product OS Integration
When the repo uses $product-operating-system-scaffold, add this as a checkpoint rule:
Default no-build policy: commits, pushes, and PR creation must not automatically spend GitHub Actions or hosting build minutes. Run CI/deploys manually at named checkpoints and record the run link/result in the owning project doc.
Use MAGGIE TODO: for any manual provider dashboard work, billing review, or branch-protection change that cannot be completed from the local repo.
Sources To Recheck
Provider controls change. Before making live provider changes, verify current official docs for the relevant provider and favor primary documentation over memory:
- GitHub Actions workflow syntax and manual runs
- Vercel Git configuration
- Netlify ignore/stopped builds
- Render auto-deploy/manual deploys
1---2name: ci-hosting-manual-gates3description: Convert repositories from automatic CI and hosting builds to checkpoint-driven manual gates. Use when asked to reduce GitHub Actions, Vercel, Netlify, Render, or similar hosting build minutes; disable automatic builds on commit, push, or pull request; preserve frequent commits and PRs without spending CI/deploy minutes; add manual workflow_dispatch actions, deploy hooks, or checkpoint SOPs; or bake build-minute guardrails into Product OS/checkpoint workflows.4---56# CI Hosting Manual Gates78## Overview910Set repository CI and hosting providers so normal commits, pushes, and PR creation do not automatically spend build minutes. Replace automatic behavior with explicit checkpoint-triggered CI and deploy runs, then document the new operating rule in the repo's Product OS or agent instructions.1112## Default Policy1314- Treat frequent commits, branch pushes, and PR creation as no-build events.15- Run GitHub Actions, deploy previews, production builds, smoke tests, and paid hosting builds only at meaningful checkpoints.16- Prefer manual triggers that are obvious to humans and agents: GitHub `workflow_dispatch`, provider dashboard manual deploys, provider deploy hooks, or CLI deploy commands.17- Keep security scanning, dependency alerts, and required compliance checks separate from cost-heavy build/deploy workflows. Do not disable security controls just to save build minutes.18- If a repo has branch protection or required checks, update those rules before removing automatic PR/push workflows. Otherwise skipped or absent checks can block merges.1920Meaningful checkpoints usually include:21- implementation complete and moving to `in-review`,22- before a human walkthrough/sign-off,23- before merging a release PR,24- before production deploy,25- after dependency, infrastructure, auth, payment, data migration, or routing changes,26- when the user explicitly requests a build, CI run, preview, or deploy.2728## Workflow29301. Run the audit script from this skill:3132```bash33python3 <skill_dir>/scripts/audit_build_triggers.py --repo /path/to/repo34```3536Use the output to identify `.github/workflows/`, `vercel.json`, `netlify.toml`, `render.yaml`, package scripts, and hosting config files that may trigger builds automatically.37382. Inspect the repo manually for provider clues:3940```bash41rg -n "vercel|netlify|render|deploy hook|workflow_dispatch|pull_request|push|autoDeploy|deploymentEnabled|ignore =" .42```43443. Read only the reference needed for the provider being changed:45- Provider recipes: `references/provider-recipes.md`46- Product OS/checkpoint SOP: `references/checkpoint-sop.md`47484. Patch local repo files with safe-write behavior:49- Add `workflow_dispatch` to expensive GitHub Actions workflows.50- Remove or narrow `push` and `pull_request` triggers from expensive workflows unless the user explicitly wants an automatic exception.51- Add manual deploy commands or docs for the detected hosting provider.52- Add repo-local instructions that default pushes and PRs are no-build events.53- Add `MAGGIE TODO:` callouts for dashboard-only settings that cannot be changed from files.54555. Record the operating rule where agents will see it:56- `AGENTS.md`57- `DOCS/development/checkpoint-workflow.md` or the repo's equivalent58- the active project doc under `DOCS/PROJECTS/`59- `ROADMAP.md` or `CHANGELOG.md` only when the change affects release process materially60616. Verify before finishing:62- normal `git commit` and `git push` no longer trigger expensive workflows by config,63- GitHub workflows still have an explicit manual path,64- hosting providers have either file-backed manual gates or visible `MAGGIE TODO:` dashboard steps,65- required checks/branch protection are not left pointing at removed automatic jobs,66- checkpoint docs say when and how to run CI/deploys.6768## GitHub Actions Pattern6970For expensive workflows, prefer:7172```yaml73on:74 workflow_dispatch:75 inputs:76 checkpoint:77 description: "Checkpoint or project id"78 required: true79 type: string80 scope:81 description: "What to run"82 required: true83 default: "standard"84 type: choice85 options:86 - standard87 - full88 - deploy-readiness89```9091Keep reusable workflows available through `workflow_call` when other manual workflows compose them. Avoid relying on commit-message skip phrases as the main policy; they are easy to forget and can leave required checks pending.9293## Hosting Provider Pattern9495- Vercel: prefer `git.deploymentEnabled: false` in `vercel.json` when the repo owns Vercel config. Use manual dashboard deployments, deploy hooks, or CLI deployments for checkpoints.96- Netlify: prefer stopped builds in the dashboard when all Git-triggered builds should stop. If builds must remain active for hooks, use `[build].ignore` in `netlify.toml` to skip normal Git-triggered builds and allow intentional hook/API/manual deploys.97- Render: prefer Auto-Deploy `Off` in the dashboard or `autoDeploy: false` in `render.yaml` blueprints when present. Use manual deploy, deploy hook, CLI, or API at checkpoints.98- Other providers: find the Git integration setting that deploys on push/PR and turn it off or gate it behind manual deployment, deploy hooks, tags, releases, or approved environments.99100## Product OS Integration101102When the repo uses `$product-operating-system-scaffold`, add this as a checkpoint rule:103104> Default no-build policy: commits, pushes, and PR creation must not automatically spend GitHub Actions or hosting build minutes. Run CI/deploys manually at named checkpoints and record the run link/result in the owning project doc.105106Use `MAGGIE TODO:` for any manual provider dashboard work, billing review, or branch-protection change that cannot be completed from the local repo.107108## Sources To Recheck109110Provider controls change. Before making live provider changes, verify current official docs for the relevant provider and favor primary documentation over memory:111- GitHub Actions workflow syntax and manual runs112- Vercel Git configuration113- Netlify ignore/stopped builds114- Render auto-deploy/manual deploys