Contributing guidelines (so I can land a new LLM provider cleanly)
Context
Hey π β I was poking around the repo because I'd like to contribute a new LLM provider (thinking something around the existing pkg/provider/* shape, similar to what #58 sketched out). Before opening the PR I went looking for a CONTRIBUTING.md to make sure I'd line up with how you like things done, and noticed there isn't one yet.
It's not blocking β Makefile, CLAUDE.md, AGENTS.md and the existing PRs give plenty of signal β but I figured before dropping a provider PR it's probably worth spending half an hour to write down the conventions, so the provider PR (and anything that comes after) can just point at it instead of re-litigating style each time.
Opening this issue to track that, happy to send the PR myself if you're up for it.
What I'd propose adding
Nothing fancy, all doc-only:
CONTRIBUTING.md at root with the basics: mise install + Go via .mise.toml, the make fix / lint / test loop, test conventions (t.Run("...") subtests, t.TempDir() fixtures β pointing at pkg/agent/agent_test.go and pkg/daemon/sessions_test.go as prior art), the PRD β Slice issue flow you already use, commit-message style, and a one-liner on licensing (contributions go under the repo's LICENSE of some kind).
.github/PULL_REQUEST_TEMPLATE.md with a short checklist: linked issue, one-line summary, make lint / make test ran, screenshot/recording for TUI-visible changes.
.github/ISSUE_TEMPLATE/ with three templates that mirror the shapes already in the repo:
- Optional:
CODE_OF_CONDUCT.md (Contributor Covenant 2.1 verbatim) β totally your call, fine either way.
- Tiny README edit linking to
CONTRIBUTING.md.
Why this before the provider PR
Mostly so the provider PR is about the provider, not about "what shape should this be in". Once CONTRIBUTING.md + the templates are in, I (and anyone else) can just point at them and the review can stay on the technical bits.
Also: the PRD / Slice shape you've been using is genuinely good and worth codifying
Out of scope (for this issue)
Let me know if this sounds reasonable and I'll open the PR. Happy to adjust the scope if you'd rather cut it down or push it broader.
Contributing guidelines (so I can land a new LLM provider cleanly)
Context
Hey π β I was poking around the repo because I'd like to contribute a new LLM provider (thinking something around the existing
pkg/provider/*shape, similar to what #58 sketched out). Before opening the PR I went looking for aCONTRIBUTING.mdto make sure I'd line up with how you like things done, and noticed there isn't one yet.It's not blocking β
Makefile,CLAUDE.md,AGENTS.mdand the existing PRs give plenty of signal β but I figured before dropping a provider PR it's probably worth spending half an hour to write down the conventions, so the provider PR (and anything that comes after) can just point at it instead of re-litigating style each time.Opening this issue to track that, happy to send the PR myself if you're up for it.
What I'd propose adding
Nothing fancy, all doc-only:
CONTRIBUTING.mdat root with the basics:mise install+ Go via.mise.toml, themake fix / lint / testloop, test conventions (t.Run("...")subtests,t.TempDir()fixtures β pointing atpkg/agent/agent_test.goandpkg/daemon/sessions_test.goas prior art), thePRDβSliceissue flow you already use, commit-message style, and a one-liner on licensing (contributions go under the repo'sLICENSEof some kind)..github/PULL_REQUEST_TEMPLATE.mdwith a short checklist: linked issue, one-line summary,make lint/make testran, screenshot/recording for TUI-visible changes..github/ISSUE_TEMPLATE/with three templates that mirror the shapes already in the repo:prd.md(labelprd) β headings from Coding-table-stakes tools: grep, glob, multi_edit + bash hardening (output cap, configurable timeout)Β #76 / PRD: fix data race on ManagedSession.Messages between turn and external readersΒ #84slice.md(labelprd/issue) β headings from Slice 1: grep tool + pkg/search package foundationΒ #77 / Slice 2: glob tool (extends pkg/search with Paths)Β #80bug.mdβ "what happened / expected / repro / OS + Go + mise + provider+model / logs"config.ymlwithblank_issues_enabled: falseCODE_OF_CONDUCT.md(Contributor Covenant 2.1 verbatim) β totally your call, fine either way.CONTRIBUTING.md.Why this before the provider PR
Mostly so the provider PR is about the provider, not about "what shape should this be in". Once
CONTRIBUTING.md+ the templates are in, I (and anyone else) can just point at them and the review can stay on the technical bits.Also: the
PRD/Sliceshape you've been using is genuinely good and worth codifyingOut of scope (for this issue)
Let me know if this sounds reasonable and I'll open the PR. Happy to adjust the scope if you'd rather cut it down or push it broader.