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.mdsource 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
- Review
for naming conventionsdocs/code-standards.md - Check
for current structuredocs/codebase-summary.md - Follow patterns in
docs/system-architecture.md - Implement backend first, then frontend
- Run verification commands before committing
Implementation Order
Backend First
- Route →
orroutes/web.phproutes/api.php - Controller →
app/Http/Controllers/ - FormRequest →
app/Http/Requests/ - Model →
app/Models/ - Policy →
app/Policies/
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
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
if adding new filesdocs/codebase-summary.md
Examples
- "Add a new CRUD page with validation and tests"
- "Wire a form to a controller endpoint and handle errors"