Skip to content

dfrojas/vaquita

Repository files navigation

Logo
Vaquita

Provider-agnostic plugin that scaffolds an opinionated agent-config directory for any project. Currently ships for Claude Code.
About · Install · Commands · Contributing · Developing

About

vaquita is a plugin that scaffolds a complete agent-config directory in one command: top-level guide, rules, skills, agents, hooks, and a memory protocol, for universal plus TypeScript, Python, and Rust out of the box.

The first version targets Claude Code (and generates a .claude/ directory with CLAUDE.md). The design is deliberately provider-agnostic, so future versions will scaffold for other agent frameworks too. See the roadmap below.

Run /vaquita:init inside Claude Code and you get a sensible, opinionated starting point that you can then tune to your project. /vaquita:upgrade diffs your local .claude/ against the latest templates and applies updates selectively. It never auto-overwrites.

vaquita also ships commands for authoring new skills, agents, and rules. Those commands interview you, draft a body using Claude's knowledge plus a scan of your project, show the draft, and write on explicit approval.

Install

From any Claude Code session:

/plugin marketplace add /path/to/vaquita
/plugin install vaquita@vaquita --scope user

Requires Node 18+ on your PATH (the plugin runs npx tsx on first use).

Memory convention

Claude Code ships its own auto memory. It writes to your user scope under ~/.claude/, outside the project, where you cannot version it, review it in a PR, or see what a teammate's agent recorded about their session.

vaquita takes the opposite approach. Memory lives in two files inside .claude/:

  • .claude/checkpoint.md holds in-flight work. The agent writes to it after each major step and reads it at session start. When the task finishes, the file is deleted.
  • .claude/memory/decisions.md is an append-only log of non-obvious decisions and workarounds. Never edited, never overwritten. New entries go at the bottom.

Both files live in the repo. Check them in, diff them, review them. If you want to know what the agent remembers, you read the files.

The convention is enforced by a short protocol block in the generated CLAUDE.md. Change it, remove it, or replace it with your own. It is your file.

Commands

Command What it does
/vaquita:init Scaffold .claude/ in the current project. Skips files that already exist.
/vaquita:upgrade Diff the target .claude/ against the latest templates and selectively apply updates. Never auto-overwrites.
/vaquita:create-skill Interview you, draft a skill body from Claude's knowledge + project context, show the draft, write on approval.
/vaquita:create-agent Same, for subagents under .claude/agents/.
/vaquita:create-rule Same, for rules under .claude/rules/<scope>/.

Roadmap and Status

vaquita is usable today and ships an opinionated scaffold for TypeScript, Python, and Rust. The rough plan for what's next:

# Step Status
1 Opinionated .claude/ scaffold for TypeScript, Python, Rust
2 Template upgrade with diff-and-apply, never auto-overwrite
3 Interactive create-skill / create-agent / create-rule
4 MCP server scaffolding, common servers pre-configured
5 Choose language(s) at init, skip the ones you don't use
6 More languages out of the box (Go, Java, Ruby, Swift, …)
7 Multi-provider support (Codex, Gemini CLI, Cursor rules, …)
8 Interactive init wizard, pick skills/agents/rules a la carte
9 Publish to the Claude Code marketplace

Contributing and Developing

If you have ideas, issues, or would like to contribute to vaquita through pull requests, please check out CONTRIBUTING.md. Those who want to get involved with vaquita's development should also read DEVELOPING.md for more technical details.

License

MIT. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors