ZeroStarter

AI Skills

Pre-defined skills for AI assistants and LLM agents to help with common tasks.

Overview

ZeroStarter ships a set of structured skills for AI assistants and LLM agents. Each skill is a directory containing a SKILL.md: Markdown with frontmatter metadata, so it is both human-readable and machine-parseable. These skills help AI tools perform common repo tasks correctly and consistently.

The same 11 skills live in both .agents/skills/ and .claude/skills/. Both directories exist and contain the full set (they are mirrored copies). .claude/skills/ is the conventional Claude Code location; .agents/skills/ is the tool-agnostic location referenced from AGENTS.md.

Available Skills

SkillWhat it does
agent-browserBrowser automation CLI for AI agents: navigate pages, fill forms, click, screenshot, scrape data, test web apps, and automate Electron apps.
api-endpointAdd a typed Hono API endpoint following repo conventions: router, OpenAPI docs, validation envelope, RPC client wiring. Use when adding or modifying API routes in api/hono.
auditRun the dependency security audit and maintain AUDIT.md. Use when auditing dependencies, when the pre-push audit hook fails on canary, or when bun audit reports vulnerabilities.
db-migrationCreate and apply database schema changes with Drizzle. Use when adding or modifying tables, columns, or indexes in @packages/db, or when asked for a migration.
devStart, restart, and verify the ZeroStarter dev stack (Next.js on 3000, Hono API on 4000). Use when running the app, when the API returns NOT_FOUND for routes that exist in source, or before browser testing.
docker-testBuild and smoke-test the Docker images with docker compose. Use when touching Dockerfiles, the bundle build, compose config, or anything that changes how containers are packaged.
fontsAdd or swap web fonts by fetching latin variable woff2 files from fontsource and localizing them through next/font/local. Use when changing brand fonts, adding a font role, or debugging font loading, preload, or CLS.
gh-commitCreate atomic commits with conventional commit format. Use when asked to commit, save changes, or create a commit.
github-pull-request-reviewTurn-based PR review with hard role separation, runnable as an async two-session loop or a single-session transcript. The reviewer posts a formal review, the author addresses each finding, alternating until both are satisfied.
ignore-syncKeep .dockerignore in sync with .gitignore. Use whenever an entry is added to or removed from .gitignore, or when auditing why the Docker build context is bloated.
shadcn-syncRun and reconcile the shadcn component sync (bun run shadcn:update). Use when refreshing shadcn components, or when a sync regresses a local customization or breaks the build.

Of these, only agent-browser is externally vendored: it is sourced from vercel-labs/agent-browser and tracked in the root skills-lock.json (with its source, sourceType, skillPath, and computedHash) so it can be re-synced and integrity-checked. Its committed SKILL.md is a discovery stub; the agent loads the live workflow from the CLI with agent-browser skills get core. The other 10 skills are repo-authored.

Install agent-browser: npm i -g agent-browser && agent-browser install

Skill Structure

Skills sit in a flat layout: each is a directory directly under .agents/skills/ (and mirrored under .claude/skills/), with no category nesting.

.agents/skills/
├── agent-browser/
│   └── SKILL.md
├── api-endpoint/
│   └── SKILL.md
├── audit/
│   └── SKILL.md
├── db-migration/
│   └── SKILL.md
├── dev/
│   └── SKILL.md
├── docker-test/
│   └── SKILL.md
├── fonts/
│   └── SKILL.md
├── gh-commit/
│   └── SKILL.md
├── github-pull-request-review/
│   └── SKILL.md
├── ignore-sync/
│   └── SKILL.md
└── shadcn-sync/
    └── SKILL.md

SKILL.md Format

---
name: skill-name
description: Brief description of what the skill does and when to use it.
---

# Skill Title

Description of the skill.

## Workflow

### 1. First Step

```bash
command to run
```

- Notes about this step
- Important considerations

### 2. Second Step

...

Creating Custom Skills

To create a new skill:

  1. Create a directory: .agents/skills/<skill-name>/
  2. Add a SKILL.md file with:
    • Frontmatter with name and description
    • Clear workflow steps
    • Code examples with commands
    • Notes and edge cases
  3. Mirror it into .claude/skills/<skill-name>/ so Claude Code picks it up too.

Example Custom Skill:

---
name: deploy-preview
description: Deploys a preview build to the staging environment. Use when the user asks to ship a preview.
---

# Deploy Preview

Builds and pushes a preview deployment.

## Workflow

### 1. Build

```bash
bun run build
```

### 2. Deploy

```bash
bun run deploy:preview
```

Integration with AI Tools

Claude Code

Skills in .claude/skills/ are picked up automatically. The mirrored copies in .agents/skills/ keep the set available to other tools.

Cursor

Skills are available to Cursor's AI assistant when referenced from AGENTS.md:

## Skills

This project includes custom skills to assist with common tasks. Skills are located in `.agents/skills` and `.claude/skills`.

GitHub Copilot

Copilot can reference skills when you mention them in comments or prompts.

Custom AI Assistants

The structured format makes skills easy to parse programmatically for custom AI integrations.

Best Practices

  • Keep skills focused: One task per skill
  • Include examples: Show expected inputs and outputs
  • Document edge cases: Handle errors and special situations
  • Use standard commands: Prefer project scripts over raw commands
  • Keep both copies in sync: Mirror changes across .agents/skills and .claude/skills
  • Version control: Skills evolve with the project