Use when working on Hussh CI/CD, branch protection, merge queue, GitHub Actions, deploys, env or secret parity, Cloud Run or Cloud Build operations, UAT or production rollout, incident triage, or operational verification.
Resources
3Install
npx skillscat add hushh-labs/hushh-research/repo-operations Install via the SkillsCat registry.
SKILL.md
Hussh Repo Operations Skill
Purpose and Trigger
- Primary scope:
repo-operations-intake - Trigger on CI/CD, branch protection, merge queue, deploys, env parity, runtime rollout, and operational verification.
- Avoid overlap with
repo-context,planning-board, anddocs-governance.
Coverage and Ownership
- Role:
owner - Owner family:
repo-operations
Owned repo surfaces:
binscriptsconfigdeploy
Non-owned surfaces:
docs-governanceplanning-boardfrontendbackendanalytics-observability-governance
Do Use
- CI, GitHub Actions, branch protection, merge queue, and live check monitoring.
- UAT/production rollout, Cloud Run/Cloud Build, env parity, and release-authority checks.
- Operational RCA, fix-and-rerun loops, DCO/push safety, and branch preservation.
Do Not Use
- Product implementation or broad repo mapping.
- GitHub board/project-management workflows.
- Documentation-home governance or frontend design-system work.
Read First
docs/reference/operations/README.mddocs/reference/operations/ci.mddocs/reference/operations/branch-governance.md.codex/skills/repo-operations/references/admin-release-sop.md.codex/skills/repo-operations/references/branch-runtime-ops.md.codex/skills/repo-operations/references/maintainer-branch-freshness.md.codex/skills/repo-operations/references/agent-trigger-policy.md.codex/skills/repo-operations/references/anti-rationalization.md
Workflow
- Record current branch/worktree state and preserve the user's development branch before branch, CI, deploy, PR, hotfix, or validation work.
- Prefer live verification over assumptions for GitHub, CI, deploy, ruleset, and runtime state.
- Use
./bin/hushhas the canonical repo command surface andghfor live repository state. Before declaring local GCP authentication blocked, check CLI and ADC independently under the authentication fallback inadmin-release-sop.md. - For merge or deploy work, follow
admin-release-sop.mdas the single state machine; verify pre-PR, DCO, current head SHA, required gates, queue state, landed SHA, post-merge smoke, and requested environment separately. - For core workflow chains, monitor until terminal success or a concrete blocker; queued or in-progress authority runs mean the task is not done.
- For merge/deploy requests, keep merge-to-main and deploy-to-UAT as separate operator cadences.
- For DB migration/contract changes, run the DB release gate before calling UAT ready.
- For local runtime/server work, follow
branch-runtime-ops.mdfor visible terminal defaults, inline override, restart, and health-probe rules. - For UAT runtime failures, start with the repo RCA command before editing or redeploying.
- For an explicit admin/direct push to
main, run the Direct Main Admin Push Preflight inbranch-runtime-ops.mdbefore pushing. This proves maintainer identity, branch-protection parity, latestorigin/main, DCO, secret hygiene, requested verification, and a clean tree; maintainer bypass is never permission to skip validation. - When branch freshness drift is detected, update the existing working branch using
maintainer-branch-freshness.md, rerun DCO and changed-surface checks, then push the same branch with--force-with-leaseonly when this session owns the rewritten commits. - To add/remove a maintainer, repair the repository auto-merge setting, or change deploy/merge authority, edit
config/ci-governance.json(single source of truth) then runpython3 scripts/ci/apply-governance.py --applyto sync GitHub; MERGE AND DEPLOY ARE SEPARATE LISTS and neither implies the other, so a refused deploy is almost never the GitHub role it claims to be ("maintainer but not admin") — read theassert-governed-actor.pyrefusal line in the workflow log, which names the surface and actor, and check<lane>.manual_dispatch_usersbefore touching org settings; the GitHub teams are a DERIVED MIRROR of that file and are never read by any gate, so never grant access by editing a team; the JSON edit must LAND ON MAIN for runtime UAT/merge gates to see it. Full runbook indocs/reference/operations/branch-governance.md("Adding or removing a maintainer"). MERGE-TO-MAIN lane is decided by AUTHOR: governed maintainers (inmain.review_bypass_users/main.merge_queue_bypass_users) shipping their own code branch fromorigin/mainand open a PR DIRECTLY intomain(thePR Base Policygate passes by actor identity — no train, no cherry-pick, no promote-branch whitelist); the CI status gate, merge queue, and post-merge smoke gate still apply. Non-maintainer PRs route throughintegration/pr-train. Never cherry-pick a train-built branch ontomain(dependency trap); branch fromorigin/mainat the start instead. - Resolve expensive PKM and reviewer-browser verification through
scripts/ci/resolve-uat-verification-plan.py; it is the only changed-SHA selector for PR, queue, post-merge, and UAT. Preserve non-skippable authority, migration, provenance, health, and changed-surface gates. Do not add a second path classifier or run the PKM upgrade rehearsal for ordinary UI, consent, or MCP changes. - When production GitHub WIF configuration is absent or drifted, use
deploy/iam/setup_production_github_wif.sh; do not create a parallel provider, reuse UAT authority, or restore a JSON service-account key.
Handoff Rules
- Broad repo orientation starts with
repo-context. - Board/project work routes to
planning-board. - Docs-home governance routes to
docs-governance. - GA4/Firebase/BigQuery observability routes to
analytics-observability-governance. - Licensing, onboarding, subtree, and domain implementation route to their owner skills.
Required Checks
./bin/hushh codex ci-status
./bin/hushh codex pre-pr
./bin/hushh codex rca --surface uat --text
./bin/hushh docs verify
./bin/hushh ci
./scripts/ci/verify-main-branch-protection.sh
./scripts/ci/apply-governance.py
./scripts/ci/verify-production-environment-governance.sh