Agent skill

Codeberg Issue Triage

by goern in goern/forgejo-mcp

Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).

GPL-3.0Auto-check passedDevelopment

Install Codeberg Issue Triage

skills CLI
$ npx skills add goern/forgejo-mcp --skill codeberg-issue-triage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install goern/forgejo-mcp codeberg-issue-triage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
codeberg-issue-triage
GitHub stars
141
Token cost
~2.1k tokens
SKILL.md length
877 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
GPL-3.0

At a glance

Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).

  • Works in 5 steps: Fetch the issue and its context → Assess the issue → Propose labels → …
  • The user wants to assess
  • SKILL.md covers Inputs, Process, Output format and Things to avoid, plus 1 more section
  • Reaches codeberg.org

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “look at issue 42 on owner/repo”
  • “what should we do with this”
  • “review this codeberg issue”
  • “/codeberg-issue-triage”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Fetch the issue and its context
  2. Assess the issue
  3. Propose labels
  4. Propose a comment
  5. Verdict

What it can do on your machine

Read from SKILL.md and the folder at commit 1f51f83. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • codeberg.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~183
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from goern/forgejo-mcp at commit 1f51f83, republished under its GPL-3.0 licence (© goern). 877 words, ~2,094 tokens.

Download SKILL.mdSave it as .claude/skills/codeberg-issue-triage/SKILL.md (or your agent's skills folder).
name
codeberg-issue-triage
description
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 through the codeberg-mcp connector, then returns an assessment, proposed labels, a proposed English comment, and a two-part verdict (classification + action) for the user to apply manually.

Codeberg Issue Triage

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.

Inputs

You need two things:

  • repo_slug — accepted as owner/repo, org/repo, or a full URL like https://codeberg.org/owner/repo or https://codeberg.org/owner/repo/issues/42
  • issue_id — an integer

If 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:

  • Strip the scheme and host (https://codeberg.org/).
  • If the path contains /issues/<n>, extract <n> as the issue_id and use the segment before /issues/ as the repo_slug.
  • Drop trailing slashes, query strings, and fragments.
  • The final repo_slug should be exactly owner/repo.

Process

1. Fetch the issue and its context

Call the codeberg-mcp tools available in this session. You typically need three things:

  • The issue itself — title, body, state, author, created/updated time, existing labels, assignees.
  • The issue's comments — the conversation may have already converged on something, and ignoring it leads to embarrassing proposals.
  • The repository's available labels — so proposed labels reuse existing names exactly.

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).

2. Assess the issue

Read carefully and form a clear picture:

  • What problem or request is actually being raised — versus what the title literally says.
  • Whether it's reproducible, well-scoped, or vague.
  • Whether the comment thread has already resolved or clarified things.
  • Whether it duplicates another issue you have evidence for — never claim duplicate on a hunch.
  • Tone signals: hostile, panicked, confused, polite-but-blocked. These don't change the verdict but they shape the comment.

Be honest. If the issue is poorly written or the reporter is frustrated, say so plainly without dismissing the underlying problem.

3. Propose labels

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.

4. Propose a comment

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.

Show full SKILL.md (296 more words)Show less
5. Verdict

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.

Output format

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.

Things to avoid

  • Never call tools that modify the issue (add labels, post comments, change state, assign people) even if such tools are exposed by the connector. This skill is read-only and proposal-only by design — the user explicitly wants to apply things manually.
  • Don't speculate about duplicates without a specific issue to point to. "This might duplicate something" is worse than nothing.
  • Don't mirror a hostile or panicked tone — stay neutral and concrete in the proposed comment.
  • Don't propose a label you can't justify in one short clause. If you can't say why it helps, drop it.
  • Don't write the comment in the issue's language — always English, per the design of this skill.

Example output

## 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

Files

Just SKILL.md in .claude/skills/codeberg-issue-triage of goern/forgejo-mcp.

Open the folder on GitHubat commit 1f51f83

Compare with similar skills

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.

Codeberg Issue Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Codeberg Issue Triage this skillgoern/forgejo-mcp141—~2.1kAutomated safety check: PassGPL-3.0
Autopilot Issue Triage Schedulermicrosoft/apm4k—~1.6kAutomated safety check: PassMIT
TiXL Ticket Processortixl3d/tixl5.1k—~2.6kAutomated safety check: PassMIT
Issue Triagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT
GitHub Automationsickn33/agentic-awesome-skills47k1 repos~1.3kAutomated safety check: PassMIT
GitHub Triageamd/gaia1.6k—~2.3kAutomated safety check: WarnMIT

Similar skills

  • Official

    Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.

    4k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • 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.

    5.1k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Issue Triage

    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).

    99k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • GitHub Automation

    sickn33/agentic-awesome-skills

    Operate GitHub issues, pull requests, branches, checks, workflows, and permissions through Rube MCP.

    47k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed
  • Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.

    1.6k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: warnings
  • Wayfinder

    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.

    3.1k GitHub starsUsed in 21 repos~2.9k tokens
    DevelopmentAuto-check passed

More from goern/forgejo-mcp

All 15 skills in this repo
  • Release Openspec

    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…

    141 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Unified Notifications

    goern/forgejo-mcp

    Fetch and display notifications from both GitHub and Codeberg in a unified markdown view with clickable links.

    141 GitHub stars~802 tokensUpdated today
    Auto-check passed
  • Caveman Compress

    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.

    141 GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check: notes
  • Draft Openspec Docs

    goern/forgejo-mcp

    Collaborative page-drafting mode for the OpenSpec docs. An agent skill from goern/forgejo-mcp.

    141 GitHub starsUsed in 1 repo~815 tokens
    Auto-check passed
  • Verify Openspec Docs

    goern/forgejo-mcp

    Fact-checks OpenSpec user documentation with a fresh-context subagent that re-runs commands and checks claims against source.

    141 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Wt Switch Create

    goern/forgejo-mcp

    Create a new worktrunk worktree (optionally in another repo) and switch this session's working directory into it.

    141 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed

Questions about Codeberg Issue Triage

What does Codeberg Issue Triage do?

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).

When should I use Codeberg Issue Triage?

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.

How do I install Codeberg Issue Triage in Claude Code?

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.

How do I install Codeberg Issue Triage in Codex?

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.

Can I use Codeberg Issue Triage in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Codeberg Issue Triage need to run?

SKILL.md names no scripts, command-line tools or credentials: Codeberg Issue Triage is instructions for the agent only.

Does Codeberg Issue Triage access the network?

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.

Is Codeberg Issue Triage safe to install?

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.

What licence does Codeberg Issue Triage use?

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.

How many tokens does Codeberg Issue Triage use?

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.

What are the alternatives to Codeberg Issue Triage?

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.

Who maintains Codeberg Issue Triage?

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.