skills/diy-guides/SKILL.md
Step-by-step DIY repair guides with video links, tools lists, and difficulty ratings
npx skillsauth add ticruz38/skills skills/diy-guidesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Step-by-step repair guides for common home maintenance tasks. Includes video links, tools lists, materials needed, difficulty ratings, and safety warnings.
The DIY Guides skill provides a curated database of home repair guides covering plumbing, electrical, appliances, furniture, outdoor work, automotive, painting, flooring, HVAC, and general repairs.
| Category | Icon | Description | |----------|------|-------------| | plumbing | 🔧 | Faucets, drains, toilets, pipes | | electrical | ⚡ | Switches, outlets, wiring | | appliance | 🔌 | Major appliances repair | | furniture | 🪑 | Assembly, repair, refinishing | | outdoor | 🌳 | Landscaping, gutters, exterior | | automotive | 🚗 | Car maintenance and repair | | painting | 🎨 | Interior/exterior painting | | flooring | 🏠 | Floor installation, repair | | hvac | ❄️ | Heating, cooling, ventilation | | general | 🔨 | Miscellaneous repairs |
cd skills/diy-guides
npm install
npm run build
npm run cli -- list
npm run cli -- get 1
npm run cli -- search "faucet"
npm run cli -- category plumbing
npm run cli -- difficulty easy
npm run cli -- tools 1
npm run cli -- materials 1
npm run cli -- steps 1
npm run cli -- warnings 1
import { DIYGuidesSkill } from '@openclaw/diy-guides';
const skill = new DIYGuidesSkill();
// Initialize and seed default guides
await skill.initialize();
// Get all guides
const guides = await skill.listGuides();
// Get specific guide
const guide = await skill.getGuide(1);
// Search guides
const results = await skill.searchGuides({
category: 'plumbing',
difficulty: 'easy',
searchTerm: 'faucet'
});
// Get guides by category
const plumbingGuides = await skill.getGuidesByCategory('plumbing');
// Get guides by difficulty
const easyGuides = await skill.getGuidesByDifficulty('easy');
// Get statistics
const stats = await skill.getStats();
await skill.close();
interface DIYGuide {
id?: number;
title: string;
description: string;
category: RepairCategory;
difficulty: DifficultyLevel;
estimatedTime: string;
tools: string[];
materials: string[];
steps: GuideStep[];
videoLinks?: VideoLink[];
tips?: string[];
warnings?: string[];
skillLevel?: string;
costEstimate?: string;
}
interface GuideStep {
stepNumber: number;
title: string;
description: string;
imageUrl?: string;
}
interface VideoLink {
title: string;
url: string;
platform: 'youtube' | 'vimeo' | 'other';
duration?: string;
}
The skill includes 12 pre-loaded repair guides:
The skill uses SQLite with the following schema:
CREATE TABLE guides (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT NOT NULL,
category TEXT NOT NULL,
difficulty TEXT NOT NULL,
estimated_time TEXT NOT NULL,
tools TEXT NOT NULL, -- JSON array
materials TEXT NOT NULL, -- JSON array
steps TEXT NOT NULL, -- JSON array
video_links TEXT, -- JSON array (optional)
tips TEXT, -- JSON array (optional)
warnings TEXT, -- JSON array (optional)
skill_level TEXT, -- optional
cost_estimate TEXT, -- optional
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
sqlite3: Database storageAll difficulty levels and categories are typed:
type DifficultyLevel = 'easy' | 'medium' | 'hard';
type RepairCategory =
| 'plumbing'
| 'electrical'
| 'appliance'
| 'furniture'
| 'outdoor'
| 'automotive'
| 'painting'
| 'flooring'
| 'hvac'
| 'general';
The skill throws errors for:
Always wrap calls in try-catch blocks and close the skill in a finally block.
const health = await skill.healthCheck();
// { healthy: true, message: "DIY Guides skill healthy. 12 guides available." }
This skill works entirely offline with local SQLite storage. No API keys or internet connection required.
testing
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.