Claude-skill-registry fullstack-implementation

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fullstack-implementation" ~/.claude/skills/majiayu000-claude-skill-registry-fullstack-implementation && rm -rf "$T"
manifest: skills/data/fullstack-implementation/SKILL.md
source content

Fullstack Implementation

Exclusive to:

fullstack-developer
agent

Validation Loop (MANDATORY)

Before completing ANY implementation, run this verification sequence:

composer test           # All PHP tests pass
npm run types          # No TypeScript errors
npm run lint           # No linting errors
./vendor/bin/pint      # PHP code styled

Do NOT report completion until all checks pass.

Instructions

  1. Review
    docs/code-standards.md
    for naming conventions
  2. Check
    docs/codebase-summary.md
    for current structure
  3. Follow patterns in
    docs/system-architecture.md
  4. Implement backend first, then frontend
  5. Run verification commands before committing

Implementation Order

Backend First

  1. Route
    routes/web.php
    or
    routes/api.php
  2. Controller
    app/Http/Controllers/
  3. FormRequest
    app/Http/Requests/
  4. Model
    app/Models/
  5. Policy
    app/Policies/

Frontend Second

  1. Types
    resources/js/types/
  2. Page
    resources/js/pages/
  3. Components
    resources/js/components/
  4. Hooks
    resources/js/hooks/

Laravel 12 Patterns

Controllers

// Invokable for single action
class ShowDashboardController
{
    public function __invoke(): Response
    {
        return Inertia::render('Dashboard', [...]);
    }
}

// Resource for CRUD
class PostController extends Controller
{
    public function store(StorePostRequest $request) { ... }
}

Form Requests

class StorePostRequest extends FormRequest
{
    public function authorize(): bool
    {
        return $this->user()->can('create', Post::class);
    }

    public function rules(): array
    {
        return [
            'title' => ['required', 'string', 'max:255'],
        ];
    }
}

React 19 Patterns

Inertia Form

const { data, setData, post, processing, errors } = useForm({
    title: '',
});

const submit = (e: FormEvent) => {
    e.preventDefault();
    post(route('posts.store'));
};

TypeScript Types

interface Post {
    id: number;
    title: string;
    created_at: string;
}

interface Props {
    posts: Post[];
}

Verification

composer test            # PHP tests
npm run types           # TypeScript
npm run lint            # ESLint
./vendor/bin/pint       # PHP style

Instructions

  1. Read project docs for context and conventions
  2. Identify entry points (routes/controllers/pages)
  3. Follow patterns in
    docs/code-standards.md
  4. Keep changes minimal and cohesive
  5. Add or update tests when behavior changes
  6. Update
    docs/codebase-summary.md
    if adding new files

Examples

  • "Add a new CRUD page with validation and tests"
  • "Wire a form to a controller endpoint and handle errors"