Files
2026-08-27 19:45:15 +07:00

9.0 KiB
Raw Permalink Blame History

πŸ—ΊοΈ 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:

  1. Trip Selection β€” Memilih destinasi wisata dan tipe perjalanan
  2. Daily Schedule Builder β€” Membuat jadwal harian aktivitas perjalanan (per hari)
  3. Packing List Manager β€” Mendaftar barang-barang yang akan dibawa
  4. 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.md untuk tahu fase mana yang sedang berjalan, lalu baca phase-workflow.md untuk 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.md di direktori artifacts agent
  • Baca walkthrough.md untuk ringkasan perubahan

Langkah 3 β€” Validasi Sebelum Lanjut

Jawab dulu pertanyaan ini:

  1. Apakah src/index.css sudah punya CSS variables design system?
  2. Apakah src/store/tourStore.js sudah lengkap?
  3. Apakah React Router sudah dikonfigurasi di src/App.jsx?
  4. 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.