- Add bible/ with 7 hierarchical English-only files covering overview, architecture, database schemas, API endpoints, config/env, backup, and dev guides - Consolidate all docs from README.md, CLAUDE.md, man/backup.md into bible/ - Simplify CLAUDE.md to a single rule: read and respect the bible - Simplify README.md to a brief intro with links to bible/ - Remove man/backup.md and pricelists_window.md (content migrated or obsolete) - Fix API docs: add missing endpoints (preview-article, sync/repair), correct DELETE /api/projects/:uuid semantics (variant soft-delete only) - Add Soft Deletes section to architecture doc (is_active pattern) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.9 KiB
QuoteForge Bible — Architectural Documentation
The single source of truth for architecture, schemas, and patterns.
Table of Contents
| File | Topic |
|---|---|
| 01-overview.md | Product: purpose, features, tech stack, repository structure |
| 02-architecture.md | Architecture: local-first, sync, pricing, versioning |
| 03-database.md | DB schemas: SQLite + MariaDB, permissions, indexes |
| 04-api.md | API endpoints and web routes |
| 05-config.md | Configuration, environment variables, paths, installation |
| 06-backup.md | Backup: implementation, rotation policy |
| 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.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