Skip to content

Showcase redesign: six-domain layout, registry-driven coverage, capability-map tour - #2619

Merged
os-zhuang merged 7 commits into
mainfrom
claude/metadata-showcase-redesign-ougiov
Jul 5, 2026
Merged

Showcase redesign: six-domain layout, registry-driven coverage, capability-map tour#2619
os-zhuang merged 7 commits into
mainfrom
claude/metadata-showcase-redesign-ougiov

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Redesigns examples/app-showcase around the platform's own metadata taxonomy so the kitchen-sink app actually keeps up with the platform — structurally, verifiably, and honestly. Five commits, each independently green on pnpm --filter @objectstack/example-showcase verify:

  1. refactor(showcase) — six-domain layout.src/ now mirrors DEFAULT_METADATA_TYPE_REGISTRY's domains (data/, ui/, automation/, system/, security/), pure git mv + import-specifier updates. Two files are pinned by contract: src/coverage.ts (package export) and flat src/docs/ (CLI doc collector, ADR-0046).
  2. feat(showcase) — registry-driven kind coverage.KIND_COVERAGE enumerates every metadata kind in the registry; each is demonstrated (proof files must exist) or waived (reason + tracking issue required, enforced by test). New platform kind ⇒ red CI until accounted for. Waivers: agent/tool/skill → Showcase: AI-domain examples (agent/tool/skill) deferred — cloud/MCP-only per ADR-0063 #2610, mappings → defineMapping artifacts are registered but never consumed — wire named mappings into REST import or de-scope from the stack #2611, declarative connectors → Declarative connectors: stack entries are inert — bridge them to the automation connector registry or document as descriptor-only #2612, trigger/router/function/service/external_catalog → Metadata kinds without a code-authoring surface: trigger, router, function, service, external_catalog #2613; unenforced validation types stay on Validation rules: 6 of 9 spec rule types are declared but not enforced at runtime #1475.
  3. feat(showcase) — cube + object extension.showcase_delivery cube (analyticsCubes) and an additive overlay on showcase_account (objectExtensions) — the two ≥app-crm parity gaps with real runtime support. test/gap-fill.test.ts proves the stack wiring and the extension merge against the real SchemaRegistry. (defineMapping / declarative connectors were verified to be inert at runtime and are waived, not faked — Prime Directive chore: version packages #10.)
  4. feat(showcase) — capability-map landing + guided tour. Five per-domain tour docs with live ```metadata embeds (ADR-0051), a Guided Tour book group, and a showcase_capability_map html-kind landing page (first nav item — the delivered landing mechanism; homePageId has no console consumer). The AI card is explicitly "deferred", linking Showcase: AI-domain examples (agent/tool/skill) deferred — cloud/MCP-only per ADR-0063 #2610.
  5. docs(showcase,examples) — truth pass. Removes the phantom "agent wired to a tool and a skill" claim + nonexistent src/agents/ from the README and package description; documents the new layout and coverage contract; rewrites the stale examples/README.md (plugin-bi never existed; app-crm/embed-objectql do).

Why

The showcase claimed capabilities it didn't have (an AI chain), silently lacked ones it should demo (cube, extension), and its coverage test only guarded enum variants — so kind-level gaps were invisible. This PR makes the coverage contract two-level and self-enforcing, and gives visitors a front door that indexes every demo by protocol domain.

Verification

  • pnpm --filter @objectstack/example-showcase verify green at every commit (validate + typecheck + 49 tests; validate lints the new tour docs: flatness, prefixes, links, metadata-embed liveness).
  • Booted a fresh dev server and verified end-to-end via API: first nav item is the Capability Map; showcase_capability_map page resolves; GET /api/v1/analytics/meta lists showcase_delivery and POST /api/v1/analytics/query returns real aggregates over seeded tasks; showcase_account metadata contains the merged extension fields; all five tour docs serve 200; the book resolves groups Getting Started / Guided Tour / Guides.
  • Console UI walkthrough not possible in this environment (packages/console/dist not built — no ../objectui checkout); e2e smoke (showcase-smoke.spec.ts) now sweeps the capability-map page for nightly runs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs


Generated by Claude Code

claude added 5 commits July 5, 2026 02:43
Restructure examples/app-showcase/src into the same domain taxonomy the
metadata registry uses (DEFAULT_METADATA_TYPE_REGISTRY): data/, ui/,
automation/, system/, security/. Pure mechanical move (git mv) plus
import-specifier updates in objectstack.config.ts, the test files, and
the descriptive paths in the coverage manifest.
Two files are pinned in place by contract and stay at src/:
- src/coverage.ts — package export "./coverage"
- src/docs/ — the CLI doc collector requires a flat src/docs (ADR-0046)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…emonstrated or waived
Extend the coverage manifest from enum variants to metadata kinds:
KIND_COVERAGE enumerates DEFAULT_METADATA_TYPE_REGISTRY, and the coverage
test now fails when the platform gains a kind the showcase has not
accounted for, when a demonstrated kind's proof files go missing, or when
a waiver lacks a reason + tracking-issue link. STACK_COLLECTION_COVERAGE
applies the same contract to stack collections that are not registry
kinds (mappings, connectors).
Waivers (Prime Directive #10 — never fake coverage, never hide a gap):
- agent/tool/skill → #2610 (AI examples deferred; ADR-0063 cloud/MCP-only)
- mappings → #2611 (registered but never consumed)
- connectors → #2612 (declarative entries inert; live demo is plugin-based)
- trigger/router/function/service/external_catalog → #2613 (no declarative
authoring surface)
- validation notes the 6 unenforced rule types → #1475
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…he backbone
Close the two ≥app-crm parity gaps the coverage manifest can prove today:
- src/data/analytics/showcase.cube.ts — showcase_delivery cube over
showcase_task (count / estimate-hours aggregates / done-rate; status,
priority, assignee, due-date time dimension; many_to_one join to
showcase_project), wired via analyticsCubes and served by the
foundational analytics capability at /api/v1/analytics/*.
- src/data/extensions/account.extension.ts — additive overlay merged into
showcase_account (loyalty_tier / linkedin_url / csat_score, priority
210), wired via objectExtensions.
test/gap-fill.test.ts proves both: the stack wiring, the cube shape, and
the extension merge against the REAL SchemaRegistry (the same merge
registerApp performs at boot). STACK_COLLECTION_COVERAGE flips
analyticsCubes/objectExtensions to demonstrated.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
Give the showcase a front door that indexes every demo:
- Five tour docs (src/docs/showcase_tour_{data,ui,automation,system,
security}.md) — one per protocol domain, mirroring the src/ layout,
with live ```metadata embeds (ADR-0051: state machine, flow at
business detail, permission matrix) and honest pointers to the
coverage waivers. Docs-as-metadata demoing itself.
- ShowcaseBook gains a 'Guided Tour' group (explicit page list to fix
the domain order).
- showcase_capability_map — an html-kind SDUI home page with one card
per domain linking flagship demos + the domain tour; the AI card is
explicitly 'deferred' (ADR-0063, #2610), never a fake demo. Inserted
as the FIRST navigation item (the delivered landing convention —
homePageId has no console consumer). Start Here stays as the page-
authoring teaching index, relabeled 'Page Authoring'.
- e2e smoke sweeps the new landing; doc/book coverage entries point at
the tour files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…nt the new layout
- app-showcase/README.md: drop the false 'AI: an agent wired to a tool
and a skill' claim and the nonexistent src/agents/ tree entry; replace
with an explicit 'Where is AI?' waiver note (ADR-0063, #2610).
Document the six-domain directory layout (with the two pinned
exceptions and why), the two-level coverage contract, the guided tour
+ capability map, and the cube/extension additions. Fix the report-
types claim (tabular is a ListView lens per ADR-0021).
- package.json: description no longer advertises an AI capability chain.
- objectstack.config.ts: header comment reflects the tour layer and the
kind-level verification contract.
- examples/README.md: rewrite the stale catalog — plugin-bi does not
exist; app-crm, app-showcase, and embed-objectql do. Point 'which
example demonstrates what' at the CI-enforced coverage manifest
instead of a hand-maintained protocol table.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
@vercel

vercelBot commented Jul 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 5, 2026 4:22am

Request Review

claude added 2 commits July 5, 2026 04:17
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…ase-redesign-ougiov
# Conflicts:
#	examples/app-showcase/package.json
@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file tests size/xl labels Jul 5, 2026
@os-zhuang
os-zhuang merged commit 31faea1 into mainJul 5, 2026
16 checks passed
@os-zhuang
os-zhuang deleted the claude/metadata-showcase-redesign-ougiov branch July 5, 2026 04:27
xuyushun441-sys pushed a commit that referenced this pull request Jul 17, 2026
os-zhuang added a commit that referenced this pull request Jul 17, 2026
…ole coverage (#3082)
* docs(releases): expand v15 page to full 14.8→15.0→15.1 backend + Console coverage
The previous revision under-covered the line in three ways, now fixed:
1. 15.0.0 was missing everything outside the ADR-0095 theme from the
14.8.0..15.0.0 range: the strict view/page schema BREAKING change
(ADR-0089 D3a, #2943) with its migration, the per-row import automation
chain + skipAutomations + runAutomations-default-ON behavior change
(#2922), the sys_position/sys_capability system-row write guardrail
(#2930), the bidirectional visibility lint (#2931), and the explain
posture-label alignment (#2949).
2. 15.0.0 had NO Console section at all, despite bundling the objectui 14.0
major (13.2.0→14.0.0, ~73 commits — first release-page disclosure since
much of it rode unversioned in the 14.8.0 pin): the ADR-0057 ChatDock
consolidation (including its breaking cleanup #2475), the Gantt batch,
lists/forms/auth/Studio/i18n enhancements, two security fixes
(#2485/#2410), and the six early-14.1 commits the 15.0.0 pin picked up.
3. The 15.1.0 sections were over-compressed; every domain is now expanded to
its full changeset detail, and the Console 14.1 section covers all eight
areas of the 94-commit range instead of seven bullets.
465 → ~1000 lines; structure mirrors v14.mdx (per-minor annotations inside
one major page, per docs/releases-maintenance.md).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(releases): note post-14.1 fixes carried by the final Console pin (#2615/#2617/#2619/#2620/#2621/#2623)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(releases): add v15 to the releases index; mark v14 line final at 14.8.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency filedocumentationImprovements or additions to documentationsize/xltests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude