Agent skill

Contributing

by butterbase-ai in butterbase-ai/butterbase-skills

A skill your agent uses when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture

MITAuto-check passedDevelopment

Install Contributing

skills CLI
$ npx skills add butterbase-ai/butterbase-skills --skill contributing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install butterbase-ai/butterbase-skills contributing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/butterbase-ai/butterbase-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/contributing .claude/skills/contributing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
contributing
GitHub stars
534
Token cost
~1.5k tokens
SKILL.md length
477 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture

  • Works in 7 steps: Overview → Monorepo Map → Adding a New MCP Tool (4 Steps) → …
  • Contributing to the Butterbase codebase
  • SKILL.md covers 1. Overview, 2. Monorepo Map, 3. Adding a New MCP Tool (4… and 4. Adding a Database Migration, plus 3 more sections
  • Calls npx, npm and docker-compose; needs BUTTERBASE_API_KEY

What it does

Contributing is an agent skill from butterbase-ai/butterbase-skills. Use when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering MCP servers and Monorepo tooling. It works with Model Context Protocol. The repository describes itself as: Plugin for Butterbase.ai. The licence is MIT.

When your agent uses it

  • Contributing to the Butterbase codebase
  • Adding new MCP tools
  • Creating API routes
  • Writing migrations

Example prompts

  • “/contributing”

Requirements

  • Node.js
  • Docker
  • A credential in BUTTERBASE_API_KEY

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Overview
  2. Monorepo Map
  3. Adding a New MCP Tool (4 Steps)
  4. Adding a Database Migration
  5. Coding Conventions
  6. Running Locally
  7. Testing

What it can do on your machine

Read from SKILL.md and the folder at commit aa8ae69. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • npm
    • docker-compose

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • BUTTERBASE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Contributing loads about 1.5k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 477 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from butterbase-ai/butterbase-skills at commit aa8ae69, republished under its MIT licence (© butterbase-ai). 477 words, ~1,506 tokens.

Download SKILL.mdSave it as .claude/skills/contributing/SKILL.md (or your agent's skills folder).
name
contributing
description
Use when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture

1. Overview

Contributor guide for the Butterbase monorepo. Covers architecture, how to add MCP tools, API routes, database migrations, and coding conventions.


2. Monorepo Map

DirectoryPackagePurpose
packages/cli@butterbase/cli (v0.1.3)Published CLI tool (Commander.js). Commands: init, apps, schema, functions, storage, deploy, data, env, keys, realtime, status, open
packages/sdk@butterbase/sdk (v1.2.1)Published TypeScript SDK. Modules: auth, storage, functions, AI, billing, realtime, admin
packages/shared@butterbase/sharedInternal shared types, constants, schema DSL, error types
packages/plugin@butterbase/pluginClaude Code plugin (this package — skills for AI agents)
services/control-api@butterbase/control-apiFastify API server — the brain. Routes, plugins, services. Port 4000
services/mcp-server@butterbase/mcp-serverMCP server with ~28 tools (consolidated manage_* action-based tools + a few standalone ones like init_app, deploy_function, select_rows). Runs via stdio or HTTP (served by control-api at /mcp)
services/deno-runtime—Serverless function executor. Deno-based worker isolation. Port 7133
services/cron-scheduler@butterbase/cron-schedulerCron job runner using node-cron + cron-parser
services/dashboard—React management UI (Vite + Radix UI)
services/dashboard-api—Dashboard backend proxy. Port 4100
services/docs@butterbase/docsAstro/Starlight documentation site
services/storage-indexer—Cloudflare Worker for S3 event indexing
db/control-plane—SQL migrations (sequential numbering, 001_ upward). Control plane database schema
db/data-plane—Per-app database initialization scripts

3. Adding a New MCP Tool (4 Steps)

Step 1: Create tool file at services/mcp-server/src/tools/my-new-tool.ts

Decide whether the new capability is a standalone tool (single, self-contained operation like init_app) or another action on an existing umbrella tool (manage_schema, manage_function, etc). Most new operations should be added as actions on an existing manage_* tool — this keeps the surface area small for AI agents.

For a brand-new standalone tool, follow the pattern from init-app.ts:

typescript
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
import { apiPost } from '../api-client.js';

interface MyResponse {
  // response shape
}

export function registerMyNewTool(server: McpServer) {
  server.tool(
    'my_new_tool',      // snake_case name
    `Tool description.   // Multi-line description with examples

Example:
  Input: { ... }
  Output: { ... }

Common errors:
  - ERROR_CODE: Description`,
    {
      // Zod schema for parameters
      app_id: z.string().describe('The app ID'),
      param: z.string().describe('Parameter description'),
    },
    async ({ app_id, param }) => {
      const result = await apiPost<MyResponse>(`/v1/${app_id}/my-endpoint`, { param });
      return {
        content: [{
          type: 'text' as const,
          text: JSON.stringify(result, null, 2),
        }],
      };
    }
  );
}

API client functions available: apiGet, apiPost, apiPatch, apiDelete (from ../api-client.js).

Step 2: Register in services/mcp-server/src/create-server.ts
typescript
import { registerMyNewTool } from './tools/my-new-tool.js';
// ...
registerMyNewTool(server);
Step 3: Create the backing API route in services/control-api/src/routes/
  • Fastify route handler matching the endpoint your tool calls
  • Register in services/control-api/src/index.ts
Show full SKILL.md (187 more words)Show less
Step 4: Update documentation in services/mcp-server/src/docs/user-documentation.ts
  • Add tool to the relevant section's table in the SECTIONS object

4. Adding a Database Migration

  • IMPORTANT: Use scripts/migrate.ts or scripts/backfill-migrations.ts, NEVER raw psql
  • Migration files: db/control-plane/NNN_description.sql (sequential numbering, starting at 001_initial_schema.sql)
  • Pick the next free three-digit prefix; never edit a committed migration
  • Run migrations: npx tsx scripts/migrate.ts

5. Coding Conventions

ConventionExample
MCP tool namessnake_case. Two flavours: standalone (init_app, deploy_function, select_rows) and manage_* umbrella tools that take an action enum (manage_schema, manage_rls, manage_function, manage_frontend, etc.)
App IDsapp_ prefix: app_abc123
Service keysbb_sk_ prefix: bb_sk_a1b2c3...
Environment variablesBUTTERBASE_ prefix: BUTTERBASE_API_KEY
Response metadata_meta.next_actions (suggested next tool calls), _meta.resource_info (quota/state)
Error codesUPPERCASE_WITH_UNDERSCORES: AUTH_RLS_POLICY_VIOLATION, QUOTA_TABLE_LIMIT
Domainbutterbase.ai (never "nira")

6. Running Locally

bash
docker-compose -f docker-compose.local.yml up
ServicePortURL
Control API4000http://localhost:4000
Dashboard API4100http://localhost:4100
Deno Runtime7133http://localhost:7133
Control Plane DB5433postgres://localhost:5433
Data Plane DB5435postgres://localhost:5435
PgBouncer6432postgres://localhost:6432
LocalStack (S3)4566http://localhost:4566

7. Testing

  • Framework: Vitest
  • Run tests per workspace: cd services/control-api && npm test
  • Test files: __tests__/ directory or co-located *.test.ts
  • Build all workspaces: npm run build (from repo root)
  • Type check: npx tsc --noEmit in each workspace

© butterbase-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/contributing of butterbase-ai/butterbase-skills.

Open the folder on GitHubat commit aa8ae69

Compare with similar skills

Contributing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Contributing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Contributing this skillbutterbase-ai/butterbase-skills534—~1.5kAutomated safety check: PassMIT
Tutti Agent Workspace Apptutti-os/tutti3.8k—~1.9kAutomated safety check: PassApache-2.0
Vscode MCP Architecturetjx666/vscode-mcp106—~1.5kAutomated safety check: PassCustom licence
Databuddy MCPdatabuddy-analytics/Databuddy1.2k—~711Automated safety check: PassAGPL-3.0
Nx Monorepoaiskillstore/marketplace430—~2kAutomated safety check: PassNone
ReleaseWebMCP-org/npm-packages103—~1.6kAutomated safety check: NotesMIT

Similar skills

  • Build or evolve a complex agent-enabled Tutti workspace app repository.

    3.8k GitHub stars~1.9k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Vscode MCP Architecture

    tjx666/vscode-mcp

    VSCode MCP Bridge project architecture — current monorepo layout, IPC/EventDispatcher flow, per-workspace socket discovery, MCP/CLI adapters, tool filtering, and VSCode extension services.

    106 GitHub stars~1.5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Databuddy MCP

    databuddy-analytics/Databuddy

    A skill your agent uses whenever the Databuddy MCP server is available and the user wants analytics, errors, vitals, investigations, flags, links, annotations, funnels, or goals queried or changed.

    1.2k GitHub stars~711 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Nx Monorepo

    aiskillstore/marketplace

    Nx monorepo management skill for AI-native development. An agent skill from aiskillstore/marketplace.

    430 GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release

    WebMCP-org/npm-packages

    Release the @mcp-b monorepo with Changesets and pnpm, using npm trusted publishing in GitHub Actions.

    103 GitHub stars~1.6k tokensUpdated 4 days ago
    DevelopmentAuto-check: notes
  • Scaffold Project

    Marve10s/Better-Fullstack

    Scaffold a new app, API, backend, fullstack project, mobile app, polyglot service, monorepo, or starter with Better Fullstack.

    752 GitHub stars~716 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from butterbase-ai/butterbase-skills

All 39 skills in this repo
  • AI

    butterbase-ai/butterbase-skills

    A skill your agent uses when calling the app's AI gateway from agent tools — chat completions, embeddings, listing models, configuring defaults or BYOK, reading token/cost usage

    534 GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check passed
  • Auth Setup

    butterbase-ai/butterbase-skills

    A skill your agent uses when configuring OAuth providers (Google/GitHub/Apple/X/etc.), setting up post-login auth hooks, tuning JWT lifetimes, or generating service API keys

    534 GitHub stars~2.2k tokensUpdated 3 days ago
    Auto-check passed
  • Build App

    butterbase-ai/butterbase-skills

    A skill your agent uses when building a new Butterbase app from scratch, creating a full-stack application, or when the user asks to set up a complete backend with database, auth, and deployment

    534 GitHub stars~4.9k tokensUpdated 3 days ago
    Auto-check passed
  • Debug Rls

    butterbase-ai/butterbase-skills

    A skill your agent uses when users report access denied errors, see wrong data, RLS policies are not working, or when troubleshooting Row-Level Security issues in Butterbase

    534 GitHub stars~3.5k tokensUpdated 3 days ago
    Auto-check passed
  • Deploy Frontend

    butterbase-ai/butterbase-skills

    A skill your agent uses when deploying a frontend (React, Next.js, or static HTML) to a live URL on Butterbase, or when troubleshooting deployment issues like MIME type errors or blank pages

    534 GitHub stars~2.8k tokensUpdated 3 days ago
    Auto-check passed
  • Durable Objects

    butterbase-ai/butterbase-skills

    A skill your agent uses when building stateful per-key actors — chat rooms, multiplayer rooms, rate limiters, long-running agents, leaderboards — that need persistent in-memory + storage state…

    534 GitHub stars~2.8k tokensUpdated 3 days ago
    Auto-check passed

Questions about Contributing

What does Contributing do?

A skill your agent uses when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture. Contributing is an agent skill from butterbase-ai/butterbase-skills.

When should I use Contributing?

Contributing fits situations like: contributing to the Butterbase codebase; adding new MCP tools; creating API routes; writing migrations.

How do I install Contributing in Claude Code?

Run `npx skills add butterbase-ai/butterbase-skills --skill contributing -a claude-code`. Or copy the skill folder (skills/contributing in butterbase-ai/butterbase-skills) into .claude/skills/contributing in your project. Claude Code loads it when a task matches its description.

How do I install Contributing in Codex?

Run `npx skills add butterbase-ai/butterbase-skills --skill contributing -a codex`. Or copy the skill folder (skills/contributing in butterbase-ai/butterbase-skills) into .agents/skills/contributing in your project. Codex loads it when a task matches its description.

Can I use Contributing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add butterbase-ai/butterbase-skills --skill contributing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/contributing, .gemini/skills/contributing, .github/skills/contributing and .opencode/skills/contributing in your project.

What does Contributing need to run?

Going by SKILL.md and its folder, Contributing needs the command-line tools its instructions call (npx, npm and docker-compose) and credentials named BUTTERBASE_API_KEY. Our summary lists: Node.js; Docker; A credential in BUTTERBASE_API_KEY.

Does Contributing access the network?

SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Contributing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Contributing use?

Contributing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Contributing use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Contributing?

Skills that share tags, products or a category with Contributing: Tutti Agent Workspace App (tutti-os/tutti, 3.8k stars), Vscode MCP Architecture (tjx666/vscode-mcp, 106 stars), Databuddy MCP (databuddy-analytics/Databuddy, 1.2k stars) and Nx Monorepo (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Contributing?

butterbase-ai (a GitHub organization) maintains it in butterbase-ai/butterbase-skills, which has 534 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 5, 2026.

Source: butterbase-ai/butterbase-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.