You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Close the largest product-UX gap identified after comparing StoryCore with prompt-to-game builders: turn a short prompt into a reviewable public game specification, launch an explicit local playable preview, then create a deterministic source export.
Resolve or explicitly adjudicate the repository metadata mismatch (LICENSE: MIT, package.json: ISC) before distributing an export as a release artifact.
Public architecture
Reuse the existing desktop shell instead of creating a second application:
React workspace under creative-studio-ui/src;
Electron IPC for local filesystem and process boundaries;
src/game_bridge remains the validating/compiling authority;
Godot remains a non-authoritative consumer of the compiled manifest.
The first public drafting adapter is deliberately bounded and honest:
local-template converts a prompt plus explicit fields (locales, title, world, actor, drop-loop parameters) into contract v0.1;
it supports the original rune-drop fixture family only;
any future model/provider adapter is replaceable and its output is treated as untrusted until strict contract validation passes.
No claim of general text-to-any-game generation is allowed in v0.2.
UX states
Describe — prompt, locales and bounded gameplay options.
Review — editable structured fields plus JSON view.
Validate — exact field-path errors; never silently repair or discard unknown data.
Preview — user-triggered launch with a user-selected trusted Godot 4 executable.
Export — reproducible source bundle with specification, manifest, evidence and Godot project.
Browser-only mode may validate and export but must clearly explain that local playable preview requires the desktop shell.
Security and authority rules
no credentials, accounts, billing, hosted inference or network publishing;
no private commercial server, internal orchestration, reasoning modules, algorithms or provider adapters;
never pass user input through a shell command;
spawn the trusted Godot executable with a fixed argument vector, timeout and bounded log capture;
keep input/output under an explicitly selected workspace; reject traversal and symlink escapes;
treat the Godot process and all generated/model output as non-authoritative;
no automatic execution of downloaded projects;
no public-fork code on self-hosted runners carrying personal, signing, deployment or production credentials;
production authority may connect later only through the public external-contract boundary.
Deterministic export
Export a source-only bundle containing:
storycore_game_spec.json;
storycore_game_manifest.json;
storycore_game_evidence.json;
the public Godot template;
an export manifest with file paths, SHA-256 digests, contract/compiler version and declared license.
Use stable file ordering, normalized line endings and normalized archive timestamps. Do not bundle Godot binaries, model weights, generated private media or third-party assets.
A new user can enter a bounded game prompt, inspect every generated field, obtain explicit validation evidence, play the local fixture, and export a reproducible source bundle without an account, network call, private backend or proprietary component.
Outcome
Close the largest product-UX gap identified after comparing StoryCore with prompt-to-game builders: turn a short prompt into a reviewable public game specification, launch an explicit local playable preview, then create a deterministic source export.
Target flow:
prompt + bounded options -> editable draft spec -> strict validation -> trusted local Godot preview -> deterministic exportThis is a separate v0.2 slice. Do not expand or merge draft PR #44 as part of this issue.
Dependency and promotion gate
LICENSE: MIT,package.json: ISC) before distributing an export as a release artifact.Public architecture
Reuse the existing desktop shell instead of creating a second application:
creative-studio-ui/src;src/game_bridgeremains the validating/compiling authority;The first public drafting adapter is deliberately bounded and honest:
local-templateconverts a prompt plus explicit fields (locales, title, world, actor, drop-loop parameters) into contract v0.1;No claim of general text-to-any-game generation is allowed in v0.2.
UX states
Browser-only mode may validate and export but must clearly explain that local playable preview requires the desktop shell.
Security and authority rules
external-contractboundary.Deterministic export
Export a source-only bundle containing:
storycore_game_spec.json;storycore_game_manifest.json;storycore_game_evidence.json;Use stable file ordering, normalized line endings and normalized archive timestamps. Do not bundle Godot binaries, model weights, generated private media or third-party assets.
Acceptance criteria
STORYCORE_GAME_SMOKE_PASS;.., unexpected characters and symlink escapes;Non-goals
Exit condition
A new user can enter a bounded game prompt, inspect every generated field, obtain explicit validation evidence, play the local fixture, and export a reproducible source bundle without an account, network call, private backend or proprietary component.