check / check (push) Successful in 4m51s
AGENTS.md holds the branching model, the entrypoints, the editing rule and two iron rules: query strings are logged as received, and the trusted-proxy default is the RFC 1918 set. README links it; SPEC.md step 2 now states that default and that a given list replaces it. Model: opus-5-5
40 lines
1.4 KiB
Markdown
40 lines
1.4 KiB
Markdown
# Agents
|
|
|
|
These are the rules for agents working on this repository.
|
|
|
|
## Branches
|
|
|
|
- `main` is the stable branch, and `next` is the development branch.
|
|
- Every PR is cut from `next` and targets `next`.
|
|
- Only sneak merges `next` into `main`.
|
|
- Each issue lands on `next` as one squashed commit whose title ends
|
|
` (closes #N)`. A PR may instead be exactly two commits: first tests that fail
|
|
against the current code, then the fix with no test assertion changed. Such a
|
|
PR lands as both commits.
|
|
|
|
## Entrypoints
|
|
|
|
- Work through the `Makefile` targets, which call the scripts in `script/`. The
|
|
README's [Entrypoints](README.md#entrypoints) section lists them.
|
|
- Never run `go`, `golangci-lint` or prettier directly.
|
|
- `make check` passes before every push.
|
|
|
|
## Editing
|
|
|
|
- Edit files by hand.
|
|
- Format only with `make fmt`, and run it before committing any change.
|
|
|
|
## Iron rules
|
|
|
|
- The request log records query strings exactly as received.
|
|
- Secrets belong in POST data. An app that puts a secret in a query string
|
|
is fixed in the app.
|
|
- Never propose redacting a query string, Gitea's `?token=` included.
|
|
- The default of `SWRP_TRUSTED_PROXIES` is the RFC 1918 set.
|
|
- The set is:
|
|
- `10.0.0.0/8`;
|
|
- `172.16.0.0/12`;
|
|
- `192.168.0.0/16`.
|
|
- `SPEC.md` states that default.
|
|
- Forwarded headers count only when the peer is a trusted proxy.
|