scaffold-api

SkillWeb & browsing

Generate API endpoint with route, controller, validation, and tests

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the scaffold-api skill

What this skill tells your AI

The instructions your AI receives, as published by porcupine-md/anoa-browser in .claude/skills/core/scaffold-api/SKILL.md and read by ahel’s review.

Context

Project {{project_name}} uses stack {{stack}}. You will create an API endpoint for the resource "{{input.name}}".

Read AGENTS.md for conventions that apply to this project. Read existing route files to understand the patterns used.

Instructions

  1. Analyze existing patterns

    • Read existing route files in the project
    • Identify patterns: router setup, middleware usage, error handling, response format
    • Follow conventions defined in AGENTS.md
  2. Create route file

    • Path: according to project convention (usually src/routes/{{input.name}}.ts)
    • Implement {{input.method}} endpoints
    • If CRUD: GET (list), GET/:id (detail), POST (create), PUT/:id (update), DELETE/:id (delete)
  3. Create validation schema

    • Path: according to convention (e.g. src/validators/{{input.name}}.ts)
    • Use the validation library already used in the project (Zod, Joi, etc.)
    • Validate all input fields
  4. Create service/controller (if the project uses this pattern)

    • Business logic separate from route handler
    • Database operations via existing ORM/query builder
  5. Register route

    • Add to router registry / main app file
    • Ensure path and middleware are correct
  6. Create tests

    • Path: according to convention (e.g. tests/{{input.name}}.test.ts)
    • Test cases:
      • Happy path for each endpoint
      • Validation errors (invalid input)
      • Not found (for endpoints with :id)
      • Auth/permission errors (if auth middleware exists)

Script

#!/bin/bash
# Detect project structure
if [ -d "src/routes" ]; then
  echo "Route directory: src/routes/"
elif [ -d "src/api" ]; then
  echo "Route directory: src/api/"
elif [ -d "routes" ]; then
  echo "Route directory: routes/"
fi

# Detect validation library
if grep -q "zod" package.json 2>/dev/null; then
  echo "Validation: Zod"
elif grep -q "joi" package.json 2>/dev/null; then
  echo "Validation: Joi"
elif grep -q "class-validator" package.json 2>/dev/null; then
  echo "Validation: class-validator"
fi

Validation

  • Route file created and follows existing pattern
  • Validation schema complete for all input fields
  • Route registered in main app/router
  • Tests created and passing
  • Typecheck passing
  • Lint passing
  • Response format consistent with existing endpoints

Signals

GitHub stars
23
Forks
2
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
scaffold-api
Source
github.com/porcupine-md/anoa-browser