Skip to content

feat(engine): workflow-engine skeleton — kernel/domain rings, gateway harness, typecheck gate#383

Open
leeovery wants to merge 3 commits into
mainfrom
feat/engine-skeleton
Open

feat(engine): workflow-engine skeleton — kernel/domain rings, gateway harness, typecheck gate#383
leeovery wants to merge 3 commits into
mainfrom
feat/engine-skeleton

Conversation

@leeovery

Copy link
Copy Markdown
Owner

What

PR 1 of the engine stack (Phase 0 of the build sequence in ideas/deterministic-tree-and-menu-renderer.md on feat/renderer).

Creates skills/workflow-engine/ — the designed home for everything deterministic — and moves the proven renderer spike in as its first module:

  • scripts/kernel/render.cjs — pure layout (signpost/box/tree + the wrap/budget core), CLI stripped, JSDoc contracts added. No workflow vocabulary.
  • scripts/domain/conventions.cjs — workflow glyph/tag/↳ composition (moved unchanged, typed).
  • scripts/gateway.cjs — the uniform adapter harness: verb dispatch (index/data/view/sub-views/fallback) + demarcated DATA/DISPLAY/MENU output sections.
  • scripts/lib.cjs — single in-process entry for adapters; scripts/engine.cjs — single CLI entry (render utilities for now).
  • workflow-render retired — it was unwired (zero call sites); contents live on in the rings.
  • Typecheck gatenpm run typecheck (tsc --noEmit checkJs over engine scripts); already caught one untyped contract.

Why

Settled in the engine design discussion: three rings (kernel / domain / adapters), typed-state-in-manifest, action-key routing, layered invocation. This PR is deliberately skeleton-only so the beachhead PR on top (epic dashboard read path) reviews the pattern in isolation.

Tests

npm test — 41 pass (renderer byte-exact suite + new gateway suite). npm run typecheck clean. CLI smoke-tested.

🤖 Generated with Claude Code

leeovery and others added 3 commits June 12, 2026 12:26
…entions

New self-contained workflow-render skill. Generic layout primitives
(render.cjs): fillTo/wrap/wrapWithPrefix core (the single home of the
gutter-budget math), signpost + box, and renderTree — a recursive
{ title, body?, children? } tree owning branch glyphs, the continuous │
gutter, and wrap-with-gutter-budget (the original overflow bug is
structurally impossible). Domain composition in conventions.cjs
(title/tag/derivedFrom/discoveryGlyph/titlecase). Library + CLI; no
build step. SKILL.md API reference; test-render.cjs (additive only — no
existing skill touched).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… harness, typecheck gate

The renderer spike becomes the first module of the workflow engine:
- kernel/render.cjs — pure layout (CLI stripped out, JSDoc contracts added)
- domain/conventions.cjs — workflow glyph/tag composition
- gateway.cjs — uniform verb dispatch + demarcated DATA/DISPLAY/MENU sections
- lib.cjs — single in-process entry; engine.cjs — single CLI entry
- workflow-render retired (was unwired); tsc --noEmit checkJs gate added

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… in SKILL.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant