bring the repo up to repo standards in one PR #1

Closed
opened 2026-08-30 13:14:30 +02:00 by clawbot · 6 comments
Collaborator

sneak, 2026-08-30: add dcf to project management and bring it up to standards; one issue and one PR.

Scope (per sneak/prompts REPO_POLICIES.md and the Go styleguide): Makefile with fmt/fmt-check/check/test/lint/build; script/ STRTA entrypoints; canonical .golangci.yml with linting in Docker (Dockerfile.lint); prettier config for markdown (4-space tabs, proseWrap always); go.mod tidy and toolchain current; fix any lint findings; README gains the standard workflow section while keeping its content; rename default branch master → main. Code stays in pkg/dcf (already conforms — no cmd/ exists and none is added here).

Done: make check green via the repo's own targets, lint clean in Docker, default branch main, one PR reviewed and merged.

sneak, 2026-08-30: add `dcf` to project management and bring it up to standards; one issue and one PR. Scope (per `sneak/prompts` `REPO_POLICIES.md` and the Go styleguide): `Makefile` with `fmt`/`fmt-check`/`check`/`test`/`lint`/`build`; `script/` STRTA entrypoints; canonical `.golangci.yml` with linting in Docker (`Dockerfile.lint`); prettier config for markdown (4-space tabs, proseWrap always); `go.mod` tidy and toolchain current; fix any lint findings; README gains the standard workflow section while keeping its content; rename default branch `master` → `main`. Code stays in `pkg/dcf` (already conforms — no `cmd/` exists and none is added here). Done: `make check` green via the repo's own targets, lint clean in Docker, default branch `main`, one PR reviewed and merged.
Author
Collaborator

Plan:

  • Vendor the org standard tooling byte-identical from sneak/prompts and clawbot/go-template-repo: canonical .golangci.yml, .editorconfig, .prettierrc/.prettierignore, .dockerignore, .gitea/workflows/check.yml, and the full script/ STRTA set (bootstrap setup projectname test lint fmt fmt-check check docker cibuild precommit install-precommit plus the prettier/assert-step-ran/assert-context-complete/repo-source-manifest helpers). Makefile becomes thin shims over those.
  • Lint runs in Docker only, via Dockerfile.lint, with the cache-bust and context-completeness assertions the template uses. Dockerfile gets the lint stage plus a build/test stage; no runtime stage, since this repo is a library with no cmd/.
  • make build currently points at a cmd/dcfinfo that does not exist in the tree, so it cannot succeed. Per the issue ("no cmd/ exists and none is added here") build becomes go build ./....
  • go.mod: tidy (drops the unused lmittmann/tint indirect) and bring the toolchain line current.
  • Fix the lint findings the new config surfaces in pkg/dcf. Two are real: findDCFMountPoints discards the error from findAllMountPoints (a stray unassigned erro is checked instead), and privatePath is assigned twice so the first computation is dead.
  • README keeps all its existing content and is reorganised into the required sections, adding Entrypoints documenting each script/ entrypoint.

One commit, one PR, based on the current default branch.

Plan: - Vendor the org standard tooling byte-identical from `sneak/prompts` and `clawbot/go-template-repo`: canonical `.golangci.yml`, `.editorconfig`, `.prettierrc`/`.prettierignore`, `.dockerignore`, `.gitea/workflows/check.yml`, and the full `script/` STRTA set (`bootstrap` `setup` `projectname` `test` `lint` `fmt` `fmt-check` `check` `docker` `cibuild` `precommit` `install-precommit` plus the `prettier`/`assert-step-ran`/`assert-context-complete`/`repo-source-manifest` helpers). `Makefile` becomes thin shims over those. - Lint runs in Docker only, via `Dockerfile.lint`, with the cache-bust and context-completeness assertions the template uses. `Dockerfile` gets the lint stage plus a build/test stage; no runtime stage, since this repo is a library with no `cmd/`. - `make build` currently points at a `cmd/dcfinfo` that does not exist in the tree, so it cannot succeed. Per the issue ("no `cmd/` exists and none is added here") `build` becomes `go build ./...`. - `go.mod`: tidy (drops the unused `lmittmann/tint` indirect) and bring the toolchain line current. - Fix the lint findings the new config surfaces in `pkg/dcf`. Two are real: `findDCFMountPoints` discards the error from `findAllMountPoints` (a stray unassigned `erro` is checked instead), and `privatePath` is assigned twice so the first computation is dead. - README keeps all its existing content and is reorganised into the required sections, adding **Entrypoints** documenting each `script/` entrypoint. One commit, one PR, based on the current default branch.
Author
Collaborator

PR: #7

Three parts of this issue's done-criteria are not clawbot's to complete, because it has no write access to this repo (push: false, admin: false):

  • Default branch is still master. Creating main and setting default_branch both 403. sneak has to do the rename.
  • The PR comes from a fork (clawbot/dcf), because pushing a branch here is rejected by the pre-receive hook.
  • needs-review could not be applied and the PR could not be assigned. The repo has no labels and creating one 403s; assignee edits are silently dropped.

Granting clawbot write on this repo fixes all three.

PR: https://git.eeqj.de/sneak/dcf/pulls/7 Three parts of this issue's done-criteria are not clawbot's to complete, because it has no write access to this repo (`push: false`, `admin: false`): - **Default branch is still `master`.** Creating `main` and setting `default_branch` both 403. sneak has to do the rename. - **The PR comes from a fork** (`clawbot/dcf`), because pushing a branch here is rejected by the pre-receive hook. - **`needs-review` could not be applied and the PR could not be assigned.** The repo has no labels and creating one 403s; assignee edits are silently dropped. Granting clawbot write on this repo fixes all three.
Author
Collaborator

Plan update (2026-10-03). The plan above stands; what changed since the closed attempt:

  • clawbot can now push here. The branch lives in this repo, cut from next, and the PR targets next.
  • Start from the closed attempt's commit ed95e66, still fetchable as refs/pull/7/head, but re-copy every vendored file from current sneak/prompts main byte-identical: they have changed since 30 August. Copy REPO_POLICIES.md too.
  • Module path becomes sneak.berlin/go/dcf (REPO_POLICIES; the redirect at that address already points here). Change it in place, no alias.
  • Keep the renames the linter forces (DCFStore to Store, DCFObject to Object).
  • Mount-point behaviour stays exactly as it is; #6 changes it.
  • Renaming master to main needs admin rights and is not part of this PR; it waits on sneak/project-management#10. The workflow runs on every push, so it already covers next.

Done: make check and script/cibuild pass from a fresh clone, lint runs in Docker and is clean, README has the required sections including Entrypoints, one PR to next reviewed and squash-merged.

Model: opus-5-5

Plan update (2026-10-03). The plan above stands; what changed since the closed attempt: - clawbot can now push here. The branch lives in this repo, cut from `next`, and the PR targets `next`. - Start from the closed attempt's commit `ed95e66`, still fetchable as `refs/pull/7/head`, but re-copy every vendored file from current `sneak/prompts` `main` byte-identical: they have changed since 30 August. Copy `REPO_POLICIES.md` too. - Module path becomes `sneak.berlin/go/dcf` (REPO_POLICIES; the redirect at that address already points here). Change it in place, no alias. - Keep the renames the linter forces (`DCFStore` to `Store`, `DCFObject` to `Object`). - Mount-point behaviour stays exactly as it is; https://git.eeqj.de/sneak/dcf/issues/6 changes it. - Renaming `master` to `main` needs admin rights and is not part of this PR; it waits on https://git.eeqj.de/sneak/project-management/issues/10. The workflow runs on every push, so it already covers `next`. Done: `make check` and `script/cibuild` pass from a fresh clone, lint runs in Docker and is clean, README has the required sections including Entrypoints, one PR to `next` reviewed and squash-merged. Model: opus-5-5
Author
Collaborator

State, 2026-10-03: queued, not dispatched (the fleet is out of RAM and worker slots). next exists, cut from master at f585e8f; no PR is open. This is the first unit. After it: #6 and #2 in parallel, then #3. The plan update above is the worker's brief.

Model: opus-5-5

State, 2026-10-03: queued, not dispatched (the fleet is out of RAM and worker slots). `next` exists, cut from `master` at `f585e8f`; no PR is open. This is the first unit. After it: https://git.eeqj.de/sneak/dcf/issues/6 and https://git.eeqj.de/sneak/dcf/issues/2 in parallel, then https://git.eeqj.de/sneak/dcf/issues/3. The plan update above is the worker's brief. Model: opus-5-5
Author
Collaborator

Brief correction: the current sneak/prompts policy replaces two points above. The gates are lint and test stages in the one Dockerfile, so there is no Dockerfile.lint. The final stage depends on both and is the development environment the policy describes for non-server repos. The formatting goes in the one commit, because this issue asks for one PR.

Model: opus-5-5

Brief correction: the current `sneak/prompts` policy replaces two points above. The gates are `lint` and `test` stages in the one `Dockerfile`, so there is no `Dockerfile.lint`. The final stage depends on both and is the development environment the policy describes for non-server repos. The formatting goes in the one commit, because this issue asks for one PR. Model: opus-5-5
Author
Collaborator

PR: #8

Model: opus-5-5

PR: https://git.eeqj.de/sneak/dcf/pulls/8 Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/dcf#1