- Before ULPI Custom Skills
- After ULPI Custom Skills
Your team’s knowledge gets lost:
- ❌ New developers ask: “How do we deploy to staging?”
- ❌ Different team members follow different patterns
- ❌ 3 hours lost onboarding each new developer
- ❌ Tribal knowledge disappears when people leave
- ❌ AI generates code that doesn’t match your coding standards
- ❌ Code reviews waste time fixing style inconsistencies
- ❌ Critical procedures documented in scattered wikis and Slack messages
Customer Success Story:“We created a custom ‘Deploy to Staging’ skill that codified our entire deployment process. The first time a new developer used it, they got it right on try one—no questions, no mistakes. We’ve saved 78% of the time we used to spend on deployment-related troubleshooting.” — Lead DevOps Engineer, SaaS Platform with 15M Users
Why Create Custom Skills?
While ULPI provides 10 production-ready public skills, the real power comes from custom skills—workflows you create specifically for your team’s patterns, tools, and conventions.Standardize Team Practices
Every team member and AI agent follows the exact same patterns. No more “but I thought we did it this way” confusion.
Document Executable Workflows
Your documentation isn’t just text—it’s working code that AI can execute. Always up-to-date because it’s used every day.
Onboard Instantly
New developers learn by doing. Custom skills guide them through your exact processes from day one.
Preserve Institutional Knowledge
When experienced developers leave, their expertise stays. Capture it once in a skill, use it forever.
Real-World Impact
Custom skills deliver measurable ROI: Time Savings:- 78% reduction in deployment troubleshooting (from 3 hours/week to 40 minutes)
- 2 hours saved per feature by eliminating code review rework
- 3x faster onboarding for new team members (from 3 days to 1 day for standard procedures)
- 92% fewer code style inconsistencies in pull requests
- Zero missed steps in deployment procedures (down from 12 incidents/month)
- 100% team alignment on coding conventions
All Skills plans include unlimited custom skill creation. Plan limits only affect how many skills can be “active” (ready to use) at once:
- Starter: 5 active skills
- Pro: 25 active skills
- Enterprise: Unlimited active skills
Common Custom Skills
Teams create custom skills for workflows unique to their organization:1. Deployment Workflows
1. Deployment Workflows
Example Skills:
- Deploy to Staging Environment
- Deploy to Production with Approval
- Rollback Production Deployment
- Deploy Database Migration
- Create Release Tag and Changelog
- Specific approval workflows
- Custom CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins)
- Environment-specific configuration
- Company-specific health checks
- Internal notification systems (Slack, PagerDuty, email)
2. Code Review Checklists
2. Code Review Checklists
Example Skills:
- Run Pre-PR Code Review Checklist
- Security Audit for Pull Request
- Performance Review Checklist
- Accessibility Compliance Check
- Database Migration Review
- Company-specific security requirements
- Performance benchmarks for your app
- Custom linters and formatters
- Internal compliance rules (GDPR, SOC 2, HIPAA)
- Team-specific best practices
3. Company Coding Standards
3. Company Coding Standards
Example Skills:
- Implement Feature Following Company Standards
- Create API Endpoint (Company Style)
- Write Tests Using Team Framework
- Add Logging and Error Handling
- Implement Authentication Flow
- Specific architecture patterns (layered, clean, hexagonal)
- Internal libraries and frameworks
- Custom error handling conventions
- Logging standards (format, levels, context)
- Authentication and authorization patterns
4. Security Scanning
4. Security Scanning
Example Skills:
- Run Security Audit on New Code
- Check for Secrets in Codebase
- Validate Input Sanitization
- Review Authentication Implementation
- Scan Dependencies for Vulnerabilities
- Company-specific security tools (Snyk, Checkmarx, internal scanners)
- Compliance requirements (PCI-DSS, HIPAA, SOC 2)
- Custom vulnerability detection rules
- Internal security approval workflows
- Integration with security ticketing systems
5. Local Environment Setup
5. Local Environment Setup
Example Skills:
- Setup Local Development Environment
- Configure Database and Seed Data
- Install Team Tools and Extensions
- Setup Docker Compose Stack
- Configure IDE Settings
- Specific tool versions (Node 22, PHP 8.2, Python 3.12)
- Internal package repositories
- Database connection strings
- Environment variable templates
- Team-specific IDE configurations
6. Internal API Integration
6. Internal API Integration
Example Skills:
- Integrate with Internal Payment Service
- Call Internal Authentication API
- Fetch Data from Company Data Lake
- Send Events to Internal Event Bus
- Generate Client for Internal API
- Custom authentication schemes
- Internal API conventions
- Company-specific error handling
- Internal rate limiting patterns
- Documentation links to internal wikis
7. Database Procedures
7. Database Procedures
Example Skills:
- Backup Production Database
- Create Database Migration
- Run Data Transformation Script
- Optimize Query Performance
- Setup Database Replication
- Specific backup procedures and retention policies
- Company-specific migration conventions
- Custom database tools and utilities
- Environment-specific connection management
- Data privacy and masking requirements
8. Team Notifications
8. Team Notifications
Example Skills:
- Send Deployment Notification to Slack
- Create Incident Report in Jira
- Email Release Notes to Stakeholders
- Post Update to Internal Status Page
- Notify On-Call Engineer
- Internal Slack channels and webhooks
- Company ticketing systems (Jira, Linear, Asana)
- Email templates and distribution lists
- Status page integrations (StatusPage, internal tools)
- PagerDuty/on-call systems
Creating Your First Custom Skill
Let’s walk through creating a “Deploy to Staging Environment” skill—one of the most common and valuable custom skills.Step 1: Plan Your Skill
Before writing anything, document your current manual process.1
Define the Goal
What does this skill accomplish?Deploy the application to the staging environment with proper verification and team notification.
2
Identify Prerequisites
What must be true before this skill can run?
- Docker installed and authenticated to registry
- kubectl configured for staging cluster
- Staging namespace exists in Kubernetes
- Slack webhook URL configured in environment
- All tests passing locally
3
Document Current Manual Steps
What do you do manually today?
- Developer runs
npm test - Developer runs
npm run build - Developer runs
docker build - Developer pushes to registry
- Developer runs
kubectl apply - Developer checks logs
- Developer posts in #deployments Slack channel
4
Define Testing Criteria
How do you verify it worked?
- Deployment shows READY 3/3
- All pods in Running state
- Health endpoint returns 200 OK
- Smoke tests pass
- Slack notification posted
5
Identify Next Steps
What happens after this skill completes?
- Monitor error tracking for 10-15 minutes
- Verify staging functionality with QA team
- Create production deployment PR if stable
- Use “Deploy to Production” skill when approved
Step 2: Create Skill in ULPI Dashboard
1
Navigate to Skills Section
Go to app.ulpi.io/skills → Click Create Skill
2
Fill Basic Information
Name:
Deploy to Staging EnvironmentSlug: deploy-to-staging (auto-generated, URL-friendly)Description: Deploy application to staging environment with health checks and team notificationTech Stack Filters: Select technologies this skill applies todockerkubernetesnodejs(or your primary language)- Add more as needed
deploymentdevopsstaging
3
Write Skill Content
Write your skill content in the ULPI dashboard editor using Markdown format.Skill Structure:
- Title and description
- Prerequisites section (required tools, knowledge, environment)
- Steps section (numbered, actionable steps with code examples)
- Testing section (verification commands and expected results)
- Next Steps section (follow-up actions)
- Prerequisites: Docker, kubectl, Slack webhook, tests passing
- Steps: Run tests → Build assets → Build Docker image → Push to registry → Deploy to Kubernetes → Run health checks → Notify team (8 steps total)
- Testing: Check deployment status, pod status, health endpoint, smoke tests
- Next Steps: Monitor 10-15 minutes, verify with QA, create prod PR if stable
4
Save and Activate
Click Save to create the skill.Toggle Active status to make it available to your AI assistant immediately.
Step 3: Use Your Custom Skill
In your AI coding assistant:- ✅ Fetch the skill from ULPI via MCP
- ✅ Follow all 8 steps sequentially
- ✅ Execute commands (with your permission if configured)
- ✅ Run health checks and verify deployment
- ✅ Notify your team in Slack
- ✅ Report completion with next steps
Skill Anatomy & Best Practices
Every great skill follows a consistent structure. Here’s what makes a skill effective:Skill Template Structure
Component Breakdown
1. Title & Description
1. Title & Description
Best Practices:
- Use clear, action-oriented title (starts with verb)
- Keep description to 1-2 sentences
- Focus on outcome, not process
- ✅ Good: “Deploy to Production” / “Deploy application to production with zero-downtime rollout”
- ❌ Bad: “Production Deployment Thing” / “This skill handles various deployment scenarios”
2. Prerequisites
2. Prerequisites
Best Practices:
- List tools that must be installed
- Specify knowledge developer should have
- Note environment configuration needed
- AI checks these before executing
- ✅ Good: “Docker 20+ installed and authenticated to registry”
- ❌ Bad: “Docker setup”
3. Steps
3. Steps
Best Practices:
- Number steps sequentially (AI follows in order)
- Each step has a clear, actionable title
- Include code examples for every step
- Explain the “why,” not just the “what”
- Make steps atomic (one clear action per step)
- ✅ Good: “Run test suite — Ensure all tests pass before deploying. This prevents deploying broken code to staging.”
- ❌ Bad: “Step 3 — Do the tests”
4. Testing
4. Testing
Best Practices:
- Provide commands to verify it worked
- Specify expected output
- Include what to do if tests fail
- AI can execute tests automatically
- ✅ Good: “Run
curl https://staging.myapp.com/health. Expected: HTTP 200 with{\"status\": \"ok\"}. If fails: Check pod logs.” - ❌ Bad: “Make sure it works”
5. Next Steps
5. Next Steps
Best Practices:
- Suggest follow-up actions
- Link to related skills
- Provide documentation references
- Help AI continue the workflow
- ✅ Good: “Monitor error tracking for 10 minutes. If stable, use ‘Deploy to Production’ skill.”
- ❌ Bad: “You’re done”
Writing Best Practices
Write Clear Step Titles
❌ Bad: “Do deployment stuff”
✅ Good: “Deploy to Kubernetes staging namespace”❌ Bad: “Step 3”
✅ Good: “Build Docker image with commit SHA tag”
Include Why, Not Just What
❌ Bad:All tests must pass. If any fail,
stop and fix them first.Expected: Returns PDO object
If fails: Check .env database credentials✅ Good (atomic steps):
Include Error Handling
Tell AI what to do when things go wrong:If migrations fail:
- Check for syntax errors
- Verify database connectivity
- Ensure migrations haven’t run yet
- Check user has ALTER permission
- Roll back if needed
Add Verification Steps
Always include testing/verification:Check health endpoint:Test critical endpoints:Check error logs:Run smoke tests:
Common Custom Skill Templates
1. Deployment Skill Template
Use this template structure for deployment skills: Skill Structure:- Title:
# Deploy to [Environment] - Description: Deploy application to [environment] environment
- Prerequisites: List required tools and credentials
- Steps: Numbered deployment steps with bash commands
- Testing: Health checks and verification steps
- Next Steps: Post-deployment actions
2. Code Review Checklist Skill
-
Review test coverage
Ensure new code is tested.
Coverage should be greater than 80% for new files.
-
Check for security issues
Run security scanners.
-
Verify documentation
- Are public methods documented?
- Is README updated if needed?
- Are breaking changes noted?
-
Review database changes
- Do migrations have down() methods?
- Are indexes added for foreign keys?
- Is data migration tested?
-
Check performance
- Are there N+1 queries?
- Are expensive operations queued?
- Are large datasets chunked?
- Leave review comment Summarize findings in PR comment.
Testing
- All checks passed
- No security vulnerabilities
- Adequate test coverage
Next Steps
- Approve PR if all checks pass
- Request changes if issues found
- Tag relevant team members for additional review
-
Install required tools
-
Clone repository
-
Copy environment file
Edit
.envwith your local database credentials. -
Install dependencies
-
Generate application key
-
Start services
-
Run migrations
-
Start development server
Testing
- Visit http://localhost:8000
- Login with seeded user (user@example.com / password)
- Verify all features work locally
Next Steps
- Read team documentation in
docs/ - Ask for code walkthrough from mentor
- Complete “Hello World” task to verify setup
Sharing Skills
Within Your Team:- All team members see custom skills automatically
- Changes propagate to all AI assistants (1 hour cache)
- Collaborative skill improvement
- Custom skills visible across entire organization
- Use tags to organize by team if needed
- Submit custom skills to ULPI for review
- If approved, becomes public skill available to all users
- Your team gets credit and recognition
Advanced Techniques
Skill Composition
Reference other skills within a skill:Conditional Logic
Guide AI through conditional paths:- Review each migration carefully
- Test migrations on staging first
- Prepare rollback plan
- Continue to step 2
- Skip to step 3 (no database changes needed)
staging, production, development
docker images | grep myapp
Should show image created just now.
-
Push to registry
✅ Verify:
docker pull myapp:latestShould download without errors. -
Deploy to Kubernetes
✅ Verify:
kubectl get deployment myappShould show READY 3/3.