CODEX.md
Go Micro has six months of Codex access through OpenAI's Codex for Open Source program. Use it to increase maintainer throughput without changing the project's bar for review, tests, or design taste.
make test, and make lint.Go Micro is maintained by two AI tools — Codex (you) and Claude Code (its guide is CLAUDE.md) — plus the human maintainer, who routes work and owns every merge.
codex/* branches; Claude Code on claude/*. Never push to a branch the other owns, and never have both agents on one branch at once.master. Don't stack a PR on another agent's in-flight branch — if that base squash-merges, your changes can be orphaned. If the code you need isn't merged yet, wait, then branch off master. To improve a PR that hasn't merged, push to that PR's branch rather than opening a separate stacked PR — keep the change one mergeable unit.@codex review. A fresh pass from the other model catches what the author misses.@codex <instruction> on the relevant issue/PR — that's your context. @codex review is review; any other instruction is a task. You run one task at a time: take the current one to a clean, green PR before the next is dispatched.go build, go test, golangci-lint (blocking), and make harness must pass; never merge red. internal/harness/ and examples/ are excluded from errcheck; everything else gets the full set.README.md, ROADMAP.md, website docs, examples, and CHANGELOG.md
agree before tagging.Use Codex to break roadmap items into small PRs, especially:
ai.Stream and A2A;Do not start with a giant feature. Start by making Codex pay rent on maintenance work that is already on the roadmap and easy to review.
Success means Codex can produce a useful first-pass review in under ten minutes without blocking a maintainer on false positives.
Success means every accepted bug fix starts with a regression test or deterministic harness case.
Run through the 0→1 path from a clean checkout and ask Codex to patch only the first broken or confusing step. The target is not new prose; it is a runnable path that works exactly as documented.
Candidate checks:
make test
make harness
make lint
go run ./examples/hello-world
go run ./internal/harness/universe
Pick one hardening item and break it into PRs that each land independently. The best first slice is usually test infrastructure, not product code.
Recommended order:
context.Context propagation through one package
at a time.README.md, ROADMAP.md, website docs, and
examples for one shipped feature.Keep Codex busy on tasks with clear acceptance criteria:
| Priority | Task | Acceptance criteria |
|---|---|---|
| P0 | PR first-pass review | Summary, risks, required changes, and exact verification commands. |
| P0 | Bug reproduction | A failing test or harness case committed before the fix. |
| P0 | 0→1 docs check | Fresh-checkout commands work as written or a patch fixes the first break. |
| P1 | Cross-provider conformance | One scenario runs against fakes by default and real providers when keys exist. |
| P1 | Cancellation hardening | Tests prove timeout/cancel behavior for the touched package. |
| P1 | Release audit | Changelog, docs, examples, and migration notes agree before tagging. |
| P2 | Example polish | Example is runnable, linked from docs, and covered by a lightweight check. |
ai.Model
contract.Review this PR for Go Micro. Focus on public API compatibility, cancellation and
context propagation, concurrency safety, tests, and docs drift. Return: summary,
risks, required changes, optional improvements, and exact commands to verify.
Reproduce this issue in the smallest Go test or harness change possible. Do not
fix it yet. Explain the failing path and provide the exact command that fails.
Implement the smallest branch that satisfies this issue. Keep the API compatible
unless explicitly required, update docs/examples when behavior changes, and run
`make test`, `make harness`, and `make lint` or explain any environment blocker.
Audit this release branch. Compare CHANGELOG, README, ROADMAP, website docs, and
examples against the diff since the last tag. List inconsistencies, missing
migration notes, and checks to run before tagging.