xclaw is a local gateway service for the xllm project, designed around a single target repository and a single active task.
- Single target repository
- Single active task
- Local
codexCLI only - Human supervision through
status --advise,--approve, and--reject - Internal roles are
Product Owner,Architect,Developer,Tester,Recovery,Human Gate, andOrchestrator Product Owneris the only formal routing owner
For the full design rationale, see docs/DESIGN.md.
- Minimal command surface: only
start,status,stop, andresume - Plan-first execution: the workflow revolves around a single formal
plan.md - Approval on demand: plan confirmation is requested only when the current plan has human decision points
- Mandatory final delivery review before
closeout - Workspace-first observability:
task.md,event_log.md,current/,history/, andruns/
intake
-> product_owner_refinement
-> [architect_planning, optional]
-> product_owner_dispatch
-> [developer | tester | human_gate | closeout]
Human review uses one waiting_approval state, and review_kind distinguishes:
plan: confirm pending business/product decisions in the currentplan_revisiondelivery: final human acceptance of the delivery
xclaw start \
--repo /path/to/target-repo \
--task "Implement xxx and add the necessary tests"Or bootstrap directly from an existing plan:
xclaw start \
--repo /path/to/target-repo \
--plan ./plan.md--plan is treated as bootstrap context only. The formal current/plan.md is still produced by Product Owner after startup.
xclaw statusDefault status output includes:
active_task_idtask_statususer_summarylatest_updatenext_stepneeds_human_reviewreview_kindwhile waiting for approvalplan_confirmation_summarywhile waiting on a plan reviewriskswhen presentpending_advice_countwhen presentlatest_review_request_idwhile waiting for approval
xclaw status --advise "Keep the scope narrow and focus on the CLI path first"Advice is appended to human_advice_log and absorbed by Product Owner at the next formal routing boundary.
xclaw status --approve --comment "Looks good"
xclaw status --reject --comment "The current plan changes product scope"Both actions route the task back to product_owner_dispatch.
xclaw stopplandev_handofftest_handoffimplementation_resulttest_reportrepair_ticketroute_decisioncloseout
progresshuman_advice_logreview_requestreview_decision
plan.md is the only formal planning artifact. It carries:
plan_revisionhuman_confirmation_requiredhuman_confirmation_itemsactive_subtask_id- task goals, scope, architecture decisions, test strategy, and subtask breakdown
Bundled prompt assets live under:
src/xclaw/agents/product_owner.mdsrc/xclaw/agents/architect.mdsrc/xclaw/agents/developer.mdsrc/xclaw/agents/tester.md
Run the test suite with:
PYTHONPATH=src python -m unittest discover -s tests -p 'test*.py'- Design document:
docs/DESIGN.md - CLI entrypoint:
src/xclaw/cli.py - Gateway loop:
src/xclaw/gateway.py - Stage executor:
src/xclaw/executor.py