Add the standard STRTA scaffold (no Makefile present) #4

Closed
opened 2026-07-25 13:16:22 +02:00 by clawbot · 0 comments
Collaborator

This repo has no Makefile and no script/ scaffold, so it diverges from our standard scripts-to-rule-them-all (STRTA) layout. Under STRTA, the Makefile is a set of thin shims that delegate to script/* POSIX-sh entrypoints, and CI runs script/cibuild. STRTA is language-agnostic: it applies to this Hugo static site as it does to our other repos. The living reference is the netwatch repo (Makefile + script/ + .gitea/workflows/check.yml); mirror its structure, with script/* bodies appropriate to a Hugo site.

Current state (nonconformance)

  • Hugo static site. No Makefile on main at all.
  • No script/ directory. No .gitea/workflows/check.yml.

Definition of done

  1. A Makefile is added with a .PHONY declaration listing at least the nine standard targets: bootstrap, setup, test, lint, fmt, fmt-check, check, docker, hooks.
  2. Each standard target is a thin shim whose recipe is exactly @script/NAME (test calls @script/test, hooks calls @script/install-precommit, etc.). Repo-specific extra targets (for example a serve/dev that runs hugo server) are allowed but must not replace the standard shims.
  3. A script/ directory holds executable POSIX-sh entrypoints (#!/bin/sh, set -e) for bootstrap, setup, test, lint, fmt, fmt-check, check, docker, install-precommit, plus cibuild, with Hugo-appropriate bodies (for example test/check runs hugo --minify as a build check and, if configured, an HTML/link check; fmt/fmt-check cover the site's formatted files where applicable).
  4. script/check runs the site's full local verification (at minimum a clean hugo build); script/cibuild is the CI entrypoint (docker build .), and a Dockerfile build runs make check so the image build fails on any check failure.
  5. .gitea/workflows/check.yml is added and invokes script/cibuild.
  6. make check passes locally and docker build . succeeds (green) before the change lands.

The finishing commit's title must end with (closes #N) referencing this issue.

This repo has no `Makefile` and no `script/` scaffold, so it diverges from our standard scripts-to-rule-them-all (STRTA) layout. Under STRTA, the `Makefile` is a set of thin shims that delegate to `script/*` POSIX-`sh` entrypoints, and CI runs `script/cibuild`. STRTA is language-agnostic: it applies to this Hugo static site as it does to our other repos. The living reference is the `netwatch` repo (`Makefile` + `script/` + `.gitea/workflows/check.yml`); mirror its structure, with `script/*` bodies appropriate to a Hugo site. ## Current state (nonconformance) - Hugo static site. No `Makefile` on `main` at all. - No `script/` directory. No `.gitea/workflows/check.yml`. ## Definition of done 1. A `Makefile` is added with a `.PHONY` declaration listing at least the nine standard targets: `bootstrap`, `setup`, `test`, `lint`, `fmt`, `fmt-check`, `check`, `docker`, `hooks`. 2. Each standard target is a thin shim whose recipe is exactly `@script/NAME` (`test` calls `@script/test`, `hooks` calls `@script/install-precommit`, etc.). Repo-specific extra targets (for example a `serve`/`dev` that runs `hugo server`) are allowed but must not replace the standard shims. 3. A `script/` directory holds executable POSIX-`sh` entrypoints (`#!/bin/sh`, `set -e`) for `bootstrap`, `setup`, `test`, `lint`, `fmt`, `fmt-check`, `check`, `docker`, `install-precommit`, plus `cibuild`, with Hugo-appropriate bodies (for example `test`/`check` runs `hugo --minify` as a build check and, if configured, an HTML/link check; `fmt`/`fmt-check` cover the site's formatted files where applicable). 4. `script/check` runs the site's full local verification (at minimum a clean `hugo` build); `script/cibuild` is the CI entrypoint (`docker build .`), and a `Dockerfile` build runs `make check` so the image build fails on any check failure. 5. `.gitea/workflows/check.yml` is added and invokes `script/cibuild`. 6. `make check` passes locally and `docker build .` succeeds (green) before the change lands. The finishing commit's title must end with ` (closes #N)` referencing this issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/lora.vegas#4