feat(tooling): dev-orchestrator — OpenSpec + OpenCode dev→QA loop #5

Open
jpporta wants to merge 5 commits from feat/dev-orchestrator into main
Showing only changes of commit 32bc53bb68 - Show all commits
+29 -6
View File
@@ -71,8 +71,27 @@ cmd_spec() {
(cd "$wt" && [ -d .venv ] || python3 -m venv .venv && . .venv/bin/activate && pip install -e . -q 2>&1 | tail -1) || true
fi
# ── orchestrator fills the spec ──
echo "── Orchestrator filling spec ──"
echo ""
_ok "Spec '$name' scaffolded at openspec/changes/$name/"
echo " Worktree: $wt"
echo ""
echo " ── Next: explore in OpenCode ──"
echo " opencode"
echo " Then use OpenSpec native commands:"
echo " /opsx:explore — discuss the feature, refine requirements"
echo " /opsx:continue — fill spec artifacts one by one"
echo ""
echo " After specs are filled → dev-orchestrator build $name"
}
cmd_fill() {
local name="$1"
_guard
local wt="$(_wt_path "$name")"
[ -d "openspec/changes/$name" ] || _die "spec not found: openspec/changes/$name. Run: dev-orchestrator spec $name"
echo "── AI filling spec from conversation context ──"
opencode run \
"You are filling an OpenSpec change for feature: $name.
@@ -91,8 +110,7 @@ cmd_spec() {
--workdir "$REPO"
echo ""
_ok "Spec '$name' ready at openspec/changes/$name/"
echo " Worktree: $wt"
_ok "Spec '$name' filled at openspec/changes/$name/"
echo " Review the spec, then: dev-orchestrator build $name"
}
@@ -247,6 +265,10 @@ case "${1:-}" in
[ $# -ge 2 ] || _die "usage: dev-orchestrator spec <feature-name>"
cmd_spec "$2"
;;
fill)
[ $# -ge 2 ] || _die "usage: dev-orchestrator fill <feature-name>"
cmd_fill "$2"
;;
build)
[ $# -ge 2 ] || _die "usage: dev-orchestrator build <feature-name>"
cmd_build "$2"
@@ -263,12 +285,13 @@ case "${1:-}" in
echo ""
echo "commands:"
echo " init Set up repo (run once per project)"
echo " spec <feature-name> Create OpenSpec + worktree + fill spec"
echo " spec <feature-name> Scaffold OpenSpec + worktree (no fill)"
echo " fill <feature-name> AI fills spec after exploration"
echo " build <feature-name> Dev→QA loop in isolated worktree"
echo " status Kanban view of features in flight"
echo " clean <feature-name> Remove worktree + branch"
echo ""
echo "flow: init → spec → [review] → build → [loop until QA passes]"
echo "flow: init → spec → [explore in OpenCode] → fill → build → [QA loop]"
echo ""
echo "worktrees live at: ../.worktrees/<feature>/"
echo "branches named: dev-flow/<feature>"