Skip to content
Back to skills

Build And Test

ASecurity

Build, lint, and test manzanasd - the Go toolchain gate every PR must pass, the CI matrix (Linux + macOS), and how to build the simbridge helper. Use before opening any PR to this repo or when debugging CI failures.

  • 17 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
developmentgoswiftdebugginggit

Security analysis

A100/100

Scanned September 4, 2026

npx -y skills add BariBariGood/manzanas --skill build-and-test --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Build And Test?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Build And Test
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/baribarigood-build-and-test/badge)](https://www.skillsdirectory.com/skills/baribarigood-build-and-test)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: build-and-test
description: Build, lint, and test manzanasd - the Go toolchain gate every PR must pass, the CI matrix (Linux + macOS), and how to build the simbridge helper. Use before opening any PR to this repo or when debugging CI failures.
---

# Build and test manzanasd

Pure Go (module `github.com/BariBariGood/manzanas`, needs a recent stable Go
toolchain). Everything below runs on Linux — no Mac required for the core
gate.

## The PR gate — run ALL of these before opening a PR

```sh
go build ./...
go vet ./...
go test ./...
gofmt -l .        # must print NOTHING; fix with gofmt -w on the listed files
```

`make build` produces `bin/manzanasd`, `bin/manzanas`, `bin/manzanas-broker`;
`make lint` = vet + gofmt check. Unit tests are Linux-safe by design (mock
registry, httptest fake daemons); code that needs macOS is behind interfaces
(e.g. `warm.Host`) with fakes — keep it that way.

## CI (.github/workflows/ci.yml)

The test job runs the same four commands on a two-leg matrix
(`ubuntu-latest` + `macos-latest`).

Notes:

- `setup-go` uses `go-version: "stable"`, NOT 1.22 — the Go 1.22 linker
  emits binaries without `LC_UUID`, which macOS 26 refuses to execute. Don't
  pin the version down.
- Keep macOS-leg tests fast and never add steps that boot simulators or
  need sudo there.

Other workflows: `release.yml` (GoReleaser on `v*` tags), `site.yml`
(`site/` npm build; only triggers on site changes).

## simbridge (warm-actions helper)

CI cannot build it (needs macOS + Xcode + AXe frameworks). Build on a Mac:

```sh
helpers/simbridge/build.sh ~/bin/simbridge          # AXe frameworks at ~/axe/Frameworks
AXE_FRAMEWORKS=/opt/axe/Frameworks helpers/simbridge/build.sh   # other installs
```

The binary rpath-pins the frameworks dir it was built against — build on (or
for) the host that runs it, one binary per architecture. If the shipped
`.swiftmodule`s don't match the local Swift compiler, rebuild the AXe
frameworks first (see `docs/actions-warm.md`).

## Conventions

- Protocol changes: `proto/` Go types are the source of truth;
  `proto/PROTOCOL.md` describes semantics. Within v0 changes must be
  additive. Same rule for the journal format (`docs/journal.md`).
- The daemon owns all stateful policy in Go (unit-testable on Linux);
  helpers like simbridge stay deliberately dumb.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.