# Go opinion index

This file is the mandatory entry point for Go-specific Amolith opinions. If a
request explicitly names a Go leaf topic such as Wails, MCP, TUI, packaging, or
CLI opinions, start here anyway. The ordering is intentional: agents should grok
the baseline before applying a surface-specific preference.

Always read [baseline.md](baseline.md) before applying Go-specific opinions.
Then load the files for the project surface:

- **Setup, modernisation, audit, or tooling**: read [mise.md](mise.md),
  [preferred-libraries.md](preferred-libraries.md), and [testing.md](testing.md)
  if verification or test posture is changing.
- **Library**: read [preferred-libraries.md](preferred-libraries.md) and
  [testing.md](testing.md). Read [licencing.md](licencing.md) when project
  metadata or file coverage changes.
- **CLI**: read [mise.md](mise.md), [preferred-libraries.md](preferred-libraries.md),
  and [cli.md](cli.md). Read [packaging.md](packaging.md) for release/install
  work.
- **TUI**: read [mise.md](mise.md), [preferred-libraries.md](preferred-libraries.md),
  [cli.md](cli.md), [tui.md](tui.md), and [testing.md](testing.md). Read
  [packaging.md](packaging.md) for release/install work.
- **MCP server**: read [mise.md](mise.md), [preferred-libraries.md](preferred-libraries.md),
  [cli.md](cli.md), [mcp.md](mcp.md), and [testing.md](testing.md). Read
  [packaging.md](packaging.md) only when system installation, services, or
  managed config files are part of the product.
- **Light web app**: read [mise.md](mise.md), [preferred-libraries.md](preferred-libraries.md),
  [web.md](web.md), and [testing.md](testing.md).
- **Wails desktop app**: read [mise.md](mise.md), [preferred-libraries.md](preferred-libraries.md),
  [web.md](web.md), [wails.md](wails.md), [packaging.md](packaging.md), and
  [testing.md](testing.md).
- **Packaging/release work**: read [mise.md](mise.md), [packaging.md](packaging.md),
  and [cli.md](cli.md) for binary version policy. Add [wails.md](wails.md) for
  Wails desktop releases.
- **Licencing**: read [../licencing.md](../licencing.md), then
  [licencing.md](licencing.md) for Go/package metadata notes.

If a generic reference and a Go reference conflict, keep the generic reference
for cross-ecosystem intent and the Go reference for concrete Go tooling,
libraries, command names, build flags, and implementation details.
