From bddbd74e4a73e8e32bcf648efd1cac5655f6d0cd Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 17 Sep 2026 12:11:42 +0200 Subject: comments that explain the code, not how it was written About 340 comments cited the development process: task and plan numbers, fix waves, rulings, reviewers, and the author in the third person with a date. None of that exists outside the work itself, so to a reader it pointed at nothing. Each one now states the engineering reason it was standing in front of; where a comment was provenance and nothing else, it is gone. References to docs/design.md and docs/gui-design.md by section stay: both ship with the repository. The design documents lose their amendment diaries - CHANGELOG.md is that record - and the GUI's says plainly that the window has gone further than the document. Only comments changed. Every .go file was parsed and its code printed with comments stripped, before and after: the two hashes are identical across all 175 files. --- docs/design.md | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'docs/design.md') diff --git a/docs/design.md b/docs/design.md index a7584e6..a3356c7 100644 --- a/docs/design.md +++ b/docs/design.md @@ -1,20 +1,9 @@ # krino design -Status: describes krino 0.0.1, 2026-09-13; amended 2026-09-14 for 0.0.2: -duplicates are never deleted (§5.5), and coloured output with `--no-color` -(§8.2, §11); amended again 2026-09-14 for 0.0.3: the plan -shown as one block per file, wrapped to the terminal, and `-P` (§8.2, §8.3, §11); -amended again 2026-09-14 for 0.0.4: `max-size` (§4.4), `(exclude ...)` -(§4.2, §4.3, §4.6) and `--min-age` (§11); amended again 2026-09-14 for -0.0.5: the keyword cache (§3, §6.1, §13), and `t`, `d` and `w` in review -(§8.3, §10); amended again 2026-09-14 for 0.0.6: `w` applies and quits, and -each choice is echoed in red (§8.2, §8.3); amended again 2026-09-14 for -0.0.7: the threat model and its tests (§15.1); amended 2026-09-15 for -0.0.8: three-valued content tests (§4.6, §5.4), captures from the original -name (§7.3), claims across directories (§7.4), `-v` destinations not scanned -(§8.1), `(partly undone)` (§10), build checks (§14) and real document -fixtures (§15); amended 2026-09-15 for 0.0.9: failed duplicate lookups and -undecided `(stop)` rules (§5.4), placeholders refused at load (§7.3). +The design of krino's engine and command line, up to date for 0.0.9. The +window has a document of its own, `gui-design.md`; what changed in each +release is in `CHANGELOG.md`. Source comments cite the sections here by +number, so the numbering is stable. krino (from Greek κρίνω, "to separate, to judge, to decide") sorts files in chosen directories by rules. A rule tests a file's type, name, path, size, @@ -515,8 +504,8 @@ name. that exists, under "not scanned". Known limitation: a `DEST` whose *first* path component is itself a placeholder (`{ext}`, `{mtime:%Y}`) has no static prefix, so nothing can be - excluded before the walk, and krino would re-examine its own output; plan 3 - closes this by treating a file already at its computed destination as a + excluded before the walk, and krino would re-examine its own output. What + closes it is treating a file already at its computed destination as a no-op. - Skipped: files newer than `min-age` ("too new"), larger than `max-size` ("too big"), or with a `busy` sibling ("busy"). @@ -990,7 +979,7 @@ keyword. Its defects shaped these decisions: | `pdftotext` rather than a Go PDF library | best text quality of the open tools, fast, packaged on all three systems | | Delete to Trash by default | recoverable, and undo can restore it | | Duplicates are found, never deleted | duplicate conditions with different scopes elect different originals, so deleting duplicates could remove every copy; moving them aside is always recoverable, and choosing which copy to delete belongs to the user or a tool built for it (jdupes). Decided 2026-09-14 after 0.0.1 shipped with the hazard documented | -| A new repository rather than the prototype's | the prototype's history holds personal data; the prototype keeps working until krino reaches parity | +| A new repository rather than the prototype's | a history that can be published as it stands; the prototype keeps working until krino reaches parity | | Personal configuration never enters the repository | rules hold private data; the leak check enforces it on every commit and in `make ci` | ## 18. Settled before implementation -- cgit v1.3