ProSkillsLibraryFreePassScan
Mini-apps

Mini-apps · agent skill

CRUD Scaffold

Tables, forms, auth. Done.

Scan 100/100Grade A~1,038 tokens on trigger1 file

What it does

Tables, forms, auth. Done.

Your agent loads it when the user needs a data-backed internal tool. It carries 3 rules and reads a profile.md with your details before it starts, so the output matches your brand and project.

SKILL.md, first 40 lines

---
name: crud-scaffold
description: "Use when the user needs an internal tool, admin app, tracker or back-office that stores records: \"build me a CRUD app\", \"a simple ops dashboard\", \"a place for my team to manage X\". Models the data and confirms it first, then generates list, detail and edit views and adds authentication before any deploy. Reads profile.md for app name, stack and users."
---

# CRUD Scaffold

Internal tools fail in two places: a data model nobody agreed to, and a login that was added after the first deploy. This skill fixes both by agreeing the tables before any code, and by putting auth in before the app is reachable by anyone.

## Before you start

Read `profile.md` in this folder:

| profile.md line | Use |
|---|---|
| **App name** | Project, package and page titles. |
| **Stack** | Next.js + Supabase, Rails, Django or Laravel. Use that stack's own conventions and generators. |
| **Users** | Who uses it and how many. Decides roles (see rules). |

If a line says "not set", ask the user once, write the answer into profile.md, then continue.

## Workflow

1. Ask what the tool manages in one sentence, then list the entities in plain words (for example: customers, tickets, notes).
2. Model the data first. For each table give: name, columns with types, which are required, which are unique, and the relationships. Add `id`, `created_at`, `updated_at` to every table. Show the model as a table and wait for the user to confirm. Do not generate code before they confirm.
3. Create the schema with the stack's migration tool. Review the migration. Do not run a migration against a production database without the user's explicit confirmation.
4. Generate three views per entity: a list, a detail page and an edit form (the same form creates).
5. Add authentication and roles before the first deploy (see stack notes).
6. Seed with 10 to 20 realistic sample rows so the list, search and empty states can be checked.
7. Run the app, open each view, and fix what breaks before reporting.

## Views

- **List:** table with 25 rows per page, a text search on the main name column, sort on at least two columns, and an empty state with a create button.
- **Detail:** all fields, related records, and actions in the same place on every page.
- **Edit:** a label on every field, inline validation errors, required fields marked, save and cancel. Destructive actions ask for confirmation naming the record.

## Stack notes

- **Next.js + Supabase:** enable Row Level Security on every table and write policies before reading data from the browser. Never ship the service role key to the client.

Install

One command, in your project folder. It detects your agent; add --agent all for every agent.

npx proskills-cli add crud-scaffold

Or copy the skill folder (the one holding SKILL.md) into the directory your agent reads, then restart it or start a new session.

AgentThis projectEvery project
Claude Code.claude/skills/~/.claude/skills/
Cursor.agents/skills/ (or .cursor/skills/)~/.cursor/skills/
Codex.agents/skills/~/.agents/skills/
Gemini CLI.agents/skills/ (or .gemini/skills/)~/.gemini/skills/

More from Mini-apps

The scan checks spec compliance, token cost, clarity and security patterns. A clean scan is not a guarantee: static scanners can be evaded. Scan any skill yourself.