Skip to content

Bug: close-issue schema rejects documented state-reason field #27265

@dsyme

Description

@dsyme

Summary

The close-issue safe output documentation shows state-reason as a valid configuration field:

safe-outputs:
  close-issue:
    target: "triggering"
    state-reason: "duplicate"   # completed (default), not_planned, duplicate

However, the compiler rejects it:

error: Unknown property: state-reason. Valid fields are: allowed-repos, max, required-labels, required-title-prefix, staged, target, target-repo

Root Cause

The JSON schema at pkg/parser/schemas/main_workflow_schema.json is missing state-reason from the close-issue properties, but the field is fully wired up in the Go code:

  • Go struct: CloseEntityConfig.StateReason has a proper yaml:"state-reason" tag (pkg/workflow/close_entity_helpers.go line 72)
  • Handler emission: compiler_safe_outputs_handlers.go line 81 emits state_reason into the handler config JSON via AddIfNotEmpty("state_reason", c.StateReason)
  • JSON schema: Missing state-reason → schema validation with additionalProperties: false rejects it before parsing

Suggested Fix

Add state-reason to the close-issue properties in pkg/parser/schemas/main_workflow_schema.json:

"state-reason": {
  "type": "string",
  "enum": ["completed", "not_planned", "duplicate"],
  "description": "Reason for closing the issue (default: completed)"
}

Reproduction

---
on:
  issues:
    types: [opened]
permissions: read-all
engine:
  id: copilot
safe-outputs:
  close-issue:
    target: "triggering"
    state-reason: "completed"
---
Close this issue.

Run gh aw compile → error on state-reason.

Note

close-discussion does NOT have the same issue — its resolution reasons (RESOLVED, DUPLICATE, etc.) are correctly documented as runtime agent output fields, not frontmatter config.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions