yy-create-node-script

star 2

创建基于当前技能 `scripts/` 参考工程的 Node.js + TypeScript 脚本项目骨架,或按同一结构补齐空白/轻量脚本项目。 当用户需要快速落地命令行脚本、批处理脚本或文件处理流水线时触发,不用于后端服务、前端项目、单文件脚本片段或成熟项目重构。

bulls-cows By bulls-cows schedule Updated 6/6/2026

name: yy-create-node-script description: > 创建基于当前技能 scripts/ 参考工程的 Node.js + TypeScript 脚本项目骨架,或按同一结构补齐空白/轻量脚本项目。 当用户需要快速落地命令行脚本、批处理脚本或文件处理流水线时触发,不用于后端服务、前端项目、单文件脚本片段或成熟项目重构。

yy-create-node-script

描述

基于当前技能目录下 scripts/ 的权威参考工程,创建或补齐 Node.js + TypeScript 脚本项目。模板由真实脚本项目脱敏提炼而来,只保留通用脚本工程能力:环境参数读取、步骤编排、文件读写、日志输出、基础测试和代码检查配置。

使用场景

  • 用户需要新建 Node.js + TypeScript 脚本项目
  • 用户需要生成命令行脚本、批处理脚本或文件处理流水线的标准目录结构
  • 用户需要在空白或轻量项目中补齐脚本工程基础设施
  • 用户希望复用当前技能 scripts/ 参考工程中的配置、源码骨架和测试结构

不应触发:

  • 用户只需要单个 JavaScript 或 TypeScript 代码片段
  • 用户要创建 Express、NestJS、Koa 等后端服务项目
  • 用户要创建 Vue、React、Angular 等前端项目
  • 用户要对成熟现有项目做大规模迁移、重构或架构改造
  • 用户只是询问 Node.js、TypeScript 或命令行参数的概念和用法

指令

步骤 1. 确认任务边界与最小输入

收集完成任务所需的最小信息:

  • 项目名称,使用英文短横线命名,如 my-node-script
  • 目标目录
  • 脚本用途,用一句话描述输入、处理和输出
  • 必需环境变量,默认使用 INPUT_FILEOUTPUT_FILE
  • 是否需要保留模板的三段式处理流程,默认保留
  • 是否执行依赖安装与验证
  • 目标目录是新目录、空目录还是已有项目目录

决策分支

  • 用户已提供关键信息:直接进入步骤 2
  • 仅缺少少量必要信息:只追问缺失项,不重复确认已明确内容
  • 目标目录已有内容但处理边界不明:先确认只做补齐或对齐,不默认覆盖、删除或清空现有文件

步骤 2. 判定生成模式

以当前技能目录下的 scripts/ 为唯一权威参考,以 templates/ 中的轻量说明为快速校准材料。

决策分支

  • 目标目录不存在或为空目录:按“新建项目”模式处理,复制参考工程的基础骨架,再做最小定制
  • 目标目录已有少量工程文件,且用户明确要求对齐结构:按“补齐项目”模式处理,只新增缺失文件或修改与本次目标直接相关的文件
  • 目标目录已有成熟工程内容:说明该技能只适合脚手架创建和轻量对齐,要求用户缩小范围后再继续

步骤 3. 复制参考工程并过滤无效产物

scripts/ 复制项目骨架时,只保留可作为脚手架的一次性源文件,不复制缓存、安装产物和敏感运行数据。

决策分支

  • 新建项目模式:复制 scripts/ 中的基础目录、配置文件、源码骨架和测试文件
  • 补齐项目模式:逐项对照 scripts/,只补齐缺失的目录、配置和基础源码文件

禁止复制的内容

  • node_modules/
  • dist/
  • coverage/
  • logs/
  • .eslintcache
  • .env
  • package-lock.json
  • 其他缓存、临时目录、本地安装产物和业务运行资源

建议处理方式

  • package-lock.json 默认不复制,优先通过后续 npm install 重新生成
  • package.jsontsconfig.jsoneslint.config.mjs.prettierrc.json.editorconfig.gitignore.npmrc.nvmrc 直接以 scripts/ 同名文件为基准
  • .env.example 可按用户给出的环境变量名称做最小替换,不写入真实密钥、真实路径或真实业务参数

步骤 4. 生成目录结构与基础配置

确保目标项目至少具备与参考工程一致的基础目录结构:

project-name/
├── src/
│   ├── constants/
│   ├── steps/
│   ├── typings/
│   └── utils/
└── test/

配置文件处理规则:

  • 复制 scripts/package.json 后,仅调整项目名称、描述和用户明确要求的元数据
  • 保持 type: "module"main: "src/main.ts"#src/*#steps/*#utils/*#constants/* 导入映射
  • 保持 scripts/tsconfig.json 中的 Node.js ESM 与 TypeScript 严格模式配置
  • 保持 scripts/eslint.config.mjsscripts/.prettierrc.jsonscripts/.editorconfigscripts/.gitignore 的基础约束
  • 若用户需要额外环境变量,只更新 .env.examplesrc/constants/env.ts 中与本次目标直接相关的字段

步骤 5. 生成脚本流水线源码

优先复制 scripts/src/scripts/test/ 的基础文件,再围绕用户输入做最小定制。

必须保留的通用能力:

  • src/main.ts 作为统一入口,负责读取环境变量、调用步骤、记录结果和设置退出码
  • src/steps/ 按输入、转换、输出拆分处理流程
  • src/utils/ 放置文件、日志、进程、字符串和时间工具
  • src/typings/ 放置跨模块复用的结果类型
  • test/ 使用 Node.js 内置测试运行器验证主流程

决策分支

  • 用户没有提供具体业务步骤:保留模板中的 read-inputtransform-recordswrite-output 三段式流程
  • 用户提供了业务步骤名称:只调整步骤目录名、函数名和 README 说明,不引入真实业务数据或不可验证实现
  • 用户提供了真实敏感路径、密钥或业务样例:改写为占位示例,真实值只应由目标项目运行时自行配置

步骤 6. 安装依赖与验证

根据用户授权决定是否执行安装和验证。

决策分支

  • 用户明确要求安装依赖:在目标项目目录执行 npm install
  • 用户明确要求验证:按顺序执行 npm run typechecknpm testnpm run lint
  • 用户未授权执行安装或验证:不主动执行耗时命令,只在交付结果中给出建议命令
  • 验证失败:只修复与本次生成或定制直接相关的问题,不处理目标项目原有无关问题

步骤 7. 补齐 lint 支持

在项目创建或补齐完成后,检测当前环境是否可用 yy-enable-lint 技能,并在可用时触发该技能为项目添加 npm run lint 支持。

决策分支

  • 当前环境可用 yy-enable-lint:在目标项目目录触发 yy-enable-lint,使其按项目技术栈补齐 lint 支持
  • 当前环境不可用 yy-enable-lint:不阻塞项目生成,跳过 lint 补齐
  • 用户明确要求不补齐 lint 支持:跳过,仅在交付结果中说明
  • yy-enable-lint 执行失败:记录失败原因,不扩大处理范围

步骤 8. 输出结果

输出以下内容:

  1. 创建/补齐结果:说明目标项目名称、目标目录和生成模式
  2. 目录结构:列出生成或补齐的关键目录和文件
  3. 脱敏说明:说明模板不包含真实业务资源、日志、密钥、可执行程序和运行数据
  4. 定制摘要:说明项目名称、脚本用途、环境变量和步骤流程的调整
  5. 验证状态:说明已执行的命令和结果;如未执行,说明建议用户执行的命令

安全边界

  • 不复制真实 .env、日志、运行资源、业务样例、二进制可执行文件或用户私有数据
  • 不把参考项目中的业务术语、业务路径、客户信息、车辆信息、设备信息或专用解析逻辑写入目标项目
  • 不默认覆盖、删除或清空已有项目文件
  • 不默认执行安装、构建、测试、网络请求或外部程序调用
  • 不创建后端服务、前端应用或单文件脚本片段

相关资源

  • scripts/:完整脱敏参考工程,也是目录结构、配置和基础源码的唯一权威来源
  • templates/project-structure.md:目录结构与文件职责的轻量说明,权威来源仍为 scripts/
Install via CLI
npx skills add https://github.com/bulls-cows/skills --skill yy-create-node-script
Repository Details
star Stars 2
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator