Repository navigation
[HWORKS-3275] ML software factory - #664
Open
jimdowling wants to merge 42 commits into
Open
jimdowling wants to merge 42 commits into
jimdowling wants to merge 42 commits into
Conversation
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>
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
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
# Conflicts: # mkdocs.yml
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
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.
User docs for the ML software factory (HWORKS-3275) and the Terminal's start screen.
user_guides/client_installation/index.md:hops setupcovers/hops,/hops-ml,/hops-build, the dashboard, app, training and inference agents, and the removal ofhops-fti.hops factory run <factory>: its questions asked in the terminal or read from--answers,--presetfor an example,--no-launch, and resuming a system from itssystem.yaml;AGENTS.md;hops-<slug>repository;hops factory runandhops factory systemcommands.medallion_tabletag, Tag as bronze tables, New Medallion Layer, third normal form, incremental runs, one job per refresh, applying changes tosystem.yaml, Status, Backfill, per-job delete, Add tables, and the layer commands ofhops factory system.user_guides/projects/terminal/start.mdis a new page, Start the Terminal:Test, and which coding agents use it. Claude Code is covered for providers with an Anthropic-compatible API, as is the warning for an overridingsettings.jsonenvblock.user_guides/agents/deployments/index.md: the agent example serves/predictand/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) andhopsworks-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, andfactory_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 factorycommands, 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>, andhops factory system delete-assets; the layer command list uses the change requests andhops job runfor a backfill.🤖 Generated with Claude Code
https://claude.ai/code/session_01RfHMsBbYDQZqoD58XVqeYE