PIV Ralph Orchestrator
Arguments: $ARGUMENTS
Parse arguments using this logic:
PRD Path Mode (first argument ends with .md)
If the first argument ends with .md, it's a direct path to a PRD file:
- -
PRD_PATH - Direct path to the PRD file - INLINECODE3 - Derived by going up from PRDs/ folder
- INLINECODE4 - Second argument (default: 1)
- INLINECODE5 - Third argument (default: auto-detect from PRD)
Project Path Mode
If the first argument does NOT end with .md:
- -
PROJECT_PATH - Absolute path to project (default: current working directory) - INLINECODE8 - Second argument (default: 1)
- INLINECODE9 - Third argument (default: 4)
- INLINECODE10 - Auto-discover from
PROJECT_PATH/PRDs/ folder
Detection Logic
CODEBLOCK0
Required Reading by Role
CRITICAL: Each role MUST read their instruction files before acting.
| Role | Instructions |
|---|
| PRD Creation | Read {baseDir}/references/create-prd.md |
| PRP Generation |
Read {baseDir}/references/generate-prp.md |
| Codebase Analysis | Read {baseDir}/references/codebase-analysis.md |
| Executor | Read {baseDir}/references/piv-executor.md + {baseDir}/references/execute-prp.md |
| Validator | Read {baseDir}/references/piv-validator.md |
| Debugger | Read {baseDir}/references/piv-debugger.md |
Prerequisite: A PRD must exist. If none found, tell user to create one first.
Orchestrator Philosophy
"Context budget: ~15% orchestrator, 100% fresh per subagent"
You are the orchestrator. You stay lean and manage workflow. You DO NOT execute PRPs yourself - you spawn specialized sub-agents with fresh context for each task.
Sub-agent spawning: Use the sessions_spawn tool to create fresh sub-agent sessions. Each spawn is non-blocking — you'll receive results via an announce step. Wait for each agent's results before proceeding to the next step.
Project Setup (piv-init)
If the project doesn't have PIV directories, create them:
mkdir -p PROJECT_PATH/PRDs PROJECT_PATH/PRPs/templates PROJECT_PATH/PRPs/planning
Copy
{baseDir}/assets/prp_base.md to
PROJECT_PATH/PRPs/templates/prp_base.md if it doesn't exist.
Create
PROJECT_PATH/WORKFLOW.md from
{baseDir}/assets/workflow-template.md if it doesn't exist.
Phase Workflow
For each phase from STARTPHASE to ENDPHASE:
Step 1: Check/Generate PRP
Check for existing PRP:
CODEBLOCK2
If no PRP exists, spawn a fresh sub-agent using sessions_spawn to do both codebase analysis and PRP generation in sequence:
CODEBLOCK3
Step 2: Spawn EXECUTOR
Spawn a fresh sub-agent using sessions_spawn:
CODEBLOCK4
Step 3: Spawn VALIDATOR
Spawn a fresh sub-agent using sessions_spawn:
CODEBLOCK5
Process result: PASS → commit | GAPSFOUND → debugger | HUMANNEEDED → ask user
Step 4: Debug Loop (Max 3 iterations)
Spawn a fresh sub-agent using sessions_spawn:
CODEBLOCK6
After debugger: re-validate → PASS (commit) or loop (max 3) or escalate.
Step 5: Smart Commit
CODEBLOCK7
Create semantic commit with Built with FTW (First Try Works) - https://github.com/SmokeAlot420/ftw.
Step 6: Update WORKFLOW.md
Mark phase complete, note validation results.
Step 7: Next Phase
Loop back to Step 1 for next phase.
Error Handling
- - No PRD: Tell user to create one first
- Executor BLOCKED: Ask user for guidance
- Validator HUMAN_NEEDED: Ask user for guidance
- 3 debug cycles exhausted: Escalate to user
Sub-Agent Timeout/Failure
When a sub-agent times out or fails:
- 1. Check for partial work (files created, tests written)
- Retry once with a simplified, shorter prompt
- If retry fails, escalate to user with what was accomplished
Completion
CODEBLOCK8
PIV Ralph Orchestrator
参数:$ARGUMENTS
使用以下逻辑解析参数:
PRD路径模式(第一个参数以.md结尾)
如果第一个参数以.md结尾,则为PRD文件的直接路径:
- - PRDPATH - PRD文件的直接路径
- PROJECTPATH - 通过从PRDs/文件夹向上查找得出
- STARTPHASE - 第二个参数(默认值:1)
- ENDPHASE - 第三个参数(默认值:从PRD自动检测)
项目路径模式
如果第一个参数不以.md结尾:
- - PROJECTPATH - 项目的绝对路径(默认值:当前工作目录)
- STARTPHASE - 第二个参数(默认值:1)
- ENDPHASE - 第三个参数(默认值:4)
- PRDPATH - 从PROJECT_PATH/PRDs/文件夹自动发现
检测逻辑
如果 $ARGUMENTS[0] 以 .md 结尾:
PRD_PATH = $ARGUMENTS[0]
PROJECTPATH = dirname(dirname(PRDPATH))
START_PHASE = $ARGUMENTS[1] 或 1
END_PHASE = $ARGUMENTS[2] 或 从PRD自动检测
PRD_NAME = 不带扩展名的basename
否则:
PROJECT_PATH = $ARGUMENTS[0] 或 当前工作目录
START_PHASE = $ARGUMENTS[1] 或 1
END_PHASE = $ARGUMENTS[2] 或 4
PRDPATH = 从 PROJECTPATH/PRDs/ 自动发现
PRD_NAME = 发现的PRD的basename
各角色必读内容
关键:每个角色在行动前必须阅读其指令文件。
| 角色 | 指令 |
|---|
| PRD创建 | 阅读 {baseDir}/references/create-prd.md |
| PRP生成 |
阅读 {baseDir}/references/generate-prp.md |
| 代码库分析 | 阅读 {baseDir}/references/codebase-analysis.md |
| 执行器 | 阅读 {baseDir}/references/piv-executor.md + {baseDir}/references/execute-prp.md |
| 验证器 | 阅读 {baseDir}/references/piv-validator.md |
| 调试器 | 阅读 {baseDir}/references/piv-debugger.md |
前置条件: 必须存在PRD。如果未找到,告知用户先创建一个。
Orchestrator理念
上下文预算:~15% orchestrator,每个子代理100%全新
你是orchestrator。保持精简,管理工作流程。你自己不执行PRP——你为每个任务生成具有全新上下文的专业子代理。
子代理生成: 使用sessions_spawn工具创建全新的子代理会话。每次生成都是非阻塞的——你将通过一个公告步骤接收结果。在进入下一步之前等待每个代理的结果。
项目设置(piv-init)
如果项目没有PIV目录,创建它们:
bash
mkdir -p PROJECTPATH/PRDs PROJECTPATH/PRPs/templates PROJECT_PATH/PRPs/planning
如果{baseDir}/assets/prpbase.md不存在,将其复制到PROJECTPATH/PRPs/templates/prp_base.md。
如果{baseDir}/assets/workflow-template.md不存在,从它创建PROJECT_PATH/WORKFLOW.md。
阶段工作流
对于从STARTPHASE到ENDPHASE的每个阶段:
步骤1:检查/生成PRP
检查现有的PRP:
bash
ls -la PROJECT_PATH/PRPs/ 2>/dev/null | grep -i phase.*N\|pN\|p-N
如果不存在PRP,使用sessions_spawn生成一个全新的子代理,按顺序执行代码库分析和PRP生成:
研究与PRP生成任务 - 阶段 {N}
==============================================
项目根目录:{PROJECT_PATH}
PRD路径:{PRD_PATH}
阶段 {N} 范围(来自PRD)
{粘贴阶段范围}
步骤1:代码库分析
阅读 {baseDir}/references/codebase-analysis.md 了解流程。
保存到:{PROJECT
PATH}/PRPs/planning/{PRDNAME}-phase-{N}-analysis.md
步骤2:生成PRP(分析上下文仍加载)
阅读 {baseDir}/references/generate-prp.md 了解流程。
使用模板:PRPs/templates/prp_base.md
输出到:{PROJECT
PATH}/PRPs/PRP-{PRDNAME}-phase-{N}.md
自己完成两个步骤。不要生成子代理。
步骤2:生成执行器
使用sessions_spawn生成一个全新的子代理:
执行器任务 - 阶段 {N}
============================
阅读 {baseDir}/references/piv-executor.md 了解你的角色定义。
阅读 {baseDir}/references/execute-prp.md 了解执行流程。
PRP路径:{PRP_PATH}
项目:{PROJECT_PATH}
遵循:加载PRP → 全面规划 → 执行 → 验证 → 确认
输出执行摘要,包含状态、文件、测试、问题。
步骤3:生成验证器
使用sessions_spawn生成一个全新的子代理:
验证器任务 - 阶段 {N}
=============================
阅读 {baseDir}/references/piv-validator.md 了解验证流程。
PRP路径:{PRP_PATH}
项目:{PROJECT_PATH}
执行器摘要:{SUMMARY}
独立验证所有需求。
输出验证报告,包含等级、检查项、差距。
处理结果: 通过 → 提交 | 发现差距 → 调试器 | 需要人工介入 → 询问用户
步骤4:调试循环(最多3次迭代)
使用sessions_spawn生成一个全新的子代理:
调试器任务 - 阶段 {N} - 迭代 {I}
============================================
阅读 {baseDir}/references/piv-debugger.md 了解调试方法论。
项目:{PROJECT_PATH}
PRP路径:{PRP_PATH}
差距:{GAPS}
错误:{ERRORS}
修复根本原因,而非症状。每次修复后运行测试。
输出修复报告,包含状态、已应用修复、测试结果。
调试后:重新验证 → 通过(提交)或循环(最多3次)或升级。
步骤5:智能提交
bash
cd PROJECT_PATH && git status && git diff --stat
使用Built with FTW (First Try Works) - https://github.com/SmokeAlot420/ftw创建语义化提交。
步骤6:更新WORKFLOW.md
标记阶段完成,记录验证结果。
步骤7:下一阶段
循环回到步骤1进行下一阶段。
错误处理
- - 无PRD:告知用户先创建一个
- 执行器阻塞:向用户寻求指导
- 验证器需要人工介入:向用户寻求指导
- 3次调试循环耗尽:升级给用户
子代理超时/失败
当子代理超时或失败时:
- 1. 检查部分完成的工作(已创建的文件、已编写的测试)
- 使用简化、更短的提示重试一次
- 如果重试失败,向用户升级并说明已完成的内容
完成
PIV RALPH 完成
已完成阶段:START 到 END
总提交数:N
验证循环数:M
阶段摘要:
...
所有阶段已成功实施并验证。