Gen startup bat
Analyze a project's frontend/backend startup methods and generate a Windows .bat script that users can double-click to launch both services and open a browser automatically. Use when user wants to create a startup script, generate a .bat file to start the project, or mentions "啟動腳本"、"start script"、"bat檔"、"一鍵啟動"、"雙擊啟動"、"startup bat"、"gen bat"、"產生bat"。From its SKILL.md
npx -y skills add hsinhan-h/hh-claude-skills --skill gen-startup-batAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Gen Startup BAT
Workflow
Step 1 — Scan project structure
Read in order of preference:
CLAUDE.md— look for dev command blocks and port info- frontend package manifests, checking common locations first:
client/,frontend/,web/,app/, then repo rootpackage.json; for monorepos also inspectpnpm-workspace.yaml,package.jsonworkspaces,turbo.json, andnx.json *.sln→ referenced*.csproj; if no.slnis useful, search for*.csprojand prefer web/API projects withProperties/launchSettings.jsonREADME.md— fallback if no structured config found
Identify:
- Frontend dir + dev command (e.g.
npm run dev, withoutcd) - Backend dir + run command: locate the
.csprojfile name → default todotnet run --project .\<name>.csproj - Backend URL from
launchSettings.json→ select acommandName: "Project"profile when available → readapplicationUrl; preserve the full URL list and prefer HTTPS only when choosing a browser/API URL - Frontend dev server URL from
vite.config.*/quasar.config.*/ framework configserver.port; if not found, infer common defaults from scripts/frameworks
Frontend detection details
- Prefer a package manifest that contains a runnable
dev,start, or framework-specific dev script over one that only contains build/test scripts. - In monorepos, inspect workspace packages and choose the app-like package (
vite,quasar,next,nuxt,react-scripts,astro, etc.) rather than shared libraries. - Determine the package manager from lockfiles in the frontend dir first, then parent/workspace root:
pnpm-lock.yaml→pnpmyarn.lock→yarnbun.lockorbun.lockb→bunpackage-lock.json→npm
- Build the dev command from the detected package manager:
- npm:
npm run devornpm start - pnpm:
pnpm devorpnpm start - yarn:
yarn devoryarn start - bun:
bun run devorbun start
- npm:
ASP.NET detection details
- Prefer
.csprojfiles referenced by the.sln; otherwise search recursively. - Prefer projects with
Microsoft.NET.Sdk.Web,launchSettings.json, names containingApi,Web,Server, orBackend, or references to ASP.NET Core packages. - When reading
Properties/launchSettings.json, ignoreIIS Expressprofiles unless noProjectprofile exists. - If
applicationUrlcontains multiple URLs separated by;, keep them all. Use the first HTTPS URL as the preferred backend URL; otherwise use the first HTTP URL. - Use
dotnet run --project .\<name>.csprojby default from the backend project directory. Offerdotnet watch --project .\<name>.csprojonly as an alternative, not the default.
Step 2 — Ask user to confirm
Present findings and ask (one message, all at once):
- Frontend command correct? (show detected, allow override)
- Backend command correct? (show detected, allow override; offer
dotnet watch --project .\<name>.csprojas alternative) - Browser URL to open? (default: detected frontend dev server URL)
- Seconds to wait before opening browser? (default:
20) - Output filename? (default:
<projectName>.batat project root, where<projectName>is the working directory folder name)
Step 3 — Generate .bat file
Use the template in REFERENCE.md.
Fill in variables:
{backendLabel}—{projectName} - API(derive{projectName}from working directory folder name){frontendLabel}—{projectName} - Client{backendDir}— absolute path to backend project folder{backendCommand}—dotnet run --project .\<name>.csproj(default) ordotnet watch --project .\<name>.csproj{frontendDir}— absolute path to frontend folder{frontendCommand}— dev command withoutcd{browserDelay}— seconds to wait before opening browser (default:20){browserUrl}— confirmed URL
Escape generated .bat values carefully:
- Quote paths with doubled quotes inside the
cmd /kstring:cd /d ""C:\Path With Spaces"" - Keep commands as command text, not quoted paths, unless the command itself requires quotes
- Preserve user-supplied command overrides exactly after confirmation
Write the file to the specified output path.
Step 4 — Report
Tell the user:
- Path of the generated
.batfile - What each terminal window will run
- How to stop services (close the individual terminal windows)
What ships with it: 1 file
3.4 KB alongside SKILL.md
- REFERENCE.md3.4 KB