9RouterX

Contributing

Issues and pull requests use templates, so pick the right one rather than opening a blank report:

Checks CI runs

go vet ./...
go test -count=1 ./...
make test-integration
cd web && bun test
make vet-svelte

Before writing code

Read AGENTS.md. Provider isolation and the Go/Svelte conventions there are enforced by review.

Branches and PRs

Every PR targets main. Branch from a clean origin/main:

git fetch origin
git worktree add ../9routerx-<slug> -b fix/<slug> origin/main

Changelog

Write a .changes/<pr-number>-<slug>.md fragment — never touch CHANGELOG.md. CHANGELOG.md is written only by make changelog-merge at release time. The dashboard's GET /api/changelog combines CHANGELOG.md with every fragment, so your entry appears as soon as your PR merges.