mirror of
https://github.com/moeru-ai/airi.git
synced 2026-08-14 08:52:42 +00:00
7.6 KiB
7.6 KiB
on, permissions, checkout, engine, tools, network, safe-outputs
| on | permissions | checkout | engine | tools | network | safe-outputs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
false | copilot |
|
defaults |
|
PR Triage
Classify the target pull request with content labels.
Goal
Read the target pull request and keep only the relevant automatically-managed triage labels in sync.
The target pull request is:
- PR
#${{ github.event.inputs.pull_request_number }}forworkflow_dispatch
Managed labels:
- Type:
bug,feature - App surface:
apps/stage-pocket,apps/stage-tamagotchi,apps/stage-web - Environment:
env/os-all,env/os-linux,env/os-macos,env/os-windows - Scope:
scope/agent,scope/audio-input,scope/audio-output,scope/avatar,scope/avatar/live2d,scope/avatar/vrm,scope/documentation,scope/engineering,scope/extension,scope/game-playing-ai,scope/i18n,scope/providers,scope/server-api,scope/ui - Priority:
priority/general,priority/nice-to-have,priority/urgent - Fallback:
pending triage
Never add or remove any label outside that managed set.
Required inputs
Inspect, in order:
- PR title
- PR body
- Linked issues explicitly referenced in the PR title or body
- Changed files
- Existing labels on the PR
Do not use web search. Do not use bash or edit tools. Do not post comments. Do not update the PR body or title. Do not request reviewers.
Classification rules
Confidence and fallback
- Only apply a managed label when the evidence is explicit from the PR text, linked issues, or changed file paths.
- If the PR is too vague, too short, intentionally a test, or the classification is meaningfully ambiguous, remove all currently-present managed labels and leave only
pending triage. - If you can classify it confidently, remove
pending triage.
Type labels
- Do not apply both
bugandfeature. - For documentation-first PRs, do not apply
feature.
Documentation
- Apply
scope/documentationwhen the PR is primarily documentation, manuals, tutorials, guides, README work, or mostly touchesdocs/and similar documentation files. - Documentation PRs may still receive environment labels if the docs are explicitly platform-specific, but they should not receive
feature.
App labels
- Apply
apps/stage-webwhen files underapps/stage-web/change, or the PR text explicitly says the change is for the web app or PWA/browser surface. - Apply
apps/stage-tamagotchiwhen files underapps/stage-tamagotchi/change, or the PR text explicitly says desktop/Electron/Windows/macOS/Linux app. - Apply
apps/stage-pocketwhen files underapps/stage-pocket/change, or the PR text explicitly says mobile/iOS/Android app. - Multiple app labels are allowed when the evidence is explicit.
Environment labels
- Apply
env/os-windows,env/os-macos, orenv/os-linuxonly when the PR text or linked issues explicitly call out that platform. - Apply
env/os-allonly when the PR explicitly describes all major desktop platforms or a clearly cross-platform OS fix. - Do not infer OS labels from maintainers' guesses alone.
env/os-allshould replace per-OS labels when the evidence is clearly all-platform.
Scope labels
- Apply
scope/uifor UI, UX, settings, layouts, views, components, visual behavior, or interaction flows. - Apply
scope/providersfor provider integrations, provider configuration, model/provider selection, or supported provider behavior. - Apply
scope/audio-inputfor ASR, STT, microphone capture, VAD, hearing, transcription input pipelines. - Apply
scope/audio-outputfor TTS, voice output, speech synthesis, voice playback, or voice cloning. - Apply
scope/avatarfor general avatar rendering/control/interaction. - Apply
scope/avatar/live2dwhen the work is specifically about Live2D. - Apply
scope/avatar/vrmwhen the work is specifically about VRM. - Apply
scope/engineeringfor CI, build, release, packaging, toolchain, workflow, infrastructure, repository automation. - Apply
scope/extensionfor extensions, plugins, mod APIs, tentacle APIs, or channel integrations. - Apply
scope/agentfor agent workflow, orchestration, LLM runtime, prompt routing, agent behavior. - Apply
scope/server-apifor the maintained server API or public server service behavior. - Apply
scope/i18nfor translation keys, locale additions, localization-only or localization-heavy work. - Apply
scope/game-playing-aiwhen the change is specifically about game-playing agent behavior. - Multiple scope labels are allowed when the evidence is explicit and non-conflicting.
- If a PR is clearly documentation-first, use
scope/documentationinstead of trying to classify it as another primary scope unless the non-documentation scope is also explicit and substantial.
Priority labels
- Apply at most one priority label.
- Apply
priority/urgentonly when the PR or linked issue clearly says urgent, critical, blocker, severe regression, production breakage, or similarly high urgency. - Apply
priority/generalwhen the PR or linked issue clearly says it should be in the current release or treated as normal release work. - Apply
priority/nice-to-havewhen the PR or linked issue clearly frames it as polish, optional, low urgency, or explicitly nice-to-have. - If urgency is not explicit, do not apply any priority label.
Label synchronization behavior
When you finish classification:
- Compute the desired managed labels for this PR.
- Compare them against the PR's existing managed labels only.
- Remove managed labels that are no longer desired.
- Add desired managed labels that are missing.
Important constraints:
- Never remove unmanaged labels.
- Never add more labels than the evidence supports.
- If confident classification is possible, do not leave
pending triage. - If confident classification is not possible, the only managed label that should remain is
pending triage.