Gen startup bat
Practical Claude Code skills for real-world project development - by HH
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.
What its author says it does
Copied from the file, not written here
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"。
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