Issue Addressing
Issue Addressing converts issue descriptions into working code. DAIV reads the issue, generates an implementation plan, waits for your approval, and opens a merge request (GitLab) or pull request (GitHub) with the changes.
How it works
- You create or update an issue and add a DAIV label
- DAIV analyzes the issue title, description, and any attached images
- DAIV posts a plan as a comment on the issue
- You review and approve the plan
- DAIV implements the changes and opens a merge/pull request
graph TD
A["Create issue with daiv label"] --> B["DAIV analyzes issue"]
B --> C["Plan posted as comment"]
C --> D{"Approve?"}
D -- "@daiv proceed" --> E["DAIV implements changes"]
D -- "Update issue" --> B
E --> F["Merge/Pull request created"]
Triggering
Add any of the following labels to an issue to trigger DAIV:
| Label | Behavior |
|---|---|
daiv |
Generates a plan and waits for approval before implementing |
daiv-auto |
Generates a plan and executes it immediately without waiting for approval |
daiv-max |
Uses a more capable model with deeper reasoning (see Max mode) |
Labels are case-insensitive (DAIV, Daiv, and daiv all work). You can combine them — for example, daiv-auto + daiv-max will auto-execute using the more capable model.
Plan approval
By default, DAIV uses a human-in-the-loop approach. After generating a plan, it waits for explicit approval before making code changes.
To approve a plan, comment on the issue and mention DAIV — for example:
| Text Only | |
|---|---|
The exact wording is not a keyword. DAIV reacts to any comment that mentions it (@daiv); it reads your comment together with the plan it posted and acts on your intent. A comment like @daiv looks good, go ahead works just as well as @daiv proceed.
You can also provide feedback or additional instructions in your comment, and DAIV will take them into account — either applying them during implementation or revising the plan from your feedback.
Tip
If you don't agree with the plan, comment with the changes you'd like and DAIV will update the plan accordingly.
Max mode
The daiv-max label switches DAIV to a more capable model with a higher thinking level:
| Setting | Standard | Max |
|---|---|---|
| Model | Configurable (default: Claude Sonnet) | Configurable (default: Claude Opus) |
| Thinking level | Configurable (default: medium) | Configurable (default: high) |
This is useful for complex issues that require more sophisticated analysis. Both the standard and max models can be configured via environment variables.
Re-running
After a plan is executed, running a second plan on the same issue will update the existing merge/pull request rather than creating a new one.
If an unexpected error occurs during execution, DAIV creates a draft merge/pull request to preserve any changes already made.
AGENTS.md suggestion
When DAIV creates a merge request for a repository that doesn't have an AGENTS.md file (or whatever context_file_name is configured to), it automatically adds a comment suggesting you create one. The comment includes a one-click link that opens a pre-filled issue — just click and submit.
The one-click link pre-fills the issue with the daiv-auto label, so once you submit it DAIV picks it up and immediately runs the /init skill to analyze your repository and open a merge/pull request with the generated AGENTS.md — no approval step required.
To disable this suggestion for a specific repository, add the following to .daiv.yml:
| YAML | |
|---|---|
To disable it globally across all repositories, set the environment variable:
| Text Only | |
|---|---|
Configuration
Issue addressing is enabled by default. To disable it, add the following to your .daiv.yml:
Related pages
- Repository Config — turn issue addressing on or off, restrict who can trigger DAIV, and set branch and commit conventions
- Slash Commands & Skills — steer an issue with
/planand custom skills - Pull Request Assistant — what happens once the merge request is open
- Sandbox — where the implementation is built and tested