refactor(agents): streamline sisyphus prompt and remove generator script

Simplify sisyphus prompt by removing redundant sections and inline generation. Delete generate-sisyphus-prompt.ts as prompts are now managed directly in the agent definition.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
justsisyphus
2026-01-22 22:45:05 +09:00
parent 2fb8265d72
commit 079fae7026
2 changed files with 81 additions and 397 deletions
-105
View File
@@ -1,105 +0,0 @@
#!/usr/bin/env bun
/**
* Generate the full Sisyphus system prompt and output to sisyphus-prompt.md
*
* Usage:
* bun run script/generate-sisyphus-prompt.ts
*/
import { createSisyphusAgent } from "../src/agents/sisyphus"
import { ORACLE_PROMPT_METADATA } from "../src/agents/oracle"
import { LIBRARIAN_PROMPT_METADATA } from "../src/agents/librarian"
import { EXPLORE_PROMPT_METADATA } from "../src/agents/explore"
import { MULTIMODAL_LOOKER_PROMPT_METADATA } from "../src/agents/multimodal-looker"
import { createBuiltinSkills } from "../src/features/builtin-skills"
import { DEFAULT_CATEGORIES, CATEGORY_DESCRIPTIONS } from "../src/tools/delegate-task/constants"
import type { AvailableAgent, AvailableCategory, AvailableSkill } from "../src/agents/dynamic-agent-prompt-builder"
import type { BuiltinAgentName, AgentPromptMetadata } from "../src/agents/types"
import { writeFileSync } from "node:fs"
import { join } from "node:path"
// Build available agents (same logic as utils.ts)
const agentMetadata: Record<string, AgentPromptMetadata> = {
oracle: ORACLE_PROMPT_METADATA,
librarian: LIBRARIAN_PROMPT_METADATA,
explore: EXPLORE_PROMPT_METADATA,
"multimodal-looker": MULTIMODAL_LOOKER_PROMPT_METADATA,
}
const agentDescriptions: Record<string, string> = {
oracle: "Read-only consultation agent. High-IQ reasoning specialist for debugging hard problems and high-difficulty architecture design.",
librarian: "Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search. MUST BE USED when users ask to look up code in remote repositories, explain library internals, or find usage examples in open source.",
explore: 'Contextual grep for codebases. Answers "Where is X?", "Which file has Y?", "Find the code that does Z". Fire multiple in parallel for broad searches. Specify thoroughness: "quick" for basic, "medium" for moderate, "very thorough" for comprehensive analysis.',
"multimodal-looker": "Analyze media files (PDFs, images, diagrams) that require interpretation beyond raw text. Extracts specific information or summaries from documents, describes visual content. Use when you need analyzed/extracted data rather than literal file contents.",
}
const availableAgents: AvailableAgent[] = Object.entries(agentMetadata).map(([name, metadata]) => ({
name: name as BuiltinAgentName,
description: agentDescriptions[name] ?? "",
metadata,
}))
// Build available categories
const availableCategories: AvailableCategory[] = Object.entries(DEFAULT_CATEGORIES).map(([name]) => ({
name,
description: CATEGORY_DESCRIPTIONS[name] ?? "General tasks",
}))
// Build available skills
const builtinSkills = createBuiltinSkills()
const availableSkills: AvailableSkill[] = builtinSkills.map((skill) => ({
name: skill.name,
description: skill.description,
location: "plugin" as const,
}))
// Generate the agent config
const model = "anthropic/claude-opus-4-5"
const sisyphusConfig = createSisyphusAgent(
model,
availableAgents,
undefined, // no tool names
availableSkills,
availableCategories
)
// Output to file
const outputPath = join(import.meta.dirname, "..", "sisyphus-prompt.md")
const content = `# Sisyphus System Prompt
> Auto-generated by \`script/generate-sisyphus-prompt.ts\`
> Generated at: ${new Date().toISOString()}
## Configuration
| Field | Value |
|-------|-------|
| Model | \`${model}\` |
| Max Tokens | \`${sisyphusConfig.maxTokens}\` |
| Mode | \`${sisyphusConfig.mode}\` |
| Thinking | ${sisyphusConfig.thinking ? `Budget: ${sisyphusConfig.thinking.budgetTokens}` : "N/A"} |
## Available Agents
${availableAgents.map((a) => `- **${a.name}**: ${a.description.split(".")[0]}`).join("\n")}
## Available Categories
${availableCategories.map((c) => `- **${c.name}**: ${c.description}`).join("\n")}
## Available Skills
${availableSkills.map((s) => `- **${s.name}**: ${s.description.split(".")[0]}`).join("\n")}
---
## Full System Prompt
\`\`\`markdown
${sisyphusConfig.prompt}
\`\`\`
`
writeFileSync(outputPath, content)
console.log(`Generated: ${outputPath}`)
console.log(`Prompt length: ${sisyphusConfig.prompt?.length ?? 0} characters`)