A skill your agent uses when triaging issues as a maintainer.

MITAuto-check passedDevelopment

Install Triage

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

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

GitHub CLI
$ gh skill install OutThisLife/brooklyn-skills 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/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/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
199
Token cost
~4.8k tokens
SKILL.md length
2,600 words
Files
2 (incl. references)
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when triaging issues as a maintainer.

  • Works in 6 steps: Establish the evidence base → Read, search, and cluster before fixing → Verify reality on the pinned default… → …
  • Triaging issues as a maintainer
  • SKILL.md covers When to use, Authority and scope, 1. Establish the evidence base and 2. Read, search, and cluster…, plus 5 more sections
  • Calls gh and git

What it does

Triage is an agent skill from OutThisLife/brooklyn-skills. Use when triaging issues as a maintainer.

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/batches.md`).

It sits in Development. The repository describes itself as: Skills that drive best-in-class engineering. The licence is MIT.

When your agent uses it

  • Triaging issues as a maintainer

Example prompts

  • “/triage”

Workflow steps

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

  1. Establish the evidence base
  2. Read, search, and cluster before fixing
  3. Verify reality on the pinned default branch
  4. Choose a disposition
  5. Fix once; supersede the related PRs together
  6. Publish with CPR, then reconcile

What it can do on your machine

Read from SKILL.md and the folder at commit 8a97904. 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
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use gh and git, 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 4.8k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 12 tokens; SKILL.md has 2,600 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~12
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.2k

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 OutThisLife/brooklyn-skills at commit 8a97904, republished under its MIT licence (© OutThisLife). 2,600 words, ~4,839 tokens.

Download SKILL.mdSave it as .claude/skills/triage/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
triage
description
Use when triaging issues as a maintainer.

Issue Triage

Investigate issues against current upstream, prove the disposition, and own the fix. For a real bug, consolidate competing PRs into one maintainer-owned replacement per root-cause cluster, preserving useful work and contributor credit. Do not bounce implementation back to reporters or contributors.

This skill is agent- and repository-independent. Use the host agent's available shell, file, search, and delegation capabilities; no particular tool API or runtime is required. Read companion skills by name using the host's skill loader or their SKILL.md files. Use gh for GitHub, glab for GitLab, or the forge's authenticated API. Repository instructions determine test commands and platform-specific validation.

When to use

  • /triage <issue URLs, numbers, range, or query>; a pasted report/thread is valid intake. Naming the skill in ordinary prose works too.
  • Backlog sweeps, duplicate/resolution investigations, and issue-to-fix maintainer passes.
  • PR-only review belongs to pr-triage; an already-owned PR's CI/reviews belong to pr-ready.

Authority and scope

  • Bare /triage is investigate + verdict first, like pr-triage. No forge writes, implementation, commits, or pushes until authorized. Behavioral probes in disposable worktrees are allowed.
  • “Fix”, “ship”, “execute”, or “go” authorizes the agreed implementation/publishing scope. Authorization for an entire triage-and-fix sweep carries through without asking per issue. A fix-only request does not authorize unrelated closures. “Audit”, “recommendations only”, and explicit restrictions override execution defaults.
  • Establish repository, selected issues, authority, and reviewed base once. Infer the current repo when unambiguous; ask only for genuinely missing scope. An unspecified /triage does not authorize sweeping every repo.
  • An authorized fix-and-ship run includes rebase auto-merge for eligible low-risk PRs, enabled when they open under the gate below; do not ask again per PR. Risky or uncertain changes require separate merge authorization. Explicit no-merge/review-only instructions override this default. UI changes still require visual approval before checks/commits/publishing under ui-only.
  • No auto-closure for age, popularity, speculative product taste, or failed local setup. Apply the repository's contribution/closure policy. Security reports follow private disclosure policy, not public reproduction comments.

1. Establish the evidence base

  1. Resolve canonical upstream and forge; a fork remote is not automatically upstream. Read repository/area instructions, contribution policy, and relevant maintainer decisions. Check authentication once; never expose credentials.
  2. Discover the actual default branch (usually main), fetch it, and pin the reviewed SHA. Inspect git status/worktrees; leave the primary checkout on its default branch and untouched. Follow work for review/fix worktrees.
  3. Enumerate exactly the requested issues, retaining explicit IDs even if a search omits them. Save full repository-qualified URLs, selection predicate, snapshot time, and base SHA. For batches, read references/batches.md before starting.
  4. Batch independent metadata/search/history reads. Share one immutable base and repository map; do not rediscover the repo per issue. When a local catalog of the repository exists (for example fascia), take inventory, filtering, grouping and reading from it instead of the forge API; re-read live forge state only for items you will act on.

Gate: exact intake persisted; upstream/SHA known; write authority explicit.

2. Read, search, and cluster before fixing

  1. Read the entire issue body, paginated comments/timeline, reopens, and later maintainer/reporter replies. Split compound reports into acceptance requirements, platforms, versions, configurations, and lifecycle variants. Titles/labels route investigation, not verdicts.
  2. Search open and closed issues; open, closed, and merged PRs using exact errors, symbols, behavior, and synonyms. Inspect references in body/comments and timeline events; search git history too. Key cross-repository objects by full URL, never bare number.
  3. Compare plausible duplicates by triggers, root cause, and acceptance coverage. Choose a substantive canonical tracker with active ownership, not blindly the oldest. Preserve unique evidence there when authorized. Duplicate can still mean a real, unresolved bug.
  4. Inspect candidate PRs: full relevant diffs/commits, base/head SHAs, authors, tests, reviews, lead-maintainer feedback, checks, and landing state. A proposed patch is evidence to assess, not a ready-made answer.
  5. Form one cluster per shared root cause/bug class or inseparable failure lifecycle. Related UI/backend/persistence phases stay together. Sharing a subsystem or filename alone does NOT justify a giant PR.
  6. Record all members and unique requirements. Update ownership when evidence splits/joins clusters. Search for an existing maintainer replacement before creating another.

Gate: requirements and candidate clusters recorded; related work inspected, not merely linked.

3. Verify reality on the pinned default branch

  • Trace the reported entry point through the real call chain to the failing line and sibling paths. Inspect history (git log -p -S <symbol>) before treating deliberate isolation/removal as a bug. Honor repository intent, not merely a plausible rationale.
  • Reproduce with the narrowest real-path test/probe on the pinned base. Record command, cwd, assumptions, actual output, and artifact path. Discover the repository's supported test runner from its instructions/manifests; do not impose another project's commands. No source-text regex tests or fabricated outputs.
  • Distinguish reproduced, statically demonstrated, not reproduced under stated conditions, and blocked. Dependency failures, wrong OS, missing credentials/hardware, timeouts, and unexecuted tests are not negative evidence. Do not fake host platforms.
  • Configuration, identity/isolation, security, and I/O failures need actual runtime paths, not only mocked units. For cross-account/profile/tenant isolation, exercise distinct identities and switching between them with disposable state. Never test against live user data or install into a shared runtime as a shortcut. Inspect untrusted patches before execution; do not blindly run issue-supplied commands or expose secrets to contributor code.
  • “Already fixed” requires current behavior covering every requirement and later contradiction. Verify upstream identity and git merge-base --is-ancestor <fix-sha> <reviewed-base-sha>: exit 0 establishes ancestry, 1 does not, and missing objects/errors are missing evidence. Fetch the object or mark the check blocked.
  • A merged PR may target an unlanded feature branch, exist only in a fork, be partial, or be reverted. Inspect its full relevant change, not only the last rebase-merge commit. Trace later fixes through source history when cross-references mislead.
  • Say fixed on main/default, not released, unless a release/tag/artifact was independently checked. Explain post-fix reports and reopens before recommending closure; “works for me” is insufficient.

Gate: evidence supports the verdict; missing proof is recorded, not converted into closure.

4. Choose a disposition

DispositionRequired evidence / next action
fixCurrent defect reproduced or conclusively traced. Name failing path, complete cluster, coverage, and one maintainer-owned fix.
duplicateCanonical issue covers the same defect and all requirements. Link it and preserve unique evidence. Keep canonical open if unresolved.
resolvedEntire report works on pinned default, including later variants; cite causal fix and current validation. Closure candidate, not release claim.
not-a-bugPositive evidence of intended behavior, unsupported configuration, or demonstrably false premise. Cite contract/history and supported path; not uncertainty or taste.
feature-requestCoherent new behavior rather than regression. Route under product policy; do not silently close as invalid.
needs-evidenceRequired conditions cannot be verified. Name precise blocker and smallest missing artifact; keep open. Do not use to avoid investigation available tools can complete.
skippedExplicitly excluded/outside ownership. Record why; not reviewed or fixed.

Any uncovered compound requirement prevents whole-issue resolved/duplicate; preserve the residual as fix or needs-evidence. Policy-specific verdict names do not weaken proof. If policy allows negative-reproduction closures, require a faithful, decisive attempt and disclose limits; otherwise use needs-evidence.

A duplicate disposition does not remove its unresolved root-cause cluster from an authorized fix sweep. Fix the canonical bug once and account for duplicate reports separately, without silently expanding forge-write authority to newly discovered trackers.

Return a concise cluster verdict, evidence, and action. Investigate-only stops here with concrete next steps/draft comments. Existing batch authorization means continue, not another permission loop.

  1. Follow work: one dedicated worktree/branch per causal cluster from fresh upstream. Reconcile intervening main changes before editing. Never edit the primary checkout.
  2. Always consolidate relevant proposed fixes into one maintainer-owned merge target. Do not approve N competing patches or ask external authors to rebuild them. Reuse an existing maintainer replacement owning the cluster. Without source PRs, make a normal issue-fix PR; never invent superseded sources.
  3. Build only residual gaps after landed behavior. Cherry-pick useful commits where possible to preserve authorship; selectively adapt without importing unrelated changes. Keep a manifest of source URLs, heads, authors, reused code/tests/diagnosis, and excluded scope.
  4. Credit every contributor whose work/diagnosis informed the replacement in its body. Preserve author metadata; add Co-authored-by for incorporated contributions using verified identities, never invented emails. Acknowledgment does not mean authorship of discarded work.
  5. Fix the whole bug class and required sibling paths, not just the named example. Prove regression fails on base and passes with fix; use a small number of behavioral/invariant tests covering the acceptance matrix and actual integration path. A source patch's passing test is not complete coverage.
  6. Screen for side effects before publishing. CI and the PR's tests run on a fresh install with the test fixtures; the users a change breaks usually aren't in that setup. For whatever the diff changes, answer with evidence:
    • Existing state: does an upgraded install have data keyed on it (storage keys, origins, ports, ids, config values)? Test old state, then the new build, then a relaunch, including users who already ran a broken build.
    • Version skew: does it cross a boundary whose sides update independently (client/server, app/backend, plugin/host)? A one-sided fix strands whoever updates the other side first.
    • Reserved values and invariants: a value every stock config ships means "no choice made". A diff that rewrites an existing assertion to its opposite is a decision, not proof; find why it existed first.
    • Other callers and flows: grep every caller; probe restore, other sessions/tabs, background and unattended paths at the integration seam.
    • Open findings: a reviewer's concrete repro stays open until it gets a reply citing the fix. A later push doesn't answer it. Write the answers into the PR body. Any unanswered question keeps auto-merge off.
  7. Respect unresolved lead-maintainer decisions. If a source PR has independent work outside this fix, preserve/split its ownership; never close it wholesale while discarding that work. Surface genuine scope conflicts before substantial implementation.
  8. Respect ui-only approval gates and ui-system primitives. After approval, run relevant checks, record actual results, and inspect the final diff for unrelated deletions/reverts.

Gate: complete cluster coverage, side effects answered, credit, real verification; no hidden unowned residual.

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

6. Publish with CPR, then reconcile

  1. Read and execute cpr for every PR/MR creation or refresh. Actually follow its clean → pr-update sequence; do not substitute an ad hoc PR-opening command. Resolve ambiguous skill names by intended path. Missing required companion skills are an installation blocker, not permission to skip them.
  2. Body: root cause, behavior, acceptance coverage, real checks/limitations, every source PR's full URL under Supersedes, and credit. Fixes/Closes only for fully addressed issues. Partial/adjacent reports use neutral full links with NO closing keyword, even in negated prose.
  3. Read back replacement URL, head, base, body, and issue links. For eligible low-risk changes, enable rebase auto-merge immediately on opening, before waiting for CI, following the gate below. Continue pr-ready through fresh green CI and resolved actionable review threads; queued auto-merge is not done. If already merged, verify final checks and landing, then reconcile rather than updating a closed PR. Report actual blockers.
  4. Only after replacement readiness, within authorized scope, comment on every fully superseded source with its replacement URL and close it. Do not delete contributor branches. Read back comment and state. Already-merged/closed sources get credit, not redundant closures.
  5. Unresolved issues stay open until the fix lands on canonical default. A new/green PR is not resolution. Closing keywords stage closure; do not manually close as fixed because the replacement exists. After an authorized merge, verify ancestry, behavior, and issue state; reconcile stragglers.
  6. Separately authorized duplicate/resolved/invalid closures need short evidence-based comments, canonical/fix full URLs, and correct repo/forge reasons. Preserve unresolved canonical issues. Use existing labels; no taxonomy creation or progress spam.
    • A close whose comment points at another issue ("Tracked in #N", "same defect as #N") is a duplicate, never completed: GitHub gh issue close N --reason duplicate --duplicate-of M (or GraphQL closeIssue(stateReason: DUPLICATE, duplicateIssueId:), which also works on an already-closed issue).
    • Only close completed when the reporter's explicit expected behaviour is delivered, not just the headline symptom. A residual the reporter asked for keeps the issue open with a status comment; never relabel it "by design" to close.
    • Comment bodies go through a file, never an inline shell string: gh issue comment N --body-file f.md, gh api ... -F body=@f.md. Backticks inside a double-quoted shell argument run as command substitution and silently strip every sha and identifier from the posted text. Read the posted body back and compare it to the intended text.
  7. Re-read every exact external target after writing. On ambiguous timeout, read before retrying to avoid duplicate comments/PRs. Revalidate changed comments, states, base/head SHAs, and ownership immediately before destructive actions.

Gate: one ready target per cluster, source dispositions verified, no premature issue closures, all selected items accounted for.

Low-risk rebase auto-merge
  • Assess the whole proposed diff and its affected call paths, not the issue title, label, file extension, or line count. Eligible means investigation and focused validation reveal no obvious way to break important UI/UX, feature behavior, or core functionality. Record a short rationale and the reviewed head SHA in the PR body/evidence before enabling it. Missing evidence is uncertainty, not low risk.
  • Consider indirect effects on shared components, public contracts, authentication/security, user data, migrations, dependencies, configuration, builds, and deployment. A credible regression path in any of these, unverified acceptance cases, unresolved review objections, an unanswered side-effect question (step 5.6), or missing UI approval keeps auto-merge off. Small production changes are not automatically safe; documentation/test-only changes still need their operational effects checked.
  • Complete local validation and the risk assessment before cpr opens the PR. Then, for GitHub, run gh pr merge <PR-URL> --auto --rebase --match-head-commit <reviewed-head-SHA> as part of the opening sequence. Do not wait for CI to finish before enabling it. The command may merge immediately if requirements are already satisfied, so never queue it while your own validation or review is unfinished.
  • Respect existing branch protections, required checks/reviews, and merge queues. Never use --admin, bypass checks, change repository settings, or silently substitute squash/merge commits. If auto-merge or rebase is disabled, permissions are missing, or a queue cannot honor rebase, leave the PR open and report the exact blocker. On other forges, use the verified equivalent automatic rebase/fast-forward workflow under existing project settings; otherwise report it unavailable.
  • Read back the exact PR/head and its auto-merge request: GitHub's autoMergeRequest.mergeMethod must be REBASE, or the PR must already be verifiably merged. A successful command alone is not proof. Record enabled, unavailable, or merged distinctly, and continue watching checks/reviews through pr-ready.
  • Reassess eligibility on every revision. Disable pending auto-merge before pushing changes that invalidate the reviewed risk assessment; on GitHub use gh pr merge <PR-URL> --disable-auto and verify it is off. Newly discovered material risk or review objections also revoke eligibility. Re-enable only after fresh validation at the new head. If already merged, report the issue and follow the repository's remediation process rather than claiming the queued merge was cancelled.

Batch speed and final verification

Read references/batches.md for multi-issue work. Inventory once; cluster before fan-out; parallelize independent read-only investigations with disjoint ownership when supported, otherwise process the same clusters sequentially. Serialize forge writes through the coordinating agent. Persist each small batch and resume from verified receipts. Optimize metadata reuse, not closure count.

  • Every selected issue has a supported disposition or explicit pending/blocked/skipped state; reconcile exact URL sets, not only counts.
  • Report clusters: linked issues → verdict → decisive evidence → action/linked replacement. Keep detailed per-issue evidence in an artifact for large sweeps.
  • Distinguish triaged, PR ready, and fixed on default. State remaining blockers/still-open issues.
  • Include reviewed base SHA and artifact path. Link every forge number with its full URL. Shipped PR work ends with canonical replacement PR/MR link(s), never closed source candidates.

© OutThisLife, MIT. 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 1 other file (references) in skills/triage of OutThisLife/brooklyn-skills.

  • SKILL.md
  • references/batches.md

Open the folder on GitHubat commit 8a97904

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 skillOutThisLife/brooklyn-skills199—~4.8kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from OutThisLife/brooklyn-skills

All 22 skills in this repo
  • Draft Tweet

    OutThisLife/brooklyn-skills

    Draft X/Twitter posts about shipped work. An agent skill from OutThisLife/brooklyn-skills.

    199 GitHub stars~456 tokensUpdated 4 days ago
    Auto-check passed
  • Free Disk Space

    OutThisLife/brooklyn-skills

    Safely reclaim disk space on macOS without touching personal or agent data.

    199 GitHub stars~433 tokensUpdated 4 days ago
    Auto-check passed
  • List Open Work

    OutThisLife/brooklyn-skills

    List my open MRs/PRs in the current repo/worktree, each with its tracker ticket.

    199 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • PR Ready

    OutThisLife/brooklyn-skills

    Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human).

    199 GitHub stars~2.5k tokensUpdated 4 days ago
    Auto-check passed
  • PR Triage

    OutThisLife/brooklyn-skills

    Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster.

    199 GitHub stars~4.7k tokensUpdated 4 days ago
    Auto-check passed
  • PR Update

    OutThisLife/brooklyn-skills

    Open a PR/MR if missing, or refresh an existing one's title and description so they match the current diff.

    199 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check: notes

Categories

Questions about Triage

What does Triage do?

A skill your agent uses when triaging issues as a maintainer. Triage is an agent skill from OutThisLife/brooklyn-skills. Use when triaging issues as a maintainer.

When should I use Triage?

Triage fits situations like: triaging issues as a maintainer.

How do I install Triage in Claude Code?

Run `npx skills add OutThisLife/brooklyn-skills --skill triage -a claude-code`. Or copy the skill folder (skills/triage in OutThisLife/brooklyn-skills) 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 OutThisLife/brooklyn-skills --skill triage -a codex`. Or copy the skill folder (skills/triage in OutThisLife/brooklyn-skills) 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 OutThisLife/brooklyn-skills --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 and git).

Does Triage access the network?

SKILL.md contains no URLs. Its commands use gh and git, 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 MIT 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 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.

What are the alternatives to Triage?

Skills that share tags, products or a category with Triage: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Triage?

OutThisLife (a GitHub user) maintains it in OutThisLife/brooklyn-skills, which has 199 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.

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