# QuoteForge Bible — Architectural Documentation The single source of truth for architecture, schemas, and patterns. --- ## Table of Contents | File | Topic | |------|-------| | [01-overview.md](01-overview.md) | Product: purpose, features, tech stack, repository structure | | [02-architecture.md](02-architecture.md) | Architecture: local-first, sync, pricing, versioning | | [03-database.md](03-database.md) | DB schemas: SQLite + MariaDB, permissions, indexes | | [04-api.md](04-api.md) | API endpoints and web routes | | [05-config.md](05-config.md) | Configuration, environment variables, paths, installation | | [06-backup.md](06-backup.md) | Backup: implementation, rotation policy | | [07-dev.md](07-dev.md) | Development: commands, code style, guardrails | --- ## Bible Rules > **Every architectural decision must be recorded in the Bible.** > > Any change to DB schema, data access patterns, sync behavior, API contracts, > configuration format, or any other system-level aspect — the corresponding `bible/` file > **must be updated in the same commit** as the code. > > On every user-requested commit, the Bible must be reviewed and updated in that commit. > > The Bible is the single source of truth for architecture. Outdated documentation is worse than none. > **Documentation language: English.** > > All files in `bible/` are written and updated **in English only**. > Mixing languages is not allowed. --- ## Quick Reference **Where is user data stored?** SQLite → `~/Library/Application Support/QuoteForge/qfs.db` (macOS). MariaDB is sync-only. **How to look up a price for a line item?** `local_pricelist_items` → by `pricelist_id` from config + `lot_name`. Prices are **never** taken from `local_components`. **Pre-commit check?** `go build ./cmd/qfs && go vet ./...` **What must never be restored?** cron jobs, admin pricing, alerts, stock import, importer utility — all removed intentionally. **Where is the release changelog?** `releases/memory/v{major}.{minor}.{patch}.md`