#!/usr/bin/env bash # Sets up the multi-agent refactoring backlog workspace. # Run from the root of the target repo: bash setup.sh set -euo pipefail WORK_DIR="./refactor-backlog" AGENTS_SRC="$(dirname "$0")/agents" PROTOCOL="$AGENTS_SRC/_persistence-protocol.md" echo "Setting up $WORK_DIR ..." mkdir -p "$WORK_DIR/implementation" mkdir -p "$WORK_DIR/final-prompts" # 1. Initialize _status.md cat > "$WORK_DIR/_status.md" << 'EOF' # Agent run status | Agent | Status | Last module processed | Last updated | Notes | |---|---|---|---|---| | baseline | not_started | - | - | | | readability | not_started | - | - | | | testability | not_started | - | - | | | ddd-hexagonal | not_started | - | - | | | cqrs-light | not_started | - | - | | | bdd | not_started | - | - | | | adr-conformance | not_started | - | - | | | bio2-compliance | not_started | - | - | | | consolidation | not_started | - | - | | EOF echo " created _status.md" # 2. Initialize empty output files with headers for f in 00-baseline 01-readability 02-testability 03-ddd-hexagonal \ 04-cqrs-light 05-bdd 06-adr-conformance 07-bio2-compliance; do cat > "$WORK_DIR/${f}.md" << EOF ## Scope: [to be filled by agent] ## Status: not_started ## Last updated: - ## Depends on: [see agent prompt] ## --- EOF done touch "$WORK_DIR/99-backlog.md" echo " initialized 8 phase-1 output files + 99-backlog.md" # 3. Assemble final prompts: inject persistence protocol into each agent prompt # at the "[Insert contents of _persistence-protocol.md here...]" marker. for src in "$AGENTS_SRC"/*.prompt.md; do name="$(basename "$src")" out="$WORK_DIR/final-prompts/$name" awk -v protofile="$PROTOCOL" ' /\[Insert contents of _persistence-protocol\.md here/ { while ((getline line < protofile) > 0) print line close(protofile) next } { print } ' "$src" > "$out" echo " assembled final-prompts/$name" done echo "" echo "Done. Structure:" echo " $WORK_DIR/_status.md (run tracker — all agents not_started)" echo " $WORK_DIR/00-baseline.md ... 07-bio2-compliance.md (empty, agent-writable)" echo " $WORK_DIR/99-backlog.md (empty, Consolidation writes here)" echo " $WORK_DIR/implementation/ (Phase 3 notes land here)" echo " $WORK_DIR/final-prompts/ (ready-to-dispatch prompts, protocol" echo " already merged in — no manual copy-paste)" echo "" echo "Next: dispatch final-prompts/00-baseline.prompt.md first (blocks everything)," echo "then the 7 Phase 1 prompts in parallel, then 08-consolidation.prompt.md," echo "then per-ticket 09-implementation.prompt.md (fill in TICKET-ID each time)."