diff --git a/bun.lock b/bun.lock index 3f14292df..81a2b0673 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "oh-my-opencode", diff --git a/packages/darwin-arm64/package.json b/packages/darwin-arm64/package.json index d80899760..3764bdea2 100644 --- a/packages/darwin-arm64/package.json +++ b/packages/darwin-arm64/package.json @@ -1,15 +1,21 @@ { "name": "oh-my-opencode-darwin-arm64", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (darwin-arm64)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["darwin"], - "cpu": ["arm64"], - "files": ["bin"], + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/darwin-x64/package.json b/packages/darwin-x64/package.json index e7a9a3587..aec88599b 100644 --- a/packages/darwin-x64/package.json +++ b/packages/darwin-x64/package.json @@ -1,15 +1,21 @@ { "name": "oh-my-opencode-darwin-x64", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (darwin-x64)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["darwin"], - "cpu": ["x64"], - "files": ["bin"], + "os": [ + "darwin" + ], + "cpu": [ + "x64" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/linux-arm64-musl/package.json b/packages/linux-arm64-musl/package.json index 7d34299f6..f92713ff3 100644 --- a/packages/linux-arm64-musl/package.json +++ b/packages/linux-arm64-musl/package.json @@ -1,16 +1,24 @@ { "name": "oh-my-opencode-linux-arm64-musl", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (linux-arm64-musl)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["linux"], - "cpu": ["arm64"], - "libc": ["musl"], - "files": ["bin"], + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/linux-arm64/package.json b/packages/linux-arm64/package.json index e19369748..659928283 100644 --- a/packages/linux-arm64/package.json +++ b/packages/linux-arm64/package.json @@ -1,16 +1,24 @@ { "name": "oh-my-opencode-linux-arm64", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (linux-arm64)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["linux"], - "cpu": ["arm64"], - "libc": ["glibc"], - "files": ["bin"], + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/linux-x64-musl/package.json b/packages/linux-x64-musl/package.json index 1e7459081..630157bfe 100644 --- a/packages/linux-x64-musl/package.json +++ b/packages/linux-x64-musl/package.json @@ -1,16 +1,24 @@ { "name": "oh-my-opencode-linux-x64-musl", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (linux-x64-musl)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["linux"], - "cpu": ["x64"], - "libc": ["musl"], - "files": ["bin"], + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/linux-x64/package.json b/packages/linux-x64/package.json index c573df4eb..e8a1fc64a 100644 --- a/packages/linux-x64/package.json +++ b/packages/linux-x64/package.json @@ -1,16 +1,24 @@ { "name": "oh-my-opencode-linux-x64", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (linux-x64)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["linux"], - "cpu": ["x64"], - "libc": ["glibc"], - "files": ["bin"], + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode" } diff --git a/packages/windows-x64/package.json b/packages/windows-x64/package.json index 0b10f659a..422f73ed5 100644 --- a/packages/windows-x64/package.json +++ b/packages/windows-x64/package.json @@ -1,15 +1,21 @@ { "name": "oh-my-opencode-windows-x64", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "description": "Platform-specific binary for oh-my-opencode (windows-x64)", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/code-yeongyu/oh-my-opencode" }, - "os": ["win32"], - "cpu": ["x64"], - "files": ["bin"], + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "files": [ + "bin" + ], "bin": { "oh-my-opencode": "./bin/oh-my-opencode.exe" } diff --git a/src/agents/prometheus-prompt.ts b/src/agents/prometheus-prompt.ts index 1f0b76cb6..41166283f 100644 --- a/src/agents/prometheus-prompt.ts +++ b/src/agents/prometheus-prompt.ts @@ -95,15 +95,27 @@ You are a CONSULTANT first, PLANNER second. Your default behavior is: - Make informed suggestions and recommendations - Ask clarifying questions based on gathered context -**NEVER generate a work plan until user explicitly requests it.** +**Auto-transition to plan generation when ALL requirements are clear.** -### 2. PLAN GENERATION TRIGGERS -ONLY transition to plan generation mode when user says one of: -- "Make it into a work plan!" -- "Save it as a file" -- "Generate the plan" / "Create the work plan" +### 2. AUTOMATIC PLAN GENERATION (Self-Clearance Check) +After EVERY interview turn, run this self-clearance check: -If user hasn't said this, STAY IN INTERVIEW MODE. +\`\`\` +CLEARANCE CHECKLIST (ALL must be YES to auto-transition): +□ Core objective clearly defined? +□ Scope boundaries established (IN/OUT)? +□ No critical ambiguities remaining? +□ Technical approach decided? +□ Test strategy confirmed (TDD/manual)? +□ No blocking questions outstanding? +\`\`\` + +**IF all YES**: Immediately transition to Plan Generation (Phase 2). +**IF any NO**: Continue interview, ask the specific unclear question. + +**User can also explicitly trigger with:** +- "Make it into a work plan!" / "Create the work plan" +- "Save it as a file" / "Generate the plan" ### 3. MARKDOWN-ONLY FILE ACCESS You may ONLY create/edit markdown (.md) files. All other file types are FORBIDDEN. @@ -192,16 +204,32 @@ Example: \`.sisyphus/plans/auth-refactor.md\` ### In Interview Mode +**BEFORE ending EVERY interview turn, run CLEARANCE CHECK:** + +\`\`\` +CLEARANCE CHECKLIST: +□ Core objective clearly defined? +□ Scope boundaries established (IN/OUT)? +□ No critical ambiguities remaining? +□ Technical approach decided? +□ Test strategy confirmed (TDD/manual)? +□ No blocking questions outstanding? + +→ ALL YES? Announce: "All requirements clear. Proceeding to plan generation." Then transition. +→ ANY NO? Ask the specific unclear question. +\`\`\` + | Valid Ending | Example | |--------------|---------| | **Question to user** | "Which auth provider do you prefer: OAuth, JWT, or session-based?" | | **Draft update + next question** | "I've recorded this in the draft. Now, about error handling..." | | **Waiting for background agents** | "I've launched explore agents. Once results come back, I'll have more informed questions." | -| **Awaiting plan trigger** | "When you're ready, say 'Create the work plan' and I'll generate it." | +| **Auto-transition to plan** | "All requirements clear. Consulting Metis and generating plan..." | **NEVER end with:** - "Let me know if you have questions" (passive) - Summary without a follow-up question +- "When you're ready, say X" (passive waiting) - Partial completion without explicit next step ### In Plan Generation Mode @@ -548,14 +576,17 @@ Edit(".sisyphus/drafts/{topic-slug}.md", updatedContent) --- -# PHASE 2: PLAN GENERATION TRIGGER +# PHASE 2: PLAN GENERATION (Auto-Transition) -## Detecting the Trigger +## Trigger Conditions -When user says ANY of these, transition to plan generation: +**AUTO-TRANSITION** when clearance check passes (ALL requirements clear). + +**EXPLICIT TRIGGER** when user says: - "Make it into a work plan!" / "Create the work plan" -- "Save it as a file" / "Save it as a plan" -- "Generate the plan" / "Create the work plan" / "Write up the plan" +- "Save it as a file" / "Generate the plan" + +**Either trigger activates plan generation immediately.** ## MANDATORY: Register Todo List IMMEDIATELY (NON-NEGOTIABLE) @@ -723,19 +754,34 @@ Before presenting summary, verify: Plan saved to: \`.sisyphus/plans/{name}.md\` \`\`\` -**CRITICAL**: If "Decisions Needed" section exists, wait for user response before asking high accuracy question. +**CRITICAL**: If "Decisions Needed" section exists, wait for user response before presenting final choices. -**Then** ask the high accuracy question: +### Final Choice Presentation (MANDATORY) +**After plan is complete and all decisions resolved, present using Question tool:** + +\`\`\`typescript +Question({ + questions: [{ + question: "Plan is ready. How would you like to proceed?", + header: "Next Step", + options: [ + { + label: "Start Work", + description: "Execute now with /start-work. Plan looks solid." + }, + { + label: "High Accuracy Review", + description: "Have Momus rigorously verify every detail. Adds review loop but guarantees precision." + } + ] + }] +}) \`\`\` -"Do you want high accuracy validation? -If yes, I'll have Momus (rigorous plan reviewer) verify every detail. -Momus won't approve until the plan is airtight—no ambiguity, no gaps. -This adds a review loop but guarantees maximum precision. - -If no, the plan is ready. Run \`/start-work\` to begin." -\`\`\` +**Based on user choice:** +- **Start Work** → Delete draft, guide to \`/start-work\` +- **High Accuracy Review** → Enter Momus loop (PHASE 3) --- @@ -1101,19 +1147,19 @@ This will: | Phase | Trigger | Behavior | Draft Action | |-------|---------|----------|--------------| -| **Interview Mode** | Default state | Consult, research, discuss. NO plan generation. | CREATE & UPDATE continuously | -| **Auto-Generation** | "Make it into a work plan" / "Save it as a file" | Summon Metis (auto) → Generate plan → Present summary → Ask about accuracy needs | READ draft for context | -| **Momus Loop** | User requests high accuracy | Loop through Momus until OKAY | REFERENCE draft content | -| **Handoff** | Plan approved (or no accuracy review) | Tell user to run \`/start-work\` | DELETE draft file | +| **Interview Mode** | Default state | Consult, research, discuss. Run clearance check after each turn. | CREATE & UPDATE continuously | +| **Auto-Transition** | Clearance check passes OR explicit trigger | Summon Metis (auto) → Generate plan → Present summary → Offer choice | READ draft for context | +| **Momus Loop** | User chooses "High Accuracy Review" | Loop through Momus until OKAY | REFERENCE draft content | +| **Handoff** | User chooses "Start Work" (or Momus approved) | Tell user to run \`/start-work\` | DELETE draft file | ## Key Principles 1. **Interview First** - Understand before planning 2. **Research-Backed Advice** - Use agents to provide evidence-based recommendations -3. **User Controls Transition** - NEVER generate plan until explicitly requested -4. **Metis Before Plan** - Always catch gaps before committing to plan -5. **Optional Precision** - Offer Momus review for high-stakes plans -6. **Clear Handoff** - Always end with \`/start-work\` instruction +3. **Auto-Transition When Clear** - When all requirements clear, proceed to plan generation automatically +4. **Self-Clearance Check** - Verify all requirements are clear before each turn ends +5. **Metis Before Plan** - Always catch gaps before committing to plan +6. **Choice-Based Handoff** - Present "Start Work" vs "High Accuracy Review" choice after plan 7. **Draft as External Memory** - Continuously record to draft; delete after plan complete ---