Skip to content

Showcase optimization: protocol catch-up, page/doc dedupe, flow-node coverage, seed gap#2623

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

Showcase optimization: protocol catch-up, page/doc dedupe, flow-node coverage, seed gap#2623
os-zhuang merged 4 commits into
mainfrom
claude/metadata-showcase-redesign-ougiov

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Follow-up to #2619, from an internal audit of the showcase's own demos against the upgraded protocol. Four commits, each green on pnpm --filter @objectstack/example-showcase verify:

  1. fix(showcase) — protocol catch-up. The coverage manifest's validation waiver was STALE: the rule-validator now enforces every declared rule type (ADR-0020 "no silent no-ops" — the Validation rules: 6 of 9 spec rule types are declared but not enforced at runtime #1475 gap closed) and the showcase already demos each, so the note now states the truth and the proof files include project/invoice (cross_field, requiredWhen/readonlyWhen). Also adopts the 字段多的对象:自适应呈现表面 + 语义 field span(auto/full)+ 表单布局防呆 lint(AI-authored,ADR-0085 对齐) #2578 primitives the showcase predated: colSpan: 2span: 'full' on the task form, drop the deprecated pixel drawerWidth (renderer derives), and fix the stale "default landing" comment.
  2. refactor(showcase) — dedupe. Account Cockpit merged into Renewals Pipeline: the 360 panel now shows the hand-rolled useAdapter() KPI rollup next to the declarative ObjectChart/RecordRelatedList blocks — one page teaching the trade-off instead of two pages teaching it apart (react cluster: 4 → 3). showcase_metadata_views_guide.md refocused on the embed mechanism (the per-type embeds live in the domain tours now; tour_data gains the project-lifecycle embed). showcase_index.zh.md brought from a 16-line stub to parity. Command Center (HTML) now says on screen its KPI numbers are static sample copy, pointing at its data-bound twin.
  3. feat(showcase) — flow-node coverage. New InquiryPurgeFlow completes the CRUD node quartet (get_record + delete_record were undemonstrated), authored strictly to the executor contract (objectName/filter, edge-CEL routing). coverage.ts gains a flow-node dimension: every FlowNodeAction member must be demonstrated or waived-with-reason (the three BPMN-interop forms are waived in favor of the ADR-0031 structured containers the showcase already demos) — a new built-in node type now fails CI until the showcase catches up.
  4. feat(showcase) — seed gap. Three seeded inquiries (one per status) so the triage list renders on first boot; the automation tour now calls out that one task completion fires six flows by design.

Why

The platform's protocol moved (validation enforcement completed, #2578 semantic span / derived overlay size, run observability) while the showcase's own examples and its coverage manifest lagged. An audit found the drift, the redundancies, and one unguarded coverage dimension; this PR closes all of it and adds the CI guard so flow-node drift can't silently recur.

Verification

  • pnpm --filter @objectstack/example-showcase verify green at each commit (validate + typecheck + 50 tests — one new: flow-node coverage).
  • The new flow-node test proved itself: it enumerates FlowNodeAction from the spec, and passes only because InquiryPurgeFlow adds the two missing CRUD nodes.
  • No object/flow deletions: the audit confirmed every thin object and every notify/approval flow variant carries a distinct lesson (SemanticZooLegacy is a live regression guard for stageField: false).

🤖 Generated with Claude Code

https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs


Generated by Claude Code

claude added 4 commits July 5, 2026 04:44
…nt flip, span, derived drawer width

- coverage.ts: the validation waiver note claimed 6 of 9 rule types were
  unenforced (#1475) — the rule-validator now dispatches EVERY declared
  type (ADR-0020 'no silent no-ops'), and the showcase already demos each.
  Update the note to the truth and add project/invoice to the proof files
  (cross_field, requiredWhen/readonlyWhen).
- task.view.ts: colSpan:2 → span:'full' — adopt the #2578 semantic width
  primitive (absolute colSpan is legacy + lint-discouraged); this is now
  the showcase's demo of the new primitive.
- renewals-pipeline.page.ts: drop the deprecated pixel drawerWidth (#2578:
  the author can't know the client viewport; renderer derives the size).
- start-here.page.ts: fix the stale 'default landing' comment (the landing
  is the Capability Map).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…upe docs; zh index parity

- Renewals Pipeline absorbs the Account Cockpit lesson: the 360 panel now
  shows BOTH rollup styles side by side — a hand-rolled useAdapter() KPI
  strip next to the declarative ObjectChart/RecordRelatedList blocks —
  with the trade-off documented. account-cockpit.page.ts deleted; nav,
  exports, and config wiring cleaned (react cluster: 4 pages → 3 distinct
  teachings).
- showcase_metadata_views_guide.md: refocus on the ```metadata MECHANISM
  (fence shape, liveness lint, read-time resolution) with one live sample;
  the per-type embeds now live in the domain tours that explain them
  (tour_data gains the project lifecycle embed so every former view has a
  home). Removes the wholesale duplication with the tour docs.
- showcase_index.zh.md: bring the 16-line stub to parity with the English
  index (guided-tour navigation + the honest AI-waiver note).
- command-center-jsx: state on screen (and in the JSDoc) that the KPI
  numbers are static sample copy, pointing at the data-bound twin — the
  html-vs-full tier comparison stays honest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…rd demo

- InquiryPurgeFlow — a janitor flow completing the CRUD node quartet
  (create: InboundTaskWebhookFlow · update: ReassignWizardFlow · get +
  delete: here): get_record in records mode lands closed inquiries in an
  outputVariable, edge CEL gates on size(), delete_record purges by the
  same filter, notify reports. Config keys follow the executor contract
  exactly (objectName/filter — no aliases, Prime Directive #12).
- coverage.ts gains the flow-node dimension: collectFlowNodeTypes walks
  flows INCLUDING structured-container regions (ADR-0031), and
  FLOW_NODE_WAIVERS records the three BPMN-interop forms
  (parallel/join gateway, boundary_event) that authors express via the
  structured parallel/try_catch containers instead.
- coverage.test.ts asserts every FlowNodeAction member is demonstrated or
  waived-with-reason — a new built-in node type now fails CI until the
  showcase catches up, same contract as fields/charts/kinds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…n the tour

- Seed three inquiries (one per status) so the staff triage list and the
  Contact Form page render on first boot — the 'every view renders real
  data' principle had a gap here. The closed row doubles as live prey for
  InquiryPurgeFlow.
- Automation tour: call out that completing one task fires six flows BY
  DESIGN (one per mechanism) and that a real app would consolidate — the
  write amplification is a teaching device, not an accident.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
@vercel

vercel Bot commented Jul 5, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 5, 2026 4:59am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests size/m labels Jul 5, 2026
@os-zhuang os-zhuang marked this pull request as ready for review July 5, 2026 05:34
@os-zhuang os-zhuang merged commit 0a9232a into main Jul 5, 2026
15 checks passed
@os-zhuang os-zhuang deleted the claude/metadata-showcase-redesign-ougiov branch July 5, 2026 05:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants