Skip to content

fix(triage): file reports through the issue form so via-triage sticks - #9412

Closed
feiyuceng06-prog wants to merge 1 commit into
pingdotgg:mainfrom
feiyuceng06-prog:fix/triage-via-triage-label
Closed

feiyuceng06-prog wants to merge 1 commit into
pingdotgg:mainfrom
feiyuceng06-prog:fix/triage-via-triage-label

Conversation

@feiyuceng06-prog

@feiyuceng06-prog feiyuceng06-prog commented Sep 3, 2026 •

Copy link
Copy Markdown

Fixes #8061.

The playbook tells the triage agent to label the issue via-triage, but neither
path it offers can apply that label from an ordinary contributor account.

gh issue create --label via-triage needs triage or write permission. Without it
the label is dropped, and the command still exits 0 and prints the issue URL, so
the agent reports success:

$ gh api repos/pingdotgg/t3code --jq '.permissions'
{"admin":false,"maintain":false,"pull":true,"push":false,"triage":false}

That is how #8059 was filed. It is still unlabelled.

The fallback does not work either. It builds
https://github.com/pingdotgg/t3code/issues/new with title and body
parameters, which selects no template, so via-triage.yml's labels: block never
applies. blank_issues_enabled is false, so that URL lands on the template
chooser rather than a form, and issue forms prefill by field id anyway, not
body.

The playbook now says to check gh api repos/pingdotgg/t3code --jq .permissions.triage first, and when that is not true, to file through
?template=via-triage.yml with one url-encoded parameter per field id. GitHub
applies the template's labels whoever submits, so that is the one path that
reliably lands via-triage. It also warns off the labels query parameter, which
404s for anyone who cannot apply labels, and says what to do when the report is
too long to carry in a URL.

Both files changed together: TRIAGE_PLAYBOOK in
apps/server/src/cli/triagePrompt.ts has to stay byte-identical to
.github/triage/PLAYBOOK.md, and triagePrompt.test.ts already checks that. Text
only, no code paths touched, no UI change.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MP4xv7WtAw6hteCNMu7cfn


Note

Low Risk
Documentation-only playbook text for triage agents; no runtime code or GitHub integration paths changed.

Overview
Section 8 of the triage playbook is expanded so agents stop filing unlabeled issues when the submitter lacks GitHub triage/write permission.

The old single bullet about via-triage labeling is split into explicit steps: check gh api repos/pingdotgg/t3code --jq .permissions.triage before gh issue create --label via-triage (the label is dropped silently on failure). Without permission, agents must use issues/new?template=via-triage.yml with URL-encoded title and per-field ids from via-triage.yml, and must not pass labels (404 for readers who cannot apply labels). Long reports use the bare template form with user paste instead of URL prefill.

The unauthenticated fallback no longer points at a generic issues/new URL with title/body; it defers to the same issue-form flow. TRIAGE_PLAYBOOK in triagePrompt.ts is updated in lockstep with .github/triage/PLAYBOOK.md (existing byte-identity test unchanged).

Reviewed by Cursor Bugbot for commit 6b97494. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

File triage reports through issue form so via-triage label sticks

  • Updates triage filing guidance in both PLAYBOOK.md and triagePrompt.ts to check label-application permission before applying the via-triage label
  • When the account lacks permission or GitHub CLI is unauthenticated, falls back to the issue-template form with URL-prefilled template fields instead of label query parameters
  • Adds a bare-form path for long reports and separates title formatting from label application
  • Behavioral Change: unauthenticated fallback changes from a body-prefilled URL to the issue form; label query parameters are prohibited in the form fallback

Macroscope summarized 6b97494.

@github-actions github-actions Bot added vouch:unvouched Author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 3, 2026
Comment thread .github/triage/PLAYBOOK.md Resolved
@feiyuceng06-prog
feiyuceng06-prog force-pushed the fix/triage-via-triage-label branch from ca5ff0e to 04a4186 Compare September 3, 2026 11:41
@macroscopeapp

macroscopeapp Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 6b97494

Macroscope's review found this PR approvable — This is a small, synchronized update to the existing triage playbook and runtime prompt, correcting issue-form and label handling without changing application paths, schemas, deployments, or sensitive packages. Its runtime effect is confined to improving an already-existing issue-filing workflow.

You can add or adjust custom eligibility rules. Learn more.

`gh issue create --label via-triage` drops the label without a word unless the
account has triage or write permission, and the documented fallback URL selects
no template, so it applies none of via-triage.yml's labels either. Check the
permission first, and file through `?template=via-triage.yml` when it is absent.

Fixes pingdotgg#8061

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MP4xv7WtAw6hteCNMu7cfn
@feiyuceng06-prog
feiyuceng06-prog force-pushed the fix/triage-via-triage-label branch from 04a4186 to 6b97494 Compare September 3, 2026 11:50

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

Closing for missing verification results. #8061 establishes the old label failure, but this PR reports no observed check of the new template-prefill route or the synchronized playbook text. Add the focused parity-test result and a checked prefill example showing the intended fields, then request reconsideration. No new issue needs to be submitted for that check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched Author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

t3 triage cannot apply the via-triage label for external contributors

2 participants