Files
holocron/plugins/gitea/.apm/skills/gitea-files/SKILL.md
Defame1297 d5954d3d99 refactor(gitea-files): retrofit to the ADR-0020 context contract
Description 787 -> 263 chars, body 922 -> 302 words, Gotchas 9 entries/69% of
body -> 3/24.8%. Clears both size FAILs and both Gotchas suggestions.

Deleted the second trigger register outright -- ~300 chars re-quoting the same
six verbs as user phrasings, which ADR-0020 names this skill for specifically.

Split the body on the read/write boundary: one invocation cannot both read and
write, so a dispatch table is mandatory. Six operations collapse into two flow
files rather than six -- create/update/delete share one tool pair and one
SHA-first lifecycle whose preamble would otherwise be triplicated, and the three
read tools share ref selection plus a 'neither listing is a SHA source'
comparison that only exists between them.

references/examples.md removed; all eight of its content blocks and all nine
named parameters carry into references/writing.md, verified against git HEAD.
Two deltas are corrections: the repo tree is now ruled out as a SHA source, and
reusing a SHA captured earlier in the conversation is now forbidden.

Four Gotchas relocated to the flow file that needs them; two promoted to gates
(SHA-as-concurrency-token opens writing.md; owner/repo became ## Inputs).

Refs #99
2026-08-30 12:09:52 +00:00

2.6 KiB

name, description, compatibility, metadata, allowed-tools
name description compatibility metadata allowed-tools
gitea-files Use when reading or writing files in a Gitea repository rather than on the local filesystem — read, list, walk the tree, create, update, or delete — even when the user does not say "Gitea". Not commit history -> `gitea-branches`. Not pull requests -> `gitea-prs`. Requires the Gitea MCP server configured with a token scoped to at least write:repository. Tested with a token holding write:issue + write:repository; write:issue is not actually required for any of this domain's five tools.
category source_keys
gitea
gitea-mcp-repo
gitea-mcp-slim-go
context7-websites-gitea
mcp__gitea__get_file_contents mcp__gitea__get_dir_contents mcp__gitea__get_repository_tree mcp__gitea__create_or_update_file mcp__gitea__delete_file

Gotchas

  • A 404 may mean an under-scoped token, not a missing path. Every tool here gates on write:repository, and Gitea masks insufficient scope as 404. Check scopes first.
  • Reads take ref, writes take branch_name. One concept, two parameter names — chaining a read into a write drops the branch if you carry the wrong key.
  • content is base64 both ways. Encode before a write, decode after a read; withLines: true returns numbered lines.

Inputs

owner, repo and the target branch are caller-supplied. This skill never infers them from a git remote: ask the human when they are not stated, and expect an orchestrating caller to have resolved them already.

Dispatch

Condition Flow Reference
Read one file, list one directory level, or walk the repository tree Read references/reading.md
Create, update, or delete a file Write references/writing.md

If the request only inspects repository contents, read references/reading.md — it carries the three read tools, their pagination behaviour, and why neither a directory listing nor a tree entry supplies the SHA a write needs.

If the request creates, updates or deletes a file, read references/writing.md — it carries the SHA-first sequence every update and delete depends on, the worked multi-call sequence, and how to triage a write that fails.

A request that reads and then writes runs both flows in that order: fetch the file first, then write with the SHA that call returned.

Handoff

Scope ends at the commit. Gitea's own web UI edits files directly against a branch, so committing straight to a branch is the normal path rather than an escape hatch — hand off to gitea-prs when the change needs review before merging or the target branch is protected, not by default.