Problem
The add_labels, set_issue_type, and set_issue_field tools should request rationale and confidence consistently. Today these fields are optional, so models sometimes provide them and sometimes omit them despite using the same model, gh-aw version, and schema.
Models treat schema constraints as hard requirements but description hints as soft suggestions. However, requiring issue-intent metadata unconditionally would break compatibility with older GitHub Enterprise Server deployments that do not support issue intents.
Proposed behavior
Issue intents should be enabled and required by default, with an explicit per-safe-output opt-out:
safe-outputs:
add-labels:
issue-intent: false
set-issue-type:
issue-intent: false
set-issue-field:
issue-intent: false
Runtime handling should remain lenient. Older generated tool calls or direct calls that omit intent metadata should still be accepted rather than rejected or retried solely because enrichment data is missing.
Default: issue intents enabled
add_labels exposes only the object form and requires name, rationale, and confidence for each label.
set_issue_type requires rationale and confidence in its input schema.
set_issue_field requires rationale and confidence in its input schema.
- Intent-capable API paths and feature headers remain enabled.
- Missing metadata at runtime remains tolerated for backward compatibility; handlers should omit unavailable enrichment rather than fabricate rationale or confidence.
Per-tool opt-out: issue-intent: false
- Preserve the legacy permissive tool schemas, including string labels and optional intent metadata.
- Do not add the intent instruction suffix to tool descriptions.
- Do not send intent metadata or intent-specific feature headers.
- Use legacy API paths for label, issue type, and issue field updates where supported.
Implementation scope
This is not only a static schema change. It requires:
- A new
issue-intent field on each affected safe-output configuration, defaulting to enabled.
- Workflow-specific tool-schema generation for enabled and disabled modes.
- Propagation of the configured mode to the safe-output runtime handlers.
- Legacy execution paths when issue intents are disabled.
- Documentation for the default and the GHES compatibility opt-out.
The existing normalization helpers should continue to accept optional metadata so runtime input remains backward compatible.
Acceptance criteria
- Generated schemas require rationale/confidence by default for
add_labels, set_issue_type, and set_issue_field.
- Setting
issue-intent: false on an affected safe output generates its legacy-compatible schema without changing other tools.
- Disabled mode does not emit intent metadata or
GraphQL-Features: update_issue_suggestions.
- Tool calls missing rationale/confidence remain runtime-compatible even when generated schemas normally require them.
- Tests cover default mode, disabled mode, legacy calls without metadata, and label string/object schema behavior.
Evidence
Across multiple triage workflow artifacts:
- Some runs emitted objects with rationale.
- Other runs emitted plain strings without rationale.
- Both used
claude-sonnet-4.6, gh-aw-actions v0.82.2, and AWF v0.27.22.
The inconsistency comes from the permissive schema allowing both formats; the opt-out preserves that compatibility only where explicitly needed.
Problem
The
add_labels,set_issue_type, andset_issue_fieldtools should requestrationaleandconfidenceconsistently. Today these fields are optional, so models sometimes provide them and sometimes omit them despite using the same model, gh-aw version, and schema.Models treat schema constraints as hard requirements but description hints as soft suggestions. However, requiring issue-intent metadata unconditionally would break compatibility with older GitHub Enterprise Server deployments that do not support issue intents.
Proposed behavior
Issue intents should be enabled and required by default, with an explicit per-safe-output opt-out:
Runtime handling should remain lenient. Older generated tool calls or direct calls that omit intent metadata should still be accepted rather than rejected or retried solely because enrichment data is missing.
Default: issue intents enabled
add_labelsexposes only the object form and requiresname,rationale, andconfidencefor each label.set_issue_typerequiresrationaleandconfidencein its input schema.set_issue_fieldrequiresrationaleandconfidencein its input schema.Per-tool opt-out:
issue-intent: falseImplementation scope
This is not only a static schema change. It requires:
issue-intentfield on each affected safe-output configuration, defaulting to enabled.The existing normalization helpers should continue to accept optional metadata so runtime input remains backward compatible.
Acceptance criteria
add_labels,set_issue_type, andset_issue_field.issue-intent: falseon an affected safe output generates its legacy-compatible schema without changing other tools.GraphQL-Features: update_issue_suggestions.Evidence
Across multiple triage workflow artifacts:
claude-sonnet-4.6, gh-aw-actions v0.82.2, and AWF v0.27.22.The inconsistency comes from the permissive schema allowing both formats; the opt-out preserves that compatibility only where explicitly needed.