update-triage
GitHub基于维护者对近期Issue的标签修改和评论反馈,自动更新本地Triage技能规则与配置。通过聚合信号优化标签体系和归属推断,实现Triage策略的自我迭代。
Trigger Scenarios
Install
npx skills add warpdotdev/oz-for-oss --skill update-triage -g -y
SKILL.md
Frontmatter
{
"name": "update-triage",
"description": "Update the repo-local triage-issue-local companion skill using signals from recently triaged issues (maintainer re-labels, re-opens, follow-up comments). Use when refining repo-specific triage heuristics and label taxonomy based on how maintainers overrode previous triage output."
}
Update Triage
Use this skill to improve .agents/skills/triage-issue-local/SKILL.md (and, when a label taxonomy change is warranted, .github/issue-triage/config.json) from real maintainer feedback on recent triage outcomes. The core skill at .agents/skills/triage-issue/SKILL.md is the cross-repo contract and is read-only from this loop.
Closed-as-duplicate signals are handled by the separate update-dedupe loop, not here.
Write surface
This self-improvement loop may only write to:
.agents/skills/triage-issue-local/(andSKILL.mdinside it).github/issue-triage/*
It must NOT touch:
.agents/skills/triage-issue/SKILL.md(the core contract)- any other core skill
- the dedupe companion
.agents/skills/dedupe-issue-local/SKILL.md(owned byupdate-dedupe)
The self-improvement runner enforces this via a git diff check against allowed prefixes before pushing. A violation aborts the run.
Inputs
- Optional repository override if you are not running from the target checkout.
- Optional time window override when you need something other than the default seven-day lookback.
Workflow
- Verify GitHub CLI auth:
gh auth status
- Aggregate the triage-feedback signals for recently triaged issues with the bundled script:
python3 .agents/skills/update-triage/scripts/aggregate_triage_feedback.py
By default this targets the current repo and looks back 7 days. It collects issues that were triaged in the window, any subsequent maintainer re-labels, re-opens, and follow-up comments. Closed-as-duplicate events are intentionally excluded. The script writes structured JSON to a temporary file and prints the path.
- Read the generated JSON and look for repeated reviewer signals:
- maintainers repeatedly flipping the same label on similar issues (a label-taxonomy hint)
- maintainers leaving the same kind of follow-up comment on the same class of issue (a recurring follow-up-question pattern)
- maintainers consistently identifying a different owner than Oz inferred (an owner-inference hint)
- Propose the smallest edit that explains the repeated signal:
- Prefer editing
.agents/skills/triage-issue-local/SKILL.mdunder the override categories the coretriage-issueskill marks as overridable (label taxonomy, owner-inference hints, recurring follow-up-question patterns, recurring issue-shape heuristics, repro defaults, known-duplicate clusters). - Only edit
.github/issue-triage/config.jsonwhen the signal is a concrete label-taxonomy change (new label, renamed label, or description clarification). Never changecolorvalues without explicit maintainer guidance.
- Keep the core triage contract stable — never edit
triage-issue/SKILL.md. Only the-localcompanion and the triage config evolve from feedback.
Evidence Rules
- Prefer patterns backed by multiple issues or a strong explicit maintainer statement.
- Skip the PR when there is no repeated signal. A one-off maintainer override is not enough evidence.
- Avoid encoding reporter-authored content as triage rules.
- Do not weaken the reserved-label rules (
ready-to-implement,ready-to-spec) or the mutual exclusivity ofduplicate_ofandfollow_up_questions.
Final Checks
- Re-read the updated
triage-issue-localcompanion skill and confirm any new rules are explicit. - Keep the companion concise; do not turn it into a long style guide.
- Commit any changes on a local branch named
oz-agent/update-triage. Do NOT push the branch; the Python entrypoint will run a write-surface guard and push only when the guard passes. - If the updates warrant a PR, it will be opened from the pushed branch. Tag
@captainsafiaas a reviewer on that PR. - Validate any temporary JSON with
jqbefore relying on it.
Version History
- 345a0f5 Current 2026-07-24 17:41


