Add the required README sections (closes #75) #105

Merged
clawbot merged 1 commits from issue-75-readme-sections into next 2026-10-04 06:32:08 +02:00
Collaborator

Closes #75.

Adds the README sections REPO_POLICIES.md requires:

  • Description: the first line names the project, purpose, category (Go library and command-line tool), WTFPL license, and author.
  • Getting Started (new): a copy-pasteable build-from-source block, then gen, check and fetch usage.
  • Rationale (new): Problem Statement and Proposed Solution become its two subsections; the prose is kept, not duplicated.
  • Design (new): the package layout: the mfer/ library with its committed protobuf code, the internal/cli commands, the internal/log and internal/bork support packages (the library uses both), and the cmd/mfer entrypoint.
  • Author: Authors renamed, with the canonical [@sneak](https://sneak.berlin) link.

Disclosures:

  • Judgement call: Getting Started builds with go build, not a make target, because make bin/mfer runs protoc, which script/bootstrap does not install.
  • Unverified: the go build line itself; the other Getting Started commands were run against the binary from the script/cibuild image.
  • Judgement call: Getting Started shows gen writing .index.mf, today's default; the untouched Tool Examples section still says index.mf, which becomes true with #100.
  • Deviation: the issue asks for a TODO.md entry; next has removed TODO.md (#76 (comment)).

Model: opus-4-8 (implementation); opus-5-5 (rebase, rework, this text)

Closes https://git.eeqj.de/sneak/mfer/issues/75. Adds the README sections `REPO_POLICIES.md` requires: - **Description**: the first line names the project, purpose, category (Go library and command-line tool), WTFPL license, and author. - **Getting Started** (new): a copy-pasteable build-from-source block, then `gen`, `check` and `fetch` usage. - **Rationale** (new): Problem Statement and Proposed Solution become its two subsections; the prose is kept, not duplicated. - **Design** (new): the package layout: the `mfer/` library with its committed protobuf code, the `internal/cli` commands, the `internal/log` and `internal/bork` support packages (the library uses both), and the `cmd/mfer` entrypoint. - **Author**: `Authors` renamed, with the canonical `[@sneak](https://sneak.berlin)` link. Disclosures: - Judgement call: Getting Started builds with `go build`, not a make target, because `make bin/mfer` runs `protoc`, which `script/bootstrap` does not install. - Unverified: the `go build` line itself; the other Getting Started commands were run against the binary from the `script/cibuild` image. - Judgement call: Getting Started shows `gen` writing `.index.mf`, today's default; the untouched Tool Examples section still says `index.mf`, which becomes true with https://git.eeqj.de/sneak/mfer/issues/100. - Deviation: the issue asks for a `TODO.md` entry; `next` has removed `TODO.md` (https://git.eeqj.de/sneak/mfer/issues/76#issuecomment-118130). Model: opus-4-8 (implementation); opus-5-5 (rebase, rework, this text)
clawbot added the needs-review label 2026-09-21 09:43:03 +02:00
clawbot self-assigned this 2026-09-21 09:43:03 +02:00
Author
Collaborator

Rebasing onto the current next (6de3f1d, after #72 merged) conflicts in TODO.md: #72 and this PR each add an entry at the top of the Completed Steps list, so the two insertions collide. Rebase onto next and re-resolve that one entry; the README changes rebase cleanly. Re-review after.

Model: opus-4-8

Rebasing onto the current `next` (6de3f1d, after #72 merged) conflicts in `TODO.md`: #72 and this PR each add an entry at the top of the Completed Steps list, so the two insertions collide. Rebase onto `next` and re-resolve that one entry; the README changes rebase cleanly. Re-review after. Model: opus-4-8
clawbot added needs-rebase and removed needs-review labels 2026-09-21 10:02:12 +02:00
clawbot force-pushed issue-75-readme-sections from 43373033c8 to d90bef8580 2026-09-21 10:05:20 +02:00 Compare
clawbot added needs-review and removed needs-rebase labels 2026-09-21 10:05:31 +02:00
Author
Collaborator

Rebased onto next; the TODO.md conflict is resolved by keeping both Completed Steps entries (this PR above the issue-72 entry). New head d90bef8.

Model: opus-4-8

Rebased onto `next`; the `TODO.md` conflict is resolved by keeping both Completed Steps entries (this PR above the issue-72 entry). New head `d90bef8`. Model: opus-4-8
Author
Collaborator

Review passed.

Judgement calls accepted:

  • The gen quickstart line says the manifest describes "every file" under the directory; gen excludes dotfiles by default (standard behaviour, switched on with --include-dotfiles).
  • gen defaults to writing .index.mf while fetch looks for index.mf; the README documents each command's current behaviour and does not assert a settled default, consistent with the open decision in #100.

Model: opus-4-8

Review passed. Judgement calls accepted: - The `gen` quickstart line says the manifest describes "every file" under the directory; `gen` excludes dotfiles by default (standard behaviour, switched on with `--include-dotfiles`). - `gen` defaults to writing `.index.mf` while `fetch` looks for `index.mf`; the README documents each command's current behaviour and does not assert a settled default, consistent with the open decision in https://git.eeqj.de/sneak/mfer/issues/100. Model: opus-4-8
clawbot added needs-rebase and removed needs-review labels 2026-09-21 18:28:46 +02:00
Author
Collaborator

State for the next manager: branch issue-75-readme-sections, last pushed d90bef8 (2026-09-21); it conflicts with next in TODO.md, and next has since changed README.md (the script/cibuild lines, #106). Needs the rebase pushed and a fresh review on the current next before merge. No worker is running on it.

Model: opus-5-5

State for the next manager: branch `issue-75-readme-sections`, last pushed `d90bef8` (2026-09-21); it conflicts with `next` in `TODO.md`, and `next` has since changed `README.md` (the `script/cibuild` lines, https://git.eeqj.de/sneak/mfer/pulls/106). Needs the rebase pushed and a fresh review on the current `next` before merge. No worker is running on it. Model: opus-5-5
clawbot force-pushed issue-75-readme-sections from d90bef8580 to 19a57e30b3 2026-10-04 04:03:29 +02:00 Compare
Author
Collaborator

Rebased onto next (new head 19a57e3): the TODO.md entry went with the deleted file, and the Design section now lists every command and says what internal/log and internal/bork are used for; the Getting Started gen comment no longer says "every file".

Model: opus-5-5

Rebased onto `next` (new head `19a57e3`): the `TODO.md` entry went with the deleted file, and the Design section now lists every command and says what `internal/log` and `internal/bork` are used for; the Getting Started `gen` comment no longer says "every file". Model: opus-5-5
clawbot added needs-review and removed needs-rebase labels 2026-10-04 04:04:00 +02:00
Author
Collaborator

Review: needs rework. Reviewed on next at 1adad7d.

  • README.md, Design section (the internal/bork/ item): "defines the errors the library returns when reading a manifest that is truncated or lacks the magic bytes" does not match the code. The library never returns bork.ErrMissingMagic. A file without the magic bytes is rejected with the library's own "invalid file format" error in mfer/deserialize.go. The only internal/bork error the library returns is ErrFileTruncated, when a manifest's decompressed contents do not match the size the manifest records. Acceptable: describe internal/bork/ only by what the library actually uses it for, without the magic-bytes claim.

Judgement call: the Getting Started .index.mf versus the Tool Examples index.mf is not a finding here; it is left to #100.
Unverified: the README's literal go build line was not run; the binary came from the repo's Docker build.

Model: opus-5-5

Review: needs rework. Reviewed on `next` at `1adad7d`. - `README.md`, Design section (the `internal/bork/` item): "defines the errors the library returns when reading a manifest that is truncated or lacks the magic bytes" does not match the code. The library never returns `bork.ErrMissingMagic`. A file without the magic bytes is rejected with the library's own "invalid file format" error in `mfer/deserialize.go`. The only `internal/bork` error the library returns is `ErrFileTruncated`, when a manifest's decompressed contents do not match the size the manifest records. Acceptable: describe `internal/bork/` only by what the library actually uses it for, without the magic-bytes claim. Judgement call: the Getting Started `.index.mf` versus the Tool Examples `index.mf` is not a finding here; it is left to https://git.eeqj.de/sneak/mfer/issues/100. Unverified: the README's literal `go build` line was not run; the binary came from the repo's Docker build. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-04 04:22:12 +02:00
clawbot added 1 commit 2026-10-04 04:51:45 +02:00
Add the required README sections (closes #75)
check / check (push) Successful in 1m39s
649c230096
The Description first line now names the project, purpose, category,
WTFPL license, and author. A new Getting Started section gives a
copy-pasteable build-from-source block and gen/check/fetch usage. Problem
Statement and Proposed Solution move under a new Rationale heading, the
prose kept. A new Design section documents the package layout: the mfer/
library with its committed protobuf code, the internal/cli commands,
internal/log and internal/bork, and the cmd/mfer entrypoint. Authors is
renamed Author with the canonical link.

Getting Started uses go build because the make target that builds the
binary runs protoc, which script/bootstrap does not install.

Model: opus-4-8 (implementation); opus-5-5 (rebase, rework)
clawbot force-pushed issue-75-readme-sections from 19a57e30b3 to 649c230096 2026-10-04 04:51:45 +02:00 Compare
Author
Collaborator

Rebased onto next (new head 649c230): the Design section now describes internal/bork/ only by the size-mismatch error the library returns, and after re-checking each sentence against the code it also names the ls alias and says what cmd/mfer/ actually does.

Model: opus-5-5

Rebased onto `next` (new head `649c230`): the Design section now describes `internal/bork/` only by the size-mismatch error the library returns, and after re-checking each sentence against the code it also names the `ls` alias and says what `cmd/mfer/` actually does. Model: opus-5-5
clawbot added needs-review and removed needs-rework labels 2026-10-04 04:51:55 +02:00
Author
Collaborator

Review passed.
Reviewed on next at a789eb3.

  • Unverified: the README's literal go build line was not run; the binary came from the repo's Docker build.
  • Judgement call: the untouched Tool Examples section still describes gen, check and fetch next to Getting Started; it is the author's original design prose and is left as is (its index.mf naming belongs to #100).

Model: opus-5-5

Review passed. Reviewed on `next` at `a789eb3`. - Unverified: the README's literal `go build` line was not run; the binary came from the repo's Docker build. - Judgement call: the untouched Tool Examples section still describes `gen`, `check` and `fetch` next to Getting Started; it is the author's original design prose and is left as is (its `index.mf` naming belongs to https://git.eeqj.de/sneak/mfer/issues/100). Model: opus-5-5
clawbot merged commit a2732cf8da into next 2026-10-04 06:32:08 +02:00
clawbot deleted branch issue-75-readme-sections 2026-10-04 06:32:08 +02:00
Sign in to join this conversation.