Concepts

Plans and plan approval

DIJJI.ai doesn’t start changing your code the moment a run begins. First it shows you a plan — and waits for your decision.

The plan

A plan is the proposed work for a task, written out before any code is changed. When a run begins, DIJJI.ai reads the task, looks at your repository, and produces a plan describing how it intends to deliver the task: the approach it will take and the changes it expects to make.

The plan appears on the run detail page, in a card you can read top to bottom. It’s a formatted document, not a checklist of buttons — you read it the way you’d read a short design note from a teammate.

While the plan is waiting on you, the run sits in the Awaiting Plan Approval state. Nothing is written, nothing is merged, and no further credits are spent on the task until you decide.

Each plan carries a version number (Plan v1, Plan v2, and so on). A fresh plan is produced each time a run reaches this point, so if you reject a plan and start again, the next run shows a new version.

Why approval exists

Approval is the checkpoint between deciding what to do and doing it. It exists so you can catch a wrong direction while it’s still cheap to change — before code is written against it.

Reading the plan is where you confirm DIJJI.ai understood the task the way you meant it. If the approach is sound, you approve and let the run continue. If it misread the task, targets the wrong area, or skips something that matters, you reject — and no time is spent building the wrong thing.

Approving a plan

When you approve a plan, the run leaves the Awaiting Plan Approval state and returns to Running. DIJJI.ai proceeds with the work as described and carries on through the rest of the pipeline.

Approval is a go-ahead, not a guarantee — you still review the pull request the run opens at each stage. The plan is your check on intent; the gate is your check on the result.

Rejecting a plan

When you reject a plan, you’re asked for a reason. The reason is required: it’s how you tell DIJJI.ai what was wrong so the next attempt can do better.

Rejecting does two things:

  • The run moves to the Cancelled state. This attempt is over — DIJJI.ai does not revise the plan in place or try again on its own.
  • Your reason is posted as a comment on the source issue the task came from, so the feedback lives alongside the original request.

To try again, start a new run from the task page with Re-run. The new run reads your rejection reason, produces a fresh plan, and brings you back to Awaiting Plan Approval with a new version to review.

The run waits for you

There’s no time limit on plan approval. A run in Awaiting Plan Approval waits indefinitely — it won’t approve itself, expire, or move on without you. The decision is always yours, and the run holds its place until you make it.

When approval is automatic

One project setting changes this. If a project has Auto-approve plan turned on — a Pipeline Automation option on the project’s Pipeline page — the approval step is skipped. The plan is still produced and still shown on the run detail page, but the run approves it itself and carries on to Running without pausing. With Auto-approve off, which is the default, every plan waits for you exactly as described above.

How it fits together

Run begins
  └── Plan produced  → run enters "Awaiting Plan Approval"
        ├── Approve  → run returns to "Running", work proceeds
        └── Reject   → run is "Cancelled"; Re-run for a fresh plan

Plan approval is one of several points where a run pauses for you. To see the others — and what every run state means — start with Projects, tasks, and runs.