Default manifest filename is index.mf; the scanner excludes the output file (sneak: option A) #100

Open
opened 2026-09-21 09:21:31 +02:00 by clawbot · 1 comment
Collaborator

Owner decision required. Blocks the README Getting Started block and the fetch usability work.

The contradiction

  • README: the manifest "would have a standard filename", index.mf, so that https://example.com/dir/ implies https://example.com/dir/index.mf.
  • mfer gen writes ./.index.mf by default (internal/cli/mfer.go, the --output flag).
  • mfer fetch <url> requests <url>/index.mf (resolveManifestURL) and never tries .index.mf.
  • mfer check and mfer freshen look for both names.

So the two commands the README pairs together do not agree: a user who runs mfer gen and publishes the directory gets a manifest that mfer fetch cannot find.

The dotfile default is not an accident: gen excludes hidden files, so naming the output .index.mf keeps the manifest out of its own file list. With index.mf the scanner would need to skip the output path explicitly (today, gen --force over an existing index.mf would include the old manifest as an entry).

Options

A. Default to index.mf and have the scanner exclude the output path (recommended). Matches the README, the URL convention, and fetch. Requires a small scanner change: the output file's path is excluded from enumeration, tested with --force over an existing manifest.

B. Keep .index.mf and make fetch try .index.mf after index.mf. No scanner change, but the README's "standard filename" becomes two filenames, and a hidden default is surprising for something meant to be published.

C. Keep both as they are and document it. Cheapest; leaves the tool's two halves disagreeing.

Definition of done, once answered

  • gen, fetch, check, and freshen agree on the default name, and the README states it once.
  • If A: the scanner never includes the output manifest in its own listing, covered by a test using --force over an existing manifest.
  • make check passes; TODO.md updated in the same commit.

Please answer inline and reassign to clawbot.

Model: fable-5-1

Owner decision required. Blocks the README Getting Started block and the `fetch` usability work. ## The contradiction - README: the manifest "would have a standard filename", `index.mf`, so that `https://example.com/dir/` implies `https://example.com/dir/index.mf`. - `mfer gen` writes `./.index.mf` by default (`internal/cli/mfer.go`, the `--output` flag). - `mfer fetch <url>` requests `<url>/index.mf` (`resolveManifestURL`) and never tries `.index.mf`. - `mfer check` and `mfer freshen` look for both names. So the two commands the README pairs together do not agree: a user who runs `mfer gen` and publishes the directory gets a manifest that `mfer fetch` cannot find. The dotfile default is not an accident: `gen` excludes hidden files, so naming the output `.index.mf` keeps the manifest out of its own file list. With `index.mf` the scanner would need to skip the output path explicitly (today, `gen --force` over an existing `index.mf` would include the old manifest as an entry). ## Options **A. Default to `index.mf` and have the scanner exclude the output path (recommended).** Matches the README, the URL convention, and `fetch`. Requires a small scanner change: the output file's path is excluded from enumeration, tested with `--force` over an existing manifest. **B. Keep `.index.mf` and make `fetch` try `.index.mf` after `index.mf`.** No scanner change, but the README's "standard filename" becomes two filenames, and a hidden default is surprising for something meant to be published. **C. Keep both as they are and document it.** Cheapest; leaves the tool's two halves disagreeing. ## Definition of done, once answered - `gen`, `fetch`, `check`, and `freshen` agree on the default name, and the README states it once. - If A: the scanner never includes the output manifest in its own listing, covered by a test using `--force` over an existing manifest. - `make check` passes; `TODO.md` updated in the same commit. Please answer inline and reassign to `clawbot`. Model: fable-5-1
sneak was assigned by clawbot 2026-09-21 09:21:31 +02:00
Owner

Option a

Option a
clawbot self-assigned this 2026-09-22 00:31:22 +02:00
clawbot changed title from DECISION: default manifest filename (gen writes .index.mf, fetch looks for index.mf) to Default manifest filename is index.mf; the scanner excludes the output file (sneak: option A) 2026-09-22 00:31:22 +02:00
sneak was unassigned by clawbot 2026-09-22 00:31:28 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/mfer#100