Skip to content

[HWORKS-3275] ML software factory - #664

Open
jimdowling wants to merge 42 commits into
logicalclocks:mainfrom
jimdowling:HWORKS-3275
Open

jimdowling wants to merge 42 commits into
logicalclocks:mainfrom
jimdowling:HWORKS-3275

Conversation

@jimdowling

@jimdowling jimdowling commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

User docs for the ML software factory (HWORKS-3275) and the Terminal's start screen.

  • user_guides/client_installation/index.md:
    • The file table of hops setup covers /hops, /hops-ml, /hops-build, the dashboard, app, training and inference agents, and the removal of hops-fti.
    • A new section, Build an ML system, covers:
      • hops factory run <factory>: its questions asked in the terminal or read from --answers, --preset for an example, --no-launch, and resuming a system from its system.yaml;
      • how a new data source's secret is passed;
      • the system's AGENTS.md;
      • the hops-<slug> repository;
      • the project's registry.
    • It also covers the Factory page under AI/ML:
      • New and Example;
      • Login to GitHub;
      • a system's page;
      • Architecture with edits;
      • Status;
      • Delete with its three choices.
    • It ends with the hops factory run and hops factory system commands.
    • A new section, Build a silver medallion layer: the medallion_table tag, Tag as bronze tables, New Medallion Layer, third normal form, incremental runs, one job per refresh, applying changes to system.yaml, Status, Backfill, per-job delete, Add tables, and the layer commands of hops factory system.
    • A new section, Build a gold medallion layer of data marts: the Kimball model, the data mart as the unit added, edited and deleted, its requirements including verification, and the mart commands.
  • user_guides/projects/terminal/start.md is a new page, Start the Terminal:
    • Resources and Spark Cluster settings.
    • LLM Provider: the providers, where the key is kept, Test, and which coding agents use it. Claude Code is covered for providers with an Anthropic-compatible API, as is the warning for an overriding settings.json env block.
  • user_guides/agents/deployments/index.md: the agent example serves /predict and /v1/models/<name>:predict, the paths a prediction request arrives on.
  • session_capacity_warnings.md: the terminal's button is now Start.

JIRA: https://hopsworks.atlassian.net/browse/HWORKS-3275

Related PRs: logicalclocks/hopsworks-api#1207, logicalclocks/hopsworks-front#2132, logicalclocks/hopsworks-ee#3384, logicalclocks/docker-images#1072, logicalclocks/hopsworks-helm#2447, logicalclocks/loadtest#1075.

Tested: hopsworks-docs markdownlint (0 errors) and hopsworks-docs check (strict build) pass.

Not yet documented: the Hops Run and GIS examples, the run-time and time-series fields of the requirements, sample code (reference_code), phase estimates, Resume building, and factory_enabled.

Factory definitions

The client installation guide describes creating, cloning, importing, exporting, editing and deleting a project's own factories, with an example definition and the hops factory commands, and the five built-in factories (ml-batch, ml-realtime, ml-agent, medallion-silver, medallion-gold).

Changes to a built system

The guide describes a factory's changes, the Change menu, hops factory run <factory> <system> --change <id>, and hops factory system delete-assets; the layer command list uses the change requests and hops job run for a backfill.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE

https://hopsworks.atlassian.net/browse/HWORKS-3275

The /hops command becomes three software factories for Claude Code
(hopsworks-api): /hops ml builds a verified ML system recorded in
system.yaml, /hops dashboard a Superset dashboard, /hops app a Python
app, with two sub-agents for training and inference. The backend pins
Hugging Face imports to one Hub commit (hopsworks-ee).

The client installation page lists the files hops setup writes. It now
names the three factories the /hops command offers and the two agents
it ships, drops hops-fti, and says what happens to a file an earlier
version wrote and this one no longer ships.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

jimdowling and others added 24 commits September 24, 2026 00:10
https://hopsworks.atlassian.net/browse/HWORKS-3275

Split /hops so its menus and questions run on a fast model and
everything that builds runs on a stronger one. A command's model is
fixed per command and a sub-agent cannot ask the user anything, so
/hops (model: haiku) is now the menu for exploring data, status, and
the questions for a dashboard or an app, and it hands each build to
hops-dashboard-builder or hops-app-builder, pinned to opus because a
sub-agent that inherits from a Haiku command runs on Haiku. The ML
factory moves to /hops-ml on the session model, with the training and
inference agents inheriting it; the state its first requirements
question needs is injected into the prompt, so that question comes
without tool round trips.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/HWORKS-3275
Document /hops-ml as the requirements interview on Haiku and the new
/hops-build as the builder on the session model in the file table of
the client installation guide.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/HWORKS-3275
Document `hops build` in the client installation guide: the interview
and its example systems, how a new data source's secret is passed, the
launch of /hops-build in a new tmux window, and the ML systems progress
panel in the Hopsworks UI.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/HWORKS-3275
Describe the new first question of `hops build`: a new ML system or an
example ML system (churn, personalized recommendations, help desk
agent).

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Describe the project's ML systems registry in the client installation
guide: what hops build registers, the ML systems panel every member of
the project sees with its access icons, and hops mlsystem.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Document hops build --example and the Create example ML system entry in
the Hopsworks UI's ML systems panel, which replaces the Wizard and
shows on a cluster with the terminal even before a project has a
system.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Describe the Brewer button, the ML systems panel's new name, and the
architecture page it opens: the pipelines and the data flow between
them, redrawn as system.yaml changes, with changed boxes marked until
they are clicked, and each box's part of the specification viewable
and editable.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The hops build section says /hops-build adds a section to the root
AGENTS.md of the repository: the system is built from system.yaml, a
change to it is checked against the pipelines and assets, and a changed
component's downstream is found with the hops lineage commands.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
AGENTS.md is in each ML system's directory, with a CLAUDE.md that
imports it, and hops build and Brewer start Claude Code there.
Selecting a system in Brewer brings its Terminal tab to the front, or
opens one with Claude Code in the system's directory.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
A system's directory holds only AGENTS.md for coding agents; the
CLAUDE.md that imported it is gone.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Brewer's links are system.yaml and architecture, and Delete removes a
system's entry, optionally with the assets it created and its GitHub
repository; hops mlsystem delete does the same from a shell.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The help desk example is described: documents uploaded to
Resources/helpdesk-docs, embedded into a vector-indexed feature group,
a LangGraph agent over them and the customer's events, and the LLM
endpoint and key kept as account environment variables. The agent
deployment example serves the paths a prediction request arrives on,
/predict and /v1/models/<name>:predict, where it served only /query.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Brewer: a repository the build creates is named hops-<slug>, and
deleting a system's assets also deletes its code directory, which the
page said was kept.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Brewer: the UI's ML systems are the Factory page under AI/ML, with the
requirements form, the system page, Login to GitHub, and Back from the
architecture and status pages.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: Start the Terminal documents the start screen: Resources,
Spark Cluster and the LLM Provider, where the key is kept and which
coding agents use it.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: the start screen has no summary line under Start.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: which Claude Code variables a provider sets, and the warning
for a settings.json env block that overrides them.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: Meta runs Claude Code too, codex gets each provider's model
settings, and the provider picker sits under Start as cards.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: OpenRouter is an LLM provider, Claude Code included.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Terminal: Grok is no longer an LLM provider.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Factory: it sits in the project menu below Catalog and holds two
factories. The ML system factory's examples are under New ML System.
A new section describes the medallion layer factory: the archived
medallion_table tag, Tag as bronze tables in the dltHub ingestion
review, New Medallion Layer and its silver tasks, the engine, the
incremental job over [HOPS_START_TIME, HOPS_END_TIME), and hops
medallion silver and delete.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Silver tables are in third normal form, and a medallion layer's
specification is its system.yaml, whose changes the layer's page
offers to apply: a new lifecycle retags, a new refresh reschedules,
and a changed task, engine or source writes new table versions.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The silver layer section describes the settings (history, deletes,
schema changes, late-data lookback, the rejected-rows limit with an
alert, freshness), lineage to the bronze tables, partitioning decided
from the bronze files, the schedule's catch-up, and Status, Backfill,
hops medallion status and hops medallion backfill.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Delete removes a silver layer, a gold layer or both; bronze is never
deleted.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
jimdowling and others added 17 commits October 4, 2026 18:57
https://hopsworks.atlassian.net/browse/HWORKS-3275
Each bronze table of a silver layer has its own refresh and the layer
one job per refresh; a layer's page shows its requirements, and the
Status page has a box for asking Claude Code about the report.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
Document gold medallion layers: a Kimball star or snowflake model built
from silver tables as data marts, each with its own requirements
(business purpose, reusable tables, grain, metrics, change handling,
verification, quality and access), tables and jobs at its own refresh,
added, edited and deleted one by one. Silver layers gain per-job
delete, Add tables, and links to their GitHub repository and dbt code,
and the hops medallion command list covers gold, marts, job-delete and
add-tables.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
A medallion's silver and gold layers share one GitHub repository,
hops-<prefix>, each layer a directory in it; a gold layer joins the
repository of the silver layer it reads, and the build reuses the
repository or creates it.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
A batch or real-time ML system built by the factory can now log its
predictions' features and be monitored. The Factory's new system form
ends with a Monitoring panel: a Feature logging checkbox, on by default,
and a text box for what to monitor and alert on in the user's words.
The answers reach system.yaml as requirements.monitoring
{feature_logging, watch}.

The client installation guide describes the panel.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
hops mlsystem -h did not list a create command, since a system is
created with hops build, and hops medallion had the same gap with its
silver and gold commands.

The client installation guide lists both.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
hops build is removed: an ML system is created with hops mlsystem
create, which is the same interview and build, so the two names were
one command too many. References to hops build now name hops mlsystem
create; the /hops-build slash command keeps its name.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The CLI has one top-level command for the software factories, hops
factory. hops factory list lists the two built-in factories, mlsystem
and medallion, with the commands each takes, and their command groups
moved under it: hops factory mlsystem create|list|register|remove|
delete|status and hops factory medallion silver|gold|create|...; the
top-level hops mlsystem and hops medallion are gone. Every reference
names the new commands.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The client installation guide describes creating, cloning, importing,
exporting, editing and deleting a project's own factories, with an
example definition and the hops factory commands.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275
The built-in factories are now five plain YAML definitions with no
conditional logic: ml-batch, ml-realtime and ml-agent replace the one
ML system factory, whose form hid most questions behind the system
type, and medallion-silver and medallion-gold replace the medallion
factory. A form has no conditions any more: every question of a
section is shown, and a section with defaults is collapsed to a
summary of its answers with Edit; the batch and real-time factories
have their own Monitoring section. The format gains answer keys,
labelled options, single feature group pickers, lists of entries,
account variables kept out of system.yaml, and presets, which carry
the ML examples.

The guide describes the three ML factories, the silver and gold
factories, collapsed sections and the format's new question types.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

hops factory run <name> builds a system with any factory and replaces
the hops factory mlsystem and hops factory medallion groups and the
per-factory hops factory <name> groups. A new system's answers come
from --answers, as the Factory page writes them, or each question of
the factory's definition is asked in the terminal, with --preset to
start from one of its examples. A system already recorded is resumed
from its system.yaml, which holds the factory, its version and every
answer, so it needs no answers file. The systems the factories built
are listed, reported on, registered and deleted with hops factory
system, which also holds the medallion layer commands (data marts,
jobs, added tables, backfills, dir); status and delete handle ML
systems and layers alike.

hopsworks-api: run, the terminal questions (an account variable is
asked only when the account lacks it, then saved there) and resume in
factory.py; the built-in builds become functions taking the answers,
and the Haiku interview and its menu are deleted, since the factory's
form now asks the questions. Skills, templates and tests follow.
hopsworks-front: the typed commands use run and system.
hopsworks-ee: the built-in definitions' header comments.
logicalclocks.github.io: the CLI sections.
loadtest: a docstring.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

A built system is changed the same way whatever its factory: a factory
definition declares its changes (changes: id, label, description, a
form, and the instructions the build follows). hops factory run
<factory> <system> --change <id> takes the answers from --answers or
asks them, checks them against the form and system.yaml, records the
request in the system's system.yaml (changes, status: pending) and
resumes the build, which carries out pending requests first. A change's
form may pick one of the system's entries (field type entry: the list
at a dotted path of system.yaml, optionally prefilling the other
fields). This replaces the medallion-only verbs of hops factory system
(mart-add, mart-update, mart-delete, job-delete, add-tables, backfill):
the gold built-in declares add-mart, edit-mart, delete-mart and
delete-job, the silver one add-tables and delete-job, and a backfill
is hops job run over the whole history. hops factory system keeps
list, register, status, remove, delete and dir, plus delete-assets,
the one way a build deletes jobs and feature groups, which refuses a
table the system reads or one of a lower medallion layer. The gold
factory is titled Gold Data Mart, and a layer's name is its directory
name: one Name field instead of Name and Directory.

hopsworks-api: changes and entry fields in factory_spec, run --change,
system delete-assets and dir; the layer verbs and their helpers are
deleted; the build templates carry out pending change requests; the
hops-factory and hops-medallion skills document changes.
hopsworks-ee: the validator accepts changes and entry fields; the
medallion built-ins declare their changes.
hopsworks-front: a system's page has a Change menu rendered from its
factory's definition, a change dialog built on FactoryForm (entry
fields, fill), and the pending requests; the layer page's Add data
mart, Edit, Add tables and delete icons open the same changes; the
hand-written mart and add-tables dialogs (MartFields) are deleted.
logicalclocks.github.io: changes, and the layer commands.
loadtest: the gold built-in's changes.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

The gold medallion factory is titled Data Mart, so New Medallion Layer
lists it as Data Mart and its page reads New Data Mart.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

Mistral is an LLM provider for the terminal's coding agents, with
Mistral Large 4 (mistral-large-4) as its model, through its
OpenAI-compatible chat completions API at https://api.mistral.ai/v1 and
the key in MISTRAL_API_KEY. Mistral has no Anthropic-compatible API, so
codex and opencode use it and Claude Code keeps its own login, as with
DeepMind and Berget.

hopsworks-ee: the MISTRAL provider.
hopsworks-front: its logo, from @lobehub/icons-static-svg 1.95.1 as the
other color logos.
logicalclocks.github.io: the provider list.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

A data mart can ask for dashboards. The Data Mart factory's mart form
(Create, Add data mart and Edit data mart) has a Dashboards question,
answered in plain text: for each dashboard, who reads it, the
questions it answers, and the charts and filters wanted. It is
recorded as requirements.dashboards, and a mart has a seventh phase,
dashboards, which /hops-gold runs once the mart is verified: it builds
each dashboard in Superset over the mart's gold tables, as a script in
marts/<mart>/dashboards/ that creates it or updates it in place, checks
each chart against the mart's verified numbers, and records it as
dashboards: [{name, id, url, script, charts}]. With the question empty
the phase is done at once. Editing the text reruns the phase, updating
dashboards in place.

hopsworks-api: the requirement and phase, the dashboards phase of
/hops-gold, and gold-marts.md.
hopsworks-ee: the Data Mart definition's Dashboards section and phase.
hopsworks-front: the phase, and the mart's dashboards, asked for and
then linked, on the layer page.
logicalclocks.github.io: the requirement and the phase.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE
https://hopsworks.atlassian.net/browse/HWORKS-3275

New Medallion Layer gets an Examples submenu, and its first example
is a bronze layer of generated web shop data: clicks, customers,
products and orders, as offline Delta feature groups tagged bronze, so
silver and gold layers can be built on them without a source system.
A backfill writes the 30 days up to the last midnight (1,000,000
clicks, 10,000 customers, 1,000 products, 20,000 orders), an hourly
job writes 10,000 clicks an hour and a daily job writes each day's new
and changed customers, products and orders. About 0.001% of clicks
arrive twice, under a new ingest_id, for a silver layer to remove.
The example is built by a new built-in factory, medallion-bronze,
which is listed only through its examples, and /hops-bronze.

The Factory guide describes the example and lists medallion-bronze
among the built-in factories.

Signed-off-by: Jim Dowling <jim@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants