Template example programs (templates/*/) are shipped but gated by nothing #380
Labels
No labels
Alpha Release Requirement
Bugfix
Demo Target
Documentation
Major Feature
Minor Feature
priority:tier1-active
priority:tier2-foundation
priority:tier3-future
priority:tier4-deferred
Refactoring & Cleanup
system:animation
system:documentation
system:grid
system:input
system:performance
system:procgen
system:python-binding
system:rendering
system:ui-hierarchy
Tiny Feature
workflow:blocked
workflow:needs-benchmark
workflow:needs-documentation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
john/McRogueFace#380
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The site's
templates/{minimal,complete,roguelike}/directories ship multi-file, "fully playable" starting-point programs (game.py,entities.py,ai.py,combat.py,dungeon.py,turns.py,ui.py,constants.py, ...). Users are told to copy these as the basis for their own game.The 2026-07-14 docs sweep (commit
ba92e42in mcrogueface.github.io) fixed and verified all 88 hand-written pages including the templateREADME.mdfiles, and promoted every complete inline example into the engine's gated snippet suite (tests/snippets/131-282, commit07442dd). But the sweep only touched the READMEs and the runnable snippets — the shipped.pytemplate programs themselves are validated by nothing. No test inrun_tests.pyimports or runs them, so they can drift out of sync with the engine silently, exactly like the pages did before this sweep.Concretely: the review pass flagged that
templates/complete/README.mdis now correct against the shipping API but contradicts its own accompanying example files (e.g.at()now returnsGridPoint-or-None,UIGridPointStatewas removed in #294). A stale reference also survives:templates/complete/constants.py:154still mentionskeypressScenein a comment.Why it matters
These are the highest-leverage "first contact" code a new user copies. If they're broken, the copy-paste-and-run promise fails on line one — and unlike the snippets, nothing catches it.
Proposed work
mcrfpy.Animation,add_layer("..."),sceneUI/setScene/createScene/keypressScene,compute_astar_path,GridPoint.color,entity.gridstate).templates/complete/with its README so the two agree.run_tests.py, or fold the template entry points into the snippet-style harness. Without a gate this rots again.Discovered during the hand-written-docs sweep; see docs-release-pipeline notes and site commit
ba92e42.