Skip to content

feat(#1811): add question action to triage agent - #1927

Merged
rh-hemartin merged 2 commits into
mainfrom
agent/1811-triage-question-action
Jun 5, 2026
Merged

feat(#1811): add question action to triage agent#1927
rh-hemartin merged 2 commits into
mainfrom
agent/1811-triage-question-action

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

The triage agent previously had no way to distinguish support requests (questions) from feature requests, causing questions to be misclassified. This adds a new "question" action type that lets the agent recognize question-style issues, attempt to answer them using repository context, and ask the reporter whether they want to convert the issue into a feature request.

Changes:

  • Schema: add "question" to the action enum in
    triage-result.schema.json (no additional required fields
    beyond the base action/reasoning/comment)
  • Agent prompt: add question detection guidance in Phase 1
    scope identification and a new Action: question section
    with detection heuristics and output format
  • Post-script: add question case handler that removes
    blocked/needs-info labels, applies a "question" control
    label, and posts an interactive comment
  • Pre-script: reset the "question" label alongside other
    triage control labels
  • Control labels: add "question" to CONTROL_LABELS array
    so label_actions cannot manipulate it
  • User docs: add "question" to the control labels table
  • Tests: add 6 post-triage tests and 1 schema validation
    test covering the new action

Note: pre-commit could not run in sandbox due to Go toolchain permission error (unrelated infrastructure issue). The post-script runs pre-commit authoritatively on the runner.


Closes #1811

Post-script verification

  • Branch is not main/master (agent/1811-triage-question-action)
  • Secret scan passed (gitleaks — 4939eb52904be897ccf76b36a5f18f1130f51cb7..HEAD)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

The triage agent previously had no way to distinguish support
requests (questions) from feature requests, causing questions
to be misclassified. This adds a new "question" action type
that lets the agent recognize question-style issues, attempt
to answer them using repository context, and ask the reporter
whether they want to convert the issue into a feature request.

Changes:
- Schema: add "question" to the action enum in
  triage-result.schema.json (no additional required fields
  beyond the base action/reasoning/comment)
- Agent prompt: add question detection guidance in Phase 1
  scope identification and a new Action: question section
  with detection heuristics and output format
- Post-script: add question case handler that removes
  blocked/needs-info labels, applies a "question" control
  label, and posts an interactive comment
- Pre-script: reset the "question" label alongside other
  triage control labels
- Control labels: add "question" to CONTROL_LABELS array
  so label_actions cannot manipulate it
- User docs: add "question" to the control labels table
- Tests: add 6 post-triage tests and 1 schema validation
  test covering the new action

Note: pre-commit could not run in sandbox due to Go
toolchain permission error (unrelated infrastructure issue).
The post-script runs pre-commit authoritatively on the
runner.

Closes #1811
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Site preview

Preview: https://b2ac162e-site.fullsend-ai.workers.dev

Commit: 1a2db28a44a2a8336c515d4a78b26e0972261c7e

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 5, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [consumer-completeness] internal/scaffold/fullsend-repo/skills/issue-labels/SKILL.md:19-24 — The issue-labels skill's control-label list does not include question. The PR adds question to CONTROL_LABELS in post-triage.sh and to the docs/agents/triage.md control labels list, but the upstream skill file still lists only six control labels. The triage agent will not be warned that question is a control label when using this skill, and may recommend it in label_actions. The post-script will correctly refuse it (CONTROL_LABELS is updated), but the agent's recommendation will be silently discarded, creating confusing behavior.
    Remediation: Add - \question`to the control labels list ininternal/scaffold/fullsend-repo/skills/issue-labels/SKILL.md`.

Low

  • [comment-inaccuracy] internal/scaffold/fullsend-repo/scripts/post-triage.sh:77 — The comment was updated from "resets the first four" to "resets the first five", but question was appended to the end of CONTROL_LABELS (position 7), not position 5. The "first five" of CONTROL_LABELS would be needs-info through blocked, but pre-triage.sh actually resets needs-info, ready-to-code, duplicate, feature, question (items 1-4 and 7). The comment's "first N" shorthand no longer accurately describes the relationship between CONTROL_LABELS ordering and the pre-triage reset list.

  • [pattern-inconsistency] internal/scaffold/fullsend-repo/agents/triage.md:98 — The new question-detection bullet uses bold formatting (**Is this a question?**) while all other Phase 1 bullets are plain list items. The bold is arguably intentional (it marks an early-exit condition), but it deviates from the established pattern in Phases 1-3.

Previous run

Review

Findings

Low

  • [stale-doc] docs/agents/triage.md:82 — The example issue-labels skill lists control labels as needs-info, ready-to-code, duplicate, blocked, triaged but does not include the new question label. The PR correctly updated the control labels TABLE (line 44) but missed this reference in the example code block. Functionally harmless — post-triage.sh enforces the CONTROL_LABELS array regardless — but someone copying the example verbatim would get an incomplete list.
    Remediation: Add question to the control labels list in the example skill at line 82.

  • [stale-doc] internal/scaffold/fullsend-repo/scripts/post-triage.sh:77 — The comment says "pre-triage.sh resets the first four" but pre-triage now resets 5 labels (with question added to the reset loop). The ordinal reference is no longer accurate.
    Remediation: Update the comment to reflect the current count of labels reset by pre-triage.sh.

@@ -76,7 +76,7 @@ remove_label() {
# add or remove these via label_actions. This list covers labels that the
# pipeline itself applies (pre-triage.sh resets the first four; the action

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] stale-doc

Comment says 'pre-triage.sh resets the first four' but pre-triage now resets 5 labels (with question added to the reset loop). The ordinal reference is no longer accurate.

Suggested fix: Update the comment to reflect the current count of labels reset by pre-triage.sh.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Jun 5, 2026
@rh-hemartin rh-hemartin self-assigned this Jun 5, 2026
@rh-hemartin

Copy link
Copy Markdown
Member

/fs-fix address the feedback

@rh-hemartin

Copy link
Copy Markdown
Member

/fs-fix

- Add `question` to the control labels list in the issue-labels skill
  example (docs/agents/triage.md)
- Update comment in post-triage.sh from "first four" to "first five"
  to reflect the addition of `question` to pre-triage label resets

Addresses review feedback on #1927

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: fullsend-fix <fullsend-code@users.noreply.github.com>
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (human-triggered)

Addressed both review findings: added missing question label to the control labels example in docs, and corrected the stale ordinal reference in the post-triage comment.

Fixed (2):

  1. stale-doc: control labels list in issue-labels skill example missing question (docs/agents/triage.md): Added question to the control labels list in the example skill at line 83
  2. stale-doc: comment says 'first four' but pre-triage now resets five labels (internal/scaffold/fullsend-repo/scripts/post-triage.sh): Updated comment from 'first four' to 'first five' to reflect the addition of question to the pre-triage reset loop

Tests: passed

Updated by fullsend fix agent

@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment and removed ready-for-merge All reviewers approved — ready to merge labels Jun 5, 2026
@rh-hemartin
rh-hemartin added this pull request to the merge queue Jun 5, 2026
Merged via the queue into main with commit 653b8c4 Jun 5, 2026
10 of 12 checks passed
@rh-hemartin
rh-hemartin deleted the agent/1811-triage-question-action branch June 5, 2026 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Triage agent: distinguish support requests (questions) from feature requests

2 participants