Agent skill

Triage

by flowershow in flowershow/flowershow

Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up.

AGPL-3.0Auto-check passedDevOps & Cloud

Install Triage

skills CLI
$ npx skills add flowershow/flowershow --skill triage -a claude-code

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

GitHub CLI
$ gh skill install flowershow/flowershow 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/flowershow/flowershow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/triage .claude/skills/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
triage
GitHub stars
1.1k
Token cost
~1.9k tokens
SKILL.md length
1,017 words
Files
3
Skills in repo
1
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up.

  • Works in 3 steps: Gather context. Read the full issue… → Verify the claim. For a bug, reproduce… → Decide, apply, and comment. Pick the…
  • Tasks that involve CI/CD
  • SKILL.md covers Reference docs, Roles, Applying the decision and Procedure, plus 2 more sections
  • Calls gh

What it does

Triage is an agent skill from flowershow/flowershow. Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up. Runs unattended in the triage GitHub Action.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `AGENT-BRIEF.md` and `OUT-OF-SCOPE.md`).

It sits in DevOps & Cloud, covering CI/CD and Markdown. It works with GitHub, Next.js, Tailwind CSS and Obsidian. The repository describes itself as: 💐 Publish markdown (and html) websites, docs, wikis and websites in seconds. Integrates with your AI. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve CI/CD
  • Tasks that involve Markdown

Example prompts

  • “/triage”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Gather context. Read the full issue (body, comments, labels, author, dates).
  2. Verify the claim. For a bug, reproduce it from the reporter's steps where
  3. Decide, apply, and comment. Pick the category and state, apply them with the

What it can do on your machine

Read from SKILL.md and the folder at commit b41983d. 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

    Shell commands in SKILL.md call:

    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    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

Triage loads about 1.9k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,017 words of instructions outside code blocks.

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

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 flowershow/flowershow at commit b41983d, republished under its AGPL-3.0 licence (© flowershow). 1,017 words, ~1,893 tokens.

Download SKILL.mdSave it as .claude/skills/triage/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
triage
description
Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up. Runs unattended in the triage GitHub Action.

Triage

Triage a newly opened issue on the project issue tracker, unattended. This skill runs inside the triage GitHub Action (triggered by issues: opened) — there is no human in the loop and no interactive turn. You act on exactly one issue, decide, apply the issue type and one state label with gh, and write a single comment. You never wait for or ask a maintainer: if a human is needed, mark the issue appropriately (ready-for-human, needs-info, or needs-triage) and stop — a maintainer will take it from there.

Applying the decision is mandatory and verified. After this skill runs, the Action checks that the issue ends up with an issue type set and exactly one state label. If either is missing, the triage job fails — so you must run the gh commands below, not just describe your decision in the comment. See Applying the decision for the exact commands.

Your final assistant message is the issue comment — the Action posts it as-is. It must start with this exact disclaimer line:

> *This was generated by AI during triage.*

and contain only the comment — no preamble, no "done" summary, no narration of the steps you took. Do not post it yourself with gh issue comment (that duplicates it). A follow-up step strips any stray text before the disclaimer as a safety net, but do not rely on that — write it clean.

Reference docs

Roles

Set the category as the GitHub issue type (not a label). The org has exactly these issue types — use one of these names exactly:

  • Bug — something is broken
  • Feature — a new feature or improvement
  • Task — chore/maintenance work that is neither a bug nor a user-facing feature

Apply exactly one state label:

  • needs-triage — a maintainer needs to evaluate (use when genuinely ambiguous)
  • needs-info — waiting on the reporter for more information
  • ready-for-agent — fully specified, ready for an AFK agent
  • ready-for-human — needs human implementation (judgment calls, external access, design decisions, manual testing)
  • wontfix — will not be actioned (only for obvious, clear-cut cases; see below)

Every issue you triage must end up with exactly one category (issue type) and one state label. The state names above are the actual label strings used on the tracker.

Applying the decision

Run these before (or after) writing your comment. The Action verifies the result and fails the job if the type or state label is missing.

Issue type — issue types are not labels, so set the type via the REST API (this works regardless of the runner's gh version):

bash
gh api --method PATCH "repos/$GITHUB_REPOSITORY/issues/<number>" -f type='Bug'

Use Bug, Feature, or Task for type. The <number> is this issue's number.

State label — apply exactly one:

bash
gh issue edit <number> --add-label "ready-for-agent"

A freshly opened issue has no state label, so --add-label alone is correct. Only on a manual re-triage of an issue that already carries a different state label, remove the old one in the same command, e.g. --remove-label "needs-triage". Never leave two state labels on an issue.

Show full SKILL.md (532 more words)Show less

Procedure

  1. Gather context. Read the full issue (body, comments, labels, author, dates). Explore the codebase using the project's domain glossary, respecting ADRs in the area. Run two checks: (a) redundancy — search for an existing implementation of the requested behavior by domain concept (not just the request's wording). (b) prior rejection — read .out-of-scope/*.md and note any that resembles this request.

  2. Verify the claim. For a bug, reproduce it from the reporter's steps where cheap. Report what happened: confirmed (with code path), failed to reproduce, or insufficient detail (a strong needs-info signal). A confirmed verification makes a much stronger agent brief.

  3. Decide, apply, and comment. Pick the category and state, apply them with the gh commands from Applying the decision, then write your triage comment as your final assistant message — the triage action posts that message as the single issue comment. Do not call gh issue comment yourself (that duplicates it). Your final message must start with the AI disclaimer and contain only the comment — no preamble, no "I've completed triage" summary, no restating the steps you took. Pick the safest defensible outcome:

    • Well-specified and actionable → ready-for-agent; the comment must contain a ## Agent Brief section built from the template in AGENT-BRIEF.md (Category, Summary, Current behavior, Desired behavior, Key interfaces, Acceptance criteria, Out of scope). Describe behavior and interfaces — never cite file paths or line numbers inside the brief; they go stale before an agent picks the issue up. You may cite one code location in a separate verification note (step 2) to prove the repro, but the brief itself stays behavioral.
    • Actionable but needs human judgment → ready-for-human; write the same ## Agent Brief structure and note why it can't be delegated.
    • Underspecified → needs-info; post the Needs-info template with specific, answerable questions. This is the terminal action — do not attempt a back-and-forth.
    • Obviously won't be actioned → wontfix; post your reasoning but do not close the issue — a maintainer reviews and closes. Only use this for clear-cut cases: the behavior already exists in the codebase (point to where it lives), the request matches a documented prior rejection in .out-of-scope/, or it's plainly out of scope / spam. If there's any real doubt, use needs-triage instead.
    • Genuinely ambiguous → needs-triage, and explain what you were unsure about.

Hard limits

  • Never wait for or ask a human. Decide from what's in front of you.
  • Always apply the issue type and exactly one state label with the gh commands in Applying the decision. The Action verifies this and fails the job if either is missing — describing the decision only in the comment is not enough.
  • One comment only, and it is your final assistant message. Never call gh issue comment — the action posts your final message as the comment, so posting it yourself creates a duplicate. No multi-comment threads, and no chatter wrapped around the comment (the whole final message is the comment). The message must start with the disclaimer line.
  • Never write repo files. Do not modify CONTEXT.md, ADRs, or .out-of-scope/ from the action — those need a human-reviewed commit/PR. Put recommendations in the comment instead.
  • Never close issues. Closing is always left to a maintainer.

Needs-info template

markdown
## Triage Notes

**What we've established so far:**

- point 1
- point 2

**What we still need from you (@reporter):**

- question 1
- question 2

Questions must be specific and actionable, not "please provide more info".

© flowershow, AGPL-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

SKILL.md and 2 other files in .claude/skills/triage of flowershow/flowershow.

  • SKILL.md
  • AGENT-BRIEF.md
  • OUT-OF-SCOPE.md

Open the folder on GitHubat commit b41983d

Compare with similar skills

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.

Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Triage this skillflowershow/flowershow1.1k—~1.9kAutomated safety check: PassAGPL-3.0
Prepare Cloudflare Production DeploymentLubomirGeorgiev/cloudflare-workers-nextjs-saas-template786—~5.9kAutomated safety check: NotesMIT
Obsidian CI Integrationjeremylongshore/tons-of-skills-marketplace2.8k—~2kAutomated safety check: PassMIT
Azure Pipelines Log Downloaderansible/ansible71k—~825Automated safety check: PassGPL-3.0
Nushellccusage/ccusage19k—~938Automated safety check: PassCustom licence
Thesvgglincker/thesvg2.8k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Prepare Cloudflare Production Deployment

    LubomirGeorgiev/cloudflare-workers-nextjs-saas-template

    Source-of-truth runbook for preparing this Vinext Cloudflare Workers SaaS template for production deployment.

    786 GitHub stars~5.9k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Obsidian CI Integration

    jeremylongshore/tons-of-skills-marketplace

    Set up GitHub Actions CI/CD for Obsidian plugin development.

    2.8k GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Downloads Azure Pipelines CI logs for an Ansible pull request or build so the agent can analyze test failures, after asking you first.

    71k GitHub stars~825 tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Nushell

    ccusage/ccusage

    Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.

    19k GitHub stars~938 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Thesvg

    glincker/thesvg

    Fetch brand SVG logos and cloud architecture icons (AWS, Azure, GCP) from theSVG.

    2.8k GitHub stars~1.5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Clawsweeper

    openclaw/openclaw

    A skill your agent uses for all ClawSweeper work: OpenClaw issue/PR sweep reports, repair jobs, cloud fix PRs, @clawsweeper maintainer mention commands, trusted ClawSweeper-reviewed…

    392k GitHub stars~3k tokensUpdated today
    DevOps & CloudAuto-check passed

Categories

Questions about Triage

What does Triage do?

Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up. Triage is an agent skill from flowershow/flowershow. Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up.

When should I use Triage?

Triage fits situations like: tasks that involve CI/CD; tasks that involve Markdown.

How do I install Triage in Claude Code?

Run `npx skills add flowershow/flowershow --skill triage -a claude-code`. Or copy the skill folder (.claude/skills/triage in flowershow/flowershow) into .claude/skills/triage in your project. Claude Code loads it when a task matches its description.

How do I install Triage in Codex?

Run `npx skills add flowershow/flowershow --skill triage -a codex`. Or copy the skill folder (.claude/skills/triage in flowershow/flowershow) into .agents/skills/triage in your project. Codex loads it when a task matches its description.

Can I use 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 flowershow/flowershow --skill 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/triage, .gemini/skills/triage, .github/skills/triage and .opencode/skills/triage in your project.

What does Triage need to run?

Going by SKILL.md and its folder, Triage needs the command-line tools its instructions call (gh).

Does Triage access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is 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 Triage use?

Triage is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Triage use?

About 1.9k tokens (SKILL.md is roughly 7.6k 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 Triage?

Skills that share tags, products or a category with Triage: Prepare Cloudflare Production Deployment (LubomirGeorgiev/cloudflare-workers-nextjs-saas-template, 786 stars), Obsidian CI Integration (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Azure Pipelines Log Downloader (ansible/ansible, 71k stars) and Nushell (ccusage/ccusage, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Triage?

flowershow (a GitHub organization) maintains it in flowershow/flowershow, which has 1,108 GitHub stars. The repository was last updated on October 6, 2026.

Source: flowershow/flowershow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.