Imported from xRahul/pennywiseai-dashboard (
AGENTS.md). Install upstream withnpx skills add xRahul/pennywiseai-dashboard. Copyright stays with the author.
Agent Guide - PennyWise AI Dashboard
Welcome to the PennyWise AI Web Dashboard repository. This guide provides context and constraints for LLMs working on this codebase.
Project Overview
This is a web-based analytics dashboard for PennyWise AI, a zero-knowledge personal finance tracker. It provides a web view of financial data using Kotlin Multiplatform (Wasm) and Jetpack Compose HTML.
Architecture & Modules
- Tech Stack: Kotlin 2.0 (Wasm target), Jetpack Compose HTML, Gradle.
:dashboard-web: The main frontend UI application. Located indashboard-web/src/jsMain/kotlin.:parser-core-wasm: A wrapper module that compiles the core parser logic to WebAssembly. It explicitly points its source directory to the Git submodule at../pennywiseai-tracker-submodule/parser-core/src/commonMain/kotlin.pennywiseai-tracker-submodule: A Git submodule pointing to the main Android tracker repository. This allows the dashboard to share the exact same parsing logic without duplicating code.
Hard Constraints (never violate)
- Submodule Integrity: Never make unauthorized structural changes to the
pennywiseai-tracker-submodule. If you need to fix a bank parser, you may edit the files withinpennywiseai-tracker-submodule/parser-core, but be aware that these changes belong to a different repository. - Compose HTML: Use Jetpack Compose HTML (
org.jetbrains.compose.web.dom.*), NOT standard Android Jetpack Compose or Compose UI components, as this is a DOM-based web application. - No Backend: This is a static, zero-knowledge client application. Do not add backend server dependencies or databases unless explicitly requested.
- Styling: The project uses TailwindCSS-like utility classes (e.g.,
min-h-screen,bg-gray-900) withinclasses()blocks in Compose HTML. Adhere to this styling approach.
Verification
- Run Local Server:
./gradlew :dashboard-web:jsBrowserDevelopmentRun(serves athttp://localhost:8080). - Production Build:
./gradlew :dashboard-web:jsBrowserDistribution
