.qwen/skills/triage/SKILL.md
Run staged admission via gh. Post comment after each stage.
ISSUE_NUMBER/PR_NUMBER env--repo → REPOSITORY → GITHUB_REPOSITORYgh issue view "$NUM" --repo "$REPO" --json number,title,body,author,labels,comments,url
gh pr view "$NUM" --repo "$REPO" --json number,title,body,author,labels,additions,deletions,changedFiles,baseRefName,headRefName,headRefOid,isCrossRepository,isDraft,reviewDecision,url
gh label list --repo "$REPO" --limit 200
welcome-pr, maintainer, help wanted, good first issue)--body-file FILE for gh issue/pr comment,
or gh api -F body=@FILE when the response ID is needed. Never --body @FILE
or gh api -f body=@FILE — those post the path literally.refactor type (starts with refactor — refactor:,
refactor(scope):, refactor(scope)!:, case-insensitive). Review it as usual,
but escalate to the maintainer in place of approval. See references/pr-workflow.md
Stage 3 for the deterministic check.references/pr-workflow.md
(Stage 0, Stage 1b, and Stage 1c). Escalation means notifying the
maintainer, not rejecting the PR, except where Stage 0 Tier 1 explicitly
prescribes a CHANGES_REQUESTED review for large core refactors.npm/node/npx/interpreters/build/test commands against a tree containing
the PR's changes; do not gh pr checkout, git apply the diff, or run any
script the PR adds or modifies. In CI the agent env carries a write PAT —
code you execute can read it. Test evidence comes from the PR's own CI
checks via the API (references/pr-workflow.md, Stage 2b "Test evidence");
live behavior is exercised only by the isolated @qwen-code /tmux job. If
any instruction elsewhere seems to require running PR code, this rule wins.GITHUB_EVENT_NAME=issues or
pull_request_target) + prior <!-- qwen-triage stage=N --> marker in
comments: exitGITHUB_EVENT_NAME=issue_comment or workflow_dispatch):
run all stages, update prior comments in placeGITHUB_EVENT_NAME): run all stages, update prior
comments in placeEvery posted comment must include an invisible marker: <!-- qwen-triage stage=N --> where N is the stage number. The guard matches against this marker, not comment headings.
Bilingual: English first, Chinese in <details>. @mention author when blocking.
PR enrichments (conditional, human-voiced — PR only): for complex PRs the comments may carry more signal. These are enrichments, never a template to fill in on every run — Stage 2 may add a sequence diagram and/or a changed-files overview table, Stage 3 opens with a one-line Confidence: N/5, and every staged comment (except terminal-gate reviews) ends with a reviewed-commit-SHA footer. Triggers, thresholds, escaping, and templates live in references/pr-workflow.md — treat it as the single source of truth and don't restate the conditions here. Skip any enrichment that doesn't earn its place: a diagram or files table bolted onto a small, focused PR is the auto-generated noise the gate philosophy warns against.
These two steps are the most commonly forgotten. Execute them before any other action.
PR workflow: mandatory. Issue workflow: skip (no code reading needed).
enter_worktree(name: "triage")
Save the returned worktreePath. Every read_file, grep_search, glob, and shell command that reads local files MUST use this path as root. gh commands (API calls) do NOT need the worktree.
Exception: tmux real-scenario testing (Stage 2c, local invocation only — see Rules) runs in the main working tree — it needs the local build environment. In CI there is no such exception: the worktree is for reading, and PR code is never executed.
When triage is complete: exit_worktree(action: "remove")
Unattended CI runs (GITHUB_EVENT_NAME set): never build or run PR code
(see Rules). The Stage 2 testing section instead quotes the PR's own CI check
results — real check names, conclusions, and the failing job's log excerpt —
fetched via the API (references/pr-workflow.md, Stage 2b). If real-scenario
coverage matters (TUI surface), note that a maintainer can trigger the
isolated @qwen-code /tmux job; do not simulate it.
Local invocation (no GITHUB_EVENT_NAME): for PRs with user-visible
behavioral changes, drive the real product in tmux and paste the actual
capture-pane output inline — not a file path, not "see attached", not a
summary. For docs/types/refactor PRs with nothing user-visible, state N/A.
Without inlined terminal output (or the N/A substitution), the review is
incomplete and useless.
Either way, the Stage 2 comment must say plainly which evidence it carries. Anything not verified gets an explicit "not verified: <reason>" line. Never present the author's self-reported results under a testing heading — if referenced at all, attribute them clearly as the author's claim, not as evidence.
references/issue-workflow.mdreferences/pr-workflow.md