refactor: convert 6 skills to commands #3

Merged
cal merged 1 commits from refactor/json-pretty-command into main 2026-03-19 19:56:13 +00:00
10 changed files with 167 additions and 296 deletions

View File

@ -1,18 +1,9 @@
---
name: next
description: Check Gitea for open issues and surface the next task to work on
---
# Backlog - Find Next Task
## When to Activate This Skill
- "/backlog"
- "What should I work on?"
- "Check for open issues"
- "Any tasks to do?"
- "What's next?"
- "Show me the backlog"
## Core Workflow
### Step 1: Detect the current repo

View File

@ -1,5 +1,4 @@
---
name: generate
description: Analyze codebase and generate comprehensive PROJECT_PLAN.json task files
---
@ -10,7 +9,7 @@ Creates structured `PROJECT_PLAN.json` files for tracking project work.
## Usage
```
/project-plan [type]
/project-plan:generate [type]
```
**Types:**
@ -175,13 +174,3 @@ Create `PROJECT_PLAN.json` in the project root or relevant subdirectory.
- Default: `PROJECT_PLAN.json` in project root
- For monorepos: `{subproject}/PROJECT_PLAN.json`
- For focused work: `{directory}/PROJECT_PLAN.json`
## Example Invocations
```
/project-plan # Default refactoring analysis
/project-plan refactoring # Technical debt focus
/project-plan feature # Feature implementation plan
/project-plan audit # Security/a11y audit
/project-plan --output=frontend # Save to frontend/PROJECT_PLAN.json
```

View File

@ -1,8 +1,6 @@
---
name: save
allowed-tools: Read,Write,Edit,Glob,Grep,Bash
description: Save documentation to the knowledge base with proper frontmatter
user-invocable: true
allowed-tools: Read,Write,Edit,Glob,Grep,Bash
---
Save learnings, fixes, release notes, and other documentation to the claude-home knowledge base. Files are auto-committed and pushed by the `sync-kb` systemd timer (every 2 hours), which triggers kb-rag reindexing.
@ -70,7 +68,7 @@ Save to `/mnt/NV2/Development/claude-home/{domain}/`. The file will be auto-comm
## Examples
See `examples/` in this skill directory for templates of each document type:
See `examples/` in this plugin directory for templates of each document type:
- `examples/troubleshooting.md` — Bug fix / incident resolution
- `examples/release-notes.md` — Deployment / release changelog
- `examples/guide.md` — How-to / setup guide

View File

@ -0,0 +1,164 @@
---
description: Transcribe YouTube videos of any length using GPT-4o-mini-transcribe
---
# YouTube Transcriber - High-Quality Video Transcription
## Script Location
**Primary script**: `$YOUTUBE_TRANSCRIBER_DIR/transcribe.py`
## Key Features
- **Parallel processing**: Multiple videos can be transcribed simultaneously
- **Unlimited length**: Auto-chunks videos >10 minutes to prevent API limits
- **Organized output**:
- Transcripts → `output/` directory
- Temp files → `temp/` directory (auto-cleaned)
- **High quality**: Uses GPT-4o-mini-transcribe by default (OpenAI's recommended model)
- **Cost options**: Can use `-m gpt-4o-transcribe` for the full-size model at 2x cost
## Basic Usage
### Single Video
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "https://youtube.com/watch?v=VIDEO_ID"
```
**Output**: `output/Video_Title_2025-11-10.txt`
### Multiple Videos in Parallel
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
# Launch all in background simultaneously
uv run python transcribe.py "URL1" &
uv run python transcribe.py "URL2" &
uv run python transcribe.py "URL3" &
wait
```
**Why parallel works**: Each transcription uses unique temp files (UUID-based) in `temp/` directory.
### Higher Quality Mode
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "URL" -m gpt-4o-transcribe
```
**When to use full model**: Noisy audio, critical accuracy requirements. Costs 2x more ($0.006/min vs $0.003/min).
## Command Options
```bash
uv run python transcribe.py [URL] [OPTIONS]
Options:
-o, --output PATH Custom output filename (default: auto-generated in output/)
-m, --model MODEL Transcription model (default: gpt-4o-mini-transcribe)
Options: gpt-4o-mini-transcribe, gpt-4o-transcribe, whisper-1
-p, --prompt TEXT Context prompt for better accuracy
--chunk-duration MINUTES Chunk size for long videos (default: 10 minutes)
--keep-audio Keep temp audio files (default: auto-delete)
```
## Workflow for User Requests
### Single Video Request
1. Change to transcriber directory
2. Run script with URL
3. Report output file location in `output/` directory
### Multiple Video Request
1. Change to transcriber directory
2. Launch all transcriptions in parallel using background processes
3. Wait for all to complete
4. Report all output files in `output/` directory
### Testing/Cost-Conscious Request
1. Default model (`gpt-4o-mini-transcribe`) is already the cheapest GPT-4o option
2. For even cheaper: suggest Groq's Whisper API as an alternative
3. Quality is excellent for most YouTube content
## Technical Details
**How it works**:
1. Downloads audio from YouTube (via yt-dlp)
2. Saves to unique temp file: `temp/download_{UUID}.mp3`
3. Splits long videos (>10 min) into chunks automatically
4. Transcribes with OpenAI API (GPT-4o-mini-transcribe)
5. Saves transcript: `output/Video_Title_YYYY-MM-DD.txt`
6. Cleans up temp files automatically
**Parallel safety**:
- Each process uses UUID-based temp files
- No file conflicts between parallel processes
- Temp files auto-cleaned after completion
**Auto-chunking**:
- Videos >10 minutes: Split into 10-minute chunks
- Context preserved between chunks
- Prevents API response truncation
## Requirements
- OpenAI API key: `$OPENAI_API_KEY` environment variable
- Python 3.10+ with uv package manager
- FFmpeg (for audio processing)
- yt-dlp (for YouTube downloads)
**Check requirements**:
```bash
echo $OPENAI_API_KEY # Should show API key
which ffmpeg # Should show path
```
## Cost Estimates
Default model (`gpt-4o-mini-transcribe` at $0.003/min):
- **5-minute video**: ~$0.015
- **25-minute video**: ~$0.075
- **60-minute video**: ~$0.18
Full model (`gpt-4o-transcribe` at $0.006/min):
- **5-minute video**: ~$0.03
- **25-minute video**: ~$0.15
- **60-minute video**: ~$0.36
## Quick Reference
```bash
# Single video (default quality)
uv run python transcribe.py "URL"
# Single video (higher quality, 2x cost)
uv run python transcribe.py "URL" -m gpt-4o-transcribe
# Multiple videos in parallel
for url in URL1 URL2 URL3; do
uv run python transcribe.py "$url" &
done
wait
# With custom output
uv run python transcribe.py "URL" -o custom_name.txt
# With context prompt
uv run python transcribe.py "URL" -p "Context about video content"
```
## Integration
**With fabric**: Process transcripts after generation
```bash
cat output/Video_Title_2025-11-10.txt | fabric -p extract_wisdom
```
## Notes
- Script requires being in its directory to work correctly
- Always change to `$YOUTUBE_TRANSCRIBER_DIR` first
- Parallel execution is safe and recommended for multiple videos
- Default model (gpt-4o-mini-transcribe) is recommended for most content
- Output files automatically named with video title + date
- Temp files automatically cleaned after transcription

View File

@ -1,263 +0,0 @@
---
name: transcribe
description: Transcribe YouTube videos of any length using GPT-4o-transcribe
---
# YouTube Transcriber - High-Quality Video Transcription
## When to Activate This Skill
- "Transcribe this YouTube video"
- "Get a transcript of [URL]"
- "Transcribe these videos" (multiple URLs)
- User provides YouTube URL(s) needing transcription
- "Extract text from video"
- Any request involving YouTube video transcription
## Script Location
**Primary script**: `$YOUTUBE_TRANSCRIBER_DIR/transcribe.py`
## Key Features
- **Parallel processing**: Multiple videos can be transcribed simultaneously
- **Unlimited length**: Auto-chunks videos >10 minutes to prevent API limits
- **Organized output**:
- Transcripts → `output/` directory
- Temp files → `temp/` directory (auto-cleaned)
- **High quality**: Uses GPT-4o-transcribe by default (reduced hallucinations)
- **Cost options**: Can use `-m gpt-4o-mini-transcribe` for 50% cost savings
## Basic Usage
### Single Video
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "https://youtube.com/watch?v=VIDEO_ID"
```
**Output**: `output/Video_Title_2025-11-10.txt`
### Multiple Videos in Parallel
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
# Launch all in background simultaneously
uv run python transcribe.py "URL1" &
uv run python transcribe.py "URL2" &
uv run python transcribe.py "URL3" &
wait
```
**Why parallel works**: Each transcription uses unique temp files (UUID-based) in `temp/` directory.
### Cost-Saving Mode
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "URL" -m gpt-4o-mini-transcribe
```
**When to use mini**: Testing, casual content, bulk processing. Quality is the same as gpt-4o-transcribe but ~50% cheaper.
## Command Options
```bash
uv run python transcribe.py [URL] [OPTIONS]
Options:
-o, --output PATH Custom output filename (default: auto-generated in output/)
-m, --model MODEL Transcription model (default: gpt-4o-transcribe)
Options: gpt-4o-transcribe, gpt-4o-mini-transcribe, whisper-1
-p, --prompt TEXT Context prompt for better accuracy
--chunk-duration MINUTES Chunk size for long videos (default: 10 minutes)
--keep-audio Keep temp audio files (default: auto-delete)
```
## Workflow for User Requests
### Single Video Request
1. Change to transcriber directory
2. Run script with URL
3. Report output file location in `output/` directory
### Multiple Video Request
1. Change to transcriber directory
2. Launch all transcriptions in parallel using background processes
3. Wait for all to complete
4. Report all output files in `output/` directory
### Testing/Cost-Conscious Request
1. Always use `-m gpt-4o-mini-transcribe` for testing
2. Mention cost savings to user
3. Quality is identical to full model
## Example Responses
**User**: "Transcribe this video: https://youtube.com/watch?v=abc123"
**Assistant Action**:
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "https://youtube.com/watch?v=abc123"
```
**Report**: "✅ Transcript saved to `output/Video_Title_2025-11-10.txt`"
---
**User**: "Transcribe these 5 videos: [URL1] [URL2] [URL3] [URL4] [URL5]"
**Assistant Action**: Launch all 5 in parallel:
```bash
cd $YOUTUBE_TRANSCRIBER_DIR
uv run python transcribe.py "URL1" &
uv run python transcribe.py "URL2" &
uv run python transcribe.py "URL3" &
uv run python transcribe.py "URL4" &
uv run python transcribe.py "URL5" &
wait
```
**Report**: "✅ All 5 videos transcribed successfully in parallel. Output files in `output/` directory"
## Technical Details
**How it works**:
1. Downloads audio from YouTube (via yt-dlp)
2. Saves to unique temp file: `temp/download_{UUID}.mp3`
3. Splits long videos (>10 min) into chunks automatically
4. Transcribes with OpenAI API (GPT-4o-transcribe)
5. Saves transcript: `output/Video_Title_YYYY-MM-DD.txt`
6. Cleans up temp files automatically
**Parallel safety**:
- Each process uses UUID-based temp files
- No file conflicts between parallel processes
- Temp files auto-cleaned after completion
**Auto-chunking**:
- Videos >10 minutes: Split into 10-minute chunks
- Context preserved between chunks
- Prevents API response truncation
## Requirements
- OpenAI API key: `$OPENAI_API_KEY` environment variable
- Python 3.10+ with uv package manager
- FFmpeg (for audio processing)
- yt-dlp (for YouTube downloads)
**Check requirements**:
```bash
echo $OPENAI_API_KEY # Should show API key
which ffmpeg # Should show path
```
## Output Format
Transcripts are saved as plain text with metadata:
```
================================================================================
YouTube Video Transcript (Long Video)
================================================================================
Title: Video Title Here
Uploader: Channel Name
Duration: 45m 32s
URL: https://youtube.com/watch?v=VIDEO_ID
================================================================================
[Full transcript text with proper punctuation...]
```
## Best Practices
1. **Always use parallel for multiple videos** - It's 6x faster
2. **Use mini model for testing** - Same quality, half the cost
3. **Check output/ directory** - All transcripts organized there
4. **Temp files auto-clean** - No manual cleanup needed
5. **Add context prompts for technical content**:
```bash
uv run python transcribe.py "URL" \
-p "Technical discussion about Docker, Kubernetes, microservices"
```
## Troubleshooting
**API Key Missing**:
```bash
export OPENAI_API_KEY="sk-proj-your-key-here"
```
**FFmpeg Not Found**:
```bash
sudo dnf install ffmpeg # Fedora/Nobara
```
**Parallel Conflicts** (shouldn't happen with UUID temps):
- Each process creates unique temp file in `temp/`
- If issues occur, check `temp/` directory permissions
## Cost Estimates (as of March 2025)
- **5-minute video**: $0.10 - $0.20
- **25-minute video**: $0.50 - $1.00
- **60-minute video**: $1.20 - $2.40
**Using mini model**: Reduce costs by ~50%
## Quick Reference
```bash
# Single video (default quality)
uv run python transcribe.py "URL"
# Single video (cost-saving)
uv run python transcribe.py "URL" -m gpt-4o-mini-transcribe
# Multiple videos in parallel
for url in URL1 URL2 URL3; do
uv run python transcribe.py "$url" &
done
wait
# With custom output
uv run python transcribe.py "URL" -o custom_name.txt
# With context prompt
uv run python transcribe.py "URL" -p "Context about video content"
```
## Directory Structure
```
$YOUTUBE_TRANSCRIBER_DIR/
├── transcribe.py # Main script
├── temp/ # Temporary audio files (auto-cleaned)
├── output/ # All transcripts saved here
├── README.md # Full documentation
└── pyproject.toml # Dependencies
```
## Integration with Other Skills
**With fabric skill**: Process transcripts after generation
```bash
# 1. Transcribe
uv run python transcribe.py "URL"
# 2. Process with fabric
cat output/Video_Title_2025-11-10.txt | fabric -p extract_wisdom
```
**With research skill**: Transcribe source videos for research
```bash
# Transcribe multiple research videos in parallel
# Then analyze transcripts for insights
```
## Notes
- Script requires being in its directory to work correctly
- Always change to `$YOUTUBE_TRANSCRIBER_DIR` first
- Parallel execution is safe and recommended for multiple videos
- Use mini model for testing to save costs
- Output files automatically named with video title + date
- Temp files automatically cleaned after transcription

View File

@ -1,18 +1,10 @@
---
name: generate
description: Generate images from text prompts using local GPU inference
allowed-tools: Bash(z-image:*)
---
# Z-Image - Local AI Image Generation
## When to Activate This Skill
- "Generate an image of..."
- "Create a picture of..."
- "Make me an image"
- "z-image [prompt]"
- User describes something visual they want generated
## Tool
**Binary:** `z-image` (in PATH via `~/bin/z-image`)