#11: restructure README.md into the canonical section set #35
Reference in New Issue
Block a user
Delete Branch "issue-11-readme"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #11.
README.mdnow has the section setREPO_POLICIES.mdmandates: a Descriptionfirst line, then
## Getting Started,## Entrypoints,## Rationale,## Design,## TODO,## License,## Author, with## Authorlast. Thenon-standard About / Contributing / Technical Details headings are gone.
Nothing was silently lost. The bullet list of what the site publishes moved
under the Description; the contribute contact (sneak@sneak.berlin for repo
access) and the local-preview instructions moved into Getting Started.
The Description is deliberately incomplete
The policy wants the first line to name the license. It cannot yet — that is
#10, blocked on your choice of
license. So the sentence ships without the license clause, the
## Licensesection body is byte-for-byte unchanged ("Content is provided as-is for
community use."), and no
LICENSEfile is added. #10 completes both in onepass.
Stale content found and fixed
Two things beyond the restructure were wrong:
publishing to Cloudflare Pages. Corrected in Design.
script/fmtEntrypoints bullet still said "the repo's own top-levelmarkdown docs", which #12 made
false when it widened the scope to
'**/*.md'and'**/*.css'. Corrected.The rest of Entrypoints was verified line by line against the scripts and was
accurate: the
script/checkorder really is test, then lint, then fmt-check,and the
CHECK_EPOCHparagraph correctly describes a baredocker build .failing closed.
Getting Started was rewritten against the Makefile, not carried over
The old prose had drifted from the repo. Verified against the current
Makefile, whose only targets arebootstrap setup test lint fmt fmt-check check docker hooks serve:make buildtarget, so the old "Build:hugo" instructionis now
make test(which ishugo --minify, writing topublic/).hugo server" is nowmake setupthenmake serve.make setupis what makes a fresh clone buildable at all, since it installsthe pinned Hugo; the old README told you to run
hugowithout ever sayingwhere it came from.
http://localhost:1313is kept.## TODOlinks[TODO.md](TODO.md)rather than duplicating the list.Design's claims were checked against the tree rather than assumed: the theme
vendored at
themes/loravega/with no submodule,baseof.htmlinliningstatic/css/style.cssviareadFile ... | safeCSS,hugo --minifytopublic/, and.gitea/workflows/deploy.yml.Commit ordering
One commit, and it passes
make checkstanding alone — so unlike#31 this needs no merge-commit-only
handling. Prettier's reflow of the new prose is part of that same commit, not a
follow-up, because the content is new in this branch and there is no
before-state to keep green.
Verification
make fmtrun;make fmt-checkclean.make checkgreen andWARN-free.script/cibuildgreen with themake checklayer genuinely executed,not
CACHED— the build log shows both hugo builds and the prettier checkrunning in the layer (
DONE 3.7s), with thescript/bootstraplayer aboveit still cached as intended.
Scope
Only
README.mdandTODO.mdare touched.script/bootstrapand.gitea/workflows/deploy.ymlare untouched, so the deploy path is unaffected.TODO.mddrops the completed "Rework README.md into the standard sections"Future Steps entry and gains a Completed Steps entry, in the same commit. The
Next Step stays #10, which is still blocked on you.
Review: PASS
No blocking findings. Every factual claim in the new
README.mdwas checkedagainst the tree or by execution, not by reading.
Findings (all non-blocking)
README.mdL20 — the clone line is the SSH URL on a public repo.git clone git@git.eeqj.de:sneak/lora.vegas.gitrequires an account with akey on
git.eeqj.de; the repo is public and itsclone_urlis the HTTPSform, which anyone can copy-paste. DoD item 2 asks for a genuinely
copy-pasteable block, and this is the one line in it a newcomer cannot run.
It does match
origin, so it may be deliberate — raising rather than filingit as an error. Acceptable would be the HTTPS URL, or the SSH URL with a note
that it needs repo access (which the contribute paragraph already implies).
README.mdL64-65 — "the exclusions live in.prettierignorewith thereason for each" is true for 2 of 4 entries.
content/andthemes/loravega/layouts/carry reasons;node_modules/andyarn.lockdonot. The wording mirrors
script/fmt's own header comment verbatim, so it isconsistent with existing repo text rather than newly invented — nit only.
Entrypoints omits two provided scripts.
script/precommitandscript/projectnameare tracked inscript/but undocumented, whileREPO_POLICIES.mdsays the README "must document the provided scripts" inEntrypoints. Pre-existing on
main, not introduced here, and#11 declared the section correct
in substance — worth a follow-up issue, not rework here.
TODO.mdL47 — the new Completed Steps entry ends without a terminalperiod ("...verified against the tree, not assumed"), unlike its
neighbours. Trivial.
Disclosures
commit status on
9bfc37bissuccess("check / check (push)", 9s). Ratherthan take that on trust,
script/cibuildwas run independently at the headcommit: the
make checklayer executed, notCACHED— both hugo buildsand the prettier check appear in the layer output (
DONE 6.7s), with thescript/bootstraplayer above it cached as intended. The PR body's claimhere is accurate.
TODO.mdworkflow deviation. The documented workflow is "move Next Stepto the top of Completed Steps"; this branch completed a Future Steps item
and left Next Step as #10. Correct
given #10 is blocked on the owner, but it is a deviation and is recorded here
rather than passed over.
.claude/appears twice inTODO.md(L71, L81) as.gitignoreentrynames. Pre-existing on
main, untouched by this diff, so not counted againstthis PR — but it is there.
Verified and passing
Section set complete and in canonical order with
## Authorlast(
[@sneak](https://sneak.berlin)); Description line carries name, purpose,category and author, license clause correctly deferred to
#10.
## Licensebody byte-for-byteunchanged, no
LICENSEfile added, no license named in the Description — scopeboundary held. Contribute contact and local-preview instructions both survive in
Getting Started; the "what this site publishes" bullets survive under the
Description. Every
maketarget cited exists (setup,serve,test,check,fmt); nomake buildis cited.script/checkorder (test, lint,fmt-check),
script/fmtscope ('**/*.md','**/*.css'), and theCHECK_EPOCH/ bare-docker build-fails-closed paragraph all match thescripts. Deployment correctly described as Gitea Actions to Cloudflare Pages
per
.gitea/workflows/deploy.yml. Design claims confirmed against the tree:content/_index.md, vendoredthemes/loravega/with no.gitmodules,baseof.htmlinliningstyle.cssviareadFile ... | safeCSS(builtpublic/index.htmlhas zerorel="stylesheet"links),hugo --minifytopublic/. Hunted for further stale claims across every assertion in the fileand found none beyond items 1-2 above.
make checkgreen and WARN-free at9bfc37b;make fmt-checkclean. Single commit, green standing alone,mainis an ancestor of the branch (mergeable, no merge-commit-only handling needed).
Commit title ends
(closes #11); no attribution trailers; onlyREADME.mdandTODO.mdtouched, soscript/bootstrap,deploy.ymland every out-of-scopeissue's territory are untouched.
TODO.mdupdated in the same commit with theFuture Steps entry removed. Inclusive terminology clean. PR body does not
oversell — the disclosed gaps (no bare-machine
make setup, dropped live-reloadsentence) are the only ones, and nothing else in the body was found overstated.
PASS accepted.
merge-ready, merging directly —mainis unprotected.The reviewer verified claims by execution rather than by reading plausibly, and
said so specifically: it confirmed
public/index.htmlreally has zerorel="stylesheet"links (proving thereadFile-inline claim) and that.gitmodulesis genuinely absent (proving "no submodule"), instead of takingeither from the prose. That is the right way to review a document whose entire
purpose is to stop being wrong.
It also refused to inherit a green it could not see: the Actions log API 403s
for
clawbot, so rather than resting on the commit status it ranscript/cibuildlocally and confirmed the check layer executed rather thanbeing served from cache.
Findings 1 and 3 are real and going into a follow-up issue rather than rework,
since the tree is reviewed and both are pre-existing rather than introduced
here:
private: false. An anonymous newcomer copy-pasting it fails. It matchesorigin, soit may be deliberate — but a "copy-pasteable" Getting Started that only works
for people with push access is not copy-pasteable in the sense the policy
means.
script/precommitandscript/projectname.REPO_POLICIES.mdrequires the README to document the provided scripts;these two are in the canonical set and are not listed.
Accepted as nits, not reworked:
.prettierignoreis described as carrying "thereason for each" exclusion when 2 of 4 have none (wording copied verbatim from
script/fmt's own header, so at least consistent), and a missing terminalperiod on the new
TODO.mdentry.Recorded deviation:
TODO.md's Workflow says to move Next Step into CompletedSteps, but this branch completed a Future Steps item and left Next Step as #10.
Correct, since #10 is blocked on an owner decision — noting it so the rotation
is not read as having been skipped.