From c5b361fdf923e2d9050475a971bd5138eba0b2ad Mon Sep 17 00:00:00 2001 From: paulleseute <55874177+paulleseute@users.noreply.github.com> Date: Wed, 15 Jul 2026 17:46:37 +0200 Subject: [PATCH 01/13] feat: init ecom template (#943) --- packages/create-skybridge/src/index.ts | 74 ++++--- .../templates/ecom/.dockerignore | 4 + .../templates/ecom/.env.template | 2 + .../create-skybridge/templates/ecom/AGENTS.md | 2 + .../templates/ecom/Dockerfile | 53 +++++ .../create-skybridge/templates/ecom/README.md | 92 +++++++++ .../templates/ecom/_gitignore | 8 + .../templates/ecom/alpic.json | 3 + .../templates/ecom/package.json | 29 +++ .../templates/ecom/src/config.ts | 12 ++ .../templates/ecom/src/helpers.ts | 4 + .../templates/ecom/src/server.ts | 36 ++++ .../ecom/src/tools/search-products.ts | 185 ++++++++++++++++++ .../templates/ecom/tsconfig.json | 5 + .../templates/ecom/vite.config.ts | 6 + pnpm-lock.yaml | 28 +++ pnpm-workspace.yaml | 1 + skills/chatgpt-app-builder/SKILL.md | 2 + .../references/copy-template.md | 3 + .../references/ecommerce.md | 68 +++++++ skills/mcp-app-builder/SKILL.md | 2 + skills/skybridge/SKILL.md | 2 + 22 files changed, 596 insertions(+), 25 deletions(-) create mode 100644 packages/create-skybridge/templates/ecom/.dockerignore create mode 100644 packages/create-skybridge/templates/ecom/.env.template create mode 100644 packages/create-skybridge/templates/ecom/AGENTS.md create mode 100644 packages/create-skybridge/templates/ecom/Dockerfile create mode 100644 packages/create-skybridge/templates/ecom/README.md create mode 100644 packages/create-skybridge/templates/ecom/_gitignore create mode 100644 packages/create-skybridge/templates/ecom/alpic.json create mode 100644 packages/create-skybridge/templates/ecom/package.json create mode 100644 packages/create-skybridge/templates/ecom/src/config.ts create mode 100644 packages/create-skybridge/templates/ecom/src/helpers.ts create mode 100644 packages/create-skybridge/templates/ecom/src/server.ts create mode 100644 packages/create-skybridge/templates/ecom/src/tools/search-products.ts create mode 100644 packages/create-skybridge/templates/ecom/tsconfig.json create mode 100644 packages/create-skybridge/templates/ecom/vite.config.ts create mode 100644 skills/chatgpt-app-builder/references/ecommerce.md diff --git a/packages/create-skybridge/src/index.ts b/packages/create-skybridge/src/index.ts index 87c89bf76..7f415c9da 100644 --- a/packages/create-skybridge/src/index.ts +++ b/packages/create-skybridge/src/index.ts @@ -12,7 +12,7 @@ const DEFAULT_PROJECT_NAME = "skybridge-project"; const PACKAGE_MANAGERS = ["bun", "deno", "npm", "pnpm", "yarn"] as const; type PackageManager = (typeof PACKAGE_MANAGERS)[number]; -const TEMPLATES = ["demo", "blank"] as const; +const TEMPLATES = ["demo", "blank", "ecom"] as const; type Template = (typeof TEMPLATES)[number]; const pkg = JSON.parse( @@ -32,6 +32,7 @@ Arguments: Options: --blank scaffold a minimal project without demo tools and views + --ecom scaffold the ecommerce template (search products, render carousel) --overwrite remove existing files if target directory is not empty --pm package manager to use (choices: ${PACKAGE_MANAGERS.join(", ")}. default to npm when none is provided or infered) --skip-skills skip installing coding agent skills @@ -74,13 +75,22 @@ export async function init(args: string[] = process.argv.slice(2)) { const argv = mri<{ help?: boolean; blank?: boolean; + ecom?: boolean; overwrite?: boolean; pm?: string; "skip-skills"?: boolean; start?: boolean; yes?: boolean; }>(args, { - boolean: ["help", "blank", "overwrite", "skip-skills", "start", "yes"], + boolean: [ + "help", + "blank", + "ecom", + "overwrite", + "skip-skills", + "start", + "yes", + ], string: ["pm"], alias: { h: "help" }, }); @@ -153,32 +163,46 @@ export async function init(args: string[] = process.argv.slice(2)) { } // 3. Template - let template: Template; + let template: Template | undefined; if (argv.blank) { template = "blank"; - } else if (yes) { - template = "demo"; - } else { - const choice = await prompts.select