Enterprise delivery workflow
One operating model from task assignment to production release across Local, DEV, and PROD.
Standard handoffs
Local -> DEV -> PROD, with review gates before each environment jump and explicit return paths back to OPEN when feedback appears.
Each stage has a branch, a status, an owner, and a deployment target.
Permanent branches stay stable; feature branches map to ClickUp work.
OPEN through CLOSED defines where the task is and who owns it.
Peer review protects dev, then PM and client review protect production.
DEV deploys after peer-review merge; PROD deploys only after approval.
Developer, reviewer, PM, and deployment owner each have a clean boundary.
The workflow stays safe because direct pushes and approval bypasses are off-limits.
Permanent branches
main
Production branch for PROD. It must stay stable and is deployed to production through Forge.
dev
Development and staging branch for DEV. It is the client review surface before anything reaches production.
Environment map
Local uses the feature branch, DEV tracks dev, and PROD tracks main.
Feature branches
feature/<CLICKUP_TASK_ID>-short-description
Example: feature/CU-1234-add-user-export
ClickUp workflow
The first group tracks active engineering work. The second group tracks approval, deployment readiness, and closure.
Execution statuses
dev exists and is waiting for code review.Approval and release statuses
main is awaiting project manager approval.flowchart TD
A["OPEN"] --> B["IN PROGRESS"]
B --> C["ON LOCAL"]
C --> D["PR: feature/* -> dev"]
D --> E["PEER REVIEW"]
E -->|approved| F["Merge into dev"]
F --> G["Deploy dev to DEV"]
G --> H["PR: dev -> main"]
H --> I["PM REVIEW"]
I -->|approved| J["CLIENT REVIEW"]
J -->|approved| K["DEPLOY"]
K --> L["Merge into main"]
L --> M["Deploy main to PROD"]
M --> N["DONE"]
E -->|changes requested| A
I -->|rejected| A
J -->|client rejected| AHappy path
Move the ClickUp task to IN PROGRESS and branch from main.
Commit regularly, then move the task to ON LOCAL.
Push the branch, open the PR to dev, and assign a reviewer.
After merge, deploy dev to the DEV environment.
Open the PR from dev to main and hand off to the PM.
The PM manages review on DEV until approval.
3.2 Development phase
git checkout main
git pull
git checkout -b feature/<TASK_ID>-description
3.3 PR to DEV
feature/<TASK_ID> -> dev
dev.dev and deploys DEV through Forge.3.5 and 3.6
PM REVIEW
After the PR from dev to main is created, the PM reviews scope, context, and readiness.
CLIENT REVIEW
Approved work is reviewed on DEV. If the client rejects it, the task goes back to OPEN and the local workflow restarts.
When the client approves, the PM moves the task to DEPLOY and assigns the deployment developer.
3.7 Production deployment
dev -> main
Forge deploys main -> PROD
dev PR into main.main to production.Deployment summary
Local
Branch: feature/*
Trigger: developer work on the task branch.
DEV
Branch: dev
Trigger: merge after peer review.
PROD
Branch: main
Trigger: client approval and deployment merge.
Responsibility matrix
dev, approves or rejects it, and deploys DEV after merge.main, manages client review, and authorizes deployment.main and deploys production.Rules and best practices
Happy path timeline
Task is created and assigned.
Developer starts local work.
Implementation is complete on the branch.
PR to dev is open.
PR from dev to main is waiting on approval.
The work is live on DEV.
Client approved; production release is queued.
Merged to main and deployed to PROD.