9.0 KiB
πΊοΈ AGENTS.md β Ready to Plan Tour (RPT)
Dokumen ini adalah panduan utama untuk semua AI agent yang bekerja pada proyek ini. Jika model sebelumnya kehabisan token, baca dokumen ini terlebih dahulu sebelum melanjutkan pekerjaan.
π Konteks Proyek
Nama Aplikasi: Ready to Plan Tour (RPT) Singkatan: RPT Tipe: Static Web Application (tidak ada backend, tidak ada login/logout) Framework: React.js (dengan Vite sebagai bundler) Target: Aplikasi perencanaan perjalanan wisata yang interaktif, kreatif, dan mandiri
π― Tujuan Aplikasi
Membantu pengguna merencanakan perjalanan wisata secara lengkap dengan fitur:
- Trip Selection β Memilih destinasi wisata dan tipe perjalanan
- Daily Schedule Builder β Membuat jadwal harian aktivitas perjalanan (per hari)
- Packing List Manager β Mendaftar barang-barang yang akan dibawa
- Budget Calculator β Menghitung dan memantau anggaran perjalanan
ποΈ Arsitektur Aplikasi
tour-destination/
βββ AGENTS.md β Dokumen ini
βββ .agents/
β βββ skills/
β β βββ react-component/SKILL.md
β β βββ state-management/SKILL.md
β β βββ ui-design/SKILL.md
β β βββ feature-guide/SKILL.md
β βββ rules/
β βββ coding-standards.md
βββ public/
β βββ assets/
βββ src/
β βββ main.jsx
β βββ App.jsx
β βββ index.css
β βββ components/
β β βββ layout/
β β βββ ui/
β β βββ trip/
β β βββ schedule/
β β βββ packing/
β β βββ budget/
β βββ pages/
β β βββ Home.jsx
β β βββ TripDetail.jsx
β β βββ Schedule.jsx
β β βββ PackingList.jsx
β β βββ Budget.jsx
β βββ hooks/
β βββ store/
β β βββ tourStore.js
β βββ data/
β β βββ destinations.js
β β βββ activities.js
β β βββ packingTemplates.js
β βββ utils/
βββ package.json
βββ vite.config.js
π¨ Design System
Palet Warna (Dark Mode Default)
--color-primary: hsl(220, 90%, 56%);
--color-primary-dark: hsl(220, 90%, 42%);
--color-accent: hsl(38, 95%, 55%);
--color-bg-base: hsl(222, 28%, 8%);
--color-bg-surface: hsl(222, 22%, 13%);
--color-bg-elevated: hsl(222, 18%, 18%);
--color-text-primary: hsl(210, 40%, 96%);
--color-text-secondary: hsl(210, 20%, 65%);
--color-success: hsl(142, 70%, 45%);
--color-warning: hsl(38, 95%, 55%);
--color-danger: hsl(0, 75%, 55%);
Tipografi
- Font Utama: Inter / Outfit (Google Fonts)
- Font Display: Playfair Display (untuk hero heading)
Efek Visual
- Glassmorphism pada card & modal
- Gradient pada hero section
- Micro-animations dengan Framer Motion
- Smooth transitions:
cubic-bezier(0.4, 0, 0.2, 1)
π§ Tech Stack
| Package | Versi | Kegunaan |
|---|---|---|
| react | ^18.x | Core framework |
| react-dom | ^18.x | DOM rendering |
| react-router-dom | ^6.x | Client-side routing |
| zustand | ^4.x | Global state management |
| framer-motion | ^11.x | Animasi |
| lucide-react | latest | Icon library |
| recharts | ^2.x | Chart budget |
| @dnd-kit/core | ^6.x | Drag & drop jadwal |
| @dnd-kit/sortable | ^7.x | Sortable list |
| date-fns | ^3.x | Date utilities |
Bundler: Vite ^5.x dengan plugin @vitejs/plugin-react
π Fitur Detail
1. πΊοΈ Trip Selection (Home Page)
- Grid card destinasi wisata populer
- Filter: kategori, durasi, budget range
- Card: foto, nama, estimasi budget, rating, durasi populer
- Tombol "Buat Trip Sendiri" untuk trip kustom
- Search bar dengan autocomplete
- State:
trip.id,trip.name,trip.destination,trip.startDate,trip.endDate,trip.totalDays
2. π Daily Schedule Builder (Schedule Page)
- Timeline visual per hari
- Drag & drop aktivitas menggunakan @dnd-kit
- Setiap aktivitas: waktu, nama, lokasi, durasi, kategori, catatan
- Template aktivitas cepat
- Modal form tambah aktivitas
- State:
schedule[dayIndex][activities[]]
3. π Packing List Manager (PackingList Page)
- Kategori: Pakaian, Dokumen, Elektronik, Obat-obatan, Toiletries, Lainnya
- Template berdasarkan tipe trip
- Checkbox checked/unchecked
- Progress bar persentase sudah dipak
- Quantity counter per item
- State:
packingList[category][items[{name, qty, checked}]]
4. π° Budget Calculator (Budget Page)
- Overview: Total Budget vs Pengeluaran vs Sisa
- Kategori: Transportasi, Akomodasi, Makan, Aktivitas, Oleh-oleh, Lainnya
- Pie chart per kategori, Bar chart per hari
- Warning jika over budget
- Currency: IDR default
- State:
budget.total,budget.expenses[]
π Zustand Store Schema
// src/store/tourStore.js β shape lengkap:
{
trip: {
id: null,
name: '',
destination: '',
startDate: null,
endDate: null,
totalDays: 0,
coverImage: '',
type: 'custom', // 'preset' | 'custom'
},
schedule: [], // Array per hari, tiap hari punya activities[]
packingList: {
Pakaian: [],
Dokumen: [],
Elektronik: [],
'Obat-obatan': [],
Toiletries: [],
Lainnya: [],
},
budget: {
total: 0,
currency: 'IDR',
expenses: [],
},
// Semua state di-persist ke localStorage via zustand/middleware/persist
// key: 'tour-planner-storage'
}
π Setup Commands
# Inisialisasi
npm create vite@latest . -- --template react
npm install
# Install semua dependencies
npm install react-router-dom zustand framer-motion lucide-react recharts @dnd-kit/core @dnd-kit/sortable date-fns
# Dev server
npm run dev
π Coding Standards
Aturan lengkap di .agents/rules/coding-standards.md
Ringkasan Wajib:
- β Functional component + hooks (bukan class component)
- β CSS Variables dari design system (bukan Tailwind)
- β Zustand untuk state yang di-share
- β Framer Motion untuk semua animasi
- β Lucide React untuk semua icon
- β
Data dummy di
src/data/, bukan di dalam komponen - β Mobile-first responsive (640 / 768 / 1024 / 1280px)
- β Jangan hardcode warna langsung di JSX
- β Jangan pakai emoji sebagai icon UI
- β Jangan pakai TailwindCSS
π Phase Workflow (WAJIB DIBACA)
Setiap fitur dikerjakan dalam fase yang berurutan dan tidak boleh dilompati.
Aturan lengkap fase ada di .agents/rules/phase-workflow.md
| Phase | Scope | Prasyarat |
|---|---|---|
| Phase 0 | Project setup, dependencies, store, routing | β |
| Phase 1 | Layout & UI components dasar | Phase 0 selesai |
| Phase 2 | Home Page β Trip Selection | Phase 1 selesai |
| Phase 3 | Schedule Builder Page | Phase 2 selesai |
| Phase 4 | Packing List Page | Phase 3 selesai |
| Phase 5 | Budget Calculator Page | Phase 4 selesai |
| Phase 6 | Polish, responsive, animasi final | Phase 2β5 selesai |
β οΈ Jika kamu agent baru: cek
task.mduntuk tahu fase mana yang sedang berjalan, lalu bacaphase-workflow.mduntuk detail checklist fase tersebut.
π Handoff Context (Untuk AI Agent Baru)
BACA BAGIAN INI JIKA KAMU MELANJUTKAN PEKERJAAN YANG BELUM SELESAI
Langkah 1 β Orientasi Cepat
# Lihat file yang sudah ada
ls src/
ls src/pages/
ls src/components/
cat src/store/tourStore.js
Langkah 2 β Cek Status Task
- Baca
task.mddi direktori artifacts agent - Baca
walkthrough.mduntuk ringkasan perubahan
Langkah 3 β Validasi Sebelum Lanjut
Jawab dulu pertanyaan ini:
- Apakah
src/index.csssudah punya CSS variables design system? - Apakah
src/store/tourStore.jssudah lengkap? - Apakah React Router sudah dikonfigurasi di
src/App.jsx? - Page apa yang sudah selesai? (Home / Schedule / PackingList / Budget)
Prinsip TIDAK BOLEH Dilanggar:
- β Tidak ada fitur login/logout
- β Tidak ada API call ke backend
- β Tidak ada TailwindCSS
- β Tidak mengubah design token tanpa alasan jelas
- β Dark mode sebagai default
- β Animasi dengan Framer Motion
- β State persist ke localStorage
π Urutan Pengerjaan
Phase 1: Setup & Foundation
[ ] Init Vite + React
[ ] Install dependencies
[ ] Design system di index.css (CSS variables, typography, utilities)
[ ] Zustand store (tourStore.js)
[ ] React Router setup (App.jsx)
Phase 2: Data Layer
[ ] src/data/destinations.js (min 10 destinasi)
[ ] src/data/activities.js (template aktivitas)
[ ] src/data/packingTemplates.js (template per tipe trip)
Phase 3: Layout & UI Components
[ ] Navbar.jsx (dengan navigasi antar page)
[ ] Button.jsx, Card.jsx, Modal.jsx, Badge.jsx, ProgressBar.jsx
Phase 4: Pages
[ ] Home.jsx (trip selection + search + filter)
[ ] Schedule.jsx (timeline + drag&drop)
[ ] PackingList.jsx (checklist + progress)
[ ] Budget.jsx (calculator + chart)
Phase 5: Polish
[ ] Framer Motion animations
[ ] Responsive layout
[ ] localStorage persistence test
Versi: 1.0 | Dibuat: 2026-08-27 Update dokumen ini jika ada perubahan arsitektur besar.