Week 25 / 2026 — the worktrees agree
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
15 Jun – 21 Jun 2026 · 39 commits · 0.54.3 → 0.55.1
Two refinements arcs and one workflow change. Sense 48 — The
Stage continued shipping (env indicator pill, jin ship --env,
jin promote for dev→prod, prod/dev terminology in the toolchain).
Sense 13 — The Tile grew into V2: The Panel — composition of
tiles. And the meta-story of the week: the sister-worktree
workflow got standardized (m2m, m2s, l2n, l2m scripts;
explicit dev-only ship; the claude/9th worktree as a working
example).
The week’s working theme: the planes get their pillars, the worktrees agree on how to talk to each other.
Sense 48 — The Stage grows pillars
Section titled “Sense 48 — The Stage grows pillars”W24 introduced The Stage as a concept and shipped the foundation
(env resolution, dual Clerk keys, env-aware jin login / jin ship / invite / sync-principals / revoke). W25 turned the concept
into a daily, visible workflow.
Phase 5 — the env indicator pill (6fc3678d)
puts a DEV / LOCAL badge in the Explorer chrome so the user can
never confuse which plane they’re looking at. Combined with
Phase 7 — jin promote (3ef53aae),
the dev→prod handoff becomes one named verb: build & test on dev,
then jin promote to lift the validated image to the prod Fly app.
Around the pillars, the safety net tightened:
jin shiprequires explicit--envfor developers (8d2a977a) — no more accidentally shipping the laptop default to whatever the env-var happened to be that day.just shipdeploys to dev only; prod requires confirmation (5c9a7fe4). Friction in the right place.fly-deploy-dev/fly-redeploy-devrecipes (1414bce5)- later renamed to
prod-deploy/dev-deploy(3e9db6e8) — the recipe names now declare which plane they touch instead of which provider.
- later renamed to
- About page shows real engine version + env (prod/dev/local) (df121b85) — the runtime self-reports honestly to the reader.
Plus deploy-cloud retries on transient Fly registry errors (8ed088e6) — the kind of resilience small fix that the next deploy outage will silently prevent.
Sense 13 V2 — The Panel (composition of tiles)
Section titled “Sense 13 V2 — The Panel (composition of tiles)”V1 in W24 named the tile as the substrate for visual assertions. V2 introduces the panel as the composition of tiles. Spec landed (3d37e358) followed by implementation (dbd7f84d) — Atelier surfaces can now bind a panel from a YAML declaration, the panel resolves its tile dependencies, and the resulting render composes cleanly.
A small but instructive late-week fix (cd3cbc28)
moved parseTileProvenance out of a server-only module so client
panels could build — the kind of “we need to be careful about
import scopes when the substrate spans server + client” lesson
that V2 brought to the surface.
The worktrees agree — m2m / m2s / l2n / l2m
Section titled “The worktrees agree — m2m / m2s / l2n / l2m”The week’s meta-story: multiple Claude agents working on jinflow
in parallel needed a clean way to hand work back and forth. The
answer: shared .git/ worktrees + a small fleet of scripts named
for what they do.
The convention crystallized this week:
m2m(9eaa2dfe) — main to main. Sync the active worktree back to the canonical main, with the commit-message hygiene thecommit-msghook needs (af3b127b).m2s— main to sister. Push changes from the canonical main out to a sister worktree.l2n→l2m(ef4b73e9, 3459c1aa) — local to main — the rename to match the naming symmetry that emerged. (Andl2sfor completeness — local to sister.)- The
claude/9thworktree itself arrived this week as a working example. The owner’sjinflow/clone is the canonical main;jinflow-9th/is a worktree onclaude/9th. Local handoffs are instant (shared.git/); pushes to origin become intentional rather than reflexive.
The cumulative effect: an evening rhythm where two Claudes can
make progress in their own worktrees, sync via m2m / m2s, and
nobody overwrites anybody else’s work.
Docs site cleanup — the link sweep
Section titled “Docs site cleanup — the link sweep”A long-overdue cleanup landed (ebbffb06):
109 stale .md-extension links rewritten to clean Starlight
URLs across the site. Three passes:
- Relative
.mdlinks to existing site pages → absolute Starlight URLs. The user-reported case in/operations/quick-startwas the trigger:[Setup Guide](../guide/setup.md)was dropping readers on a 404. 68 links across 13 files. - Sense cross-refs in the engine’s
sense_NN_*.mdfilename convention → the site’s kebab-casesense-NN-*slugs. 43 links across 12 files. - Engine-only design docs (extractor_discipline, the_kls_as_witness, etc.), letters, memory entries, and packs paths → GitHub source URLs so they at least resolve.
Picked up two pre-existing drift issues along the way:
demo_ronnie_walkthrough → demo_viewer_walkthrough sync to
site/public/presentations and the de/fr listings, plus
the_senses.html getting its presentations.yaml entry.
The pitch deck ships + the old deck speaks current vocabulary
Section titled “The pitch deck ships + the old deck speaks current vocabulary”The customer/investor pitch deck (drafted in collaboration last
Sunday) landed on docs.jinflow.io (87e3cd05)
— listed in presentations.yaml, mirrored to the site’s
public/presentations/, surfaced in the EN/DE/FR presentations
indexes.
In the same commit, the older introducing_jinflow_5min.html
deck stopped speaking the pre-Sense-14 vocabulary: “Balance
probes” → “Balance signals”, “new probe types” → “new
signal types”, plus the internal CSS class rename for
consistency. The legacy term that had survived the rename for
months is finally out of every user-facing surface. (Plus the
follow-up scrub in the evolve test ladder — 26b2dd06.)
AFS-mirror bakes get honest
Section titled “AFS-mirror bakes get honest”Two related fixes (3f4b8087, 450b8c8f) closed the loop on the W24 “registry bakes don’t refresh between engine bumps” hole. The bakes now run on every make, not gated by the engine-version stamp, and the make output reports them honestly — so a make that did refresh the AFS-mirror tells the user that’s what happened. Previously they’d skip silently and the user would wonder why fresh AFS edits weren’t reaching the KLS.
Atelier writer — modified_at + history
Section titled “Atelier writer — modified_at + history”The Explorer’s Atelier writer (e11cbc04)
now stamps modified_at on every save and appends to a
history field — so an Atelier-authored YAML carries an honest
timestamp + a per-save record. Sense 21 Symptom C
(modified_at semantics drift) gets one more surface honest.
Comprehensive evolve test ladder
Section titled “Comprehensive evolve test ladder”A new doc (c1e6d40d)
— docs/guide/evolve-test-ladder.md — enumerates the test
coverage for jin evolve Phases 1, 2, and 3a. The kind of
artifact that turns “the AI co-pilot mostly works” into “here
are the cases we’ve verified, here are the cases still open.”
Pairs naturally with the test re-centering work that landed
earlier in the month.
Smaller landings
Section titled “Smaller landings”jin afs ppaccepts--alland multiple positional targets (4f156e18) — pretty-print across the whole live root, not one tenant at a time.- Garden chains sidebar hidden by default (cee2ade6) — less visual clutter on first load.
- Garden outline is the only render mode now (50ed22b0) — the toggle is gone; the outline mode was always the better one and the alternative was vestigial.
pack_brand.display_namecarries brand.name for invitation copy (dbf79cb5) — invitations now display the pack’s branded name.bake_metadatapack-cascade resolves the pack manifest correctly (b3562d90) — small but load-bearing fix for the config cascade lookup.
4 releases: 0.54.3 → 0.54.4 → 0.55.0 → 0.55.1.
Forward hook: Sense 48’s pillars (DEV/LOCAL pill, env-aware
ship + promote, prod/dev recipe naming) plus the worktree
workflow plus the claude/9th working example mean that the next
phase — multiple Claudes shipping in parallel without stepping on
each other — is now a documented practice instead of a hopeful
arrangement. With Sense 13 V2 (the Panel) live, the Atelier’s
visual-assertion authoring also has its next composition primitive.