Standard scaffold: script/ entrypoints with the Makefile as thin shims, a Dockerfile whose lint and test phases gate the build, a Gitea CI workflow running script/cibuild, REPO_POLICIES.md, TODO.md, .editorconfig, .dockerignore, LICENSE, wider .gitignore. .golangci.yml is byte-identical to the canonical copy in the prompts repo. 211 lint findings fixed in code: package globals became functions/fields and a cobra command constructor, magic numbers became named constants, ctx is threaded into the probes, monitor loops split. Tests moved to external _test packages with export_test.go. Behavior unchanged. Readers will trip over: make lint/test/check now need a Docker daemon; the personal rsync copy/run targets are gone and make run runs locally. Disclosure: four //nolint:gosec remain on the fixed-argv ping/curl calls and the operator-chosen log file, as the reference repo annotates the same class. Disclosure: module path left as-is. Model: opus-4-8 (implementation); fable-5-1 (merge)
1.8 KiB
Workflow
One issue per unit of work, one branch and one PR per issue:
- ensure a tracked issue exists with a definition of done
- branch from
next(never frommain) - do the work; open a PR based on
next(never onmain) - pass an independent review, then the change is squash-merged into
next - push; nothing stays local-only
next is the branch for the next milestone and must stay green and
mergeable to main without notice. Only sneak merges next into
main, and for now only sneak merges into next. No commits land
directly on main or next — only merges via PRs.
Issue branches do NOT touch this file — it is maintained on next.
Every branch editing TODO.md conflicts with every other.
Status
The repository has been brought up to current repo standards: script/
Scripts to Rule Them All entrypoints with the Makefile reduced to thin
shims, a Dockerfile whose lint and test phases gate the build, a
.gitea/workflows/ CI workflow running script/cibuild, the vendored
.golangci.yml, REPO_POLICIES.md, .editorconfig, .dockerignore, a
LICENSE file, and a comprehensive .gitignore.
Lint is clean under the standard default: all configuration, with the
findings fixed rather than suppressed. The only annotations are
justified //nolint:gosec on the ping/curl subprocess calls (G204)
and on opening the operator-chosen log file (G304): fixed argv with no
shell, so these are false positives, annotated as the reference repos do.
Next Step
Feature work, each on its own branch and PR from next: