Files
sar/.claude/skills/bmad-story-automator/steps-c/step-03a-execute-review.md
julian 17c08e6392 chore: initial monorepo scaffold + WDS Phase 1+2 artifacts
- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24)
- apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004)
- apps/web: React 19 + Vite 8 (ESM)
- libs/shared/api-interface: Zod contract base
- Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit
- WDS artifacts:
  - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs)
  - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact)
- Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md
- AGENTS.md + README.md como entrada para devs/agentes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:34:20 +00:00

4.4 KiB

name, description, nextStep, scriptsDir, outputFile, retryStrategy, reviewLoop
name description nextStep scriptsDir outputFile retryStrategy reviewLoop
step-03a-execute-review Autonomous execution loop - automate and code review ./step-03b-execute-finish.md ../scripts/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" --state-file "$state_file")")
result=$("$scripts" monitor-session "$session" --json --agent "$current_agent")
"$scripts" tmux-wrapper kill "$session"
  • SUCCESS:
    # Update Story Progress: mark automate done
    tmp_state=$(mktemp)
    sed "s/^| ${story_id} |.*$/| ${story_id} | done | done | done | - | - | in-progress |/" "{outputFile}" > "$tmp_state" && mv "$tmp_state" "{outputFile}"
    
    Display: [story {N}/{total}] automate -> done → proceed to D
  • FAILURE → retry up to 3 attempts (non-blocking, so fewer retries), then log warning:
    # Update Story Progress: mark automate skipped
    tmp_state=$(mktemp)
    sed "s/^| ${story_id} |.*$/| ${story_id} | done | done | skip | - | - | in-progress |/" "{outputFile}" > "$tmp_state" && mv "$tmp_state" "{outputFile}"
    
    Display: [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 --state-file "$state_file" | 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-key for sprint-status verification
  • States: completed (verified):
    # Update Story Progress: mark code-review done
    tmp_state=$(mktemp)
    sed "s/^| ${story_id} |.*$/| ${story_id} | done | done | done | done | - | in-progress |/" "{outputFile}" > "$tmp_state" && mv "$tmp_state" "{outputFile}"
    
    Display: [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_action is 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}