| name | uat-scoped-deploy |
| description | Use when choosing, running, or verifying scoped UAT deploys for Hussh Cloud Run services, including frontend-only/backend-only scope, Cloud Build timing proof, Cloud Run region discovery, and service provenance evidence. |
Hussh UAT Scoped Deploy Skill
Purpose and Trigger
- Primary scope:
uat-scoped-deploy-scope
- Trigger on choosing, running, or verifying a scoped UAT deploy for Cloud Run services.
- Avoid overlap with
repo-context, broad repo-operations, and product implementation owner skills.
Coverage and Ownership
- Role:
spoke
- Owner family:
repo-operations
Owned repo surfaces:
.github/workflows/deploy-uat.yml
deploy
Non-owned surfaces:
repo-operations
frontend
backend
security-audit
Do Use
- UAT deploys where scope must stay
frontend, backend, or all.
- Cloud Build timing, skipped-lane, and deploy summary proof.
- Cloud Run service evidence: project, region, revision, image, timeout, env, traffic, and request-id logs.
Do Not Use
- Production deploys unless the user separately asks for production.
- Product code fixes after deploy verification exposes a frontend/backend bug.
- Broad CI or release-governance questions not narrowed to UAT deploy scope.
- Manual browser-only acceptance without runtime or log evidence.
Read First
.github/workflows/deploy-uat.yml
deploy/README.md
deploy/frontend.cloudbuild.yaml
deploy/backend.cloudbuild.yaml
docs/reference/operations/branch-governance.md
.codex/skills/uat-scoped-deploy/references/deploy-proof.md
.codex/skills/uat-scoped-deploy/references/anti-rationalization.md
Workflow
- Classify the intended scope from changed paths and user request:
frontend, backend, or all.
- Use
scope=frontend for UI/auth-route-only changes and scope=backend for protocol/API-only changes.
- Use the merge queue for the ordinary PR path. For an explicitly authorized admin landing, use the documented direct-main admin preflight, require all PR checks to be green, then merge the exact reviewed head with
gh pr merge --admin --merge --match-head-commit <sha>; --admin bypasses the queue and is never a substitute for verification.
- Wait for
Main Post-Merge Smoke to succeed for the landed main SHA, then trigger UAT with that exact SHA. Keep merge, smoke, and UAT deploy as separate evidence.
- Watch the GitHub run until terminal success or a concrete blocker; confirm skipped lanes from run steps.
- Before Cloud Run
describe, run the evidence helper to discover the actual project/region tuple.
- Capture touched-service revision, image, labels, timeout, traffic, env contracts, request IDs, and logs.
- Report run URL, scope, skipped lanes, timings, revisions, and remaining risk; never call queued work done.
- Read the
uat-verification-plan artifact from the exact changed-SHA selector. PKM upgrade rehearsal and candidate evaluator are required only for PKM upgrade/storage/migration contracts; reviewer BYOK is independently selected for vault/reviewer contracts. A missing deployed SHA fails closed. Never replace this selector with a workflow-local path list.
Handoff Rules
- If the request is still broad or ambiguous, route it back to
repo-operations.
- Route frontend implementation bugs to
frontend after preserving deploy evidence.
- Route backend/API contract bugs to
backend-api-contracts or backend.
- Route auth, secret, or consent boundary findings to
security-audit.
Required Checks
gh run list --workflow deploy-uat.yml --limit 5 --json databaseId,status,conclusion,headSha,event,url
python3 .codex/skills/uat-scoped-deploy/scripts/cloud_run_service_evidence.py --project hushh-pda-uat --service hushh-webapp --service consent-protocol --format text
python3 .codex/skills/codex-skill-authoring/scripts/skill_lint.py