eliteforge-frontend-generator

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

EliteForge 前端生成器

EliteForge 前端生成器

Overview

概述

Generate frontend projects with deterministic rules from the online generator app. Use the bundled script to produce a dry-run payload/command preview or run project creation directly. Project name is mandatory:
fe-<company_name>-<product_name>-<service_name>
.
根据在线生成器应用的确定性规则生成前端项目。使用捆绑脚本生成预演(dry-run)负载/命令预览,或直接运行项目创建。项目名称为必填项,格式为:
fe-<company_name>-<product_name>-<service_name>

Package Manager Policy

包管理器策略

  • Treat
    pnpm
    as the only package manager for generated frontend projects.
  • After project generation, always initialize dependencies with
    pnpm i
    inside the generated project directory.
  • Do not replace
    pnpm i
    with
    npm install
    ,
    yarn
    , or
    pnpm install
    .
  • pnpm
    作为生成的前端项目的唯一包管理器。
  • 项目生成完成后,务必在生成的项目目录内执行
    pnpm i
    初始化依赖。
  • 不得将
    pnpm i
    替换为
    npm install
    yarn
    pnpm install

Project Naming Policy

项目命名策略

  • Always pass
    project_name
    to scaffold CLI as
    fe-<company_slug>-<product_slug>-<service_slug>
    .
  • Never drop the
    fe-
    prefix.
  • Never append project-type suffixes such as
    -app
    ,
    -ui
    , or
    -sdk
    .
  • 必须以
    fe-<company_slug>-<product_slug>-<service_slug>
    的格式将
    project_name
    传入搭建CLI。
  • 切勿省略
    fe-
    前缀。
  • 切勿添加
    -app
    -ui
    -sdk
    等项目类型后缀。

Mandatory Input Policy

必填输入策略

  • Treat
    project_type
    ,
    company_name
    ,
    product_name
    , and
    service_name
    as required and user-provided only.
  • Never infer required fields from repository name, current directory, previous conversation values, defaults, or examples.
  • If any required field is missing, stop and ask only for missing fields first.
  • Do not run dry-run or generation before all required fields are explicitly provided by the user.
  • If user input is ambiguous (for example "same as before" or "use default"), ask for explicit values.
  • project_type
    company_name
    product_name
    service_name
    视为必填项,且必须由用户提供。
  • 切勿从仓库名称、当前目录、历史对话内容、默认值或示例中推断必填字段。
  • 若存在缺失的必填字段,需先暂停操作,仅询问缺失的字段。
  • 在所有必填字段由用户明确提供前,不得执行预演或生成操作。
  • 若用户输入模糊(例如“和之前一样”或“使用默认值”),需请求用户提供明确值。

Inputs

输入字段

Collect the following fields.
Required (must come from the user message):
  • project_type
    :
    frontend_app
    ,
    frontend_ui
    , or
    frontend_sdk
  • company_name
    : kebab-case
  • product_name
    : kebab-case
  • service_name
    : kebab-case
Optional:
  • cli_name
    : default
    onebase-cli
  • output_dir
    : default current working directory
  • auto_slugify
    : default
    false
    ; use only when the user explicitly asks to convert non-kebab names
收集以下字段:
必填项(必须来自用户消息):
  • project_type
    frontend_app
    frontend_ui
    frontend_sdk
  • company_name
    :短横线命名法(kebab-case)
  • product_name
    :短横线命名法(kebab-case)
  • service_name
    :短横线命名法(kebab-case)
可选项:
  • cli_name
    :默认值为
    onebase-cli
  • output_dir
    :默认值为当前工作目录
  • auto_slugify
    :默认值为
    false
    ;仅当用户明确要求转换非短横线命名格式时使用

Workflow

工作流程

  1. Collect required fields only from explicit user input.
  2. If required fields are missing, ask only for the missing fields and wait for user response.
  3. Validate naming fields as kebab-case.
  4. If naming is invalid and
    auto_slugify
    is not explicitly requested, ask the user to provide kebab-case values.
  5. Run dry-run first to show payload and command.
  6. Verify dry-run command uses
    -p fe-<company_slug>-<product_slug>-<service_slug>
    .
  7. Execute the create command.
  8. Change to generated project directory and run
    pnpm i
    .
  9. Confirm generated folder exists and initialization completed.
Read references/frontend-generation-logic.md when the user asks why a template or project name is chosen.
  1. 仅从用户明确输入中收集必填字段。
  2. 若存在缺失的必填字段,仅询问缺失字段并等待用户回复。
  3. 验证命名字段是否符合短横线命名法(kebab-case)。
  4. 若命名格式无效且未明确请求
    auto_slugify
    ,请用户提供符合短横线命名法的值。
  5. 先执行预演(dry-run)以展示负载和命令。
  6. 确认预演命令使用
    -p fe-<company_slug>-<product_slug>-<service_slug>
    格式。
  7. 执行创建命令。
  8. 切换到生成的项目目录并执行
    pnpm i
  9. 确认生成的文件夹存在且初始化完成。
当用户询问为何选择某模板或项目名称时,请查阅references/frontend-generation-logic.md

Commands

命令

Dry-run:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service \
  --dry-run
Generate
frontend_app
:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service

cd fe-cisdigital-your-product-your-service
pnpm i
Generate
frontend_ui
:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_ui \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-component

cd fe-cisdigital-your-product-your-component
pnpm i
Generate
frontend_sdk
:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_sdk \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-jsdk

cd fe-cisdigital-your-product-your-jsdk
pnpm i
Use custom CLI or output directory:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service \
  --cli-name onebase-cli \
  --output-dir /path/to/workspace

cd /path/to/workspace/fe-cisdigital-your-product-your-service
pnpm i
Convert non-kebab input (only when user explicitly requests conversion):
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name "CIS Digital" \
  --product-name "My Product" \
  --service-name "Portal UI" \
  --auto-slugify \
  --dry-run
预演(dry-run):
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service \
  --dry-run
生成
frontend_app
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service

cd fe-cisdigital-your-product-your-service
pnpm i
生成
frontend_ui
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_ui \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-component

cd fe-cisdigital-your-product-your-component
pnpm i
生成
frontend_sdk
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_sdk \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-jsdk

cd fe-cisdigital-your-product-your-jsdk
pnpm i
使用自定义CLI或输出目录:
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name cisdigital \
  --product-name your-product \
  --service-name your-service \
  --cli-name onebase-cli \
  --output-dir /path/to/workspace

cd /path/to/workspace/fe-cisdigital-your-product-your-service
pnpm i
转换非短横线命名格式(仅当用户明确请求转换时使用):
bash
python3 scripts/create_frontend_project.py \
  --project-type frontend_app \
  --company-name "CIS Digital" \
  --product-name "My Product" \
  --service-name "Portal UI" \
  --auto-slugify \
  --dry-run

Notes

注意事项

  • frontend_project_type
    exists in the form data but does not affect template selection in current generator logic.
  • The script blocks generation if target project directory already exists.
  • Always initialize generated projects with
    pnpm i
    .
  • Generated project directory name is exactly
    fe-<company_slug>-<product_slug>-<service_slug>
    .
  • Keep output concise: return generated directory, create command, and
    pnpm i
    result.
  • Never guess or fill missing required fields on behalf of the user.
  • frontend_project_type
    存在于表单数据中,但在当前生成器逻辑中不影响模板选择。
  • 若目标项目目录已存在,脚本将阻止生成操作。
  • 务必使用
    pnpm i
    初始化生成的项目。
  • 生成的项目目录名称严格为
    fe-<company_slug>-<product_slug>-<service_slug>
  • 输出内容需简洁:返回生成的目录、创建命令以及
    pnpm i
    的执行结果。
  • 切勿猜测或替用户补充缺失的必填字段。