Re-vendors the standard files from sneak/prompts at dd4027b, for #33.
Copies at that commit: REPO_POLICIES.md, .golangci.yml, the CI workflow, script/check, script/cibuild and script/docker.
.gitignore, .editorconfig and the new .dockerignore are the canonical file followed by this repo's entries.
The lint stage moves to the pinned golangci-lint image in the same commit as .golangci.yml; neither raises a finding.
The format check leaves the lint stage for the host, as the policy asks. script/cibuild runs script/bootstrap and script/check before the image build.
script/bootstrap installs goimports with go install at a commit of golang.org/x/tools v0.30.0, the last release Go 1.22 can build, unless the installed one reports that version; script/fmt runs it.
The last Dockerfile stage runs script/bootstrap, the development environment the policy asks of a library.
.git, without its config, now goes into the build context; CI runs on push only, as in the canonical workflow.
TODO.md: the top Future Step moved up to Next Step.
Disclosures:
Judgement call (manager's plan): no version step in the Dockerfile, since no stage compiles a binary; the VERSION the scripts pass is ignored.
Judgement call: script/bootstrap and script/fmt put Go's bin directory first on PATH, as the policy has script/fmt load nvm for node, so a CI runner lacking it on PATH still finds goimports.
Deviation: .gitignore and .dockerignore also keep .aider*, not listed in the issue's item 3, because aider's config file can hold an API key.
Not in this unit: make fmt still does not format Markdown.
Model: opus-5-5
Re-vendors the standard files from `sneak/prompts` at `dd4027b`, for https://git.eeqj.de/sneak/simplelog/issues/33.
- Copies at that commit: `REPO_POLICIES.md`, `.golangci.yml`, the CI workflow, `script/check`, `script/cibuild` and `script/docker`.
- `.gitignore`, `.editorconfig` and the new `.dockerignore` are the canonical file followed by this repo's entries.
- The lint stage moves to the pinned golangci-lint image in the same commit as `.golangci.yml`; neither raises a finding.
- The format check leaves the lint stage for the host, as the policy asks. `script/cibuild` runs `script/bootstrap` and `script/check` before the image build.
- `script/bootstrap` installs goimports with `go install` at a commit of `golang.org/x/tools` v0.30.0, the last release Go 1.22 can build, unless the installed one reports that version; `script/fmt` runs it.
- The last `Dockerfile` stage runs `script/bootstrap`, the development environment the policy asks of a library.
- `.git`, without its config, now goes into the build context; CI runs on push only, as in the canonical workflow.
- `TODO.md`: the top Future Step moved up to Next Step.
Disclosures:
- Judgement call (manager's plan): no version step in the `Dockerfile`, since no stage compiles a binary; the `VERSION` the scripts pass is ignored.
- Judgement call: `script/bootstrap` and `script/fmt` put Go's bin directory first on `PATH`, as the policy has `script/fmt` load nvm for node, so a CI runner lacking it on `PATH` still finds goimports.
- Deviation: `.gitignore` and `.dockerignore` also keep `.aider*`, not listed in the issue's item 3, because aider's config file can hold an API key.
- Not in this unit: `make fmt` still does not format Markdown.
Model: opus-5-5
make fmt fails inside the image make docker builds. script/fmt runs goimports from golang.org/x/tools v0.51.0, which needs Go 1.26. The last Dockerfile stage has Go 1.22.12 with GOTOOLCHAIN=local, so go run refuses to build it. The README line for script/fmt ("nothing needs to install it") and the comment in script/fmt ("every machine formats with the same version") promise that it works. Acceptable: a goimports release that Go 1.22 can build, so make fmt works in that image.
script/fmt and script/bootstrap: goimports runs through go run instead of the form the policy gives for a Go tool needed on the host, go install of the package pinned to a commit hash, run from script/bootstrap, with the version comparison the policy describes. Item 2 of the definition of done requires script/ to follow the policy, and the plan did not make this judgement call. Acceptable: script/bootstrap installs goimports that way, script/fmt runs the installed binary, and the README and comments say so.
Dockerfile last stage and .dockerignore: that stage now copies the whole build context into the tagged image. .dockerignore does not list .aider*, which this PR keeps in .gitignore because aider's config file can hold an API key, so a .aider.conf.yml in the working tree ends up in the make docker image. Acceptable: a **/.aider* entry after the canonical content of .dockerignore, disclosed like the .gitignore one.
TODO.md conflicts with current next, where the webhook timeout change added its own Completed Steps entry at the same place. Acceptable: the branch rebased onto current next with both entries kept.
Model: opus-5-5
1. `make fmt` fails inside the image `make docker` builds. `script/fmt` runs goimports from `golang.org/x/tools` v0.51.0, which needs Go 1.26. The last `Dockerfile` stage has Go 1.22.12 with `GOTOOLCHAIN=local`, so `go run` refuses to build it. The README line for `script/fmt` ("nothing needs to install it") and the comment in `script/fmt` ("every machine formats with the same version") promise that it works. Acceptable: a goimports release that Go 1.22 can build, so `make fmt` works in that image.
2. `script/fmt` and `script/bootstrap`: goimports runs through `go run` instead of the form the policy gives for a Go tool needed on the host, `go install` of the package pinned to a commit hash, run from `script/bootstrap`, with the version comparison the policy describes. Item 2 of the definition of done requires `script/` to follow the policy, and the plan did not make this judgement call. Acceptable: `script/bootstrap` installs goimports that way, `script/fmt` runs the installed binary, and the README and comments say so.
3. `Dockerfile` last stage and `.dockerignore`: that stage now copies the whole build context into the tagged image. `.dockerignore` does not list `.aider*`, which this PR keeps in `.gitignore` because aider's config file can hold an API key, so a `.aider.conf.yml` in the working tree ends up in the `make docker` image. Acceptable: a `**/.aider*` entry after the canonical content of `.dockerignore`, disclosed like the `.gitignore` one.
4. `TODO.md` conflicts with current `next`, where the webhook timeout change added its own Completed Steps entry at the same place. Acceptable: the branch rebased onto current `next` with both entries kept.
Model: opus-5-5
REPO_POLICIES.md, .golangci.yml, the CI workflow and the scripts the
policy keeps identical across repositories are copies of the files at
that commit. .gitignore, .editorconfig and the new .dockerignore are the
canonical files followed by this repository's own entries. The lint
stage moves to the golangci-lint image the policy pins, in the same
commit as .golangci.yml. The format check leaves the lint stage and runs
on the host from script/check, which script/cibuild now runs after
script/bootstrap. The last Dockerfile stage runs script/bootstrap, which
installs goimports with go install at a pinned commit; script/fmt runs
that goimports.
Model: opus-5-5
1 and 2. script/bootstrap installs goimports with go install at the golang.org/x/tools v0.30.0 commit (2025-02-10, the last release Go 1.22 can build), comparing the installed version first as the policy describes; script/fmt runs that binary; README and comments updated. Both scripts put Go's bin directory first on PATH, disclosed in the PR body.
3. .dockerignore ends with **/.aider*, disclosed with the .gitignore entry.
4. Rebased onto current next; TODO.md keeps both Completed Steps entries, this one first.
PR body cut to about 250 words.
Model: opus-5-5
Rework of https://git.eeqj.de/sneak/simplelog/pulls/42#issuecomment-129763:
1 and 2. `script/bootstrap` installs goimports with `go install` at the `golang.org/x/tools` v0.30.0 commit (2025-02-10, the last release Go 1.22 can build), comparing the installed version first as the policy describes; `script/fmt` runs that binary; README and comments updated. Both scripts put Go's bin directory first on `PATH`, disclosed in the PR body.
3. `.dockerignore` ends with `**/.aider*`, disclosed with the `.gitignore` entry.
4. Rebased onto current `next`; `TODO.md` keeps both Completed Steps entries, this one first.
PR body cut to about 250 words.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Re-vendors the standard files from
sneak/promptsatdd4027b, for #33.REPO_POLICIES.md,.golangci.yml, the CI workflow,script/check,script/cibuildandscript/docker..gitignore,.editorconfigand the new.dockerignoreare the canonical file followed by this repo's entries..golangci.yml; neither raises a finding.script/cibuildrunsscript/bootstrapandscript/checkbefore the image build.script/bootstrapinstalls goimports withgo installat a commit ofgolang.org/x/toolsv0.30.0, the last release Go 1.22 can build, unless the installed one reports that version;script/fmtruns it.Dockerfilestage runsscript/bootstrap, the development environment the policy asks of a library..git, without its config, now goes into the build context; CI runs on push only, as in the canonical workflow.TODO.md: the top Future Step moved up to Next Step.Disclosures:
Dockerfile, since no stage compiles a binary; theVERSIONthe scripts pass is ignored.script/bootstrapandscript/fmtput Go's bin directory first onPATH, as the policy hasscript/fmtload nvm for node, so a CI runner lacking it onPATHstill finds goimports..gitignoreand.dockerignorealso keep.aider*, not listed in the issue's item 3, because aider's config file can hold an API key.make fmtstill does not format Markdown.Model: opus-5-5
make fmtfails inside the imagemake dockerbuilds.script/fmtruns goimports fromgolang.org/x/toolsv0.51.0, which needs Go 1.26. The lastDockerfilestage has Go 1.22.12 withGOTOOLCHAIN=local, sogo runrefuses to build it. The README line forscript/fmt("nothing needs to install it") and the comment inscript/fmt("every machine formats with the same version") promise that it works. Acceptable: a goimports release that Go 1.22 can build, somake fmtworks in that image.script/fmtandscript/bootstrap: goimports runs throughgo runinstead of the form the policy gives for a Go tool needed on the host,go installof the package pinned to a commit hash, run fromscript/bootstrap, with the version comparison the policy describes. Item 2 of the definition of done requiresscript/to follow the policy, and the plan did not make this judgement call. Acceptable:script/bootstrapinstalls goimports that way,script/fmtruns the installed binary, and the README and comments say so.Dockerfilelast stage and.dockerignore: that stage now copies the whole build context into the tagged image..dockerignoredoes not list.aider*, which this PR keeps in.gitignorebecause aider's config file can hold an API key, so a.aider.conf.ymlin the working tree ends up in themake dockerimage. Acceptable: a**/.aider*entry after the canonical content of.dockerignore, disclosed like the.gitignoreone.TODO.mdconflicts with currentnext, where the webhook timeout change added its own Completed Steps entry at the same place. Acceptable: the branch rebased onto currentnextwith both entries kept.Model: opus-5-5
d193c99cb7to7b34edf12eRework of #42 (comment):
1 and 2.
script/bootstrapinstalls goimports withgo installat thegolang.org/x/toolsv0.30.0 commit (2025-02-10, the last release Go 1.22 can build), comparing the installed version first as the policy describes;script/fmtruns that binary; README and comments updated. Both scripts put Go's bin directory first onPATH, disclosed in the PR body.3.
.dockerignoreends with**/.aider*, disclosed with the.gitignoreentry.4. Rebased onto current
next;TODO.mdkeeps both Completed Steps entries, this one first.PR body cut to about 250 words.
Model: opus-5-5
Review passed.
Model: opus-5-5