From 7d22774d762f2dee84ac4b07eb3c29a0243b9015 Mon Sep 17 00:00:00 2001 From: Godopu Date: Thu, 16 Jul 2026 20:54:38 +0900 Subject: [PATCH] feat(loop): allow run_loop.sh to automatically load existing plan if --plan is omitted --- .agents/skills/multi-agent-mux-loop/SKILL.md | 2 +- .../multi-agent-mux-loop/scripts/run_loop.sh | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.agents/skills/multi-agent-mux-loop/SKILL.md b/.agents/skills/multi-agent-mux-loop/SKILL.md index 3449328..f145861 100644 --- a/.agents/skills/multi-agent-mux-loop/SKILL.md +++ b/.agents/skills/multi-agent-mux-loop/SKILL.md @@ -10,7 +10,7 @@ Run an autonomous planning-execution-review loop using multiple agents (Planner, Creator, Reviewers) in the workspace. It supports: - **Collaborative Planning** (`--plan` and `--plan-talk N`): Planner designs the solution, Creator challenges the plan for N turns to resolve edge cases, then implementation starts. -- **Self-Planning** (default): Creator designs and executes the code independently. +- **Self-Planning** (default): Planner를 거치지 않고 직접 구현을 시작합니다. 이때 최신 승격된 계획서(`.agents/reports/canary-projects-multi-agent-mux-planner-reviewer-claude/report-final.md`)가 존재한다면 이를 자동으로 로드하여 계획에 입각해 자율 구현합니다. - **Targeted Peer-Review** (`--reviewer`): Runs custom-selected reviewer agents to verify code changes. - **Total Peer-Review** (`--all-reviewer`): Enforces a unanimous PASS verdict from all registered reviewer sessions. - **Self-Review** (default): Creator verifies its code changes autonomously without peer reviews. diff --git a/.agents/skills/multi-agent-mux-loop/scripts/run_loop.sh b/.agents/skills/multi-agent-mux-loop/scripts/run_loop.sh index 1ce04a2..3d40446 100644 --- a/.agents/skills/multi-agent-mux-loop/scripts/run_loop.sh +++ b/.agents/skills/multi-agent-mux-loop/scripts/run_loop.sh @@ -147,7 +147,7 @@ import os, json d = json.loads(os.environ.get('MAM_STATE_JSON', '{}')) target_agent = os.environ.get('TARGET_AGENT') reviewers = [s.get('name') for s in d.get('tmux_sessions', []) - if s.get('role') == 'reviewer' and s.get('name') != target_agent] + if 'reviewer' in s.get('role', '') and s.get('name') != target_agent] print(','.join(reviewers)) " } @@ -185,9 +185,9 @@ resolve_planner_session() { MAM_STATE_JSON="$(load_state_json)" python3 -c " import os, json d = json.loads(os.environ.get('MAM_STATE_JSON', '{}')) -planner = 'canary-projects-multi-agent-mux-planner-claude' +planner = 'canary-projects-multi-agent-mux-planner-reviewer-claude' for s in d.get('tmux_sessions', []): - if s.get('role') == 'planner': + if 'planner' in s.get('role', ''): planner = s.get('name') break print(planner) @@ -312,6 +312,11 @@ if [ "$PLAN_MODE" = true ]; then log_success "Interactive planning completed. Plan finalized." else log_info "=== Phase 1: Self-Planning Mode (Direct Execution) ===" + EXISTING_PLAN_FILE=".agents/reports/canary-projects-multi-agent-mux-planner-reviewer-claude/report-final.md" + if [ -f "$EXISTING_PLAN_FILE" ]; then + log_info "Found existing promoted plan at '$EXISTING_PLAN_FILE'. Loading plan..." + CURRENT_PLAN=$(cat "$EXISTING_PLAN_FILE") + fi fi # =========================================================================== @@ -324,8 +329,8 @@ log_info "=== Phase 2: Code Implementation ===" BASE_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo "") EXECUTION_PROMPT="다음 작업 목표를 완성해주세요: $TASK" -if [ "$PLAN_MODE" = true ]; then - EXECUTION_PROMPT="최종 합의된 다음 계획서에 입각하여 코드를 수정 및 구현해주세요. 계획서:\n$CURRENT_PLAN" +if [ -n "$CURRENT_PLAN" ]; then + EXECUTION_PROMPT="이미 수립된 다음 계획서에 입각하여 작업자의 판단하에 코드를 구현하고 작업 목표를 완성해주세요. 계획서:\n$CURRENT_PLAN\n\n작업 목표: $TASK" fi EXEC_JOB_OUTPUT=$(bash .agents/skills/multi-agent-mux-delegate-job/multi-agent-mux-delegate-job submit \