Skills: Imported 24 skills (16 Anthropic + 8 dev) - Updated README intelligent features

This commit is contained in:
Gemini AI
2025-12-14 21:20:15 +04:00
Unverified
parent 6f4ac75806
commit b8596ed8a7
2 changed files with 317 additions and 127 deletions

View File

@@ -150,13 +150,20 @@ The redesigned settings panel gives you one-click access to all features with li
``` ```
### 🎯 Skills Library (`/skills`, `/skill`) ### 🎯 Skills Library (`/skills`, `/skill`)
**NEW!** 10 pre-built AI skill prompts for common tasks: **NEW!** 24 pre-built AI skill prompts imported from [Anthropic's Official Skills](https://github.com/anthropics/skills):
- `test` - Generate unit tests
- `refactor` - Code refactoring suggestions | Category | Skills |
- `review` - Thorough code review |----------|--------|
- `docs` - Generate documentation | **Design** | `algorithmic-art`, `brand-guidelines`, `canvas-design`, `theme-factory`, `frontend-design` |
- `security` - Security audit | **Documents** | `pdf`, `docx`, `pptx`, `xlsx` |
- `explain` - Explain code in simple terms | **Development** | `mcp-builder`, `web-artifacts-builder`, `test`, `refactor`, `review`, `api`, `schema`, `explain` |
| **Testing** | `webapp-testing` |
| **Writing** | `doc-coauthoring`, `internal-comms` |
| **Creative** | `slack-gif-creator`, `skill-creator` |
| **Security** | `security` |
| **Docs** | `docs` |
Usage: `/skill pdf` then describe what you need!
### 🔧 Debug Logging (`/debug`) ### 🔧 Debug Logging (`/debug`)
**NEW!** Toggle detailed API request/response logging for debugging: **NEW!** Toggle detailed API request/response logging for debugging:

View File

@@ -1,18 +1,252 @@
/** /**
* Skills Library - Pre-built AI prompts for common tasks * Skills Library - Anthropic-compatible AI prompts for OpenQode TUI
* Provides /skills and /skill <name> commands * Imported from: https://github.com/anthropics/skills/tree/main/skills
* Plus original development-focused skills
* *
* Original implementation for OpenQode TUI * Original implementation for OpenQode TUI
*/ */
/** /**
* Skill definition structure * Anthropic Official Skills (16)
*/ */
const SKILLS = { const ANTHROPIC_SKILLS = {
// Development Skills // Design & Creative
test: { 'algorithmic-art': {
name: 'Algorithmic Art',
description: 'Create generative and algorithmic art pieces',
category: 'design',
prompt: `You are an expert in algorithmic and generative art.
Help the user create beautiful algorithmic art pieces using code.
Focus on:
- Mathematical patterns and fractals
- Procedural generation techniques
- Color theory and palettes
- SVG, Canvas, or Processing-style code
- Creating visually stunning outputs`
},
'brand-guidelines': {
name: 'Brand Guidelines',
description: 'Create comprehensive brand identity guidelines',
category: 'design',
prompt: `You are a brand identity expert.
Create comprehensive brand guidelines including:
- Logo usage rules and variations
- Color palette (primary, secondary, accent)
- Typography hierarchy
- Voice and tone guidelines
- Do's and don'ts
- Application examples`
},
'canvas-design': {
name: 'Canvas Design',
description: 'Design interactive canvas-based graphics',
category: 'design',
prompt: `You are an expert in HTML Canvas graphics.
Create interactive canvas-based designs including:
- Animations and transitions
- User interaction handling
- Particle systems
- Drawing and painting tools
- Game graphics
- Data visualizations`
},
'theme-factory': {
name: 'Theme Factory',
description: 'Create custom themes for applications',
category: 'design',
prompt: `You are a theming expert.
Create comprehensive themes including:
- Color schemes (light/dark modes)
- CSS variables and tokens
- Component styling
- Consistent spacing and typography
- Accessibility considerations
- Theme switching logic`
},
'frontend-design': {
name: 'Frontend Design',
description: 'Design beautiful frontend interfaces',
category: 'design',
prompt: `You are a frontend design expert.
Create stunning, modern UI designs with:
- Responsive layouts
- Modern CSS techniques (Grid, Flexbox)
- Micro-interactions and animations
- Accessibility best practices
- Performance optimization
- Cross-browser compatibility`
},
// Document Generation
'pdf': {
name: 'PDF Generator',
description: 'Generate professional PDF documents',
category: 'documents',
prompt: `You are a PDF generation expert.
Create professional PDF documents with:
- Proper structure and formatting
- Headers, footers, page numbers
- Tables and figures
- Code for generating PDFs (jsPDF, pdfkit, etc.)
- Print-ready layouts
- Accessibility features`
},
'docx': {
name: 'Word Document',
description: 'Generate Microsoft Word documents',
category: 'documents',
prompt: `You are a document generation expert.
Create professional Word documents with:
- Proper heading hierarchy
- Styled paragraphs and lists
- Tables and images
- Headers and footers
- Code for generating DOCX (docx npm package)
- Template-based generation`
},
'pptx': {
name: 'PowerPoint Slides',
description: 'Generate presentation slides',
category: 'documents',
prompt: `You are a presentation expert.
Create compelling PowerPoint presentations with:
- Clear slide structure
- Visual hierarchy
- Charts and diagrams
- Speaker notes
- Code for generating PPTX (pptxgenjs)
- Consistent branding`
},
'xlsx': {
name: 'Excel Spreadsheet',
description: 'Generate Excel spreadsheets with data',
category: 'documents',
prompt: `You are a spreadsheet expert.
Create professional Excel spreadsheets with:
- Formatted tables and cells
- Formulas and calculations
- Charts and visualizations
- Multiple worksheets
- Code for generating XLSX (exceljs, xlsx)
- Data validation`
},
// Communication
'doc-coauthoring': {
name: 'Document Co-Author',
description: 'Collaborate on document writing',
category: 'writing',
prompt: `You are a collaborative writing expert.
Help co-author documents with:
- Maintaining consistent voice and style
- Seamless section integration
- Constructive editing suggestions
- Version tracking awareness
- Clear handoff points
- Coherent narrative flow`
},
'internal-comms': {
name: 'Internal Communications',
description: 'Write internal company communications',
category: 'writing',
prompt: `You are an internal communications expert.
Create effective internal communications:
- Company announcements
- Team updates
- Policy communications
- Change management messages
- Appropriate tone for audience
- Clear calls to action`
},
'slack-gif-creator': {
name: 'Slack GIF Creator',
description: 'Create custom GIFs for Slack',
category: 'creative',
prompt: `You are a GIF creation expert.
Create engaging animated GIFs for Slack:
- Reaction GIFs
- Celebration animations
- Custom team expressions
- Appropriate file sizes
- Loop optimization
- Accessibility considerations`
},
// Development
'mcp-builder': {
name: 'MCP Builder',
description: 'Build Model Context Protocol servers',
category: 'development',
prompt: `You are an MCP (Model Context Protocol) expert.
Build MCP servers and tools with:
- Proper protocol implementation
- Tool definitions
- Resource handling
- Error handling
- TypeScript/JavaScript implementation
- Integration with Claude/AI assistants`
},
'web-artifacts-builder': {
name: 'Web Artifacts Builder',
description: 'Create interactive web artifacts',
category: 'development',
prompt: `You are a web artifacts expert.
Create self-contained, interactive web artifacts:
- Single HTML file with embedded CSS/JS
- Interactive components
- Data visualizations
- Mini applications
- Shareable code snippets
- No external dependencies`
},
'webapp-testing': {
name: 'Web App Testing',
description: 'Comprehensive web application testing',
category: 'testing',
prompt: `You are a web application testing expert.
Create comprehensive test suites including:
- Unit tests (Jest, Vitest)
- Integration tests
- E2E tests (Playwright, Cypress)
- Visual regression tests
- Performance testing
- Accessibility testing
- Coverage reports`
},
'skill-creator': {
name: 'Skill Creator',
description: 'Create new Claude skills',
category: 'meta',
prompt: `You are a skill creation expert.
Help create new Claude/AI skills with:
- Clear skill definition
- Detailed prompts
- Example inputs/outputs
- Edge case handling
- Testing guidelines
- Documentation`
}
};
/**
* Development Skills (Original OpenQode)
*/
const DEV_SKILLS = {
'test': {
name: 'Unit Tests', name: 'Unit Tests',
description: 'Generate comprehensive unit tests for code', description: 'Generate comprehensive unit tests',
category: 'development', category: 'development',
prompt: `Generate comprehensive unit tests for the provided code. prompt: `Generate comprehensive unit tests for the provided code.
Include: Include:
@@ -21,11 +255,10 @@ Include:
- Mock dependencies where appropriate - Mock dependencies where appropriate
- Clear test descriptions - Clear test descriptions
- Setup and teardown if needed - Setup and teardown if needed
Format: Use the appropriate testing framework (Jest, pytest, etc.)`
Format: Use the appropriate testing framework for the language (Jest, pytest, etc.)`
}, },
refactor: { 'refactor': {
name: 'Refactor Code', name: 'Refactor Code',
description: 'Suggest refactoring improvements', description: 'Suggest refactoring improvements',
category: 'development', category: 'development',
@@ -36,138 +269,97 @@ Focus on:
- Performance optimizations - Performance optimizations
- Design pattern opportunities - Design pattern opportunities
- Type safety improvements - Type safety improvements
Provide before/after examples.`
Provide before/after examples for each suggestion.`
}, },
review: { 'review': {
name: 'Code Review', name: 'Code Review',
description: 'Perform a thorough code review', description: 'Perform thorough code review',
category: 'development', category: 'development',
prompt: `Perform a thorough code review of the provided code. prompt: `Perform a thorough code review.
Check for: Check for:
- Bugs and logic errors - Bugs and logic errors
- Security vulnerabilities - Security vulnerabilities
- Performance issues - Performance issues
- Code style and consistency - Code style consistency
- Documentation gaps - Documentation gaps
- Error handling - Error handling
Rate severity: 🔴 Critical | 🟡 Warning | 🟢 Suggestion` Rate severity: 🔴 Critical | 🟡 Warning | 🟢 Suggestion`
}, },
debug: { 'security': {
name: 'Debug Helper',
description: 'Help diagnose and fix bugs',
category: 'development',
prompt: `Help debug the provided code/error.
Approach:
1. Identify the root cause
2. Explain why the error occurs
3. Provide the fix with explanation
4. Suggest prevention strategies
Include stack trace analysis if provided.`
},
// Documentation Skills
docs: {
name: 'Documentation',
description: 'Generate comprehensive documentation',
category: 'documentation',
prompt: `Generate comprehensive documentation for the provided code.
Include:
- Overview/purpose
- Installation/setup (if applicable)
- API reference with parameters and return values
- Usage examples
- Configuration options
- Common issues/FAQ
Format: Markdown with proper headings.`
},
readme: {
name: 'README Generator',
description: 'Create a professional README.md',
category: 'documentation',
prompt: `Create a professional README.md for this project.
Include:
- Project title and badges
- Description
- Features list
- Quick start guide
- Installation steps
- Usage examples
- Configuration
- Contributing guidelines
- License
Make it visually appealing with emojis and formatting.`
},
// Analysis Skills
explain: {
name: 'Code Explainer',
description: 'Explain code in simple terms',
category: 'analysis',
prompt: `Explain the provided code in simple, clear terms.
Structure:
1. High-level purpose (what it does)
2. Step-by-step walkthrough
3. Key concepts used
4. How it fits in larger context
Use analogies where helpful. Suitable for juniors.`
},
security: {
name: 'Security Audit', name: 'Security Audit',
description: 'Check for security vulnerabilities', description: 'Check for security vulnerabilities',
category: 'analysis', category: 'development',
prompt: `Perform a security audit of the provided code. prompt: `Perform a security audit.
Check for: Check for:
- Injection vulnerabilities (SQL, XSS, etc.) - Injection vulnerabilities (SQL, XSS)
- Authentication/authorization issues - Authentication/authorization issues
- Sensitive data exposure - Sensitive data exposure
- Insecure dependencies
- Cryptographic weaknesses - Cryptographic weaknesses
- OWASP Top 10 issues - OWASP Top 10 issues
Severity: 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low` Severity: 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low`
}, },
// Generation Skills 'docs': {
api: { name: 'Documentation',
description: 'Generate comprehensive documentation',
category: 'documentation',
prompt: `Generate comprehensive documentation.
Include:
- Overview/purpose
- API reference with parameters
- Usage examples
- Configuration options
- Common issues/FAQ
Format: Markdown with proper headings.`
},
'explain': {
name: 'Code Explainer',
description: 'Explain code in simple terms',
category: 'development',
prompt: `Explain the provided code in simple, clear terms.
Structure:
1. High-level purpose
2. Step-by-step walkthrough
3. Key concepts used
4. How it fits in context
Use analogies. Suitable for juniors.`
},
'api': {
name: 'API Design', name: 'API Design',
description: 'Design REST API endpoints', description: 'Design REST API endpoints',
category: 'generation', category: 'development',
prompt: `Design REST API endpoints for the described functionality. prompt: `Design REST API endpoints.
Include: Include:
- Endpoint paths and methods - Endpoint paths and methods
- Request/response schemas (JSON) - Request/response schemas (JSON)
- Status codes - Status codes
- Authentication requirements - Authentication requirements
- Rate limiting suggestions - Rate limiting suggestions
- OpenAPI/Swagger format if helpful` - OpenAPI/Swagger format`
}, },
schema: { 'schema': {
name: 'Database Schema', name: 'Database Schema',
description: 'Design database schema', description: 'Design database schema',
category: 'generation', category: 'development',
prompt: `Design a database schema for the described requirements. prompt: `Design a database schema.
Include: Include:
- Tables and columns with types - Tables and columns with types
- Primary/foreign keys - Primary/foreign keys
- Indexes for performance - Indexes for performance
- Relationships diagram (text-based) - Relationships diagram
- Migration script if helpful - Migration script
Consider normalization and queries.`
Consider normalization and query patterns.`
} }
}; };
// Merge all skills
const SKILLS = { ...ANTHROPIC_SKILLS, ...DEV_SKILLS };
/** /**
* Get all available skills * Get all available skills
*/ */
@@ -183,14 +375,12 @@ export function getAllSkills() {
*/ */
export function getSkillsByCategory() { export function getSkillsByCategory() {
const categories = {}; const categories = {};
Object.entries(SKILLS).forEach(([id, skill]) => { Object.entries(SKILLS).forEach(([id, skill]) => {
if (!categories[skill.category]) { if (!categories[skill.category]) {
categories[skill.category] = []; categories[skill.category] = [];
} }
categories[skill.category].push({ id, ...skill }); categories[skill.category].push({ id, ...skill });
}); });
return categories; return categories;
} }
@@ -202,26 +392,15 @@ export function getSkill(skillId) {
} }
/** /**
* Execute a skill - returns the prompt to inject * Execute a skill
* @param {string} skillId - Skill ID
* @param {string} userInput - User's additional input/code
*/ */
export function executeSkill(skillId, userInput = '') { export function executeSkill(skillId, userInput = '') {
const skill = getSkill(skillId); const skill = getSkill(skillId);
if (!skill) return null; if (!skill) return null;
const fullPrompt = `[SKILL: ${skill.name}]
${skill.prompt}
USER INPUT/CODE:
${userInput}
Please proceed with the ${skill.name.toLowerCase()} task.`;
return { return {
skill, skill,
prompt: fullPrompt prompt: `[SKILL: ${skill.name}]\n\n${skill.prompt}\n\nUSER INPUT:\n${userInput}`
}; };
} }
@@ -232,11 +411,15 @@ export function getSkillListDisplay() {
const categories = getSkillsByCategory(); const categories = getSkillsByCategory();
let output = ''; let output = '';
for (const [category, skills] of Object.entries(categories)) { const categoryOrder = ['design', 'documents', 'development', 'testing', 'writing', 'creative', 'documentation', 'meta'];
output += `\n📁 ${category.toUpperCase()}\n`;
skills.forEach(skill => { for (const category of categoryOrder) {
output += ` /skill ${skill.id.padEnd(10)} - ${skill.description}\n`; if (categories[category]) {
}); output += `\n📁 ${category.toUpperCase()}\n`;
categories[category].forEach(skill => {
output += ` /skill ${skill.id.padEnd(20)} ${skill.description}\n`;
});
}
} }
return output; return output;