AGENT.md
April 6, 2026 · View on GitHub
Purpose
This repository contains a Linux-first Rust desktop calendar with two supported entrypoints:
solverforge-calendar: ratatui TUI applicationsolverforge-calendar-cli: non-interactive JSON CLI for agents and automation
Commands
make build: build both binariesmake run: launch the TUImake run-cli ARGS="calendars list": run the automation CLImake test: run all testsmake lint: run formatting and clippy checksmake ci-local: match the GitHub Actions CI workflow locallymake pre-release: run release-oriented validation before cutting or tagging a version
Direct cargo commands used in CI:
cargo fmt --all --checkcargo clippy --bins --tests -- -D warningscargo build --release --binscargo test
Repo map
src/main.rs: TUI entrypointsrc/bin/solverforge-calendar-cli.rs: CLI entrypointsrc/cli.rs: typed CLI parsing, JSON responses, command dispatch, CLI testssrc/calendar_service.rs: shared calendar validation, Google import rules, and update semanticssrc/db.rs: SQLite schema, migrations, CRUD helpers, default-calendar recoverysrc/google/: OAuth, calendar discovery, sync fetch/apply logic, Google event translationtests/cli.rs: binary-level CLI integration testsdocs/wireframes/: ASCII wireframes for the TUI and CLI surfaces
Constraints
- Keep the CLI fully non-interactive. No prompts, no confirmation flows, no “choices”.
- Preserve
cargo runas the TUI default path. - Keep agent automation explicit through
solverforge-calendar-cliandscripts/solverforge-calendar-cli. - Prefer shared DB/business-rule fixes over CLI-only patches when behavior affects both the TUI and CLI.
- Tests must stay deterministic. Do not add live Google API or real keyring dependencies to automated tests.
Change checklist
Before pushing changes:
- Run
make lint - Run
make test - If binaries changed materially, run
make build - Before tagging or pushing a release version, run
make pre-release
If you touch the CLI contract, update:
README.mdtests/cli.rsdocs/wireframes/cli.mdwhen the command surface or response model changes