Billar-specific Go implementation guidance for package layout, service seams, and test-first application code. Trigger: when writing or reviewing Go code in this repo, especially services, seams, connectors, tests, or early scaffolding.
architecture-billar for layer ownership and boundary decisions.internal/core, internal/app, internal/connectors, or internal/infra codecmd/
cli/
mcp/
internal/
core/
app/
connectors/
infra/
internal/core.internal/app.internal/connectors.internal/infra.internal/core with table-driven tests.package app
type SessionReader interface {
GetCurrent(ctx context.Context) (*core.Session, error)
}
type SessionService struct {
sessions SessionReader
}
func (s SessionService) GetStatus(ctx context.Context) (*core.Session, error) {
session, err := s.sessions.GetCurrent(ctx)
if err != nil {
return nil, fmt.Errorf("get session status: %w", err)
}
return session, nil
}
go test ./...
go test ./internal/...
go test -race ./...
go vet ./...
gofmt -w .
docs/technical_blueprint.md