## 1. Database Model and Migration

- [x] 1.1 Create `ToolType` SQLAlchemy model in `apps/api/src/models/tool_type.py`
- [x] 1.2 Add `ToolType` import to `apps/api/src/models/__init__.py`
- [x] 1.3 Create Alembic migration for `tool_types` table
- [x] 1.4 Run migration and verify table creation

## 2. Backend API

- [x] 2.1 Create `apps/api/src/api/tool_types.py` with CRUD endpoints
- [x] 2.2 Add Pydantic schemas for tool type request/response
- [x] 2.3 Implement YAML validation for compose templates
- [x] 2.4 Implement variable validation (check required vars in template)
- [x] 2.5 Add admin authorization checks for create/update/delete
- [x] 2.6 Register router in `apps/api/src/main.py`
- [x] 2.7 Add built-in tool type seeding on startup

## 3. Frontend

- [x] 3.1 Create API client in `apps/web/src/api/tool_types.ts`
- [x] 3.2 Create `apps/web/src/pages/tool-types.tsx` with list view
- [x] 3.3 Add create/edit form for tool types (admin only)
- [x] 3.4 Add delete confirmation dialog
- [x] 3.5 Add route to router
- [x] 3.6 Add navigation link in app shell

## 4. Verification and Testing

- [x] 4.1 Run backend quality gates (`pytest`, `ruff`, `mypy`)
- [x] 4.2 Run frontend quality gates (`npm test`, `typecheck`, `lint`, `build`)
- [x] 4.3 Test CRUD operations manually
- [x] 4.4 Verify built-in types are seeded
- [x] 4.5 Update this tasks file with completed checkboxes
