Zum Inhalt springen

Week 19 / 2026 — hrcentral lands, the Lens arrives, the funnel narrows

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

4 May – 10 May 2026 · 304 commits · 0.47.4 → 0.47.23

The week opened with the third pack — hrcentral — coming online end-to-end. By Monday afternoon, hrcentral.vai.jinflow.io was a real URL with a real KLS, a real welcome page, a cast of 18 named persons in the VAI tenant, and 8 v1 signals firing. The pack architecture from W10 had been waiting for proof; here it was. By Sunday night, hrcentral had four named Lab variants (workforce, critical-roles, hiring, cohorts), the Lens (Sense 27) was a first-class AFS artifact compiling to runtime, and three new senses had been designed (26 The Workshop, 27 The Funnel, 28 The Direct Line, 29 The Atelier, 30 The Wire — five senses, actually).

Three hundred and four commits. The week the project’s noun-topology argument settled and its surface area for new packs got formalized.

Monday brought hrcentral into being, one disciplined commit at a time:

  • 4de132ab“hrcentral pack scaffold + 7 design notes generated”
  • 4a459dbb“VAI tenant — welcome, org chart, cast of 18 named persons”
  • 7483a311“hrcentral v1 signals (8) + gold contract + signalcheck rename leftover”
  • 813e5cf0“hrcentral entities + dbt scaffold + 2 engine bug fixes”
  • 3e023f6c“hrcentral synthetic data + bronze/gold dbt models — VAI’s first gold”
  • ed25f366“hrcentral — first end-to-end build green; the festa landing”
  • b708dac2“wire hrcentral.jinflow.io into Fly + Explorer host routing”

By Monday afternoon, the third pack ran end-to-end on shared infrastructure. The argument that the pack architecture is real architecture, not an aspiration was now verifiable from any browser.

Tuesday-Wednesday brought the data layer to life:

  • 49cc0611“pipeline.yml channels — invariant ingestion contract”
  • 918b10cc — ROR extractor for hrcentral OrgUnit topology
  • 4f0e66d0 — Wikidata extractor for OrgUnit deep tree
  • bd2a807c“ROR + Wikidata bronze + silver wiring for hrcentral”
  • 96a83161“multi-source-per-tenant ingestion (hrcentral + engine)”
  • 7ae35822 — OrgUnit cross-source reconciliation + German genitive polish
  • 194a8e66“3 v1 signals firing — overload, dual_affiliation, succession_risk”
  • 083acbd5“2 confirmed theses on top of the v1 signals”

Six days from scaffold to confirmed theses, end-to-end. The engineering muscle built across 18 weeks of nuMetrix work paid off — the second pack from scratch went from concept to running in a workweek.

Monday: 5d995f3c“Sense 27 — The Funnel — narrow at the source.” The paper argues: aggregating in SQL beats aggregating in JavaScript. Aggregate at the source. Stream the picture, not the dataset.

A day later, the implementation begins:

  • Tuesday: d1307f3e“Sense 27 Lens scaffolding — contract, compiler, runtime stubs”
  • 3880b0a2“Lens runtime — compose() and enterSubLens() implemented”
  • 4a5f59f6”/[tenant]/lens/[lens_id] route — Sense 27 first end-to-end Lens render”
  • 31d0c69c“Lens schema + runtime gain joins to signal_findings tables”
  • 25e26cc9“bake lens manifests into the KLS — production no longer needs build/”
  • b02cc16d“lens manifest disk-first + mtime cache for dev hot-reload”
  • 92d11dc7“lenscompile — implement extends: for Lens variants”

By Sunday, a Lens YAML compiled to a runtime manifest, the manifest was baked into the KLS, the Explorer rendered the Lens at /[tenant]/lens/<lens_id>, sub-Lenses composed via extends:, and a single cell click drilled into a sub-Lens (recursive). 4fb16fc3“cross-Lens jump from cell drill-in”. c708b17a“predicted child cells fill log_bin zoom views.”

What this means in practice: an analytical question that used to require an Explorer page now requires a Lens YAML. The Lens declares its axes, fields, density bounds, time-bucket prediction. The compiler emits SQL. The runtime composes and serves it. Pages stop being implementation; they’re now compositions.

W19 produced five concept papers, two of them as full implementations:

  • Sense 26 — The Workshop (13b3890a) — “pack ships its own design + notedocgen.” The pattern: every pack carries a field_manual/pack.yaml declaring its convention. Tenants override per-section. The Field Manual feature lands later this week ([feature commits in W20 territory]).
  • Sense 27 — The Funnel (5d995f3c) — Lens architecture, narrow at the source.
  • Sense 28 — The Direct Line (314a550a) — laptop↔browser direct over tunnel, cloud signs SQL, never sees rows. Strengthens P2P2P.
  • Sense 29 — The Atelier (ec57930a) — names the separable layout (Studio + Salon + Lab as the same place in different work modes). Decouples Studio/Salon/Lab from sidebar nesting.
  • Sense 30 — The Wire (7a1c6163) — “the outward contract — typed, identified, reasoned, rate-aware boundary.” The protocol/specification spec for talking to jinflow as a service.

That’s three weeks running with multiple Senses each. The cadence is now visibly an editorial one — the project is articulating itself faster than it’s implementing.

Tuesday’s 012a74ba“retire ‘diamond’/‘hourglass’ in favor of ‘the jinflow’”. ad6c60b2“retire ‘pyramid’ / ‘hourglass’ / ‘diagnostic’ in canonical glossary.”

The big-picture shape that had been called the pyramid (Probes at base, Diagnoses at apex) then the hourglass (analytical pyramid meeting strategic pyramid at the waist) — both got retired. The new shape: the jinflow, a diamond with Analysis, Strategy, Expertise, Insight, Evolution at its corners and Insight at the centre.

  • 8e684f05“The jinflow — five names, one diamond, one centre”
  • d2843c5b“From Evolution — the jinflow model in ten stages”
  • 697dcc51 — rename Action to Evolution in the-jinflow concept page

Documentation, presentations, podcast scripts — all swept the same week (32afca40, 4db5f3ec, 5f1f86f3).

The Signal paradigm work continued in two directions:

  • Phase 2 — polarity-aware Board (heatmap) coloring (1f1e9e42), Explorer reads score + polarity (a7fbb029), signal extensions wrapper in compiler (1d1a2ebc)
  • Phase 4 — perspectives are positive-polarity (2b77175a). high = healthy for perspectives, high = bad for negative-polarity signals. A counterintuitive surface that the rendering finally got right.

Friday-Saturday: 3a004f2c“Sense 14.2 Phase 0 — UCUM + ISO 8601 validators (foundation).”

Phase 1: typed out_* columns

  • 0fda067c“compiler emits typed out_ columns”*
  • a7d42502“Finding type + 129 tests for the type system”

Phase 2A: validation, Phase 2B: aggregate outputs

  • a903dbc9“aggregation type×method validator”
  • 77be3957“compiler emits SQL for aggregate_outputs:”

Five base types (quantity / currency / time / category / flag) grounded in UCUM, ISO 4217, ISO 8601, ISO 80000 — the standards-anchored type system from the Sense 14.2 design proposal in W17 is now real code.

Friday: 24e400d3“refactor: Studio joins the Lab room — two rooms now, not three.” 59283b88“salon → board, drop preset/encoding, route is /board/[instance].”

The Studio/Salon/Lab triad from W15 was a collaboration metaphor; the URL-level fold makes it two rooms: /board/[instance] for browse + drill (Lens-browser idiom), /lab/[instance] for chart-based exploration. Studio is a work-mode inside Lab, not a separate URL. Salon is renamed Board, dropping the preset/encoding tail.

A different kind of polish: a continuous-checking loop for the laptop.

  • b53e147a“local CI — just ci, two-tier continuous testing loop”
  • aa6a306d — CI logs land in logs/ci/, incidents preserved per-failure
  • 950d7fdajust ci-attach — persistent CI session via tmux”
  • 207c1c33“drop file watcher — periodic-only cycle”
  • 87749e95“split fast tier into Explorer + Python subsets”
  • 309d4675“Triage agent — auto-diagnose CI incidents via claude -p”

A 15-minute loop running explorer-check + vitest + pytest + (if green) tenant builds. macOS notifications on color transitions. Triage agent reads incidents and writes a DIAGNOSIS.md in 30-60s. tmux-attached so it survives terminal closes.

This is the muscle that catches regressions before users notice them — and that, this very week, caught the dev-server-reload bug that surfaced as a user complaint days later.

Personas-as-atomic — hrcentral’s first complex page

Section titled “Personas-as-atomic — hrcentral’s first complex page”

Saturday: 0e93db62“Persons-as-atomic — three-questions Who page + Joiners Lab + Cohorts pivot.” hrcentral’s first complex Lens-style page. Persons of interest, grouped by joining cohort, pivoting between Lab variants.

By Sunday, the hrcentral surface had:

  • TimeLab — institution-wide mode (a121a9cb)
  • Critical-Roles Lab — succession_risk over time (e52a242b)
  • Hiring Lab — workforce flow over time (c8d645ca)
  • Cohorts Lab — population blocks (bachelor / master / doctoral) over time (8c03843d)

Four named Lab instances, each declared as a Sense 13.1 component, all rendered by the same engine.

9e93a0cf“complete probe → signal sweep across engine + Explorer.” The final commit closing the Sense 14 rename across every namespace, capability, slot, and codepath that still carried the legacy noun.

  • Aggregates layer — pack-shipped models that build after signals (c8d0646f)
  • Tenant rename layer for shifting public-source data (3ff28bb3) — public-source institution names mapped onto the synthetic VAI tenant
  • Italian sidebar translations for Sense 14 vocabulary (cd66be91) + 98347686 — hrcentral welcome screen in Italian. VAI requires it ([f0c4154c]…).
  • Locales become dynamic per AFS (a5af5c20)
  • Lenses become a first-class AFS artifact type (516f99bd)
  • VAI regression tripwire — gold rowcounts + landmarks + signals (158fe1b0)
  • From Evolution narrative — six commits on the Senses-overview design page
  • Subject Matter kinds — Wisdom and 50cents (5f3a12ba) — pack-level Wisdom vs tenant-level 50cents
  • Cathedral — opt-in tour, theme system, persistent toggles (665bb5a0)
  • AFS Diff inline content view (1c5dbab0) — click row → see actual lines
  • Findings: per-pill counts + R/O/N/Esc keyboard shortcuts (26bda11a)
  • Cross-tab BroadcastChannel (2eaceaeb, 9481792f) — Cathedral deep-links across browser tabs
  • jinflow ahead (58d420e1) — unpushed commits across every jinflow-shaped repo
  • proxy /query forwards params to DuckDB (4956c8f6) — the proxy-mode chain bug
  • Proprietary LICENSE + third-party NOTICE (8489d475) — surface in About tab
  • 304 commits, 7 days
  • 1 new pack live end-to-end (hrcentral.vai)
  • 5 new design papers (Senses 26, 27, 28, 29, 30)
  • 1 Lens system from concept to baked artifact to recursive drill-in
  • 4 named Lab instances in hrcentral
  • 1 pyramid + 1 hourglass retired in favor of the jinflow diamond
  • 2 Subject Matter kinds introduced (Wisdom + 50cents)
  • 1 local CI loop with Triage agent
  • 2 rooms (down from 3)
  • 18 named persons in VAI
  • Release line: 0.47.4 → 0.47.23

By Sunday night, the project’s noun-topology argument had settled (the diamond replaces the pyramid replaces the hourglass), the third pack was a verifiable URL, the Lens was a real first-class artifact, and five new Senses were on paper as the next architectural agenda. The hrcentral validation closes a loop that opened with the W10 pack refactor: yes, the architecture generalizes; yes, a new pack can ship in a week; yes, the engine is what it claims to be.

The week after this — the partial W20 — would be quieter, doing the closure work on Sense 14.2 and the field manual. But the architectural bets for the next six months were placed here.

The jinflow has a shape now. Five corners. One centre.

jazzisnow jinflow is a jazzisnow product
v0.64.7 · built 2026-09-20 19:48 UTC