--- title: Skills | 0ct description: Create reusable instruction sets for your AI tasks --- # Skills Skills are reusable instruction sets that capture your institutional knowledge. Attach them to any task to ensure consistent quality, tone, and approach across all your AI operations. ## Why Skills? Without skills, you’d need to repeat common instructions in every task prompt: ``` ❌ Task 1: "Write in our brand voice: professional but friendly..." ❌ Task 2: "Write in our brand voice: professional but friendly..." ❌ Task 3: "Write in our brand voice: professional but friendly..." ``` With skills, define once and reuse everywhere: ``` ✅ Skill: "Brand Voice" → Attached to all tasks ``` ## Skill Types ### Writing Skills Define tone, style, and formatting preferences: - Brand voice guidelines - Technical writing standards - Email etiquette rules ### Domain Skills Capture industry-specific knowledge: - Product terminology - Industry regulations - Competitive landscape ### Process Skills Document step-by-step procedures: - Analysis frameworks - Quality checklists - Review processes ## Creating Skills ### Via Dashboard 1. Navigate to **Skills** in the sidebar 2. Click **New Skill** 3. Enter a name and description 4. Write your skill content in Markdown 5. Click **Save** ### Via Chat-Based Builder 1. Navigate to **Skills** → **New Skill** 2. Select **Chat Builder** 3. Describe what you want the skill to do 4. AI helps you refine the content 5. Review and save ### Via SDK ``` import Oct from '0ct'; const client = new Oct({ apiKey: process.env.OCT_API_KEY }); const skill = await client.promptly.skills.create({ name: 'Brand Voice', description: 'Our company writing style guidelines', content: ` ## Brand Voice Guidelines ### Tone - Professional but approachable - Confident, not arrogant - Clear and concise ### Style - Use active voice - Avoid jargon unless necessary - Keep sentences under 25 words ### Formatting - Use headers to organize content - Include bullet points for lists - Bold key terms on first use `, category: 'writing' }); ``` ### Via Dashboard AI Generation The dashboard includes AI-powered skill generation: 1. Navigate to **Skills** → **New Skill** 2. Select **Chat Builder** 3. Describe what you want the skill to accomplish 4. AI helps you refine the content interactively 5. Review and save when satisfied ### Via Dashboard Import Import skills from external sources: 1. Navigate to **Skills** → **New Skill** 2. Select **Import** 3. Paste a URL or GitHub link 4. Content is fetched and formatted as a skill ## Skill Content Format Skills use Markdown for rich formatting: ``` # Skill Name ## Purpose What this skill helps the AI do. ## Guidelines ### Section 1 - Point A - Point B - Point C ### Section 2 Detailed instructions here... ## Examples ### Good Example > This is what we want to see... ### Bad Example > This is what to avoid... ## Checklist - [ ] Did you do X? - [ ] Did you check Y? - [ ] Did you verify Z? ``` ## Attaching Skills to Tasks ### During Task Creation ``` const task = await client.promptly.tasks.create({ name: 'Weekly Newsletter', prompt: 'Write this week\'s newsletter covering...', modelId: 'openai/gpt-4o', frequency: 'weekly', scheduledDay: 'friday', scheduledTime: '10:00', skills: ['skill_brand_voice', 'skill_newsletter_format'] }); ``` ### Update Existing Task ``` await client.promptly.tasks.update('task_abc123', { skills: ['skill_new_guidelines'] }); ``` ### Skill Application Order When multiple skills are attached, they’re applied in order: 1. First skill’s content 2. Second skill’s content 3. … 4. Task prompt This allows you to layer context: - Base guidelines (skill 1) - Domain knowledge (skill 2) - Specific instructions (task prompt) ## Managing Skills ### List Skills ``` const skills = await client.promptly.skills.list(); for (const skill of skills.data) { console.log(`${skill.name}: ${skill.category}`); } ``` ### Get Skill Details ``` const skill = await client.promptly.skills.get('skill_abc123'); console.log(skill.content); ``` ### Update Skill ``` await client.promptly.skills.update('skill_abc123', { content: '# Updated Guidelines\n\nNew content here...' }); ``` ### Delete Skill ``` await client.promptly.skills.delete('skill_abc123'); ``` ## Skill Categories Organize skills by category for easy discovery: | Category | Use Case | | ---------- | ------------------------- | | `writing` | Tone, style, formatting | | `analysis` | Frameworks, methodologies | | `domain` | Industry knowledge | | `process` | Procedures, checklists | | `template` | Output formats | ``` // Filter by category const writingSkills = await client.promptly.skills.list({ category: 'writing' }); ``` ## Best Practices ### Keep Skills Focused Each skill should do one thing well: ``` ✅ "Email Tone Guidelines" - focused on email communication ❌ "All Writing Rules" - too broad, hard to maintain ``` ### Version Your Skills Include version info for tracking changes: ``` # Brand Voice v2.1 Last updated: February 2026 Changes: Added section on inclusive language ``` ### Test Skills Thoroughly Before widespread use, test skills on sample tasks: ``` // Create a test task const testTask = await client.promptly.tasks.create({ name: 'Skill Test', prompt: 'Write a sample email using these guidelines', modelId: 'openai/gpt-4o', frequency: 'once', skills: ['skill_new_guidelines'] }); // Trigger and review const run = await client.promptly.tasks.run(testTask.id); ``` ### Document Examples Always include good and bad examples: ``` ## Examples ### ✅ Good "Thanks for reaching out! I'd be happy to help..." ### ❌ Avoid "Your request has been received. Someone will contact you." ``` ## Common Skill Templates ### Brand Voice ``` # Brand Voice ## Personality We are: Helpful, Professional, Friendly We avoid: Robotic, Salesy, Condescending ## Language - Use "we" and "you" over "the company" and "the user" - Contractions are encouraged (we're, you'll, it's) - Avoid jargon; explain technical terms ## Formatting - Short paragraphs (2-3 sentences) - Bullet points for lists - Bold for emphasis, not ALL CAPS ``` ### Analysis Framework ``` # SWOT Analysis Framework When analyzing any topic, structure your response as: ## Strengths What advantages exist? What works well? ## Weaknesses What could be improved? What's lacking? ## Opportunities What possibilities exist? What trends are favorable? ## Threats What obstacles exist? What risks are present? Always conclude with actionable recommendations. ``` ## Next Steps - [Configure Destinations](/guides/destinations/index.md) - Deliver task results - [Explore Tasks](/guides/tasks/index.md) - Advanced task configuration - [Connect Sources](/guides/sources/index.md) - Add data connections