docs: add bible/ as single source of architectural truth

- Created bible/ with hierarchical documentation (architecture, pricelists,
  vendor mapping, background tasks, data rules, patterns, API, operations, history)
- CLAUDE.md reduced to one instruction: read and follow the bible
- README.md reduced to quick start only
- Removed MEMORY.md and csv_export.md (content consolidated into bible/)
- Fixed stale facts found during audit: weighted_avg (not weighted_median),
  correct API route names (/export-csv, /recalculate-all)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-02-20 14:16:47 +03:00
parent c22328bf03
commit 7d402b756d
14 changed files with 1109 additions and 606 deletions

109
README.md
View File

@@ -1,111 +1,38 @@
# PriceForge
PriceForge — администратор цен и прайслистов для работы с данными MariaDB.
Price and pricelist manager for MariaDB.
Текущее состояние проекта:
- Runtime: **MariaDB-only**
- Режим запуска: **fail-fast** (если БД недоступна на старте, сервер завершается)
- Основной интерфейс: `/admin/pricing`
- Порт по умолчанию: `8084`
- **Main UI**: http://127.0.0.1:8084/admin/pricing
- **Architecture docs**: [`bible/`](bible/BIBLE.md)
## Возможности
- Администрирование цен компонентов
- Управление прайслистами (Estimate / Склад / Конкуренты)
- Импорт складских данных
- Алерты по ценам и свежести данных
- Диагностика подключения к БД в UI (online/offline индикатор)
## Требования
- Go 1.22+
- MariaDB / MySQL с доступом к рабочей базе (например `RFQ_LOG`)
## Быстрый старт
1. Подготовить конфиг:
## Quick Start
```bash
cp config.example.yaml config.yaml
```
2. Проверить параметры в `config.yaml`:
- `server.port` (по умолчанию `8084`)
- `database.host`
- `database.port`
- `database.name`
- `database.user`
- `database.password`
3. Запустить сервер:
```bash
# Edit config.yaml: database.host, name, user, password
make run
```
или
## Commands
```bash
go run ./cmd/pfs
make run # dev server
make build # local build
make build-release # release build
make build-all # cross-compile Linux/macOS/Windows
make test # run tests
go run ./cmd/pfs -migrate # run migrations
./bin/pfs -version # check version
./scripts/release.sh # build release archives
```
4. Открыть:
- [http://127.0.0.1:8084/admin/pricing](http://127.0.0.1:8084/admin/pricing)
## Requirements
## Миграции
- Go 1.22+
- MariaDB / MySQL
Запуск миграций:
```bash
go run ./cmd/pfs -migrate
```
При обычном запуске SQL-миграции из `migrations/` также проверяются автоматически.
## Сборка
```bash
make build
make build-release
make build-all
```
Проверка версии:
```bash
./bin/pfs -version
```
## Release-артефакты
Скрипт сборки релиза:
```bash
./scripts/release.sh
```
Он создает архивы в `releases/<version>/` и файл `SHA256SUMS.txt`.
## Запуск на macOS
После скачивания бинарника может сработать Gatekeeper. Выполните:
## macOS Gatekeeper
```bash
xattr -d com.apple.quarantine /path/to/pfs-darwin-arm64
```
После этого бинарник запустится без предупреждения Gatekeeper.
## Основные команды Makefile
```bash
make run # запуск dev-сервера
make build # локальная сборка
make build-release # релизная сборка
make build-all # кросс-компиляция для Linux/macOS/Windows
make test # тесты
make clean # очистка артефактов
```
## Важно
Проект сейчас не использует SQLite в runtime-потоке сервера `pfs`.
Все ключевые операции выполняются напрямую через MariaDB.