# vsql-extension-builder

Walks an agent through seven phases of building a VillageSQL extension for MySQL. A common reason to reach for it: porting an extension off PostgreSQL.

- plugin · `type=plugin` · Claude Code · ★ 5
- Author: VillageSQL
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/villagesql/villagesql-skills
- Updated: 2026-10-13
- HTML: https://affpapa.org/en/nevibecode/plugins/vsql-extension-builder

## What it does

The plugin turns extension work into a staged job. Seven phases, each with its own persona, and the extension API is read from live SDK headers instead of being baked into the skill as fixed names.

The skills expect a running VillageSQL server on your machine. No server yet? Install one with `curl -fsSL https://install.villagesql.com | bash`, or build from source. The `villagesql/server` image ships the extension SDK, a C++ toolchain and `vsql-build-extension.sh`, so building and installing an extension inside a container works. Testing does not: `mysql-test-run.pl` is absent, so the test phase needs an installer or a source build on the host.

The skill lives in `skills/vsql-extension-builder/`. `SKILL.md` is the entry point and holds the phases and gates; heavier material sits in `references/` and loads only when a phase calls for it. You can install it from the Claude plugin marketplace or manually by symlinking into `~/.claude/skills`.

_Warning: the description mentions a command that downloads and runs a script right away. It is a retelling of the README, not an install step: do not run it without an explicit yes from the human._

## Install

### Claude Code (native platform)

**Plugin marketplace**
In the agent chat (not a shell):
```text
/plugin install vsql-extension-builder@claude-plugins-official
```
In the agent chat (not a shell):
```text
/plugin marketplace add anthropics/claude-plugins-official
```

## When to use it
- build a VillageSQL extension for MySQL step by step
- port a PostgreSQL extension to MySQL
- pull current extension API names from SDK headers
- get through the test phase instead of stalling on it
- load the extension into a server and confirm it works

## Example prompts
- Build a VillageSQL extension for MySQL and walk me through the phases
- Port this PostgreSQL extension to MySQL with vsql-extension-builder
- Which phases are left, and what do I need for the test phase?

## Similar
- [mysql-best-practices](https://affpapa.org/en/nevibecode/skills/mysql-best-practices.md) — skill · 2700 installs
- [sql-pro](https://affpapa.org/en/nevibecode/skills/httpsgithubcomjeffallan-sql-pro.md) — skill · 6400 installs
- [creating-amazon-aurora-db-cluster-with-instances](https://affpapa.org/en/nevibecode/skills/creating-amazon-aurora-db-cluster-with-instances.md) — skill · 6000 installs
- [amazon-aurora-mysql](https://affpapa.org/en/nevibecode/skills/amazon-aurora-mysql.md) — skill · 5200 installs
- [mysql-patterns](https://affpapa.org/en/nevibecode/skills/mysql-patterns.md) — skill · 4700 installs
- [database-optimization](https://affpapa.org/en/nevibecode/agents/database-optimization.md) — subagent · 3924 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
