refactor(agents): remove lsp_diagnostics from Sisyphus and Sisyphus-Junior prompts

Orchestrator Sisyphus will handle project-level code validation instead of
having each subagent run file-level lsp_diagnostics.
This commit is contained in:
justsisyphus 2026-01-16 14:09:28 +09:00
parent 1ecb2bafdf
commit 333db56172
2 changed files with 18 additions and 28 deletions

View File

@ -1,11 +1,11 @@
import type { AgentConfig } from "@opencode-ai/sdk" import type { AgentConfig } from "@opencode-ai/sdk"
import { isGptModel } from "./types"
import type { AgentOverrideConfig, CategoryConfig } from "../config/schema" import type { AgentOverrideConfig, CategoryConfig } from "../config/schema"
import { import {
createAgentToolRestrictions, createAgentToolRestrictions,
migrateAgentConfig, migrateAgentConfig,
supportsNewPermissionSystem, supportsNewPermissionSystem,
} from "../shared/permission-compat" } from "../shared/permission-compat"
import { isGptModel } from "./types"
const SISYPHUS_JUNIOR_PROMPT = `<Role> const SISYPHUS_JUNIOR_PROMPT = `<Role>
Sisyphus-Junior - Focused executor from OhMyOpenCode. Sisyphus-Junior - Focused executor from OhMyOpenCode.
@ -58,7 +58,6 @@ No todos on multi-step work = INCOMPLETE WORK.
<Verification> <Verification>
Task NOT complete without: Task NOT complete without:
- lsp_diagnostics clean on changed files
- Build passes (if applicable) - Build passes (if applicable)
- All todos marked completed - All todos marked completed
</Verification> </Verification>
@ -85,7 +84,7 @@ export const SISYPHUS_JUNIOR_DEFAULTS = {
export function createSisyphusJuniorAgentWithOverrides( export function createSisyphusJuniorAgentWithOverrides(
override: AgentOverrideConfig | undefined, override: AgentOverrideConfig | undefined,
systemDefaultModel?: string systemDefaultModel?: string,
): AgentConfig { ): AgentConfig {
if (override?.disable) { if (override?.disable) {
override = undefined override = undefined
@ -121,7 +120,8 @@ export function createSisyphusJuniorAgentWithOverrides(
} }
const base: AgentConfig = { const base: AgentConfig = {
description: override?.description ?? description:
override?.description ??
"Sisyphus-Junior - Focused task executor. Same discipline, no delegation.", "Sisyphus-Junior - Focused task executor. Same discipline, no delegation.",
mode: "subagent" as const, mode: "subagent" as const,
model, model,
@ -148,7 +148,7 @@ export function createSisyphusJuniorAgentWithOverrides(
export function createSisyphusJuniorAgent( export function createSisyphusJuniorAgent(
categoryConfig: CategoryConfig, categoryConfig: CategoryConfig,
promptAppend?: string promptAppend?: string,
): AgentConfig { ): AgentConfig {
const prompt = buildSisyphusJuniorPrompt(promptAppend) const prompt = buildSisyphusJuniorPrompt(promptAppend)
const model = categoryConfig.model const model = categoryConfig.model
@ -158,10 +158,8 @@ export function createSisyphusJuniorAgent(
...(categoryConfig.tools ? { tools: categoryConfig.tools } : {}), ...(categoryConfig.tools ? { tools: categoryConfig.tools } : {}),
}) })
const base: AgentConfig = { const base: AgentConfig = {
description: description: "Sisyphus-Junior - Focused task executor. Same discipline, no delegation.",
"Sisyphus-Junior - Focused task executor. Same discipline, no delegation.",
mode: "subagent" as const, mode: "subagent" as const,
model, model,
maxTokens: categoryConfig.maxTokens ?? 64000, maxTokens: categoryConfig.maxTokens ?? 64000,

View File

@ -1,18 +1,18 @@
import type { AgentConfig } from "@opencode-ai/sdk" import type { AgentConfig } from "@opencode-ai/sdk"
import { isGptModel } from "./types" import type { AvailableAgent, AvailableSkill, AvailableTool } from "./sisyphus-prompt-builder"
import type { AvailableAgent, AvailableTool, AvailableSkill } from "./sisyphus-prompt-builder"
import { import {
buildKeyTriggersSection,
buildToolSelectionTable,
buildExploreSection,
buildLibrarianSection,
buildDelegationTable,
buildFrontendSection,
buildOracleSection,
buildHardBlocksSection,
buildAntiPatternsSection, buildAntiPatternsSection,
buildDelegationTable,
buildExploreSection,
buildFrontendSection,
buildHardBlocksSection,
buildKeyTriggersSection,
buildLibrarianSection,
buildOracleSection,
buildToolSelectionTable,
categorizeTools, categorizeTools,
} from "./sisyphus-prompt-builder" } from "./sisyphus-prompt-builder"
import { isGptModel } from "./types"
const DEFAULT_MODEL = "anthropic/claude-opus-4-5" const DEFAULT_MODEL = "anthropic/claude-opus-4-5"
@ -336,7 +336,6 @@ When you're mentioned in GitHub issues or asked to "look into" something and "cr
2. **Implement**: Make the necessary changes 2. **Implement**: Make the necessary changes
- Follow existing codebase patterns - Follow existing codebase patterns
- Add tests if applicable - Add tests if applicable
- Verify with lsp_diagnostics
3. **Verify**: Ensure everything works 3. **Verify**: Ensure everything works
- Run build if exists - Run build if exists
- Run tests if exists - Run tests if exists
@ -361,18 +360,12 @@ const SISYPHUS_CODE_CHANGES = `### Code Changes:
### Verification: ### Verification:
Run \`lsp_diagnostics\` on changed files at:
- End of a logical task unit
- Before marking a todo item complete
- Before reporting completion to user
If project has build/test commands, run them at task completion. If project has build/test commands, run them at task completion.
### Evidence Requirements (task NOT complete without these): ### Evidence Requirements (task NOT complete without these):
| Action | Required Evidence | | Action | Required Evidence |
|--------|-------------------| |--------|-------------------|
| File edit | \`lsp_diagnostics\` clean on changed files |
| Build command | Exit code 0 | | Build command | Exit code 0 |
| Test run | Pass (or explicit note of pre-existing failures) | | Test run | Pass (or explicit note of pre-existing failures) |
| Delegation | Agent result received and verified | | Delegation | Agent result received and verified |
@ -401,7 +394,6 @@ const SISYPHUS_PHASE3 = `## Phase 3 - Completion
A task is complete when: A task is complete when:
- [ ] All planned todo items marked done - [ ] All planned todo items marked done
- [ ] Diagnostics clean on changed files
- [ ] Build passes (if applicable) - [ ] Build passes (if applicable)
- [ ] User's original request fully addressed - [ ] User's original request fully addressed
@ -525,7 +517,7 @@ const SISYPHUS_SOFT_GUIDELINES = `## Soft Guidelines
function buildDynamicSisyphusPrompt( function buildDynamicSisyphusPrompt(
availableAgents: AvailableAgent[], availableAgents: AvailableAgent[],
availableTools: AvailableTool[] = [], availableTools: AvailableTool[] = [],
availableSkills: AvailableSkill[] = [] availableSkills: AvailableSkill[] = [],
): string { ): string {
const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills) const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills)
const toolSelection = buildToolSelectionTable(availableAgents, availableTools, availableSkills) const toolSelection = buildToolSelectionTable(availableAgents, availableTools, availableSkills)
@ -610,7 +602,7 @@ export function createSisyphusAgent(
model: string = DEFAULT_MODEL, model: string = DEFAULT_MODEL,
availableAgents?: AvailableAgent[], availableAgents?: AvailableAgent[],
availableToolNames?: string[], availableToolNames?: string[],
availableSkills?: AvailableSkill[] availableSkills?: AvailableSkill[],
): AgentConfig { ): AgentConfig {
const tools = availableToolNames ? categorizeTools(availableToolNames) : [] const tools = availableToolNames ? categorizeTools(availableToolNames) : []
const skills = availableSkills ?? [] const skills = availableSkills ?? []