c7c283d34f489f536934f7a4d38c9a39327dfd33
tbd_ship takes an optional `issue`; the PR is squash-merged only when CI is fully green, the base is not review-protected AND the issue carries exactly one risk/ label, risk/low. No issue, no label, several labels, an unknown value, risk/medium, risk/high or an unreadable issue all fail closed to PR-only with a reason, and the result reports the tier. The zero tier is not low. Tests: gate table incl. every non-low tier, classifyRisk table, end-to-end cases (green+medium, lookup 500/404/403, label case, containment), nine mutants flip-tested red. Limit: the gate enforces the tier of the issue the caller names; it cannot prove it is the right issue. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SZkhi49hfeSqBp5aZJNXsM
gitea-mcp
Streamable HTTP MCP service exposing Gitea repo operations to Claude apps.
See ~/dev/AI/infra/docs/superpowers/specs/2026-05-04-gitea-mcp-gitops-workflow-design.md.
Quickstart
task setup:hooks # installs .githooks/pre-push — runs task check before every push
task check # context sync + lint + test + vet
task build # produces bin/gitea-mcp
This repo uses Trunk-Based Development. Commit directly to main. The pre-push
hook enforces the quality gate locally; CI re-runs task check on every push.
Languages
Go
97.9%
Shell
1.9%
Dockerfile
0.2%