- Add bible.git as submodule at bible/ - Rename bible/ → bible-local/ (project-specific architecture) - Update CLAUDE.md to reference both bible/ and bible-local/ - Add AGENTS.md for Codex with same structure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
# 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`
|