Agent skill

Community Triage

by roryeckel in roryeckel/wyoming_openai

GitHub issues, pull requests, bug reports, scope questions, and support threads.

Apache-2.0Auto-check passedDevelopment

Install Community Triage

skills CLI
$ npx skills add roryeckel/wyoming_openai --skill community-triage -a claude-code

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

GitHub CLI
$ gh skill install roryeckel/wyoming_openai community-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/roryeckel/wyoming_openai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/community-triage .claude/skills/community-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
community-triage
GitHub stars
219
Token cost
~2.9k tokens
SKILL.md length
1,561 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

GitHub issues, pull requests, bug reports, scope questions, and support threads.

  • Works in 5 steps: Classify the thread → Identify the supported surface → Gather evidence → …
  • Handling community reports
  • SKILL.md covers Project Boundary, Goals, Default Posture and Triage Workflow, plus 13 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Community Triage is an agent skill from roryeckel/wyoming_openai. GitHub issues, pull requests, bug reports, scope questions, and support threads. Use when handling community reports or PRs to separate supported OpenAI-compatible behavior from out-of-scope provider-specific requests, request missing evidence, route upstream, and close or escalate politely.

Its SKILL.md is about 2.9k 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 Pull requests and QA and bug reports. It works with OpenAI, GitHub and Home Assistant. The repository describes itself as: OpenAI-Compatible Proxy Middleware for the Wyoming Protocol. The licence is Apache-2.0.

When your agent uses it

  • Handling community reports
  • PRs to separate supported OpenAI-compatible behavior from out-of-scope provider-specific requests
  • Request missing evidence
  • Escalate politely

Example prompts

  • “/community-triage”

Workflow steps

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

  1. Classify the thread
  2. Identify the supported surface
  3. Gather evidence
  4. Decide ownership
  5. Respond with a clear outcome

What it can do on your machine

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

    No URLs in SKILL.md.

    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

Community Triage loads about 2.9k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,561 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 roryeckel/wyoming_openai at commit f064e00, republished under its Apache-2.0 licence (© roryeckel). 1,561 words, ~2,918 tokens.

Download SKILL.mdSave it as .claude/skills/community-triage/SKILL.md (or your agent's skills folder).
name
community-triage
description
GitHub issues, pull requests, bug reports, scope questions, and support threads. Use when handling community reports or PRs to separate supported OpenAI-compatible behavior from out-of-scope provider-specific requests, request missing evidence, route upstream, and close or escalate politely.

Community Triage

Handle community issues and PRs with respect, evidence, and firm scope discipline.

This skill exists to protect maintainer time, avoid speculative changes, and preserve the project's intended boundary.

Project Boundary

  • Wyoming OpenAI is an OpenAI-compatible proxy/middleware.
  • Treat OpenAI-compatible request/response behavior as the primary contract.
  • Existing backend enum/autodetection exceptions are compatibility shims, not a license to support arbitrary provider-specific transports, routes, or schemas.
  • Do not expand scope to custom endpoints such as /tts, provider-specific stream=true semantics, or bespoke response formats unless the maintainer explicitly chooses to widen scope.

Goals

  • Be helpful without overcommitting.
  • Separate local defects from upstream limitations and unsupported integrations.
  • Prefer minimal actionable next steps: fix locally, request reproduction details, route upstream, or close with clear reasoning.
  • Maintain a respectful tone even when issue quality is low.

Default Posture

  • Assume good faith.
  • Do not mirror vague or incorrect technical framing.
  • Translate the report into the actual technical question the project can answer.
  • Use evidence from code, tests, docs, and upstream behavior before concluding.
  • Do not let conversation momentum expand the project's scope by accident.

Triage Workflow

  1. Classify the thread.
  2. Identify the supported surface.
  3. Gather evidence.
  4. Decide ownership.
  5. Respond with a clear outcome.
1. Classify the thread

Choose the closest category:

  • bug/regression on a supported surface
  • feature request inside scope
  • feature request outside scope
  • support question or configuration issue
  • upstream compatibility issue
  • low-fidelity report with insufficient reproduction
  • community PR
2. Identify the supported surface

Pin down the exact surface before deciding anything:

  • endpoint path
  • Wyoming event flow
  • CLI/config flag
  • backend compatibility path
  • testable request/response behavior

Explicitly determine whether the report concerns an OpenAI-compatible path or instead depends on a custom provider API.

3. Gather evidence

Use the repo and upstream references, not assumptions.

  • inspect the relevant implementation and tests in this repo
  • read linked upstream docs/issues/PRs, not just their titles or summaries
  • verify the exact route, request schema, and response transport involved
  • distinguish between "supports streaming somewhere" and "streams on the exact supported integration surface used here"
4. Decide ownership

Assign the issue to one bucket:

  • local defect in this repo
  • upstream defect or limitation
  • out-of-scope custom integration request
  • uncertain because key evidence is still missing
5. Respond with a clear outcome

Pick one outcome and be explicit:

  • implement/fix
  • ask for concrete reproduction details
  • route upstream
  • close politely with scope reasoning

Evidence Standard

Treat these as strong evidence:

  • code paths
  • tests
  • official docs
  • concrete reproductions
  • exact request/response behavior
  • linked upstream implementation details

Treat these as weak evidence:

  • issue titles
  • second-hand descriptions
  • marketing claims
  • "OpenAI-compatible" labels without route-level confirmation
  • "supports streaming" claims without transport details

Do not conclude a behavior is supported just because a provider advertises compatibility. Confirm the specific surface this project actually uses.

Minimum Missing Details To Request

When the report is ambiguous, ask for only what is necessary to decide ownership.

Good examples:

  • exact endpoint path
  • sample request/response behavior
  • provider or server project link
  • version or commit
  • relevant logs
  • minimal reproduction steps

Do not start by asking for everything. Ask for the smallest missing fact that would change the decision.

Low-Fidelity Issues

When a report is vague, technically confused, or incomplete:

  • extract the likely underlying question
  • ask at most a small number of precise follow-ups
  • request only the missing details needed to decide whether this repo owns the problem
  • avoid speculative fixes or speculative roadmap commitments

If the issue remains unsupported by evidence after reasonable follow-up, close it politely rather than leaving it open indefinitely.

Scope Guardrails

  • Do not add support for provider-specific custom endpoints when an OpenAI-compatible endpoint already exists but behaves differently.
  • Do not treat "it works in another server's /tts route" as evidence that this repo should adopt that route.
  • Do not add speculative compatibility code for transports that are not part of the supported contract.
  • Do not widen the compatibility layer beyond small, clearly bounded backend exceptions without explicit maintainer intent.
  • Do not add new provider-specific autodetection probes (custom /health, /readyz, /test, or similar routes) when explicit backend configuration or the OpenAI-compatible surface itself can identify the backend. A new provider-specific route is justifiable only when it fills a gap the OpenAI spec does not cover (for example voice listing); pure identity probes do not meet that bar.
  • Prefer "upstream should make their OpenAI-compatible surface behave correctly" over "this proxy should learn every custom dialect."

Boundary Example

If an upstream Chatterbox server streams on a custom /tts endpoint but buffers on its OpenAI-compatible /v1/audio/speech endpoint:

  • do not add /tts support here
  • do not reopen scope just because the custom route exists
  • explain that Wyoming OpenAI targets the OpenAI-compatible surface
  • route streaming complaints about /v1/audio/speech upstream unless there is evidence this repo mishandles a truly incremental OpenAI-compatible response

Issue Decision Matrix

Keep Open Or Fix Here

Keep the issue open or fix it when:

  • there is evidence the failure occurs on a supported OpenAI-compatible surface used by this repo
  • the behavior regressed from prior repo behavior
  • a minimal fix exists without expanding scope
  • the report includes enough detail to reproduce or the code clearly shows a defect
Ask For Details

Ask for more detail when:

  • the failure might be in this repo, but one or two key facts are missing
  • the report mixes supported and unsupported surfaces and needs disambiguation
  • an upstream implementation claims compatibility but the actual route/response behavior is still unknown
Route Upstream

Route upstream when:

  • the failing behavior lives in another project's OpenAI-compatible server or provider
  • the linked implementation buffers where true streaming is expected
  • the only path that provides the requested capability is a custom upstream endpoint outside this repo's target contract
Show full SKILL.md (632 more words)Show less
Close

Close when:

  • the request depends on a custom provider-specific API outside project scope
  • there is no evidence of a defect in this repo after reasonable triage
  • the issue asks for a nonexistent or irrelevant API surface
  • the request would materially expand scope or maintenance burden beyond the maintainer's intent

PR Review Guidance

Review community PRs primarily for:

  • scope fit
  • correctness
  • maintenance cost
  • tests on supported behavior
  • regression risk

Be especially skeptical of PRs that:

  • add provider-specific routes or bespoke schemas
  • teach the proxy custom behavior for one server in a way that weakens the OpenAI-compatible boundary
  • include broad refactors alongside compatibility changes
  • add fallback code without evidence of a real supported use case

Prefer minimal changes that keep the contract clear.

If a PR changes supported behavior, ask for tests.

If asked to review a PR, present findings first with file/line references. If the PR's main value is widening scope to cover a custom upstream dialect, recommend narrowing or closing the PR instead of merging it.

Response Style

  • Thank the reporter or contributor for concrete links, repros, or code references.
  • Be direct and factual.
  • Avoid blame, sarcasm, or dismissal.
  • Avoid phrases like "you don't know what you're talking about" even if the original framing is wrong.

Prefer phrasing such as:

  • "I do not currently see evidence that the limitation is in this project."
  • "This appears to be upstream of Wyoming OpenAI."
  • "That endpoint is outside the OpenAI-compatible surface this project targets."
  • "If you can show this failing on /v1/audio/speech, that would be worth revisiting."

Avoid phrasing such as:

  • "Not my problem."
  • "Works for me."
  • speculative roadmap commitments
  • over-apologizing for enforcing scope

Closure Pattern

When closing, include all of the following:

  • what was checked
  • why the issue is out of scope or upstream
  • the specific supported surface this project targets
  • the condition under which the issue would become actionable here

Template:

Thanks for the report and the additional reference.

I checked the relevant code path and the linked implementation. Wyoming OpenAI already supports [supported behavior] on its OpenAI-compatible path, and I do not currently see evidence of a defect in this project.

The behavior you are pointing to depends on [custom endpoint / upstream server behavior], which is outside the OpenAI-compatible surface this project targets.

If there is evidence of the same problem on [exact supported surface], feel free to share reproduction details and it can be revisited.

Upstream Escalation Pattern

When routing upstream:

  • name the exact upstream repo, issue, or route
  • describe the boundary cleanly
  • do not volunteer to mirror custom APIs locally

Template:

This looks like an upstream compatibility issue rather than a Wyoming OpenAI bug.

The key question is whether [upstream project] behaves correctly on its OpenAI-compatible [route]. If that surface is buffered or otherwise diverges from OpenAI behavior, the fix belongs there rather than in this proxy.

Re-entry Criteria

Reopen or continue when:

  • a reporter provides a concrete reproduction on a supported OpenAI-compatible surface
  • a community PR narrows itself to supported behavior and includes tests
  • upstream changes make the supported surface behave differently and this repo needs a bounded compatibility adjustment

Anti-Patterns

  • implementing custom provider transports to salvage one wrapper
  • keeping vague issues open indefinitely
  • conflating "streaming exists somewhere in the upstream project" with "the supported integration surface streams here"
  • adding fallback behavior for undocumented responses
  • treating backend enum exceptions as permission for general vendor lock-in
  • adding new provider-specific autodetection probes when explicit backend configuration would work. Provider-specific routes are acceptable only when they fill a gap the OpenAI spec lacks (for example voice/model listing) — not for pure identity probes.

Maintainer Intent Distilled

  • Be kind to community contributors.
  • Keep the contract narrow.
  • Favor evidence over momentum.
  • Push upstream when the real defect lives upstream.
  • Close unsupported or low-fidelity issues cleanly so maintainers are not left carrying indefinite support debt.

© roryeckel, Apache-2.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 .agents/skills/community-triage of roryeckel/wyoming_openai.

Open the folder on GitHubat commit f064e00

Compare with similar skills

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

Community Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Community Triage this skillroryeckel/wyoming_openai219—~2.9kAutomated safety check: PassApache-2.0
Handsontable Demo Page Generatorhandsontable/handsontable22k—~1.8kAutomated safety check: PassCustom licence
Human Writingkylesnowschwartz/SimpleClaude114—~3.6kAutomated safety check: PassNone
GitHub Commentingjuspay/neurolink148—~698Automated safety check: PassMIT
Neru File Issuey3owk1n/neru805—~890Automated safety check: PassMIT
Ax RepoNecmttn/ax115—~1.8kAutomated safety check: PassAGPL-3.0

Similar skills

  • Handsontable Demo Page Generator

    handsontable/handsontable

    Builds two throwaway HTML test pages for a Handsontable pull request, one on the released CDN version and one on the local build, to compare behavior side by side.

    22k GitHub stars~1.8k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Human Writing

    kylesnowschwartz/SimpleClaude

    MUST be used for any request to draft, write, compose, or reword text another person will read, including 'draft a message', 'draft a reply', 'draft a Slack message', 'write an email', 'draft a PR…

    114 GitHub stars~3.6k tokensUpdated today
    DevelopmentAuto-check passed
  • GitHub Commenting

    juspay/neurolink

    How to post clean, rich, deduplicated GitHub PR review comments — suggestion blocks, multi-line anchors, markers, formatting rules.

    148 GitHub stars~698 tokensUpdated today
    DevelopmentAuto-check passed
  • Neru File Issue

    y3owk1n/neru

    File a Neru bug report or feature request that matches the repo's issue forms: duplicate check first, every required field filled with real diagnostics, correct labels.

    805 GitHub stars~890 tokensUpdated today
    Testing & QAAuto-check passed
  • Ax Repo

    Necmttn/ax

    Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the gh CLI.

    115 GitHub stars~1.8k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • My PR Checker

    homeassistant-ai/ha-mcp

    Manage your own GitHub pull requests — check CI status, inline review comments, PR-level comments, resolve review threads, fix issues, and iterate until all checks pass and threads are resolved.

    5k GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check: notes

More from roryeckel/wyoming_openai

  • Lint

    roryeckel/wyoming_openai

    Run all linters (ruff, pyright) and fix issues in a loop until the codebase is clean.

    219 GitHub stars~707 tokensUpdated 6 days ago
    Auto-check passed
  • Bump Version

    roryeckel/wyoming_openai

    Bump the version number of wyoming-openai. An agent skill from roryeckel/wyoming_openai.

    219 GitHub stars~349 tokensUpdated 6 days ago
    Auto-check passed

Questions about Community Triage

What does Community Triage do?

GitHub issues, pull requests, bug reports, scope questions, and support threads. Community Triage is an agent skill from roryeckel/wyoming_openai. GitHub issues, pull requests, bug reports, scope questions, and support threads.

When should I use Community Triage?

Community Triage fits situations like: handling community reports; PRs to separate supported OpenAI-compatible behavior from out-of-scope provider-specific requests; request missing evidence; escalate politely.

How do I install Community Triage in Claude Code?

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

How do I install Community Triage in Codex?

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

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

What does Community Triage need to run?

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

Does Community Triage access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

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

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

How many tokens does Community Triage use?

About 2.9k tokens (SKILL.md is roughly 12k 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 Community Triage?

Skills that share tags, products or a category with Community Triage: Handsontable Demo Page Generator (handsontable/handsontable, 22k stars), Human Writing (kylesnowschwartz/SimpleClaude, 114 stars), GitHub Commenting (juspay/neurolink, 148 stars) and Neru File Issue (y3owk1n/neru, 805 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Community Triage?

roryeckel (a GitHub user) maintains it in roryeckel/wyoming_openai, which has 219 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 4, 2026.

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