docs: bring the curriculum up to rhiza v1.7.1 / rhiza-claude v0.13.0 - #43
Merged
Merged
Conversation
The material was written against rhiza v1.3.3 and rhiza-claude v0.8.2. Four template minors and five plugin minors later, the largest claim in it was false: that `core` syncs a make layer into every consumer. Template v1.4.0 (ADR-0011) replaced the synced `.rhiza/rhiza.mk` and `make.d/` -- ~1,500 lines copied into every repo -- with the pinned `rhiza-task` CLI, provisioned per invocation by uvx. v1.3.4 did the same for `.rhiza/tests/` with the `pytest-rhiza` plugin. What `core` still ships is a 71-line shim that pins `RHIZA_TASK` and forwards to it. The curriculum now teaches that split -- a template distributes configuration, a package manager distributes code -- and everything else here follows from it: - L5, L7: bundle model rebuilt from the live manifest. 26 bundles, and `tests`, `marimo` and `paper` are no longer names the template accepts. All five profile expansions were wrong; corrected against the source. - L10: rewritten. `custom-task.mk` and `custom-env.mk` are gone; the extension points are `local.mk`, `[tool.rhiza-task]`, the new `local-setup.sh` (v1.7.0) and `.rhiza/.env`. Settings keys and the six-layer precedence order verified against rhiza-task's Config. - L11: sections for rhiza-task and pytest-rhiza; skills 8 -> 10 (`/rhiza:remote`, `/rhiza:completions`); ecosystem diagram redrawn. - L9: the second Renovate custom manager, for the `pytest-rhiza` pin -- including that it silently died when `make.d/` retired, which is the failure mode worth teaching. - L8: what crossing v1.4.0 costs, since that update is not routine. - A2: all five downstream configs refetched. Three moved on in instructive ways -- jquantstats dropped a fuzzing exclusion the template retired, chebpy dropped one that had never matched anything, and loman's stale config names two bundles v1.7.1 would reject. - A3: contribution counts refreshed (tschm 1,910 -> 2,338, two new repos). Two claims that had become false: rhiza-claude is not a rhiza-managed repo -- it has no `.rhiza/template.yml` and adopts the shim without being synced -- and rhiza-task keeps its contributor guide at the root. Mutation testing, fuzzing, marimushka and rhiza-cli references dropped; they are retired upstream. Both decks rebuilt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The material was written against rhiza
v1.3.3and rhiza-claudev0.8.2. Four template minors and five plugin minors later, the largest claim in it was false: thatcoresyncs a make layer into every consumer.What actually changed upstream
Template v1.4.0 (ADR-0011) replaced the synced
.rhiza/rhiza.mkandmake.d/— ~1,500 lines copied into every repo — with the pinnedrhiza-taskCLI, provisioned per invocation byuvx. v1.3.4 did the same for.rhiza/tests/with thepytest-rhizaplugin. Whatcorestill ships is a 71-line shim that pinsRHIZA_TASKand forwards to it.The curriculum now teaches that split — a template distributes configuration; a package manager distributes code — and everything else follows from it.
Lesson by lesson
tests/marimo/paperare no longer names the template accepts. All five profile expansions were wrong; corrected against the source.custom-task.mkandcustom-env.mkare gone; the extension points arelocal.mk,[tool.rhiza-task], the newlocal-setup.sh(v1.7.0) and.rhiza/.env. Every settings key and the six-layer precedence order verified against rhiza-task'sConfig.rhiza-taskandpytest-rhiza; skills 8 → 10 (/rhiza:remote,/rhiza:completions); ecosystem diagram redrawn.pytest-rhizapin — including that it silently died whenmake.d/retired, which is the failure mode worth teaching.make-layer wording, bundle attributions, and the project-layout tree.Two claims that had become false
.rhiza/template.yml— it adopted the shimMakefileandRHIZA_TASKpin in v0.12.0 without being synced by the template. A2 said the opposite; it now uses this as the instructive partial case..rhiza/. L12's link was dead.The A2 refresh is worth a look
Three of the five real-world configs moved on in ways that teach something:
book/marimo/notebooks/rhiza.py, an exclusion that had been there since v1.2.5 and never matched anything.v0.10.3and names two bundles (marimo,tests) that v1.7.1 would reject — a sharper counter-example than it was a year ago.Mutation testing, fuzzing, marimushka and
rhiza-clireferences are dropped throughout; all retired upstream.Verification
HEAD— pre-existing and untouched.mkdocs build --strictreports the same 7 warnings as before this branch; confirmed by stashing and rebuilding. CI builds non-strict.🤖 Generated with Claude Code