Skip to content

Burnish: project page, proof section, changelog, release tripwire - #2

Merged
lroolle merged 4 commits into
mainfrom
burnish/packaging
Aug 14, 2026
Merged

Burnish: project page, proof section, changelog, release tripwire#2
lroolle merged 4 commits into
mainfrom
burnish/packaging

Conversation

@lroolle

@lroolle lroolle commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Packaging pass. No behaviour changes to bwg itself — everything here
is what someone meets before they run it.

Project page

docs/index.html, served from /docs on main: one page, no build
step, no JS. Name, the fleet table, install, sixty seconds, the reason
the safety model is shaped the way it is, and an honest "skip it if".

It also serves llms.txt at the site root so an agent that fetches one
URL gets the whole orientation. That copy comes from make docs, and
CI fails when it drifts from the repo's — the drift check is three
lines and is the only reason two copies are tolerable.

Needs a repo setting after merge: Pages → source main / /docs.

README

It opened with a demo and a safety claim and gave the reader no way to
check either. Now:

  • badge row — does it build, is it released, where are the docs
  • a Proof table pairing each claim with the command that verifies
    it (read-only gate, destructive-tier discipline, no-panic breadth,
    the key-masking invariant, the pinned bwg ls output). Every command
    in it was run before it was written down.
  • when to skip it — one VPS with the panel already open does not
    need this, and KiwiVM has no billing endpoints so bwg will never grow
    them
  • generous credit to strahe/bwh, which is the better choice if you
    want a library and none of the CLI

Release tripwire

install.sh and bwg update fetch assets by exact name. A change
to .goreleaser.yaml's name_template would break self-update for
every existing installation while the release job stayed green. The
release job now fails unless all six archives and checksums.txt are
present under the names internal/updater asks for (pinned on the Go
side by TestAssetName), and goreleaser is pinned to ~> v2 instead
of latest.

Also

CHANGELOG.md (Keep a Changelog; entries say why it matters), issue
templates that ask for bwg version and KVM-vs-OpenVZ — the two facts
every bug here needs — and a PR template whose checklist is the repo's
actual rules (SKILL.md moves with JSON shapes; a destructive endpoint
states what it loses).

🤖 Generated with Claude Code

lroolle and others added 4 commits August 13, 2026 21:52
One page, one file, no build step: what it is, the fleet table, install,
sixty seconds, and the reason the safety model is shaped the way it is.
Served from docs/ on main.

The page also serves llms.txt at its root, so an agent that can fetch
one URL gets the whole orientation. That copy is generated by `make
docs` and CI fails when it drifts from the repo's — two files, one
source of truth, checked rather than remembered.

llms.txt itself gains the install commands, the MCP tool names and
absolute links, so it works fetched from either location.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
It opened with a demo and a safety claim and never showed the reader
how to check either. Added: the badge row (does it build, is it
released, where are the docs), a Proof table pairing every claim with
the command that verifies it, and a "when to skip it" section — one
VPS and an open panel does not need this, and KiwiVM has no billing
endpoints so bwg will never grow them.

Every repro command in the table was run before it was written down.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Keep-a-Changelog, entries saying why a change matters rather than what
moved. The bug template asks for the two things every bug report here
has needed — `bwg version` and whether the box is KVM or OpenVZ, since
the two return different fields — and warns against pasting a key.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`version: latest` on the goreleaser action is an outage on a timer for
a job whose output is an interface.

install.sh and `bwg update` fetch release assets by exact name, so a
change to .goreleaser.yaml's name_template would break self-update for
every existing installation while the release job stayed green. The
release now fails unless all six archives and checksums.txt are there
under the names internal/updater asks for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lroolle
lroolle merged commit 8643a49 into main Aug 14, 2026
5 checks passed
@lroolle
lroolle deleted the burnish/packaging branch August 14, 2026 04:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant