Context
Operator direction (2026-07-16): once the workstation flagship is release-ready, it joins the portal's examples surface — apps/portal/resources/data/examples_devmode.json plus the per-environment siblings. The workstation (apps/workstation, the #15144 standalone extraction) is one of multiple demos for the Qt-like dock layouts and currently ships with zero portal discoverability.
The Problem
The portal examples catalogs are the public discovery surface for runnable apps; an unlisted flagship is invisible to exactly the audience the docking arc targets. The catalogs are per-environment (verified live): examples_devmode.json, examples_dist_dev.json, examples_dist_esm.json, examples_dist_prod.json — all four need the entry with env-correct URLs.
The Architectural Reality
Each catalog is a JSON array of entries shaped {id, environments, image, name, sourceUrl, url} (verified against examples_devmode.json entry 26, "GitHub Meritocracy Index": image: "devmode/DevIndex.png", sourceUrl: "apps/devindex", url: "apps/devindex/index.html"). The image asset convention and per-env url shapes must be read from sibling entries in EACH file before writing (the dist variants differ in path shape).
The Fix
One PR: add the workstation entry to all four catalogs (next free id, environments: ["Desktop"] — the dense 20-pane layout is desktop-class), plus the screenshot asset per the sibling convention. Copy names it plainly (an operations-workstation docking showcase — per the never-say-framework discipline, "application engine" language only if copy is added).
Contract Ledger
| Target Surface |
Source of Authority |
Behavior |
Fallback / Edge Case |
Docs |
Evidence |
the four apps/portal/resources/data/examples_*.json catalogs |
operator direction 2026-07-16 + sibling-entry convention |
one workstation entry per catalog, env-correct url, shared image asset |
none — additive rows |
catalog convention is self-documenting by siblings |
portal renders the tile in each env (live receipt in the PR) |
Decision Record impact
none.
Acceptance Criteria
Out of Scope
Portal layout/feature changes · workstation app changes · SEO/routing surfaces (seo.json etc. — separate concern if ever needed).
Related
Parent #15239 (epic — the release-surface leaf) · #15144 (the standalone app) · #15208 / #15207 (the "done" gate).
Live latest-open sweep: latest 20 at 2026-07-16T10:56Z (+ last-step re-check); no equivalent. A2A claim sweep: no competing claim (wake daemon disabled; operator-directed).
Origin Session ID: c5d7cd6b-4e01-45fd-aa59-5ccbc0e5f091
Retrieval Hint: "workstation portal examples catalog registration devmode dist env json"
Context
Operator direction (2026-07-16): once the workstation flagship is release-ready, it joins the portal's examples surface —
apps/portal/resources/data/examples_devmode.jsonplus the per-environment siblings. The workstation (apps/workstation, the#15144standalone extraction) is one of multiple demos for the Qt-like dock layouts and currently ships with zero portal discoverability.The Problem
The portal examples catalogs are the public discovery surface for runnable apps; an unlisted flagship is invisible to exactly the audience the docking arc targets. The catalogs are per-environment (verified live):
examples_devmode.json,examples_dist_dev.json,examples_dist_esm.json,examples_dist_prod.json— all four need the entry with env-correct URLs.The Architectural Reality
Each catalog is a JSON array of entries shaped
{id, environments, image, name, sourceUrl, url}(verified againstexamples_devmode.jsonentry 26, "GitHub Meritocracy Index":image: "devmode/DevIndex.png",sourceUrl: "apps/devindex",url: "apps/devindex/index.html"). Theimageasset convention and per-envurlshapes must be read from sibling entries in EACH file before writing (the dist variants differ in path shape).The Fix
One PR: add the workstation entry to all four catalogs (next free
id,environments: ["Desktop"]— the dense 20-pane layout is desktop-class), plus the screenshot asset per the sibling convention. Copy names it plainly (an operations-workstation docking showcase — per the never-say-framework discipline, "application engine" language only if copy is added).Contract Ledger
apps/portal/resources/data/examples_*.jsoncatalogsurl, sharedimageassetDecision Record impact
none.
Acceptance Criteria
#15208(the preview-language candidate) and the#15207successor (shared dashboard affordance consumer) merged — this leaf is explicitly gated on "once done."Out of Scope
Portal layout/feature changes · workstation app changes · SEO/routing surfaces (
seo.jsonetc. — separate concern if ever needed).Related
Parent
#15239(epic — the release-surface leaf) ·#15144(the standalone app) ·#15208/#15207(the "done" gate).Live latest-open sweep: latest 20 at 2026-07-16T10:56Z (+ last-step re-check); no equivalent. A2A claim sweep: no competing claim (wake daemon disabled; operator-directed).
Origin Session ID: c5d7cd6b-4e01-45fd-aa59-5ccbc0e5f091 Retrieval Hint: "workstation portal examples catalog registration devmode dist env json"