---
title: "Agent rules and skills"
description: "One source of rules for every coding agent."
url: https://plate.findmalek.engineer/docs/agents
markdown: https://plate.findmalek.engineer/docs/agents.md
group: "Agents and CI"
---

# Agent rules and skills

## Rules with ruler

Every project has one source of rules in `.ruler/AGENTS.md`: the stack, structure, naming, commit format, test style and the oRPC, drizzle and better-auth conventions. [ruler](https://github.com/intellectronica/ruler) turns it into what each agent reads:

| Agent | Files |
| --- | --- |
| Claude Code | `CLAUDE.md`, `.mcp.json` |
| Cursor | `AGENTS.md`, `.cursor/mcp.json` |
| opencode | `AGENTS.md`, `opencode.json` |
| Zed | `AGENTS.md`, `.zed/settings.json` |
| oh-my-pi | `AGENTS.md` |

`.ruler/ruler.toml` lists the agents and the MCP servers every one of them gets: context7, shadcn and vercel. The generated files are committed, so a fresh clone works without ruler. Keep the `*.ruler-generated` marker files next to them, ruler uses those to know what it owns.

`findplate create` runs `ruler apply` at the end. If ruler can't be fetched (offline), it skips with a note. Skip it on purpose with `--no-agents`.

To change a rule, edit `.ruler/AGENTS.md` and run:

```bash
pnpm agents
```

## Skills

The workflow around a ticket ships as project skills in `.ruler/skills`, and ruler copies them into each agent's skills folder:

| Skill | What it does |
| --- | --- |
| `dive-ticket` | research an issue before any plan or code |
| `plan-ticket` | a blocker comment, or a detailed plan |
| `ship` | merge main, clean, check, push, open the PR, watch CI |
| `review-ticket` | review a PR and draft comments, never posts |
| `triage-reviews` | check review comments against the code, draft replies |
| `check-touched` | lint, types and tests for the touched workspaces only |
| `clean-pr` | strip restating comments from the branch diff |

They work with GitHub issues and the Project board, and only commit or push when you invoke `ship`.

### Public skills

`findplate create` also installs recommended public skills with the [skills cli](https://skills.sh), listed in the `skills` field of the template's `findplate.json`: `vercel-react-best-practices`, `vercel-composition-patterns`, `web-design-guidelines`, `shadcn`, `next-best-practices`, `turborepo`, `better-auth-best-practices`, `find-skills`, and `ai-sdk` when the AI module is on. They land in `.agents/skills` and `.claude/skills` with a `skills-lock.json`.

Offline or a repo moved? That pack is skipped with a note and the rest still install. Skip all of it with `--no-skills`.

## Today

Agents can already drive the generator itself with no prompts, see [agent mode](https://plate.findmalek.engineer/docs/cli.md#agent-mode). The Next apps also carry an `AGENTS.md` that points agents to the bundled Next docs.
