testsAndMisc/docs/superpowers/evidence/byox-ladder-2026-07-17.json
Krzysztof kuhy Rudnicki 6342eaf0e2
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Python tests / test (push) Waiting to run
feat(byox_ladder): add build-your-own-x difficulty ladder generator
Ranks the codecrafters build-your-own-x projects by difficulty and emits two
offline, self-contained HTML pages: a per-guide ladder (~360 tutorials) and a
per-category ladder (30 categories), grouped into Beginner/Intermediate/Advanced/
Expert tiers plus an Unsorted bucket. A guide inherits its category's tier;
language only nudges order within a tier. Includes a Makefile pipeline
(fetch -> parse -> build) and 100%-branch-covered tests. Excludes the generated
guide page from codespell since it inlines upstream titles verbatim.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01QNRTPNYvoBTQoTEWkYtCJD
2026-07-17 18:31:21 +02:00

40 lines
2.2 KiB
JSON

{
"intent": "Add python_pkg/byox_ladder: a generator that ranks the build-your-own-x projects by difficulty and produces two offline HTML ladders (per-guide and per-category), committed as runnable pages.",
"scope": [
"python_pkg/byox_ladder/ (new package: parse_guides.py, build_pages.py, templates, built HTML, tests)",
"docs/superpowers/contracts + evidence artifacts for this change",
"No changes to existing packages, tooling, or the unrelated working-tree edits (i3 config, feedback-appimage)"
],
"changes": [
"parse_guides.py parses the upstream README into guides.json; a guide inherits its category tier, language only nudges within-tier order",
"build_pages.py inlines guides.json into the guide template and wraps both pages in a standalone HTML skeleton",
"Makefile drives fetch -> parse -> build; byox-readme.md and guides.json are gitignored derived artifacts",
"tests/ cover both modules to 100% branch coverage"
],
"verification": [
{
"command": "python3 -m pytest python_pkg/byox_ladder/tests --cov=python_pkg.byox_ladder --cov-branch",
"result": "pass",
"evidence": "21 passed; coverage 100.00% (parse_guides.py 69 stmts/16 branches, build_pages.py 32 stmts/4 branches, __init__ 0) with 0 missing"
},
{
"command": "pre-commit run --files python_pkg/byox_ladder/*.py python_pkg/byox_ladder/tests/*.py",
"result": "pass",
"evidence": "ruff, ruff-format, mypy, pylint, bandit, codespell, check-python-location, and pytest-coverage all reported Passed"
},
{
"command": "make -C python_pkg/byox_ladder build",
"result": "pass",
"evidence": "wrote guides.json (359 guides); wrote guide-ladder.html and category-ladder.html, both starting with <!doctype html>"
}
],
"risks": [
"Upstream README format drift could break the regex parser; parse_guides.py exits non-zero and the committed HTML stays valid until regenerated",
"Difficulty tiers are a subjective judgment; within-tier order is approximate by design"
],
"rollback": [
"git rm -r python_pkg/byox_ladder and delete the two docs/superpowers artifacts, then commit",
"After rollback, run pre-commit run --all-files to confirm the tree is still green"
]
}