| name | fullstack-implementation |
| description | Implement features end-to-end in Laravel 12 + Inertia.js + React 19 + TypeScript OR Python + FastAPI + LangChain. Use when building new features, wiring controllers to pages, or implementing CRUD operations. EXCLUSIVE to fullstack-developer agent. |
| allowed-tools | Read, Edit, Bash, Grep, Glob, Write, mcp_context7 |
Fullstack Implementation
Exclusive to: fullstack-developer agent
📚 Context7 (Memory) — Up-to-Date Docs
Before implementing unfamiliar APIs, lookup the latest documentation:
mcp_context7_resolve-library-id(libraryName="[library]", query="[feature]")
mcp_context7_query-docs(libraryId="/[resolved-id]", query="[specific API]")
Common lookups:
- React hooks, Server Components, Suspense
- Laravel Eloquent, Inertia responses
- FastAPI dependencies, Pydantic models
- LangChain chains, agents, tools
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
python -m pytest # Python tests pass
ruff check . # Python lint clean
mypy . # Python typing clean
Do NOT report completion until all checks pass.
Instructions
- Review
docs/code-standards.mdfor naming conventions - Check
docs/codebase-summary.mdfor current structure - Follow patterns in
docs/system-architecture.md - Implement backend first, then frontend
- Run verification commands before committing
Implementation Order
Backend First (Laravel)
- Route →
routes/web.phporroutes/api.php - Controller →
app/Http/Controllers/ - FormRequest →
app/Http/Requests/ - Model →
app/Models/ - Policy →
app/Policies/
Backend First (FastAPI)
- Router →
src/api/ - Schema →
src/schemas/ - Model →
src/models/ - Service →
src/services/ - Migration → Alembic revision (if applicable)
Frontend Second
- Types →
resources/js/types/ - Page →
resources/js/pages/ - Components →
resources/js/components/ - 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
python -m pytest # Python tests
ruff check . # Python lint
mypy . # Python typing
Instructions
- Read project docs for context and conventions
- Identify entry points (routes/controllers/pages)
- Follow patterns in
docs/code-standards.md - Keep changes minimal and cohesive
- Add or update tests when behavior changes
- Update
docs/codebase-summary.mdif adding new files
Examples
- "Add a new CRUD page with validation and tests"
- "Wire a form to a controller endpoint and handle errors"
- "Add a FastAPI router, schema, service, and tests"