You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DevClaw currently models implementation, review, and optional technical testing, but it under-models the generic delivery lifecycle between technical completion and actual production acceptance. We need a product-level workflow extension that gives #207 and related UAT work the correct architectural home.
This task should define and implement a generic delivery-phase model that separates:
technical testing
candidate promotion / release-candidate identity
acceptance (UAT)
post-release validation
rollback / demotion of failed promoted candidates
The goal is not to hardcode every environment or deployment style into core. The goal is to add the smallest correct first-class workflow semantics so projects can model delivery safely, while keeping environment-specific mechanics in project overlays/runbooks.
Implementation Checklist
Phase 1: Product model and workflow semantics (~2-3 days)
Define the target lifecycle contract in a design note under docs/ that formalizes the recommended sequence from research #215: technical review → test → promote candidate → acceptance/UAT → post-release validation → terminal outcome.
Decide and document which delivery concepts are first-class in core versus project-specific overlay policy, including explicit treatment of environment naming, deployment mechanisms, rollout styles, and observability checks.
Extend workflow typing in lib/workflow/types.ts and resolved config loading in lib/config/loader.ts, lib/config/merge.ts, and lib/config/types.ts so the workflow can express delivery-step policy beyond just reviewPolicy and testPolicy.
Update schema validation in lib/config/schema.ts so any new delivery-step config is validated with clear errors and preserves backward compatibility when the new phases are disabled.
Phase 2: Core workflow and routing implementation (~3-4 days)
Add first-class workflow defaults in lib/workflow/defaults.ts for a generic promotion/candidate step and an acceptance/UAT step, keeping them disabled or skippable by default so existing projects preserve current behavior.
Add any required step-routing labels and helpers in lib/workflow/labels.ts so delivery phases can be routed per issue similarly to review:* and test:*.
Update dispatch/pickup behavior in lib/dispatch/index.ts and lib/services/tick.ts so issues acquire the correct delivery routing labels and only dispatch to workers when the configured policy requires it.
Implement the missing heartbeat/pass logic, parallel to the current review/test handling in lib/services/heartbeat/review.ts, lib/services/heartbeat/review-skip.ts, and lib/services/heartbeat/test-skip.ts, for skipped or human-gated delivery phases.
Define the minimal candidate identity/provenance contract for v1, including where the exact promoted candidate should be recorded (for example issue comments/body/labels/PR metadata), and wire that contract into the relevant workflow transition points.
Ensure failure transitions cleanly support candidate invalidation and rollback/demotion semantics, sending work back to To Improve or Refining as appropriate without leaving the failed candidate represented as current.
Phase 3: UAT alignment, reporting, and documentation (~2-3 days)
Reconcile the narrower UAT design from #207 / #212 against the new delivery model so UAT is explicitly modeled as acceptance of a promoted candidate rather than as another generic testing bucket.
Update workflow reporting and admin surfaces in files such as docs/WORKFLOW.md, docs/ROADMAP.md, docs/CONFIGURATION.md, lib/tools/admin/workflow-guide.ts, lib/tools/admin/project-status.ts, and lib/tools/admin/project-register.ts so the new phases appear correctly in docs and summaries.
Add or update tests covering config loading, label sync expectations, dispatch behavior, skip/human/agent routing, and failure-path transitions. Relevant suites likely include lib/services/pipeline.e2e.test.ts, lib/tools/tasks/research-task.test.ts, heartbeat tests, and workflow/config tests.
Document migration and enablement guidance for existing projects, including the default no-op/backward-compatible behavior and how projects can opt into promotion/UAT/post-release phases incrementally.
Dependencies & Blockers
Depends on the architectural conclusions from research #215 remaining the accepted direction.
Should explicitly coordinate with #207 so first-class UAT implementation is not built on the old “test then UAT directly” assumption.
Candidate identity/provenance should stay minimal in v1 to avoid over-scoping into a full release registry.
Keep environment-specific deploy/runbook logic out of core unless a truly generic abstraction emerges during implementation.
From research #215
Overview
DevClaw currently models implementation, review, and optional technical testing, but it under-models the generic delivery lifecycle between technical completion and actual production acceptance. We need a product-level workflow extension that gives
#207and related UAT work the correct architectural home.This task should define and implement a generic delivery-phase model that separates:
The goal is not to hardcode every environment or deployment style into core. The goal is to add the smallest correct first-class workflow semantics so projects can model delivery safely, while keeping environment-specific mechanics in project overlays/runbooks.
Implementation Checklist
Phase 1: Product model and workflow semantics (~2-3 days)
docs/that formalizes the recommended sequence from research#215: technical review → test → promote candidate → acceptance/UAT → post-release validation → terminal outcome.lib/workflow/types.tsand resolved config loading inlib/config/loader.ts,lib/config/merge.ts, andlib/config/types.tsso the workflow can express delivery-step policy beyond justreviewPolicyandtestPolicy.lib/config/schema.tsso any new delivery-step config is validated with clear errors and preserves backward compatibility when the new phases are disabled.Phase 2: Core workflow and routing implementation (~3-4 days)
lib/workflow/defaults.tsfor a generic promotion/candidate step and an acceptance/UAT step, keeping them disabled or skippable by default so existing projects preserve current behavior.lib/workflow/labels.tsso delivery phases can be routed per issue similarly toreview:*andtest:*.lib/dispatch/index.tsandlib/services/tick.tsso issues acquire the correct delivery routing labels and only dispatch to workers when the configured policy requires it.lib/services/heartbeat/review.ts,lib/services/heartbeat/review-skip.ts, andlib/services/heartbeat/test-skip.ts, for skipped or human-gated delivery phases.To ImproveorRefiningas appropriate without leaving the failed candidate represented as current.Phase 3: UAT alignment, reporting, and documentation (~2-3 days)
#207/#212against the new delivery model so UAT is explicitly modeled as acceptance of a promoted candidate rather than as another generic testing bucket.docs/WORKFLOW.md,docs/ROADMAP.md,docs/CONFIGURATION.md,lib/tools/admin/workflow-guide.ts,lib/tools/admin/project-status.ts, andlib/tools/admin/project-register.tsso the new phases appear correctly in docs and summaries.lib/services/pipeline.e2e.test.ts,lib/tools/tasks/research-task.test.ts, heartbeat tests, and workflow/config tests.Dependencies & Blockers
#215remaining the accepted direction.#207so first-class UAT implementation is not built on the old “test then UAT directly” assumption.Estimated Total: 7-10 days