Knowledge dashboard

The anti-cascader

The essay's knowledge, dashboard-shaped — graph, eyes, actions. The graph is the source of truth; the prose follows.

The essay's claims, typed and connected. Synthesis is the author's contribution. Citation grounds in a named source. Derivation follows from prior nodes. Click any node to jump to its card.

S 5 D 2 O 1 C 7

S S01-cascade-not-gravity · the spine

The cascade isn't gravity — it's a function of which side of the migration is doing the pulling. Flip the pull, and the cascade doesn't form.

S S02-team-pull · inversion 1

Operator-push → team-pull. The platform team publishes a skill; the receiving team installs and invokes it on their clock.

derives_from: S01-cascade-not-gravity

S S03-choreographed · inversion 2

Single-shot → choreographed. A migration is a sequence of small reviewable PRs with state in the target repo, not one big diff.

derives_from: S01-cascade-not-gravity

S S04-teach-while-doing · inversion 3 — load-bearing

"Do the work" → teach while doing. Each step ships with publisher-authored prose that explains the transform before running it.

derives_from: S01-cascade-not-gravity

S S05-engine-plus-ux · inversion 4

Engine-only → engine + receiving-team UX. The codemods inside Bob are the same shape any AST tool produces; the contribution is the wrapper above.

derives_from: S01-cascade-not-gravity

D D07-skills-made-it-deliverable · why this couldn't have shipped earlier

Before the agent-skills format, the operator had no way to ship anything but a PR. Skills are the second option.

derives_from: S02-team-pull , D06-bob-the-artifact

O O08-teaching-layer-gap · the gap

Across surveyed AI coding tools as of May 2026 — Cursor, Continue, Aider, Cody, JetBrains, Copilot, Sweep, Windsurf, Codemod's CLI — none ship the active teaching layer.

derives_from: S04-teach-while-doing

C C01-2to3

Python 2to3 — single command, run locally on the team's clock, ships with the standard library since Python 3.

grounds: docs.python.org/3/library/2to3

C C02-openrewrite

OpenRewrite OSS — Java migration recipes distributed via Maven Central; teams pull, run, commit.

grounds: docs.openrewrite.org

C C03-jscodeshift

jscodeshift — Facebook's JS codemod toolkit; treats codemods as a library devs run on their own clock.

grounds: github.com/facebook/jscodeshift

C C04-shopify-packwerk

Shopify (2020): "A single centralized team can't make change happen by working against the momentum of hundreds of developers." Pivoted to Architecture Guild + embedded engineers + team-installed Packwerk.

grounds: Shopify Engineering · Deconstructing the Monolith (2020)

C C05-codemod

Codemod ships the engine and Campaigns — operator-side fan-out across N repos. A real product, well-funded engine layer; the team-side teacher isn't in their offering.

grounds: codemod.com

C C06-skills-format

Anthropic SKILL.md (folder + YAML frontmatter, on-demand load) + plugin marketplace — the distribution channel that makes "a migration with a teacher built in" one install command for the receiving team.

grounds: Anthropic Skills

C C07-google-lsc

Hyrum Wright's Large-Scale Changes (Software Engineering at Google, Ch 22): LSCs at Google almost always machine-generated; pre-LLM operator-side practice for cross-cutting change.

grounds: Software Engineering at Google · Ch 22

Claims that need more grounding. The essay's confident synthesis — but where external corroboration would strengthen the case, or an open question is implicit.

O08-teaching-layer-gap

The surveyed-tools claim — "none of Cursor, Continue, Aider, Cody, JetBrains, Copilot, Sweep, Windsurf, Codemod's CLI ship an active teaching layer as of May 2026" — is the author's hand survey. Falsifiable but not yet externally corroborated.

Why eyes: The load-bearing observation behind S04 (teach-while-doing). Open to falsification by anyone who finds a counter-example in the surveyed set, or names a tool that wasn't surveyed. Worth a follow-up pass each quarter; the field is moving fast.

ground_with:

Suggest grounding

S04-teach-while-doing

Teaching-as-load-bearing is the author's framing. Adjacent literature (literate programming, dev-experience research, runbook-vs-skill comparisons) names the value of explanation alongside execution but does not frame the teaching layer as the load-bearing inversion in cross-cutting change.

Why eyes: The framing reads cleanly against the surveyed tools, but a published taxonomy already naming "teaching-while-doing" as the missing primitive would let the essay sit alongside it instead of re-naming it. Active eyes — most likely place an external reader could already have shipped the same claim.

ground_with:

Suggest grounding

D06-bob-the-artifact

Bob is presented as one demonstration of the four-inversion shape. The claim that the four inversions are jointly sufficient to defeat the cascade is implicit, not yet proven against a second instance.

Why eyes: One artifact is an existence proof for the shape, not for the shape's necessity or sufficiency. Other shapes that hold the same four inversions — or that drop one and still avoid the cascade — would sharpen the claim. Open invitation to the field.

Suggest grounding

What the essay implies for the reader. Etudes drill specific claims; apply items put the principle to work; next points at sibling essays.

etude Install bob →

Watch the choreography land. Install, invoke, one step, stop. Demonstrates the team-pulled posture and per-step pacing in 90 seconds.

etude Teaching layer →

Same diff. With and without the explanation wrapped around it. Drills the load-bearing inversion — S04.

etude Pull vs push →

Two scenarios land in your week as team lead. Pick the response. Drills S02.

etude Author one step →

Write the rename rule. Run it against the fixture. Drills S05 — what shipping a step actually feels like.

apply Pick one cross-cutting change you tried to push

What would the team-pulled shape have looked like? Where would the per-step pacing have lived? What's the teaching layer your PR description didn't carry?

Share what happened

apply Try bob →

If you have a Spring Boot 2.7, JUnit 4, Jest, or unstructured-logging codebase, install the plugin and run the migration. The repo is MIT-licensed and under 1,000 lines.

Share what happened

next Part II — the cascade with agents in the loop →

The cascade survives the substrate. Same pattern reproduces inside one operator running a fleet of agents. Sets up why the team-pulled inversion in this essay matters at agent scale, not just human scale.

An audit of this essay against the same schema it argues for. Five dimensions: grounded (load-bearing claims cite real evidence), tentatives (speculative claims marked tentative), synthesis (credit lands honestly), provenance (the reader can verify), voice (claim leads, no hedging). Composite is the read across them.

composite MID
grounded strong
tentatives mid
synthesis strong
provenance strong
voice strong

Each load-bearing claim cites a real prior-art reference; the four inversions are explicitly framed as a recombination, not an invention. Composite is mid not strong because the surveyed-tools observation (O08) and the four-inversions-are-sufficient claim (D06) are author-side surveys without independent corroboration yet.

Soft spot · repair

Two soft spots: 1. The surveyed-tools claim is the load-bearing empirical observation but rests on the author's hand survey. A reproducible methodology — feature matrix across the named tools, last-checked date, link to each tool's docs section that confirms or denies a teaching layer — would let a reader verify rather than trust. 2. "The four inversions compose" presents as an exhaustive decomposition. It may not be. There are plausible fifth axes — reversibility, blast radius, telemetry — that the essay doesn't surface. Worth marking the four as the ones bob explicitly inverts rather than the complete set.