Skip to content

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

  1. You create or update an issue and add a DAIV label
  2. DAIV analyzes the issue title, description, and any attached images
  3. DAIV posts a plan as a comment on the issue
  4. You review and approve the plan
  5. 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
@daiv proceed

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
suggest_context_file: false

To disable it globally across all repositories, set the environment variable:

Text Only
DAIV_SUGGEST_CONTEXT_FILE_ENABLED=False

Configuration

Issue addressing is enabled by default. To disable it, add the following to your .daiv.yml:

YAML
issue_addressing:
  enabled: false