# LLM Agent Instructions This document contains instructions and documentation references for AI assistants working with this codebase. > **๐Ÿ“– Important**: Before working on this project, read [PHILOSOPHY.md](PHILOSOPHY.md) to understand the system vision, architectural patterns, and design goals. All development should work towards realizing those patterns. # AGENTS.md > **Start every session by reading this file.** > This file outlines the operational protocols, coding standards, and architectural decisions for this Flutter project. ## 1. Agent Operational Protocols ### ๐Ÿง  Work Patterns (Plan-Act-Reflect) * **Plan:** Before writing code, briefly outline your plan. Identify which files you will touch and what the side effects might be. * **Act:** Execute the changes in small, atomic steps. * **Reflect:** After coding, verify your work. Did you break existing tests? Did you add new tests? ### ๐ŸŒ Internal Service Access * **git.schweitz.net**: Access via `http://localhost:3002` (direct Gitea) to bypass Authentik SSO * Example: `curl http://localhost:3002/jpmschweitzer/library-desk/raw/branch/main/README.md` * Public repos are readable without authentication * Related repos: , `core-api`, `tatlock`, `library-desk`, `scheduler`, `portainer-core` ### ๐Ÿณ Deployment & Infrastructure * **Full stack documentation**: Available in the `portainer-core` repo * Access: `curl http://localhost:3002/jpmschweitzer/portainer-core/raw/branch/main/CONTAINERS.md` * Contains: All service ports, URLs, Redis DB allocations, external domains * **Tatlock deployment**: * LAN: `http://192.168.86.149:8000` * External: `tatlock.schweitz.net` (behind Authentik SSO) * Redis DBs: 1 (memory), 6 (benchmarks) * **Health check**: `curl http://192.168.86.149:8000/health` ### ๐Ÿ›ก๏ธ Git Discipline * **NEVER commit to `main` or `master` directly.** Always create a feature branch: `feature/your-feature-name` or `fix/issue-description`. * **Commit Messages:** Use the [Conventional Commits](https://www.conventionalcommits.org/) format. * `feat: add user login endpoint` * `fix: resolve database connection timeout` * `refactor: split monolith dependency file` * **Atomic Commits:** Keep commits small. One logical change = one commit. ### ๐Ÿงช Testing Requirements * **Always add tests for new code before committing.** No exceptions. * Tests should cover the happy path and key edge cases. * Run `flutter test` before committing to ensure all tests pass. * For widgets: use widget tests. For business logic: use unit tests. * Code coverage should not decrease with new commits. ### ๐Ÿ“ Changelog Maintenance * **Update `CHANGELOG.md`** with every user-facing change. * Format: `## [Unreleased] - YYYY-MM-DD` followed by `### Added`, `### Changed`, or `### Fixed`.