mirror of
https://github.com/yanislav-igonin/micrach
synced 2026-07-27 05:14:17 +03:00
chore: add agents md
This commit is contained in:
parent
a967ae8fb6
commit
e28cc97465
28
AGENTS.md
Normal file
28
AGENTS.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Repository Guidelines
|
||||
|
||||
## Project Structure & Module Organization
|
||||
|
||||
`main.go` wires the Fiber application, middleware, routes, database startup, and template engine. Keep HTTP handlers in `controllers/`, persistence logic and data types in `repositories/`, database setup in `db/`, and environment parsing in `config/`. Gateway integration belongs in `gateway/`; shared helpers live in `utils/` and `files/`. Server-rendered HTML is organized under `templates/{pages,components,head}`, while browser assets live in `static/`. Add ordered PostgreSQL changes to `migrations/` using the existing `<number>-<description>.sql` pattern. Load-testing scripts belong in `tests/`.
|
||||
|
||||
## Build, Test, and Development Commands
|
||||
|
||||
- `cp .env.example .env` creates local configuration; adjust `POSTGRES_URL` before starting.
|
||||
- `go run .` starts the service and applies migrations against the configured PostgreSQL database.
|
||||
- `make dev` runs the app through `nodemon` for automatic restarts.
|
||||
- `go build .` produces the local `micrach` binary.
|
||||
- `GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build .` matches the CI Linux build.
|
||||
- `go test ./...` runs all Go tests.
|
||||
- `go vet ./...` performs standard static checks.
|
||||
- `sh tests/load.sh` runs the optional Vegeta load test; review its target URL first.
|
||||
|
||||
## Coding Style & Naming Conventions
|
||||
|
||||
Use `gofmt` (tabs for Go indentation) and run `go fmt ./...` before submitting. Keep package names short and lowercase. Use `PascalCase` for exported identifiers, `camelCase` for unexported identifiers, and descriptive handler names such as `CreateThread`. Keep controllers thin: validation and HTTP concerns stay in handlers, while SQL and persistence behavior stay in repositories. Follow existing kebab-case names for CSS, templates, and migration descriptions.
|
||||
|
||||
## Testing Guidelines
|
||||
|
||||
The repository currently has no unit tests or enforced coverage threshold. Add tests beside the code as `*_test.go`, using `TestXxx` and table-driven cases where practical. Avoid shared production databases; isolate repository tests with disposable test data or a dedicated database. Run `go test ./...` and `go vet ./...` for every change. Use Vegeta only for explicit performance work.
|
||||
|
||||
## Commit & Pull Request Guidelines
|
||||
|
||||
History mixes terse imperative subjects with `feat:` and `fix:` prefixes. Prefer focused Conventional Commit subjects, for example `fix: reject oversized uploads`. Keep each commit buildable. Pull requests should explain behavior changes, configuration or migration impact, and verification commands. Link relevant issues and include screenshots for template or CSS changes. Never commit `.env`, uploads, generated load-test artifacts, or credentials.
|
||||
Loading…
Reference in New Issue
Block a user