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:
parent
1ecb2bafdf
commit
333db56172
@ -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,
|
||||||
|
|||||||
@ -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 ?? []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user