gitea-files' always-loaded Gotchas said "content is base64 both ways" without qualification. The `main` text carried an exception for `withLines: true` and both halves were dropped. Verified live: `get_file_contents` with `withLines: true` returns plain JSON text while the same response still reports `"encoding":"base64"`. An agent that follows the recommendation two sentences later and applies the unconditional decode gets garbage, with the response's own field confirming the wrong answer. Exception restored, and the lying field named. gitea-orchestrate was never updated for `rename_branch`: absent from the operation enum, so an agent caller got "unknown operation", and absent from the destructive-confirm list, though branches.md requires a rename with open PRs or a protection rule to be confirmed exactly as `delete_branch` is. Added to both — the confirm gate rather than the enum alone, because accepting the operation without it routes around a rule the skill states while appearing to support it. The compatibility frontmatter, which the agent reads, still omitted the tool too. Two more always-loaded Gotchas contradicted their own reference files, and the Gotcha was wrong both times: issues and PRs are distinguishable on a list item by the `html_url` path segment (confirmed live — #129 at /pulls/, #128 at /issues/), and `get_repository_tree` takes `tree_sha`, not `ref`. `review_comments` was asserted as unconditionally present on the PR get response. It is absent on a PR with no review comments, so the claim is downgraded to present-when-non-zero rather than stated as response shape. The label-exclusivity relocation moved the rule out of label-inference.md and into labels.md without updating sources.md, leaving the one rule in this branch that writes differently to live repos citing a file that no longer carries it. The rule itself is correct as it stands and `main` was wrong — every Kind/* label on this instance is exclusive:false, every Priority/* and Status/* is true — so only the provenance record is corrected. Routing: gitea-workflow lost the human-caller discriminator and widened from status checks to any request, which sent "close #42" to a branch that resolves the number and presents detail without ever closing it. gitea-branches and gitea-issues regain trigger phrasings the retrofit dropped. Refs: #92
gitea-branches
Manage Gitea repository branches and inspect commit history via the Gitea MCP server.
What it does
This skill handles branch lifecycle operations (list, create, rename, delete) and read-only commit
history (list commits, get a single commit's full detail) against a Gitea repository. It resolves
owner/repo from the git remote, dispatches to the right MCP tool, and applies safety and
pagination conventions specific to Gitea's API (e.g. refusing to delete a protected branch without
explicit confirmation, and treating unexpected 404s as possible masked 403s).
Boundaries
This skill operates on the Gitea server via the MCP tools, never on your local checkout. Branch
and commit-history work against the working copy belongs to git-branches and git-history.
Branch references that only exist relative to a pull request — a PR's head or base branch, and
cross-repo fork PR heads in particular — belong to gitea-prs; list_branches cannot see a fork's
head at all.
The skill triggers on phrasings like "list branches", "create a branch", "rename a branch", "delete a branch", "what commits are on this branch", "show commit ", and "what changed in that commit", even when the user does not say "Gitea", as long as the repo's remote is a Gitea instance.
Before you start
Requires a Gitea MCP server configured with a token that has write:repository scope. This is
confirmed for list_branches, create_branch, and delete_branch (and inferred for
rename_branch) (Gitea gates reads behind write
scope for repo-scoped operations); list_commits and get_commit are inferred to need the same
scope by analogy, not explicitly confirmed — see references/commits.md. Requires a git remote
named origin pointing at the Gitea instance.
Usage
/gitea-branches
Describe your task: list/create/rename/delete a branch, or list/inspect commits. See SKILL.md's
dispatch table for the full set of recognized invocations.
Files
| File | Purpose |
|---|---|
SKILL.md |
Skill instructions for agents — dispatch table, gotchas |
references/branches.md |
Verified call signatures and mechanics for list/create/rename/delete branch |
references/commits.md |
Verified call signatures and mechanics for list/get commit |
references/sources.md |
Research sources backing the branch/commit guidance |