Correct the README tables, document the rules, and add a checker that keeps them correct - #313
Merged
Merged
Conversation
Verified every Size column against the solution files: - Year 11 Injection Sites 1 (speed): 21 -> 18 - Year 12 Unzip (speed): 8 -> 19 - Year 25 My First Shredding Memory (speed): 47 -> 9 - Year 47 Automated Pleasantries (speed): 3 -> 34 - Year 50 Cubical Communication (speed): 12 -> 31 - Year 59 Glory Hole (speed): 9 -> 144 - Year 23 Sorting Hall (<50%, speed): 10 -> 23 Credit Year 19 Content Creators Bug Fix to n05ucc4u, who replaced the solution in 4c7247f, and Year 65 Defrag Ordered (size) to commonnickname, who improved it to 14i/369s in 9e902e6. Fix the Year 22 Number Royale (<50%) link, which pointed at a (speed) file name, and the Year 42 Important Email Organization (+50%) link, which had doubled spaces in the URL. Remove the Year 42, Year 44 and Year 57 rows from Solutions50+ along with their files: none of them beat the +99% solution, so they do not meet the rule for being listed. Refresh the markers against the stat page: Year 30 Fill the Floor (size) is now the shortest known, Year 61 Lazy Pathways (size) no longer is, and Year 37 Dangerous Spreadsheeting (size) no longer shows its speed as best. Fix the "Bugdet Bragade 2" level name.
Add check_readme.py, which fails if a link does not resolve, a solution file is not listed exactly once, the Size column disagrees with the number of commands in the file, the bold column does not match the file's type, or a less reliable solution does not beat the one above it. It counts commands the way the game does: labels, endif/endwhile/endfor and comments are free, else and end are not, and a condition split over several lines counts once. Run it on every pull request alongside check_names.py, and add mypy to the lint matrix now that tox covers both scripts. Add CONTRIBUTING.md covering how size and speed are measured, how solutions are ranked when they tie, how solutions that have to be pasted in are flagged, and how credit works. In the README, document SolutionsLowPercent and the rule that a less reliable solution is only listed if it is strictly better, note that years 08, 27 and 45 have no OCD challenge, explain what the columns and markers mean, mark solutions that cannot be typed into the editor with a clipboard, and rename Creator to Contributor since the column records who provided the solution here rather than who found it first.
The workflows only ran on pull requests, so anything committed straight to master was never checked. Run them on pushes to master too, with a read only token and a concurrency group so superseded runs are cancelled. Move Dependabot to weekly and group the action updates into a single pull request instead of one per action. Add issue forms for a better solution, a credit correction and a paste only solution, so they collect the details CONTRIBUTING.md asks for, and a pull request checklist.
This was referenced Jul 25, 2026
Closed
Closed
hingston
enabled auto-merge
July 25, 2026 09:24
hingston
disabled auto-merge
July 25, 2026 09:47
hingston
added a commit
that referenced
this pull request
Jul 27, 2026
Correct the README tables, document the rules, and add a checker that keeps them correct
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #294.
Sizes that did not match the solution files
Credit
4c7247f. The table still credited the older solution.
Links
(speed)file; the file is(both).Rows that did not belong
Removed, along with their files, because they do not beat the +99% solution and so fail the folder rule:
Markers
Refreshed against the stat page's shortest/fastest known solution, which is what the markers compare with:
is 10-11, so it is now plain.
One left alone: Year 38 Seek and Destroy 3 (speed) is
~11 ➕and the fastest known is 11. If it only sometimeshits 11 then ➖ would be the right marker — worth a second opinion from whoever recorded it.
Documentation
if it is strictly better.
~and the markers actually mean.flagged and how credit works.
first.
Paste-only solutions (#139)
Solutions that cannot be typed into the game's editor and have to be pasted in are now marked 📋 in the tables, with
the rule written down in CONTRIBUTING.md. Seeded with the cases identified in #139: Year 06 Little Exterminator 1 and
Year 19 Content Creators Bug Fix use a direction set on
pickup/takefrom, and Year 15 Shred Lines (speed) usespickup n,ne. Anything else needs someone who can confirm which commands a level unlocks.check_readme.py
New check, run on every pull request alongside
check_names.py. It fails if:(size)/(speed)/(both)type;It reproduces the size the game reports (labels,
endif/endwhile/endforand comments are free;elseandendare not; a condition split over lines counts once), and running it against the tables before this change reported
exactly the rows fixed here. mypy is also added to the lint matrix, since tox already had the environment.
Workflows
straight to master was never checked.
contents: readtoken, and a concurrency group so superseded runs are cancelled.Templates
Issue forms for a better solution, a credit correction and a paste-only flag, so the details the policies ask for
actually get collected, plus a pull request checklist. The credit form asks for the dated public link that #43 said
was needed, and the paste-only form asks how the availability of the command was checked.