Building a Claude Code Skill to Scratch My Own Itch
I’ve been using Claude Code lately to work on personal projects: a CLI for searching mountain peaks, Claude Code skills for route research, a Chrome extension for Mountaineers.org, and a tool to export GPX files from Strava. When Anthropic released Claude skills, I dove in and started experimenting with Obra’s superpowers. I liked that experience so much that I started building my own skills. This is one of them.
The Itch
At the end of the day, I often want to look back at what I built—both to reflect personally and to share with my team. Since I’ve been doing hands-on software development recently, GitHub holds most of my work context: issues I tackled, pull requests I reviewed, commits I pushed.
Other engineers probably do the same with Linear tasks, Jira issues, and other digital breadcrumbs spilled over different tools of the trade.
Shipmate
Meet Shipmate, a skill for Claude Code that scratches this particular itch.
Daily Update - November 5, 2025
What I accomplished today:
- Fixed Shipmate plugin naming and registration issues - Spent some time debugging why the Shipmate plugin kept triple-invoking itself. Turns out Claude Desktop’s plugin system auto-prefixes skill names with the plugin name, so having both a slash command AND a skill with overlapping names was causing conflicts. The skill was being called three different ways at once. Fixed it by removing the slash command entirely and renaming the skill directory to match the expected registration name. Also had to chase down a bunch of related issues - duplicate namespace prefixes, incorrect script paths after the directory rename, and the version footer not updating properly. Got it all working and released version 1.1.8 (https://github.com/dreamiurg/shipmate/releases/tag/v1.1.8)
- Wrote blog post about Shipmate development - Documented the whole journey of building the Shipmate end-of-day summary skill, from initial idea through the naming issues I ran into today. Focused on the process and what I learned about Claude Desktop’s plugin system - how it handles skill registration, the auto-prefixing behavior, and why slash commands can collide with skill names. Also added a style guide to my blog that emphasizes intellectual honesty and process-focused narrative, inspired by writing principles of the blog authors I follow.
- Housekeeping - Set up pre-commit hooks for several repos (gitleaks for secrets, markdownlint for documentation quality, conventional commits for PR titles), added CI workflow to Shipmate with badges for build status and latest release, configured branch protection, updated documentation to reference the main branch instead of master, and cleaned up some stale tool version files.
Shipmate will:
- Pull your issues, commits, and pull requests from the last 24 hours
- Generates a conversational summary of your work
- Optionally publishe to Notion (I haven’t tested this much yet)
That’s it. Simple tool for a simple need.
▐▛███▜▌ Claude Code v2.0.34
▝▜█████▛▘ Sonnet 4.5 · Claude Max
▘▘ ▝▝ /Users/dreamiurg/src/tmp
> Use the shipmate:eod skill
⏺ I'm using the shipmate:eod skill to generate an end-of-day summary.
⏺ I'll generate your end-of-day summary. Let me start by creating a task list to track our
progress.
⏺ Now let me detect your GitHub organizations and username.
⏺ Bash(gh api user/orgs --jq '.[].login')
⎿ [...redacted for privacy...]
⏺ Bash(gh api user --jq '.login')
⎿ dreamiurg
⏺ User answered Claude's questions:
⎿ · Which GitHub activity would you like to include in your end-of-day summary? → Personal
account only (dreamiurg)
⏺ shipmate:github-analyzer-agent(Extract GitHub activity data)
⎿ Done (7 tool uses · 26.6k tokens · 1m 42s)
⏺ User answered Claude's questions:
⎿ · Which topics should be highlighted as main accomplishments? (Select 2-4. Everything else
will be grouped as 'Housekeeping') → Fixed Shipmate plugin naming and registration issues,
Wrote blog post about Shipmate development
⏺ shipmate:summarizer-agent(Generate conversational summary)
⎿ Done (0 tool uses · 6.4k tokens · 13.5s)
⏺ Here's your end-of-day summary:
...
Building small tools is wicked fast now
AI-assisted development is fast when you know what you want. Building an MVP took me 30 minutes, wrapping it for distribution took another 30 — adding Claude marketplace metadata, plugin information, semantic-release, the usual setup. An hour on next day to work around Claude ideosyncrasies involving plugin command namespacing.
The fun part was the speed: “I want this” to “here’s a shareable thing” in an hour. Without Claude Code, this would have taken me all day, or several hours at least
If you use Claude Code and want daily summaries of your work, check out Shipmate. If you’re thinking about building your own Claude skills, try it. This was a fun end-of-day project that actually solved a real problem for me.
Cheers.
Comments