en un clic
refactor-frontend
Panduan refactor khusus Frontend (React SPA)
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Panduan refactor khusus Frontend (React SPA)
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Workflow untuk fitur non-standar seperti Dashboard, Settings, User Management, atau Halaman Khusus.
Panduan refactor khusus Backend (Laravel)
Panduan refactor E2E test per modul menggunakan shared test factories, termasuk pertimbangan refactoring frontend/backend agar testing konsisten.
Panduan membuat unit test, feature test, dan e2e test sesuai pola codebase.
Panduan membuat migration, seeder, dan factory sesuai standar Laravel.
Workflow untuk membuat fitur CRUD kompleks dengan relasi foreign key, filter multi-field, dan komponen frontend terpisah.
Basé sur la classification professionnelle SOC
| name | Refactor Frontend |
| description | Panduan refactor khusus Frontend (React SPA) |
Lakukan refactor kode frontend secara TERKONTROL tanpa merusak frontend behavior, E2E test, atau API compatibility.
| Tool | Kapan Digunakan |
|---|---|
activate_shadcn_ui_code_retrieval | Aktifkan referensi source komponen UI untuk pattern |
mcp_shadcn-ui_get_component | Ambil source komponen UI untuk pattern |
mcp_shadcn-ui_get_component_demo | Lihat contoh usage bila perlu |
activate_laravel_logging_and_debugging_tools() | Aktifkan browser log jika frontend error |
read_file | Baca file referensi |
data-testid (digunakan E2E test)@inertiajs/react (sudah dihapus dari project)Link / useNavigate dari react-router-domHelmet dari import react-helmet-async yang sudah dialias ke resources/js/lib/react-helmet-async.tsxuseCrudQuery, dll)axios dari @/lib/axios| Tipe | Tanggung Jawab |
|---|---|
| Page | Entry point, state management level page |
| Container | Logic, API calls, pass data ke children |
| Presentational | Rendering UI, props-driven, stateless |
| Jenis | Format | Contoh |
|---|---|---|
| Component file | PascalCase | DepartmentTable.tsx |
| Utility file | camelCase | formatDate.ts |
| Folder | kebab-case | departments/ |
| Event handler | handle... | handleSubmit |
| Props callback | on... | onSubmit |
# Baca file referensi, bukan template:
read_file(filePath: "/absolute/path/to/project/resources/js/pages/positions/index.tsx", startLine: 1, endLine: 220)
read_file(filePath: "/absolute/path/to/project/resources/js/components/employees/EmployeeForm.tsx", startLine: 1, endLine: 220)
# Aktifkan tool retrieval komponen shadcn bila perlu source/pattern:
activate_shadcn_ui_code_retrieval()
# Ambil source komponen:
mcp_shadcn-ui_get_component(componentName: "table")
# Ambil demo penggunaan komponen bila perlu:
mcp_shadcn-ui_get_component_demo(componentName: "table")
| Pattern | File Referensi |
|---|---|
| Page | resources/js/pages/positions/index.tsx |
| Form Component | resources/js/components/employees/EmployeeForm.tsx |
| Filters | resources/js/components/employees/EmployeeFilters.tsx |
// ✅ BENAR - explicit typing
interface DepartmentFormProps {
department?: Department;
onSubmit: (data: DepartmentFormData) => void;
onCancel: () => void;
}
export function DepartmentForm({ department, onSubmit, onCancel }: DepartmentFormProps) {
// ...
}
data-testiddata-testiddata-testid baruSaat refactor komponen Columns.tsx, pastikan konsistensi berikut:
Select Column — WAJIB gunakan createSelectColumn() dari @/utils/columns.tsx
createSelectColumn() sengaja TIDAK punya header checkboxActions Column — WAJIB gunakan createActionsColumn() dari @/utils/columns.tsx
createActionsColumn() menggunakan dropdown menu patternSortable Columns — Gunakan createTextColumn() (default sortable) atau createSortingHeader()
enableSorting: falsePENGARUH KE E2E TEST: Konsistensi ini memungkinkan shared test factories bekerja untuk semua modul. Lihat skill
refactor-e2euntuk detail standar E2E test.
JANGAN:
react-helmet-async tanpa verifikasi kompatibilitas React 19// turbo-all
./vendor/bin/sail npm run test:e2e
Jika frontend error:
activate_laravel_logging_and_debugging_tools()
# lalu gunakan tool browser log Laravel yang tersedia
anydata-testid