diff --git a/README.md b/README.md index 99e9053..d7582e9 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,20 @@ +
+
+
+
+~/Documents/Screenshots/ based on their content.The original timestamp survives unchanged. Sorting still works. The description sits between, set off by em-dashes.
+ +
+ + A second batch of files surfaced cases the first run never hit: Apple's own + Screenshot filenames, user-typed keyword prefixes, and folders where some + files were already renamed. The pipeline now handles all three in a single pass + — and the parser learned a new gotcha along the way. +
+ +
+ The parser now accepts both CleanShot 2026-MM-DD at HH.MM.SS.png and
+ Apple's Screenshot 2026-MM-DD at H.MM.SS PM.png. Mixed folders no
+ longer need two passes — the manifest builder picks up either prefix.
+
+ A file named jojo travel CleanShot 2026-...png carries user knowledge
+ the AI doesn't have. The parser strips the keyword phrase, title-cases it, and
+ prepends it to the AI description — so the new filename reads
+ Jojo Travel Flight Australia Melbourne Flightaware Map Route.
+
+ The parser now detects names already in the
+ App - Description - timestamp.ext form and excludes them from the
+ manifest. You can re-run the skill on a partially-renamed folder without the
+ name growing on every pass.
+
During development, four files were destroyed by a one-line bash mistake. @@ -880,6 +1086,9 @@ footer .colophon {
Bash run_in_background with while read may exit early with no progress. Run via Python in the same shell — os.rename is just a syscall..jpg name instead of the original .png. The plan-builder must try alternate extensions when the claimed source isn't found..mp4 / .pdf. Write the source extension back into the new name.U+202F.The narrow no-break space sits between the seconds and AM/PM. Haiku echoes it as ASCII space, the lookup misses, and every Screenshot file is dropped from the plan with a misleading NO_DESC error. Normalize on both sides; emit ASCII space in the new name.^App - .+ - timestamp.ext$ exclusion rule the parser will pile a second AI description into every name on every run. The pipeline detects and excludes them.jojo travel CleanShot ... carries knowledge the AI doesn't have. Strip the keyword phrase, title-case it, and prepend it to the description before assembly. Don't drop it.The skill earns its keep when "Spotlight will find it" stops being true. Four scenarios where it has. @@ -929,10 +1138,38 @@ footer .colophon {
+ The skill is conversational at the top, mechanical underneath. You ask in plain + English; ten Haiku agents fan out in a single round-trip; Python validates the + plan and applies it under the file-count audit. The whole thing fits on one page. +
+ +
+
The skill installs as a Claude Code skill. Once cloned into ~/.claude/skills/, it