

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# AI Agent Instructions for BirdNET-Go23These instructions apply to all AI coding agents working on this repository,4regardless of tool (Claude Code, Codex, Cursor, Gemini, Windsurf, Copilot, etc.).56## PR Scope Rule78Each pull request must contain exactly ONE of:9- One feature10- One bug fix11- One refactor1213PRs that batch multiple features or multiple fixes WILL NOT be merged.14This is non-negotiable. If your task involves multiple independent changes,15split them into separate branches and separate PRs.1617If you are uncertain whether changes constitute one concern or multiple,18ask the user before proceeding.1920Why: batched PRs cannot be properly reviewed, cannot be safely reverted21if one change causes a regression, and create merge conflicts for other22contributors.2324## Mandatory: Pre-Push Quality Gate2526Before pushing code or creating a pull request, you MUST execute the27preflight quality gate defined in `.agents/skills/preflight/SKILL.md`.2829Read that file and follow its complete process (all phases).30Do not skip this step. Do not push without running it first.3132If your platform supports native skill invocation (e.g., Claude Code's33`/preflight` or Codex's skill system), use that. Otherwise, read the34SKILL.md file directly and execute the review process.3536## PR Creation Rules3738When creating a pull request, you MUST:39401. Verify this PR addresses exactly ONE feature, fix, or refactor412. Include a "Preflight Status" section in the PR description showing42 what was found and fixed during preflight433. Verify all linters pass (`golangci-lint run -v`, `npm run check:all`)444. Verify all tests pass (`go test -race ./...`, `npm test`)455. Confirm the diff contains ONLY changes relevant to the stated goal466. Confirm scope is complete (no TODO/FIXME for core functionality)477. Confirm no secrets, credentials, or PII in the diff488. Document any breaking changes to API, config, or behavior4950You MUST actually execute verification commands (linters, tests) and51observe passing output before claiming they pass. Do not check boxes52based on assumption or prior knowledge.5354PRs missing the preflight certification will require multiple review55rounds. The gate catches the same issues reviewers find; running it56locally saves a day of back-and-forth.5758## Interpreting CI Failures5960The `golangci-test` workflow runs Go tests through `gotestsum` with one61automatic rerun of any failed test, then publishes a consolidated result in the62`test-report` job. Before assuming a red run means your code is broken:63641. Read the `test-report` job summary. It states one verdict:65 - `REGRESSION` - real failures that persisted after a rerun. Fix these.66 - `PASS (with flakes)` - tests that failed once then passed on rerun. These67 are flaky/infra (a reaped container, a registry blip), NOT a code68 regression. Do not "fix" them; re-run or report instead.69 - `PASS` - all green.702. For machine-readable detail, download the `ci-failures` artifact:71 - `ci-failures.json` - array of real regressions (`{pkg, test, output}`).72 - `ci-flaky.json` - tests that passed on rerun (informational).73 Prefer reading these small files over scrolling the raw multi-thousand-line74 logs.753. If a testcontainer job failed, the job summary includes a "Testcontainer76 diagnostics" block (docker state, memory, OOM kills) to distinguish an77 infra flake from a logic bug.7879Do not spend time debugging a failure classified as flaky/infra. If a test is80persistently flaky, raise it rather than patching around it.8182## Project Context8384- Tech stack: Go 1.24+, Svelte 5, TypeScript, Tailwind v4.185- Build system: Task (taskfile.dev)86- Linting: golangci-lint (Go), npm run check:all (Frontend)87- Testing: go test -race (Go), npm test (Frontend)88- All PRs receive automated CodeRabbit reviews89- API v1 is frozen; all new endpoints go in `internal/api/v2/`9091For detailed guidelines, see `CLAUDE.md` and the `CLAUDE.md` files in92subdirectories (`internal/`, `frontend/`, `internal/api/v2/`).93
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| tphakala/birdnet-go.cursor/rules/database.mdc · 1.6k | Cursor rules | databasedo-not | 45/100 | today | |
| tphakala/birdnet-go.cursor/rules/frontend.mdc · 1.6k | Cursor rules | dependenciesuido-not | 61/100 | today | |
| tphakala/birdnet-go.cursor/rules/go.mdc · 1.6k | Cursor rules | buildteststylearch+5 | 69/100 | today | |
| tphakala/birdnet-go.cursor/rules/go_test.mdc · 1.6k | Cursor rules | setupteststyletesting-strategy+1 | 56/100 | today | |
| tphakala/birdnet-goCLAUDE.md · 1.6k | CLAUDE.md | buildtestlint-formatstyle+8 | 100/100 | today | |
| tphakala/birdnet-gofrontend/CLAUDE.md · 1.6k | CLAUDE.md | setuptestlint-formatstyle+7 | 84/100 | today | |
| tphakala/birdnet-gofrontend/src/lib/desktop/components/CLAUDE.md · 1.6k | CLAUDE.md | teststylearchui | 70/100 | today | |
| tphakala/birdnet-gofrontend/src/lib/desktop/components/ui/CLAUDE.md · 1.6k | CLAUDE.md | styleuidocs | 54/100 | today | |
| tphakala/birdnet-gofrontend/src/lib/desktop/features/settings/CLAUDE.md · 1.6k | CLAUDE.md | buildstylearchtypes+2 | 66/100 | today | |
| tphakala/birdnet-gofrontend/static/messages/CLAUDE.md · 1.6k | CLAUDE.md | archuido-notagent-behaviour | 67/100 | today | |
| tphakala/birdnet-gofrontend/tools/CLAUDE.md · 1.6k | CLAUDE.md | no sections | 65/100 | today | |
| tphakala/birdnet-gointernal/CLAUDE.md · 1.6k | CLAUDE.md | buildteststylearch+5 | 88/100 | today | |
| tphakala/birdnet-gointernal/api/v2/CLAUDE.md · 1.6k | CLAUDE.md | teststylesecurityapi+1 | 84/100 | today | |
| tphakala/birdnet-gointernal/errors/CLAUDE.md · 1.6k | CLAUDE.md | styleuiperformancedo-not+1 | 61/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| ethereum/go-ethereumAGENTS.md · 51k | AGENTS.md | buildtestlint-formatgit+1 | 100/100 | 14 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| elastic/elasticsearchx-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/AGENTS.md · 78k | AGENTS.md | buildtestlint-formatstyle+2 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/tphakala-birdnet-go-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.