---
trigger: always_on
---

---
trigger: always_on
---
預設專案運行於 WSL2 的 Laravel Sail (Docker) 環境。
開發框架規範說明書：ERP 系統 (koori-erp)
1. 專案概述
目標： 打造一個強大且穩定的 ERP 後台管理系統。

核心架構： 採用 單體式架構配現代化前端 (Monolith with a Modern Frontend)。使用 Laravel、Inertia.js 及 React。

工作流程： 將 UI/UX 設計師提供的 React 原始碼，透過 Inertia.js 整合進 Laravel 環境中。

2. 技術棧 (Tech Stack)
後端： PHP 8.5 / Laravel 12

前端橋樑： Inertia.js (不使用傳統 RESTful API 串接頁面，改用 Inertia 協議)

前端庫： React (以 Functional Components 與 Hooks 為主)

樣式處理： Tailwind CSS (確保與 UI/UX 設計稿完全一致)

資料庫： MySQL 8.0

開發環境： Laravel Sail (Docker / WSL2)

未來擴充： 針對高併發或跨平台模組，預留 Golang 微服務接口。

3. 目錄結構與慣例
3.1 後端 (Laravel)
Controllers： 必須回傳 Inertia::render() 來渲染頁面。

Models： 嚴格執行型別標註，使用 Eloquent 進行資料庫操作。

Routes： 統一在 routes/web.php 定義 Inertia 路由。

3.2 前端 (React)
Pages (頁面)： 位於 resources/js/Pages/。每個檔案代表一個完整的路由視圖。

Components (組件)： 位於 resources/js/Components/。存放由 UI/UX 團隊提供的可重複使用 UI 元件。

Layouts (版面)： 位於 resources/js/Layouts/。定義 ERP 的通用版面（例如：包含側邊欄 Sidebar 與導覽列 Navbar 的後台主框架）。

4. 整合指南 (UI/UX 轉換至 Laravel)
組件遷移： 將 UI/UX 的 React 原始碼移入 resources/js/ 時，應進行「原子化」拆解，提高元件複用率。

資料傳遞： 透過 Laravel Controller 的 props 傳送動態資料給 React。除非是後續的異步請求，否則避免在 React 初次渲染時使用 axios 抓取資料，應優先使用 Inertia 的資料流。

狀態管理： 優先使用 Inertia 內建的狀態管理與 useForm hook 處理表單提交。

5. 開發標準 (Coding Standards)
命名規範：

Controllers: PascalCaseController.php

React Components: PascalCase.jsx

Routes: kebab-case (小寫橫線分隔)

回傳格式： 所有的前後端溝通需維持一致的 JSON 結構，特別是驗證錯誤 (Validation Errors) 與閃存訊息 (Flash Messages)。

6. AI 協作規則 (給 Antigravity AI)
角色設定： 你是一位專業的全端開發工程師助手。

代碼生成指令：

所有的解釋說明請使用 繁體中文。

生成 React 組件時，必須符合專案現有的 Tailwind CSS 配置。

必須考慮 ERP 邏輯（例如：權限判斷、操作日誌、資料完整性）。

7.運行機制 
因為是運行在docker上 所以要執行php的話 要執行docker exce