Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
Ask which skill or flow fits your situation. A router over the skills in this repo.
Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Executables (bin/) — files in this plugin's bin/directory are added to the Bash tool's PATH while the plugin is enabled.
Forked from and built on Matt Pocock's skills. Matt is the original author; see Credits.
My agent skills for real engineering, not vibe coding: a curated library plus my own personal skills, linked into every project on my machine.
Developing real applications is hard. Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control and make bugs in the process hard to resolve.
These skills are designed to be small, easy to adapt, and composable. They work with any model. Hack around with them. Make them your own.
Clone the repo and run the reconcile linker. It mirrors every shippable skill into ~/.codex/skills, ~/.claude/skills, and ~/.agents/skills, installs helper scripts into ~/.local/bin, and registers git hooks so the link layer re-syncs itself on every pull.
git clone https://github.com/thatssoheil/skills.git
cd skills
bash scripts/link-skills.sh # link skills + install bin/ + register hooks
bash scripts/link-skills.sh --check # verify the mirror is in sync
personal/ and useful vendored third-party skills are linked globally; deprecated/ and in-progress/ are skipped. Editing a skill's body is live immediately; adding, renaming, or removing one re-syncs automatically via the hooks (or just re-run the script).
The source of truth is the Agent Skills directory layout: every skill is a folder with SKILL.md. Product-specific manifests sit beside it:
.claude-plugin/plugin.json — public promoted set for Claude-style plugin installs.scripts/link-skills.sh — the local machine delivery path; this is what makes the repo global across Codex, Claude, and other Agent Skills clients.Prefer the skills.sh installer?
npx skills@latest add thatssoheil/skillspulls the public set declared in.claude-plugin/plugin.json(the public skill library) but not mypersonal/skills. The clone + reconcile path above is how I actually use it.
The philosophy below is Matt Pocock's, in his own words. It is why these skills exist, and why I forked them. I've adapted and extended the set for my own workflow; the thinking is his.
Matt built these skills as a way to fix common failure modes he saw with Claude Code, Codex, and other coding agents.
"No-one knows exactly what they want"
David Thomas & Andrew Hunt, The Pragmatic Programmer
The Problem. The most common failure mode in software development is misalignment. You think the dev knows what you want. Then you see what they've built - and you realize it didn't understand you at all.
This is just the same in the AI age. There is a communication gap between you and the agent. The fix for this is a grilling session - getting the agent to ask you detailed questions about what you're building.
The Fix is to use:
/grill-me - for non-code uses/grill-with-docs - same as /grill-me, but adds more goodies (see below)These are my most popular skills. They help you align with the agent before you get started, and think deeply about the change you're making. Use them every time you want to make a change.
With a ubiquitous language, conversations among developers and expressions of the code are all derived from the same domain model.
Eric Evans, Domain-Driven-Design
The Problem: At the start of a project, devs and the people they're building the software for (the domain experts) are usually speaking different languages.
I felt the same tension with my agents. Agents are usually dropped into a project and asked to figure out the jargon as they go. So they use 20 words where 1 will do.
The Fix for this is a shared language. It's a document that helps agents decode the jargon used in the project.
Here's an example CONTEXT.md, from my course-video-manager repo. Which one is easier to read?
This concision pays off session after session.
npx claudepluginhub thatssoheil/skillsUltra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.