/** * Agent and Skill Templates * * Templates for creating new agents and skills in .codetyper/ directories. * Based on patterns from claude-code and opencode. */ /** * Valid agent colors with semantic meaning */ export const AGENT_COLORS = { blue: "Analysis, review, code inspection", cyan: "Analysis, review, code inspection", green: "Success, generation, creation", yellow: "Validation, caution, verification", red: "Security, critical issues", magenta: "Transformation, creative tasks", white: "Neutral, general purpose", gray: "Internal, utility", } as const; /** * Valid model options */ export const AGENT_MODELS = { inherit: "Uses parent model (recommended)", sonnet: "Claude Sonnet (balanced, default)", opus: "Claude Opus (most capable)", haiku: "Claude Haiku (fast, cheap)", "gpt-4o": "GPT-4o (OpenAI balanced)", "gpt-4o-mini": "GPT-4o Mini (OpenAI fast)", } as const; /** * Agent frontmatter template */ export const AGENT_FRONTMATTER_TEMPLATE = `--- name: {{name}} description: {{description}} model: {{model}} color: {{color}} tools: [{{tools}}] --- `; /** * Agent markdown template */ export const AGENT_MARKDOWN_TEMPLATE = `--- name: {{name}} description: Use this agent when {{trigger_description}}. Examples: {{examples}} model: {{model}} color: {{color}} {{#if tools}} tools: [{{tools}}] {{/if}} --- # {{display_name}} {{system_prompt}} ## Core Process {{process_steps}} ## Output Format {{output_format}} ## Rules {{rules}} `; /** * Skill frontmatter template */ export const SKILL_FRONTMATTER_TEMPLATE = `--- name: {{name}} description: {{description}} version: 0.1.0 --- `; /** * Skill markdown template */ export const SKILL_MARKDOWN_TEMPLATE = `--- name: {{name}} description: This skill should be used when {{trigger_description}}. version: 0.1.0 --- # {{display_name}} ## Overview {{overview}} ## When to Use {{when_to_use}} ## How to Use {{how_to_use}} ## Examples {{examples}} ## Best Practices {{best_practices}} `; /** * Default tools by agent type */ export const DEFAULT_TOOLS_BY_TYPE = { explore: ["glob", "grep", "read"], review: ["glob", "grep", "read"], implement: ["glob", "grep", "read", "write", "edit", "bash"], test: ["glob", "grep", "read", "write", "edit", "bash"], refactor: ["glob", "grep", "read", "write", "edit"], plan: ["glob", "grep", "read"], security: ["glob", "grep", "read"], documentation: ["glob", "grep", "read", "write"], general: ["glob", "grep", "read", "write", "edit", "bash", "web_search", "web_fetch"], } as const; /** * Agent creation prompt for LLM */ export const AGENT_CREATION_PROMPT = `You are an agent configuration generator. Create a high-quality agent definition based on the user's description. ## Output Format Generate a complete agent markdown file with: 1. **Frontmatter** (YAML between ---): - name: lowercase, hyphens only, 3-50 chars (e.g., "code-reviewer", "api-docs-writer") - description: Must start with "Use this agent when..." and include 2-4 blocks - model: inherit (recommended) | sonnet | opus | haiku | gpt-4o | gpt-4o-mini - color: blue | cyan | green | yellow | magenta | red (match semantic meaning) - tools: array of tool names (optional, omit for full access) 2. **System Prompt** (markdown body): - Clear role definition - Core process steps - Output format specification - Rules and constraints ## Example \`\`\`markdown --- name: code-reviewer description: Use this agent when the user asks to "review code", "check for bugs", "find issues", or wants code quality feedback. Context: User wants code reviewed\nuser: "Review this function for bugs"\nassistant: "I'll use the code-reviewer agent to analyze the code."\n model: inherit color: red tools: ["glob", "grep", "read"] --- # Code Reviewer You are a senior code reviewer who identifies bugs, logic errors, and quality issues. ## Core Process 1. Read the code thoroughly 2. Check for common bug patterns 3. Analyze logic flow 4. Review error handling 5. Check for security issues ## Output Format - **Issues Found:** List with severity, location, description - **Suggestions:** Improvement recommendations - **Summary:** Overall assessment ## Rules - Never modify files - Focus on actionable feedback - Prioritize by severity \`\`\` ## User's Description {{description}} Generate the complete agent markdown file:`; /** * Skill creation prompt for LLM */ export const SKILL_CREATION_PROMPT = `You are a skill documentation generator. Create educational skill documentation based on the user's description. ## Output Format Generate a complete skill SKILL.md file with: 1. **Frontmatter** (YAML between ---): - name: Display name with spaces - description: Trigger phrases when this skill should be used - version: 0.1.0 2. **Content** (markdown body): - Overview section - When to Use section - How to Use section with examples - Best Practices section ## Example \`\`\`markdown --- name: Git Workflow description: This skill should be used when the user asks about "git commands", "branching strategy", "commit messages", "pull requests", or needs guidance on git workflows and best practices. version: 0.1.0 --- # Git Workflow ## Overview This skill covers git best practices for development workflows. ## When to Use - Setting up a new git repository - Creating feature branches - Writing commit messages - Managing pull requests ## How to Use ### Creating a Feature Branch \`\`\`bash git checkout -b feature/my-feature \`\`\` ### Commit Message Format \`\`\` type(scope): description [optional body] [optional footer] \`\`\` ## Best Practices 1. Use descriptive branch names 2. Keep commits atomic 3. Write clear commit messages 4. Review before merging \`\`\` ## User's Description {{description}} Generate the complete skill SKILL.md file:`; /** * Directories for agents and skills */ export const CODETYPER_DIRS = { agents: ".codetyper/agents", skills: ".codetyper/skills", plugins: ".codetyper/plugins", } as const; /** * File patterns for discovery */ export const DISCOVERY_PATTERNS = { agents: "**/*.md", skills: "**/SKILL.md", } as const;