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
2.0 KiB
2.0 KiB
name, description, compatibility, metadata
| name | description | compatibility | metadata | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gitea-workflow | Use when a human wants an ambiguous Gitea status check — a no-args check-in, a bare number asked *about* without saying issue or PR ("status of #42"), or a capability whose owning skill is unclear. Not an agent caller -> `gitea-orchestrate`. Not a stated action on a number ("close #42") -> `gitea-issues`. Not an unambiguous PR request -> `gitea-prs`. Not local-only git -> `git-workflow`. | Requires Gitea MCP server configured with a token; delegates all calls to the six domain skills, which in turn require write:issue and write:repository scopes at minimum. |
|
Gotchas
- This skill never calls a Gitea MCP tool itself. Every read and write goes through a domain skill. A needed
mcp__gitea__*call that no domain skill exposes is a gap in that skill, not something to patch here.
Dispatch
The invocation's shape selects exactly one branch.
| Invocation shape | Flow | Reference |
|---|---|---|
| No arguments, no specific request | Repo status check-in | references/status-checkin.md |
| A bare number the user asks about, with neither "issue" nor "PR" said and no action stated | Resolve which domain the number belongs to | references/number-resolution.md |
| A named capability whose owning skill is unclear | Route to the domain skill that owns it | references/skill-index.md |
A bare number carrying a stated action ("close #42", "merge #42", "label #42") is not row 2: that is a write, and row 2 only presents detail. Resolve the domain per references/number-resolution.md, then hand the action to gitea-issues or gitea-prs to perform.
Read only the reference file matching the selected branch — each is self-contained for its concern.
Report
Every branch ends here. Present results in plain language; the branch's reference file carries its format.