21cf3db111
- requireEnv(name, message) — throws with custom error message
- optionalEnv(name, fallback?) — returns fallback or null
- Update develop and solve-issue bundle entries to use shared helpers
- Remove inline requireEnv/optionalEnv and wrapAgentAsAdapter usage
- Add tests for both functions
小橘 🍊
@uncaged/workflow-template-develop
Reference develop workflow template: plan phases, implement in a loop, review, test, then commit.
Export a pure WorkflowDefinition (developWorkflowDefinition) and role/moderator pieces. Workflow instantiation (createWorkflow(definition, binding)) happens in the workflow instance layer, not in this template package.
Install
bun add @uncaged/workflow-template-develop @uncaged/workflow zod
In this monorepo: workspace:* for @uncaged/workflow-template-develop and @uncaged/workflow.
Usage
import { createWorkflow } from "@uncaged/workflow";
import { developWorkflowDefinition } from "@uncaged/workflow-template-develop";
const run = createWorkflow(developWorkflowDefinition, binding);
Roles
| Role | Purpose |
|---|---|
| planner | Break work into ordered phases (hashes) |
| coder | Implement current phase; repeats until phases complete or limits hit |
| reviewer | Code review gate (approved vs send back to coder) |
| tester | Verify via tests/build/lint (passed vs send back to coder) |
| committer | Final commit step |
Also exported: role factories/meta schemas (plannerRole, coderRole, …), DevelopMeta, developRoles.
Moderator flow
- Start →
planner - After planner →
coder - After coder → if all planned phases are done (or last phase completed) →
reviewer; elsecoderagain, untilmaxRoundsthenEND - After reviewer → if approved →
tester; elsecoder(orENDif out of rounds) - After tester → if passed →
committer; elsecoder(orENDif out of rounds) - After committer →
END
API overview
| Export | Description |
|---|---|
developWorkflowDefinition |
description, roles, developModerator |
developModerator |
Moderator<DevelopMeta> |
buildDevelopDescriptor |
buildDescriptor({ … }) for bundle metadata |
DEVELOP_WORKFLOW_DESCRIPTION |
Human-readable one-liner |