Use this skill to scaffold a new Potatoverse app. This workflow ensures the app follows the latest architectural patterns, including SQL migrations and JSON seeding.
Prerequisites
Read the documentation in ./docs/ for API and Lua bindings reference.
Use the templates in ./templates/ as starting points.
1---2name: potatoverse-app3description: Standard workflow for generating a Potatoverse app with migrations and seeding. Use when this capability is needed.4---56# Potatoverse App Generation Skill78Use this skill to scaffold a new Potatoverse app. This workflow ensures the app follows the latest architectural patterns, including SQL migrations and JSON seeding.910## Prerequisites1112- Read the documentation in `./docs/` for API and Lua bindings reference.13- Use the templates in `./templates/` as starting points.1415## Scaffolding Workflow1617### 1. Project Initialization18Create the following directory structure:19```text20your-app/21├── server/22│ ├── migration/ # .sql files23│ └── seed/ # .json files24├── ui/ # Frontend source (Vanilla or React)25├── public/ # Static assets (if vanilla)26├── potato.yaml27├── server.lua # (actually saved as server/server.lua but mapped to server.lua)28└── justfile29```3031### 2. Configure `potato.yaml`32Use `templates/potato.yaml.tmpl`. Ensure the following:33- `slug` is unique.34- `capabilities` include `xMigrator` (folder: `migration`) and `xStaticSeeder` (folder: `seed`).35- `developer.include_files` correctly maps local files to the package structure.3637### 3. Implement `server.lua`38Use `templates/server.lua.tmpl`.39- Implement `on_http(ctx)` to handle routing.40- Ensure `/setup` endpoint calls `xMigrator` and `xStaticSeeder`.41- Use `req.get_user_id()` for authentication.42- Use `potato.db` for database operations.4344### 4. Database Schema45- Place initial schema in `server/migration/0001_initial.sql`.46- Subsequent changes go in `0002_xxx.sql`, etc.4748### 5. Static Seeding49- Place initial data in `server/seed/0001_xxx.json`.50- The format should be matching the table names (e.g., `{"Authors": [...]}`).5152### 6. UI Implementation53- **Vanilla**: Place files in `ui/`. Map `ui/**/*` to `public` in `potato.yaml`.54- **React**: Initialize a Vite/React app in `ui/`. Ensure `build_command` is set in `potato.yaml` and maps `ui/dist/**/*` to `public`.5556## Reference Documentation57- [Lua Bindings](./docs/luaz.md)58- [Space API](./docs/space.md)59- [Auth API](./docs/auth.md)60- [User API](./docs/user.md)61- [Package API](./docs/package.md)6263## Example Scaffolding Command64```sh65# (To be used by AI during execution)66# 1. mkdir app && cd app67# 2. cp {SKILL_PATH}/templates/* .68# 3. Rename and fill placeholders69```7071---72> Source: [blue-monads/potatoverse](https://github.com/blue-monads/potatoverse) — distributed by [TomeVault](https://tomevault.io).73<!-- tomevault:4.0:skill_md:2026-06-21 -->
Run npx get-skill add tomevault-io/potatoverse-app in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Standard workflow for generating a Potatoverse app with migrations and seeding. Use when this capability is needed. It is listed under Productivity on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.