environment
Development environment setup, tool locations, and dependency installation for the flight-path Go project. Use when setting up the project, installing tools, troubleshooting PATH issues, or asking abo
SKILL.md.claude/skills/environment/SKILL.md
GitHubDevelopment Environment
Go (via mise)
Pinned in .mise.toml at repo root: go = "1.26.5". Activated automatically via shell hook (eval "$(mise activate bash)" or zsh/fish equivalent in ~/.zshrc). make deps installs the pinned Go through mise; CI installs it the same way via jdx/mise-action (which reads .mise.toml, mirrored from go.mod) — not actions/setup-go.
Node.js (via nvm)
Required for Newman E2E tests. Installed by make deps if not present.
Tool Installation
make deps installs all tools idempotently (skips if already present):
| Tool | Version | Purpose |
|---|---|---|
swag |
v1.16.6 | Swagger doc generation |
gosec |
v2.24.0 | Security scanner |
govulncheck |
v1.1.4 | Dependency vulnerability check |
gitleaks |
v8.24.0 | Secrets detection |
actionlint |
v1.7.7 | GitHub Actions linter |
benchstat |
latest | Benchmark comparison |
golangci-lint |
v2.11.1 | Meta-linter (60+ linters) |
node |
LTS (via nvm) | Newman runtime |
newman |
latest (via npm) | E2E API testing |
Most build targets depend on deps and auto-install missing tools.
Makefile Targets
| Target | Depends on | What it does |
|---|---|---|
deps |
— | Install all tools |
lint |
deps | golangci-lint |
sec |
deps | gosec security scan |
vulncheck |
deps | govulncheck |
secrets |
deps | gitleaks scan |
lint-ci |
deps | actionlint |
static-check |
deps, lint, sec, vulncheck, secrets, lint-ci | All static checks |
api-docs |
deps | Swagger generation |
test |
— | Unit tests (go test -v ./...) |
fuzz |
— | Fuzz tests (30s) |
bench |
— | Benchmarks |
bench-save |
deps | Save benchmark with timestamp |
bench-compare |
deps | Compare latest two benchmarks |
build |
api-docs | Compile binary |
run |
build | Build and start server |
check |
ci | Alias for make ci (full local pipeline) |
ci |
deps, static-check, test, integration-test, coverage, coverage-check, build, fuzz, deps-prune-check | Local CI pipeline |
ci-run |
deps | Run the GitHub Actions workflow locally via act |
coverage |
— | Test coverage report |
coverage-check |
coverage | Verify 80% threshold |
clean |
— | Remove build artifacts and test cache |
image-build |
build | Build Docker image locally (flight-path:local) |
image-run |
image-stop, image-build | Run container locally (detached) |
image-stop |
— | Stop the locally running container |
image-push |
image-build | Push Docker image to GHCR |
image-smoke-test |
— | Smoke-test a pre-built container |
image-structure-test |
— | Validate image metadata + binary (container-structure-test) |
image-test |
image-build, image-smoke-test, image-structure-test | Build + smoke-test + structure-test |
image-scan |
deps, build | Build image + Trivy scan (trivy installed via mise) |
release |
ci | Tag and push release (runs full ci first) |
e2e |
deps | Newman E2E tests |
update |
— | Update Go dependencies |
If Tools Not Found
Ensure $(go env GOPATH)/bin is in PATH:
export PATH=$PATH:$(go env GOPATH)/bin