원클릭으로
refactor-frontend
Panduan refactor khusus Frontend (React SPA)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Panduan refactor khusus Frontend (React SPA)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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.
| 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