Autopilot Issue Triage Scheduler
microsoft/apm
Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.
Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .claude/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .claude/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .agents/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .agents/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .cursor/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .cursor/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/goern/forgejo-mcp.git --path .claude/skills/codeberg-issue-triage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .gemini/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .gemini/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install goern/forgejo-mcp codeberg-issue-triageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .github/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .github/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/codeberg-issue-triage .opencode/skills/codeberg-issue-triage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "codeberg-issue-triage" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.claude/skills/codeberg-issue-triage into .opencode/skills/codeberg-issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeberg-issue-triage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
codeberg-issue-triageTriage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).
Codeberg Issue Triage is an agent skill from goern/forgejo-mcp. Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host). Use this skill whenever the user wants to assess, review, or triage a Codeberg issue — including when they paste a codeberg.org issue URL, say "look at issue 42 on owner/repo", "what should we do with this", "review this codeberg issue", or similar. Trigger even when the word "triage" isn't used: any request to read a Codeberg issue and recommend labels, a response, or what to do next falls under this skill. Reads the issue and its comments…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Issue triage and App automation through connectors. The repository describes itself as: MIRROR ONLY!! This Model Context Protocol (MCP) server provides tools and resources for interacting with the Forgejo (specifically Codeberg.org) REST API. The licence is GPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1f51f83. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
codeberg.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Codeberg Issue Triage loads about 2.1k tokens when it runs. Until then it costs about 183 tokens; SKILL.md has 877 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from goern/forgejo-mcp at commit 1f51f83, republished under its GPL-3.0 licence (© goern). 877 words, ~2,094 tokens.
.claude/skills/codeberg-issue-triage/SKILL.md (or your agent's skills folder).Help the user triage a single issue on Codeberg by reading it through the codeberg-mcp connector and returning a structured proposal: assessment, labels, comment, and verdict. The user reviews and applies things manually — this skill never writes to the repo.
You need two things:
owner/repo, org/repo, or a full URL like https://codeberg.org/owner/repo or https://codeberg.org/owner/repo/issues/42If you already have both (e.g. the user pasted a full issue URL), don't ask — just proceed. Otherwise, ask once, briefly, for whichever is missing.
Normalize URLs before calling tools:
https://codeberg.org/)./issues/<n>, extract <n> as the issue_id and use the segment before /issues/ as the repo_slug.owner/repo.Call the codeberg-mcp tools available in this session. You typically need three things:
Tool names vary by connector version. Look for something shaped like get_issue, list_issue_comments, list_labels (or close variants). If no codeberg-mcp tools are exposed in this session, say so and stop — do not fall back to web scraping or guessing.
If the issue is already closed, still triage it, but flag that in the assessment and let the verdict reflect it (often the work is just confirming the close reason was correct, or noting that no further action is needed).
Read carefully and form a clear picture:
Be honest. If the issue is poorly written or the reporter is frustrated, say so plainly without dismissing the underlying problem.
Strongly prefer labels that already exist on the repo — reuse the names exactly, including any prefix conventions like kind/bug, area/api, or priority/high. Codeberg labels are case-sensitive.
Only propose a new label when the existing set genuinely doesn't cover something the maintainers will want to filter on later. Mark new labels as (new) so the user knows they'd need to create them.
Cap proposals at around 4 labels. Triage labels are for sorting and prioritization, not for tagging every conceivable attribute.
Always write the comment in English, regardless of the issue's language. If the issue is in German or another language, the user will adapt or translate manually — the skill's job is to give them a well-structured English starting point.
Match the comment to the verdict:
needs-info → ask the specific missing questions, one per line, easy to answer.duplicate → link to the duplicate (only if you actually found one) and briefly explain.wontfix / invalid → explain why kindly; suggest an alternative if there is one.valid + accept → confirm receipt, summarize what's understood, set expectations for next step.valid + needs-discussion → flag the open design questions; don't ping specific people (the user decides who).Keep it short — usually 2–6 sentences. Skip filler like "Thanks for the issue!" — be direct and useful.
The verdict has two facets, both required.
Classification — what kind of issue this is:
valid — real, actionable, well-scoped.duplicate — actually duplicates another issue (cite it).needs-info — cannot act without more from the reporter.wontfix — valid but out of scope or against project direction.invalid — not a real issue (user error, off-topic, spam).Action — what should happen next:
accept — take it on, label and queue.reject — close it; the proposed comment serves as the close message.defer — leave open, no immediate action, revisit later.needs-discussion — leave open and escalate (maintainers, RFC, architecture council).Common pairings: valid + accept, duplicate + reject, needs-info + defer, wontfix + reject, invalid + reject, valid + needs-discussion. Less common pairings (e.g. valid + reject for something correct-but-policy-blocked) are fine when the situation calls for them — explain in the rationale.
Use exactly this structure. The user copies parts of this into Codeberg's UI manually, so each section needs to stand alone and be paste-ready.
## Issue: <title> (#<id>)
**Repo**: <owner/repo> • **State**: <open|closed> • **Author**: @<user> • **Opened**: <YYYY-MM-DD>
### Assessment
<2–4 sentences>
### Proposed labels
- `<label>` — <existing|new> — <one-line rationale>
- ...
### Proposed comment
> <english comment, blockquoted>
### Verdict
**Classification**: <valid | duplicate | needs-info | wontfix | invalid>
**Action**: <accept | reject | defer | needs-discussion>
<1–2 sentence rationale tying classification and action together>No additional sections, no preamble, no closing remarks. If something important didn't fit (e.g. a strong duplicate suspicion you couldn't confirm), put it in the rationale.
## Issue: Crash on startup when XDG_CONFIG_HOME is unset (#142)
**Repo**: example-org/cool-tool • **State**: open • **Author**: @reporter • **Opened**: 2026-04-18
### Assessment
A reproducible startup crash when `XDG_CONFIG_HOME` is unset; the reporter included a stack trace pointing at `config.load()`. The two follow-up comments confirm the same crash on a clean system. Scope is small and the fix is likely a default-path fallback.
### Proposed labels
- `kind/bug` — existing — clear, reproducible defect
- `area/config` — existing — fault is in the config loader
- `good-first-issue` — existing — small, well-scoped, has a stack trace
### Proposed comment
> Thanks for the trace — reproduced. The loader assumes `XDG_CONFIG_HOME` is always set; we should fall back to `~/.config` per the XDG spec. Marking as a good first issue; happy to mentor a PR.
### Verdict
**Classification**: valid
**Action**: accept
Reproducible defect with a clear root cause and a low-risk fix; no blockers to accepting and queueing it.© goern, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/codeberg-issue-triage of goern/forgejo-mcp.
Open the folder on GitHubat commit 1f51f83
Codeberg Issue Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Codeberg Issue Triage this skillgoern/forgejo-mcp | 141 | — | ~2.1k | Automated safety check: Pass | GPL-3.0 | |
| Autopilot Issue Triage Schedulermicrosoft/apm | 4k | — | ~1.6k | Automated safety check: Pass | MIT | |
| TiXL Ticket Processortixl3d/tixl | 5.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Issue Triagepaperclipai/paperclip | 99k | — | ~1k | Automated safety check: Pass | MIT | |
| GitHub Automationsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| GitHub Triageamd/gaia | 1.6k | — | ~2.3k | Automated safety check: Warn | MIT |
microsoft/apm
Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
paperclipai/paperclip
Triage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).
sickn33/agentic-awesome-skills
Operate GitHub issues, pull requests, branches, checks, workflows, and permissions through Rube MCP.
amd/gaia
Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.
bestofjs/bestofjs
Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
goern/forgejo-mcp
A skill your agent uses when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut…
goern/forgejo-mcp
Fetch and display notifications from both GitHub and Codeberg in a unified markdown view with clickable links.
goern/forgejo-mcp
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.
goern/forgejo-mcp
Collaborative page-drafting mode for the OpenSpec docs. An agent skill from goern/forgejo-mcp.
goern/forgejo-mcp
Fact-checks OpenSpec user documentation with a fresh-context subagent that re-runs commands and checks claims against source.
goern/forgejo-mcp
Create a new worktrunk worktree (optionally in another repo) and switch this session's working directory into it.
Categories
Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host). Codeberg Issue Triage is an agent skill from goern/forgejo-mcp. Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).
Codeberg Issue Triage fits situations like: the user wants to assess; triage a Codeberg issue — including when they paste a codeberg.org issue URL; say look at issue 42 on owner/repo; what should we do with this.
Run `npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a claude-code`. Or copy the skill folder (.claude/skills/codeberg-issue-triage in goern/forgejo-mcp) into .claude/skills/codeberg-issue-triage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a codex`. Or copy the skill folder (.claude/skills/codeberg-issue-triage in goern/forgejo-mcp) into .agents/skills/codeberg-issue-triage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codeberg-issue-triage, .gemini/skills/codeberg-issue-triage, .github/skills/codeberg-issue-triage and .opencode/skills/codeberg-issue-triage in your project.
SKILL.md names no scripts, command-line tools or credentials: Codeberg Issue Triage is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: codeberg.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Codeberg Issue Triage is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Codeberg Issue Triage: Autopilot Issue Triage Scheduler (microsoft/apm, 4k stars), TiXL Ticket Processor (tixl3d/tixl, 5.1k stars), Issue Triage (paperclipai/paperclip, 99k stars) and GitHub Automation (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
goern (a GitHub user) maintains it in goern/forgejo-mcp, which has 141 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 8, 2026.
Source: goern/forgejo-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.