Skip to content

Correct the README tables, document the rules, and add a checker that keeps them correct - #313

Merged
hingston merged 3 commits into
masterfrom
fix/readme-data-and-docs
Jul 25, 2026
Merged

Correct the README tables, document the rules, and add a checker that keeps them correct#313
hingston merged 3 commits into
masterfrom
fix/readme-data-and-docs

Conversation

@hingston

Copy link
Copy Markdown
Owner

Fixes #294.

Sizes that did not match the solution files

Row Was Now
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: n05ucc4u, who replaced the solution with the current three command version in
    4c7247f. The table still credited the older solution.
  • Year 65 Defrag Ordered (size): commonnickname, who improved it to 14i/369s in 9e902e6.

Links

  • Year 22 Number Royale (<50%) pointed at a (speed) file; the file is (both).
  • Year 42 Important Email Organization (+50%) had doubled spaces in the URL, so it 404'd.

Rows that did not belong

Removed, along with their files, because they do not beat the +99% solution and so fail the folder rule:

  • Year 42 Important Email Organization (+50%, size): 9 commands, same as the +99% entry, and slower.
  • Year 44 Unique Fashion Party (+50%, speed): 17/1, identical scores to the +99% entry.
  • Year 57 Neighborly Sweeper (+50%, size): 9 commands, same as the +99% entry, and slower.

Markers

Refreshed against the stat page's shortest/fastest known solution, which is what the markers compare with:

  • Year 30 Fill the Floor (size): 5 is now the shortest known, so ✔ rather than ➕.
  • Year 61 Lazy Pathways (size): the shortest known is now 7, so ❌ rather than ✔.
  • Year 37 Dangerous Spreadsheeting (size): its speed of 32 was bold as if it were the best known, but the speed row
    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 sometimes
hits 11 then ➖ would be the right marker — worth a second opinion from whoever recorded it.

Documentation

  • The folder table now includes SolutionsLowPercent and states the rule that a less reliable solution is only listed
    if it is strictly better.
  • Years 08, 27 and 45 are noted as having no OCD challenge, so nobody goes looking for them.
  • The legend explains what Size, Speed, bold, ~ and the markers actually mean.
  • New CONTRIBUTING.md covering how size and speed are measured, how solutions are ranked, how paste-only solutions are
    flagged and how credit works.
  • "Creator" is now "Contributor", since the column records who provided the solution here rather than who found it
    first.
  • Level name typos fixed ("Bugdet Bragade 2", "Soultions99+").

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) uses
pickup 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:

  • a link does not resolve, or points outside the section's folder;
  • a solution file is not listed, or is listed twice;
  • the Size column disagrees with the number of commands in the file;
  • the bold column does not match the file's (size)/(speed)/(both) type;
  • a +50% or <50% row does not beat the more reliable solution above it.

It reproduces the size the game reports (labels, endif/endwhile/endfor and comments are free; else and end
are 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

  • Both workflows now also run on pushes to master. Until now they only ran on pull requests, so anything committed
    straight to master was never checked.
  • Least privilege contents: read token, and a concurrency group so superseded runs are cancelled.
  • Dependabot moves from daily to weekly and groups all action updates into a single pull request instead of one each.

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.

hingston added 3 commits July 25, 2026 10:09
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.
@hingston
hingston enabled auto-merge July 25, 2026 09:24
@hingston hingston self-assigned this Jul 25, 2026
@hingston
hingston disabled auto-merge July 25, 2026 09:47
@hingston
hingston merged commit d28f543 into master Jul 25, 2026
4 checks passed
@hingston
hingston deleted the fix/readme-data-and-docs branch 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

wrong sizes and timings

1 participant