|
| 1 | +--- |
| 2 | +title: Managing rationale, confidence, and approvals for issues |
| 3 | +shortTitle: Manage rationale, confidence, and approvals |
| 4 | +allowTitleToDifferFromFilename: true |
| 5 | +intro: 'Set up and manage rationale, confidence, and approvals for issues handled by {% data variables.copilot.copilot_automation %}.' |
| 6 | +product: '{% data reusables.gated-features.copilot-automations %}<br><a href="https://github.com/features/copilot/plans?ref_product=copilot&ref_type=purchase&ref_style=button&utm_source=docs-create-cca-automations&utm_medium=docs&utm_campaign=msbuild-2026" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"><span>Sign up for {% data variables.product.prodname_copilot_short %}</span> {% octicon "link-external" height:16 %}</a>' |
| 7 | +versions: |
| 8 | + feature: copilot |
| 9 | +contentType: how-tos |
| 10 | +category: |
| 11 | + - Author and optimize with Copilot |
| 12 | +--- |
| 13 | + |
| 14 | +Rationale and confidence need no extra configuration. When an {% data variables.copilot.copilot_automation %}'s agent changes a supported issue attribute, it attaches a rationale and a confidence level automatically. Whether that change applies directly or waits for review depends on your repository's automation level, or on an explicit request to suggest rather than apply the change. |
| 15 | + |
| 16 | +## Setting your repository's automation level |
| 17 | + |
| 18 | +> [!NOTE] |
| 19 | +> Configuring an automation level is rolling out gradually and might not be available in your repository yet. |
| 20 | +
|
| 21 | +Your repository's automation level sets the confidence threshold used to route every supported change. Changes rated below the threshold are held as suggestions; changes at or above it apply automatically. The default level is **Cautious**, so only high-confidence changes apply automatically until you change it. |
| 22 | + |
| 23 | +{% data reusables.repositories.navigate-to-repo %} |
| 24 | +{% data reusables.repositories.sidebar-settings %} |
| 25 | +1. In the "Planning" section of the sidebar, click **Agent suggestions for issues**. |
| 26 | +1. Under "Automation level," select the level that fits your repository: |
| 27 | + * **Full control**: Every change is held for review. Nothing is applied automatically. |
| 28 | + * **Cautious** (default): Only high-confidence changes are applied automatically. Everything else is held for your review. |
| 29 | + * **Balanced**: Routine, clear-cut changes are applied automatically. Anything with ambiguity is held for review. |
| 30 | + * **Full automation**: Every change is applied automatically. The agent only holds a change back if it's flagged as uncertain. |
| 31 | +1. Click **Save**. |
| 32 | + |
| 33 | +## With {% data variables.copilot.copilot_cloud_agent %} |
| 34 | + |
| 35 | +1. Create an {% data variables.copilot.copilot_automation %} that triages issues, following [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations). Use the **When an issue is created** trigger, or run the {% data variables.copilot.copilot_automation %} on a schedule. |
| 36 | +1. Grant the {% data variables.copilot.copilot_automation %} the issue tools for the attributes you want it to change, such as updating labels, setting the type, editing fields, assigning users, or closing issues. |
| 37 | +1. In the prompt, describe the triage task, for example: `Triage this issue by setting a type, labels, and priority, and explain your reasoning for each.` You don't need to mention rationale, confidence, or suggestions explicitly. To hold specific changes for review regardless of confidence, ask the agent to suggest those changes rather than apply them. |
| 38 | +1. Save the {% data variables.copilot.copilot_automation %}. When it runs, its changes carry a rationale and a confidence level. Changes below your repository's automation level, and any changes you asked the agent to suggest, wait in the approvals panel on the issue. |
| 39 | + |
| 40 | +## With {% data variables.copilot.github_agentic_workflows %} |
| 41 | + |
| 42 | +Issue intents, the rationale and confidence metadata attached to a workflow's issue changes, are optional and enabled by default. Existing workflows keep working without changes. |
| 43 | + |
| 44 | +1. Update to the latest version of the {% data variables.copilot.github_agentic_workflows %} extension by running `gh aw upgrade`. |
| 45 | +1. Add a workflow that triages issues to your repository's `.github/workflows` directory. You can start from an issue triage sample or author your own. See the [{% data variables.copilot.github_agentic_workflows %}](https://gh.io/gh-aw) documentation. |
| 46 | +1. Give the workflow the outputs for the attributes you want it to change by listing them under `safe-outputs` in the workflow's frontmatter. For example, `add-labels` to apply labels, `set-issue-type` to set the issue type, `set-issue-field` to edit fields, `assign-to-user` or `assign-to-agent` to assign issues, and `close-issue` to close them. Adding these outputs is enough for the workflow to make the corresponding issue changes with a rationale and confidence level. |
| 47 | +1. Optionally, control whether a safe output requires issue intent metadata by setting `issue-intent` on it: |
| 48 | + |
| 49 | + ```yaml |
| 50 | + safe-outputs: |
| 51 | + add-labels: |
| 52 | + issue-intent: true |
| 53 | + ``` |
| 54 | +
|
| 55 | + * Omit `issue-intent`, or leave it unset, to keep it optional: the agent is encouraged to provide a rationale and confidence level, but the output still works without them. |
| 56 | + * Set `issue-intent: true` to require a rationale and confidence level for that output. The workflow fails if the agent omits them. |
| 57 | + * Set `issue-intent: false` to opt out entirely: the output never carries rationale or confidence metadata. |
| 58 | +1. In the workflow prompt, describe the triage task. To hold specific changes for review regardless of confidence, ask the agent to suggest those changes rather than apply them. |
| 59 | +1. Compile the workflow by running `gh aw compile`, then commit the workflow file and its generated lock file. |
| 60 | +1. When the workflow runs, its changes carry a rationale and a confidence level (unless you opted out). Changes below your repository's automation level, and any changes the agent suggested, wait in the approvals panel on the issue. |
| 61 | + |
| 62 | +## With the REST or GraphQL API |
| 63 | + |
| 64 | +If you build your own integration instead of using an {% data variables.copilot.copilot_automation %}, you can use the same issue-writing REST and GraphQL APIs to include a rationale and confidence level with a change, or mark a change as a suggestion to hold it for review. The change is routed the same way as a change from an {% data variables.copilot.copilot_automation %} or a {% data variables.copilot.github_agentic_workflows %} workflow: subject to your repository's automation level, or held for review if you marked it as a suggestion. |
| 65 | + |
| 66 | +## Finding issues with pending suggestions |
| 67 | + |
| 68 | +To find issues that have suggestions waiting for review, search using the `has:suggestions` qualifier, for example `is:issue is:open has:suggestions`. |
| 69 | + |
| 70 | +## Reviewing suggestions in the approvals panel |
| 71 | + |
| 72 | +When a change is held for review, it waits in an approvals panel on the issue instead of taking effect. Use the panel to inspect each suggestion and decide what to apply. |
| 73 | + |
| 74 | +1. Open the issue. Suggested changes appear in the approvals panel. |
| 75 | +1. Inspect each suggestion. It shows the proposed change, such as a label, type, field, assignee, or close, along with the rationale and confidence level. |
| 76 | +1. Act on the suggestions: |
| 77 | + * Select **Accept** to apply a suggestion, or **Decline** to dismiss it. |
| 78 | + * Select **Accept all** or **Decline all** to act on every pending suggestion at once. |
| 79 | + |
| 80 | +Accepted changes take effect on the issue immediately. Declined suggestions are dismissed without changing the issue. |
| 81 | + |
| 82 | +Ready to put this into practice? See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations) to create an {% data variables.copilot.copilot_automation %} that triages issues for you. |
0 commit comments