4.0 KiB
4.0 KiB
| nextStep | scriptsDir | outputFile | retryStrategy | reviewLoop |
|---|---|---|---|---|
| ./step-03b-execute-finish.md | ../bin/story-automator | {output_folder}/story-automator/orchestration-{epic_id}-{timestamp}.md | ../data/retry-fallback-strategy.md | ../data/code-review-loop.md |
Step 3a: Execute Review Phase
Goal: Run automate (guardrails) and code review loop for the current story. Interaction mode: Deterministic autonomous execution.
Prerequisites
- Step 3 completed (create-story and dev-story done)
- State document updated with current story progress
Set: scripts="{scriptsDir}"
Story Loop (Continue from Step 3)
C. Automate (Guardrails)
Skip if overrides.skipAutomate
Apply retry/fallback pattern from {retryStrategy}: Non-blocking, but still retry on failure.
# --command required (see Spawn Pattern in step-03)
session=$("$scripts" tmux-wrapper spawn auto {epic} {story_id} \
--agent "$current_agent" \
--command "$("$scripts" tmux-wrapper build-cmd auto {story_id} --agent "$current_agent")")
result=$("$scripts" monitor-session "$session" --json --agent "$current_agent")
"$scripts" tmux-wrapper kill "$session"
- SUCCESS:
Display:# Update Story Progress: mark automate done sed -i '' "s/^| ${story_id} |.*$/| ${story_id} | done | done | done | - | - | in-progress |/" "{outputFile}"[story {N}/{total}] automate -> done→ proceed to D - FAILURE → retry up to 3 attempts (non-blocking, so fewer retries), then log warning:
Display:# Update Story Progress: mark automate skipped sed -i '' "s/^| ${story_id} |.*$/| ${story_id} | done | done | skip | - | - | in-progress |/" "{outputFile}"[story {N}/{total}] automate -> skip (non-blocking)→ proceed to D
D. Code Review Loop
See {reviewLoop} for complete script-based review cycle with v2.3 per-task agent configuration.
MANDATORY log-summary contract (every review cycle):
- Run a single grep/regex pass over review output first.
- Return only compact fields to parent flow:
next_action,confidence,error_class,issues_count,top_issues. - Do not carry full log payloads forward unless escalation requires raw evidence.
review_log=$(echo "$result" | jq -r '.output_file')
review_focus=$(grep -nE "SUCCESS|FAIL|ERROR|CRITICAL|WARN|RETRY|ESCALATE|ISSUE" "$review_log" | head -n 120)
if [ -z "$review_focus" ]; then
review_focus=$(tail -n 120 "$review_log")
fi
# Compact subprocess-style summary contract for parent flow
review_summary=$("$scripts" orchestrator-helper parse-output "$review_log" review | jq -c '
{
next_action: (.next_action // "retry"),
confidence: (.confidence // 0),
error_class: (.error_class // "unknown"),
issues_count: ((.issues // []) | length),
top_issues: ((.issues // [])[:3])
}
')
Key points:
- Up to 5 cycles using
story-automator tmux-wrapper spawn review+story-automator monitor-session - Agent: Uses per-task config from state document (
resolve_agent_for_task "review") - Verification: Uses
--workflow review --story-keyfor sprint-status verification - States:
completed(verified):
Display:# Update Story Progress: mark code-review done sed -i '' "s/^| ${story_id} |.*$/| ${story_id} | done | done | done | done | - | in-progress |/" "{outputFile}"[story {N}/{total}] review -> done→ E |incomplete→ count as failed attempt, retry until maxCycles, then CRITICAL escalate (Trigger #8) - Exit loop when sprint-status shows "done"
- If
review_summary.next_actionis ambiguous, ask one clarifying question before escalating.
Auto-Proceed to Finalization
Display: "Code review complete. Proceeding to finalize commits and status checks..."
"$scripts" orchestrator-helper state-update "{outputFile}" \
--set currentStep=step-03b-execute-finish \
--set lastUpdated="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "- **[$(date -u +%Y-%m-%dT%H:%M:%SZ)]** Code review complete, proceeding to finalization" >> "{outputFile}"
Then
→ Immediately load and execute {nextStep}