Commit-Graf
33 Incheckningar
Upphovsman SHA1 Meddelande Datum
sneak 03e49e73a0 Read the architecture at run time, not via a Buildarch ldflag (closes #66)
check / check (push) Successful in 30s
The Go styleguide and the HTTP server conventions no longer pass the
build architecture in through the Makefile. The Buildarch variable,
globals field and BUILDARCH Makefile lines are removed from every
example; the styleguide example prints runtime.GOARCH, and the
logger's Identify logs "arch", runtime.GOARCH. The styleguide item
gains one sentence saying so.

Model: opus-5-5
2026-10-01 22:50:34 +00:00
sneak c4d5546e86 Gate the build on Docker lint and test phases (closes #40, closes #30)
check / check (push) Successful in 5m12s
Per the owner ruling on issue 40, linting and testing are phases of the
main Dockerfile rather than a separate lint file. script/lint and
script/test build one phase each by name with caching disabled, and the
final stage copies a harmless file from each so the image cannot be built
unless both passed. A stage that is not the last is built only when
something depends on it or --target names it, so the gates are invoked by
name and the edges kept. script/check runs the gates and builds no image
of its own; script/cibuild bootstraps first, because CI runs it alone and
fmt-check is native. fmt and fmt-check source nvm for the pinned node
before calling yarn, which bootstrap installs but leaves off its caller's
PATH. Every build in script/ is tagged and uncached. Issue 30 closes too:
a container has its own lint cache and lock.

Model: opus-5
2026-09-09 11:44:59 +00:00
sneak 7b55c444ae Keep in-repo agent scratch out of the build context and out of git (closes #27)
The canonical .dockerignore and .gitignore both omitted the in-repo agent
scratch directory, which holds one worktree per in-flight agent, so under
`COPY . .` an entire extra checkout of the repo reached the image. The
two entries are deliberately different shapes: anchored in .dockerignore,
where the `**/` form would also delete a legitimately named nested
directory, and unanchored in .gitignore, where a pattern already matches
at every depth. Anchoring leaves a gap where agents run in
subdirectories, stated in the vendored file itself. The second half is
the consequence of excluding .git: `git describe` in a build stage yields
an empty version without erroring, so the version is now computed on the
host and passed in.

Model: opus-5
2026-09-09 11:44:59 +00:00
sneak c3a504f647 Keep secrets out of the Docker build context at every depth (closes #29)
The canonical .dockerignore was three lines while the canonical
Dockerfile does `COPY . .`, so a local .env, *.pem or *.key shipped into
the build context and could land in an image layer, invisible to every
git-based check. Copying .gitignore's patterns across is not the repair:
.dockerignore anchors an unprefixed pattern at the context root, so that
form protects only the repository root while reading as solved. Every
depth-independent pattern here carries `**/`, and secret names are
character ranges because matching is case-sensitive and an ALL-CAPS twin
still misses `Server.Key`. Public certificates are deliberately left in
as a legitimate build input. Verified by enumerating a probe image.

Model: opus-5
2026-09-09 11:44:58 +00:00
sneak 85bea7681e Compare versions when bootstrap installs a pinned tool (closes #28)
The canonical `if missing <tool>; then install; fi` guard tests PATH
presence and never version, so on any already-provisioned machine a pin
is inert and a version bump is a no-op, while the Dockerfile installs the
pinned version into a clean image and CI then disagrees with local about
what the tool is. Comparing versions alone is not enough either: an
installer writes to its own directory while callers resolve through PATH,
so a shadowing binary lets the install succeed and change nothing anyone
sees. REPO_POLICIES.md now states the whole form — exact whole-token
comparison, mis-parse falling through to a reinstall, re-resolution
through PATH after installing, and a call site that prints the version.

Model: opus-5
2026-09-09 11:44:58 +00:00
sneak 58f75147be Build with --no-cache so the check layer actually runs (closes #26)
script/cibuild was a plain `docker build .` and the Dockerfile does
`COPY . .` followed by `RUN make check`, so on an unchanged tree Docker
served the check layer from cache: the suite never ran and the build
still exited 0. Measured here before the change, a second run on a
byte-identical tree returned in 0.286s with `RUN make check` CACHED.
script/cibuild and script/docker now pass --no-cache. The canonical text
asserting that a bare `docker build .` proves the checks ran was wrong in
REPO_POLICIES.md, both checklists and the Go styleguide, and is corrected
in all of them.

Model: opus-5
2026-09-09 11:44:58 +00:00
sneak 3d8d1c0600 Adopt scripts-to-rule-them-all: script/ entrypoints, Makefile shims, policy update (#23)
check / check (push) Successful in 5s
Reviewed-on: #23
Co-authored-by: sneak <sneak@sneak.berlin>
Co-committed-by: sneak <sneak@sneak.berlin>
2026-07-06 23:53:05 +02:00
sneak cc5d877779 TODO (#22)
check / check (push) Successful in 4s
Reviewed-on: #22
Co-authored-by: sneak <sneak@sneak.berlin>
Co-committed-by: sneak <sneak@sneak.berlin>
2026-07-06 21:36:20 +02:00
sneak 189e54862e Add template repos section to README
check / check (push) Successful in 7s
2026-02-23 01:38:38 +07:00
sneak 05fe766c62 Improve quickstart commands with two-pass workflow
check / check (push) Successful in 4s
Split quickstart into separate repo-policy and code-style passes, clone
prompts repo once instead of per-command, and make each prompt
self-contained so agents don't need memory of prior runs.
2026-02-23 00:33:15 +07:00
sneak cb5d630158 add note about makefile being authoritative docs
check / check (push) Successful in 8s
2026-02-23 00:09:13 +07:00
sneak b5575b9f59 Add test requirements to checklists, .dockerignore URLs, root symlink, and Makefile comment
check / check (push) Successful in 7s
- Add test requirement item to both checklists (must not be a no-op)
- Add .dockerignore template URL to Dockerfile items in both checklists
- Add REPO_POLICIES.md symlink in repo root pointing to prompts/
- Add comment to Makefile explaining why prettier flags are repeated
2026-02-22 17:21:42 +01:00
sneak e97b48eea4 Fix review issues: front matter, headings, consistency, typos
check / check (push) Successful in 9s
- Move title and last_modified to YAML front matter (all policy docs)
- Make all document sections H1, subsections H2
- Update version rule to reference front matter format
- Fix "our" → "your" typo in Go styleguide
- Fix Python styleguide numbering (2. → 1.)
- Fix README: "flat collection" → accurate description, remove stale TODO
- Remove Makefile items from code styleguides (repo stuff, not code),
  add note linking to Repository Policies
- Change zerolog → slog in Go styleguide
- Fix JS styleguide npm reference: both work, but use make targets
- Drop .json from healthcheck path, add JSON content-type requirement
- Add Author/License to Go HTTP Server Conventions
- Convert hyperlinks to backtick URLs in checklists for consistency
- Add version/front matter to both checklists
2026-02-22 17:15:06 +01:00
sneak 3768b8ca02 Add rule: all software repos must have tests
check / check (push) Successful in 7s
Require at least minimal tests (e.g. import/compile check) using the
platform-standard test framework. make test must never be a no-op.
2026-02-22 16:56:03 +01:00
sneak 03bf0b8445 Add authoritative URLs to checklists and copy .golangci.yml
check / check (push) Successful in 7s
- Add .golangci.yml from upaas as authoritative copy in this repo
- Update REPO_POLICIES.md to reference .golangci.yml by URL
- Add fetch URLs for all template files in both checklists:
  .gitignore, .editorconfig, Makefile, .prettierrc, .prettierignore,
  REPO_POLICIES.md, .golangci.yml, check.yml
2026-02-22 16:52:33 +01:00
sneak 3a5ac2d72f Fix typo and match second quickstart example to first
check / check (push) Successful in 7s
- Fix "do you work" → "do your work"
- Reformat new-repo quickstart to use same multi-line style
2026-02-22 16:47:12 +01:00
sneak 00c21cc5c5 Fix heading, scope, version placement, and consistency across policy docs
- Rename REPO_POLICIES.md heading from "Development Policies" to
  "Repository Policies" to distinguish from code styleguides
- Move version line above heading per convention
- Add scope statement and links to code styleguide documents
- Add missing Makefile and LICENSE to minimum files list
- Add version lines to all cross-project docs (CODE_STYLEGUIDE*.md,
  GO_HTTP_SERVER_CONVENTIONS.md)
- Clean up CODE_STYLEGUIDE.md heading (was old repo name)
- Update EXISTING_REPO_CHECKLIST.md link text to match new heading
2026-02-22 16:40:34 +01:00
sneak f43445caea Add CI policy, strengthen hash-pinning rule, add Gitea Actions workflow
check / check (push) Successful in 16s
- All Dockerfiles must run make check as a build step
- Every repo needs a Gitea Actions workflow running docker build on push
- Greatly strengthen the hash-pinning rule: explicitly list all reference
  types, ban curl|bash installs, mark as most important rule in document
- Add model .gitea/workflows/check.yml pinned by commit hash
2026-02-22 16:35:42 +01:00
sneak 7f4ed7edbd Add quick start one-liners to README
Copy-pasteable commands to bring an existing repo up to standards
or start a new repo from scratch using Claude Code.
2026-02-22 16:29:05 +01:00
sneak d523ff37ae Add code styleguide split into general, Go, JS, and Python files 2026-02-22 16:26:52 +01:00
sneak 2ab09985e0 Move prompt markdown files into prompts/ subdirectory
Update all internal URLs to reflect new paths.
2026-02-22 16:20:58 +01:00
sneak 5a17686115 Add Go HTTP server conventions 2026-02-22 16:18:52 +01:00
sneak 1e6d73e1ea Add formatting-first step to existing repo checklist 2026-02-22 16:13:47 +01:00
sneak d7b8ff30e3 Add prose-wrap policy: hard-wrap markdown at 80 columns
Configure prettier with proseWrap: always. Reformat all markdown
files to conform.
2026-02-22 16:11:49 +01:00
sneak d1a98c2413 Add checklists for existing and new repo setup 2026-02-22 16:10:28 +01:00
sneak 06f279fa5b Add security and git policies, make repo a model example
- Never commit secrets; comprehensive .gitignore with fetch URL
- Never force-push to main
- go mod tidy before committing
- make hooks target with Go repo detection
- Add .editorconfig, .prettierrc, .prettierignore
- Template files URL for new repo setup
2026-02-22 16:06:13 +01:00
sneak d7f14f7517 Add version date policy for cross-project documentation 2026-02-22 15:58:13 +01:00
sneak 1d8eb305c4 Add directory structure and docs prettier policies
- Prettier config required for documentation/writing repos
- Migrations must live in internal/db/migrations/ and be embedded
- Avoid cluttering repo root; canonical subdirectory names listed
2026-02-22 15:56:52 +01:00
sneak 16afdb8113 Add missing policies and required files
- Never use git add -A; always stage files by name
- Makefile must provide make hooks target for pre-commit setup
- All repos should have .editorconfig
- JS required files: yarn.lock, .prettierrc, .prettierignore
- Python required files: pyproject.toml
2026-02-22 15:51:59 +01:00
sneak aaae9714da Copyedit REPO_POLICIES.md for clarity and succinctness
Tighten prose throughout while preserving all policy details.
Add note that make check must not modify repo files.
2026-02-22 15:49:20 +01:00
sneak ab7422c850 Add policy: always use Makefile targets over direct tool invocation 2026-02-22 15:42:39 +01:00
sneak efbac580f9 Add repo scaffolding to meet repository standards
Add .gitignore, LICENSE (MIT), Makefile, Dockerfile, .dockerignore,
and pin prettier via yarn lockfile for integrity-checked markdown
formatting. Update REPO_POLICIES.md self-reference to point to this
repo. Format markdown files with prettier.
2026-02-22 15:40:29 +01:00
sneak af257bef63 Add README.md
Initial commit with project description, getting started, rationale,
design, and license information.
2026-02-22 15:37:39 +01:00