Skip to content

joebartels/go-quality-build

v0.4.0

Focused Go authoring skills for design, APIs, testing, naming, comments, context and concurrency.

go-api-contracts

Use when Go work creates or changes an exported API or supported external CLI, wire, file, or error contract, including compatibility and release migrations. Skip private helper fixes without an established external contract, even when their local behavior intentionally changes.

go-behavior-tests

Use when a Go task changes meaningful behavior, fixes a defect, or adds or strengthens tests for a supported contract in a library, CLI, service, or worker. Skip comment-only, formatting-only, and mechanical edits with no behavioral change or requested test improvement.

go-concurrency-and-ownership

Use when Go work changes shared mutable state, goroutines, channels, bounded admission, asynchronous completion, or resources used by concurrent work. Skip private serial calculations and local fixes without these decisions.

go-context-and-deadlines

Use when Go work changes cancellation propagation, operation or stage deadlines, cancellation causes, or required work after caller cancellation. Skip pure calculations and synchronization changes without a context or budget decision.

go-interfaces-and-composition

Use when Go work introduces or changes an interface, concrete dependency, constructor, options API, dependency wiring, or resource lifecycle. Skip private pure calculations and local expression fixes that do not change those decisions.

go-names-and-comments

Use when writing or revising Go identifiers, comments or Godoc, especially verbose helper documentation and test prefaces. Skip changes unrelated to names or documentation.

go-package-boundaries

Use when a Go change creates, splits, merges, or relocates packages, adds a responsibility, or changes import direction or ownership. Applies to libraries, CLIs, and services; local expression edits with unchanged responsibilities do not need this skill.

go-test-isolation

Use when Go test work involves files, external dependencies, doubles, shared mutable or process state, goroutines, timers, fixture lifetime, or parallel execution, including repairing flaky or order-dependent setup. Skip pure deterministic calculations using only local inputs and ordinary assertions.