원클릭으로
goravel-crud-nav
Add i18n-aware navigation entry for a Goravel entity. Updates sidebar menu with icon, permission gating, and nav i18n keys.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add i18n-aware navigation entry for a Goravel entity. Updates sidebar menu with icon, permission gating, and nav i18n keys.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create a broadcast notification system that sends notifications and messages to eligible users based on entity-specific criteria. Use when adding a new entity type that needs to notify users when records are created, updated, or published.
Guide for building non-CRUD pages with consistent design. Use when creating portal pages, custom views, detail modals, sidebar widgets, notification drawers, or any page that is not a standard CRUD table. Covers fullscreen modals, minimal text patterns, calendar widgets, doorbell notifications, optimistic updates, and CrudPage read-only integration.
Guide for building dashboards, charts, KPI cards, and data visualizations. Use when creating dashboard pages, adding charts to features, building stat displays, aggregating data for visual presentation, or implementing export (CSV/PNG/fullscreen) for charts. Based on the Books dashboard implementation using Recharts and shadcn/ui chart components.
Deploy the application to staging or production. Validates, builds, pushes Docker image, deploys via Helm, and runs smoke tests.
Run a comprehensive E2E browser test suite for a newly scaffolded Goravel entity. Tests navigation, CRUD operations, search, filters, row actions, form validation, FK dropdowns, and cross-entity integration using Playwright MCP.
Create a Go database seeder for a Goravel entity with 25+ realistic records. Covers all status/enum values, diverse data for sorting/pagination testing, and proper nullable field handling.
| name | goravel-crud-nav |
| description | Add i18n-aware navigation entry for a Goravel entity. Updates sidebar menu with icon, permission gating, and nav i18n keys. |
| argument-hint | [EntityName] [icon-name] |
| allowed-tools | Read, Write, Edit, Grep, Glob |
Add navigation for $ARGUMENTS.
Note: For global search (CMD+K) integration, use
/goravel-crud-searchafter this skill.
resources/js/config/navigation.tsimport {
// ... existing imports
YourIcon, // from lucide-react
} from "lucide-react"
Browse icons at https://lucide.dev/icons
Navigation items use i18n keys (not hardcoded strings). Keys are resolved at render time via useTranslation('nav').
For main navigation (navMain array):
{
title: "main.entityNames", // i18n key in nav namespace
url: "/admin/entity-names",
icon: YourIcon,
requiredService: "entities", // Must match ServiceRegistry value
requiredAction: "read" as const,
},
For document/secondary section (documents array):
{
name: "documents.entityNames", // i18n key in nav namespace
url: "/admin/entity-names",
icon: YourIcon,
requiredService: "entities",
requiredAction: "read" as const,
},
For admin-only section (navSecondary array):
{
title: "secondary.entityNames", // i18n key in nav namespace
url: "/admin/entity-names",
icon: YourIcon,
requireSuperAdmin: true,
},
Edit resources/js/locales/en/nav.json — add the key matching what you used above:
{
"main": {
"entityNames": "Entity Names"
}
}
Or for documents section:
{
"documents": {
"entityNames": "Entity Names"
}
}
| Field | Purpose |
|---|---|
title / name | i18n key in nav namespace (resolved at render time) |
requiredService | Service name from permission_constants.go (e.g., "books") |
requiredAction | Permission action: "read", "create", "update", "delete", "manage" |
requiredRole | Specific role slug required |
requireSuperAdmin | Only visible to super admins |
| Section | Array | Use for |
|---|---|---|
| Main nav | navMain | Primary entity pages (Books, Users, Applications) |
| Documents | documents | Document-type entities (Reports, Files) |
| Secondary | navSecondary | Admin-only pages (Settings, Configs, Audit Logs) |
nav.json)After adding the navigation entry and i18n key:
# TypeScript compiles (catches wrong icon imports, missing fields)
npx tsc --noEmit
# Lint the navigation config
npx eslint resources/js/config/navigation.ts --max-warnings=0
See resources/js/config/navigation.ts for existing entries.
See resources/js/locales/en/nav.json for existing i18n keys.