Multi-language project scaffolding with composable enhancement layers and AGENTS.md built in.
Generates projects pre-configured with lint/format/health/release defaults (JS/TS encode real workspace conventions; other stacks ship clean baselines).
npx @jml6m/skeletor new my-api --template typescript --with-recommendedCurrent release: v0.2.x on npm (latest).
Run skeletor new my-project for an interactive selector, or pass --template <id>.
| Template | Notes |
|---|---|
javascript |
CJS — Prettier, ESLint, aliases, health tools, husky, AGENTS.md |
typescript |
ESM + strict TS, flat ESLint, build, quality gates, AGENTS.md |
python |
pyproject.toml, ruff, pytest, mypy, src layout |
go |
Standard module + tests |
rust |
Cargo — --layout single|lib|workspace |
java |
Maven + JUnit 5 |
csharp |
.NET 8 + xUnit |
Each template declares verifyCommands in template.json — the post-scaffold steps to run locally. CI runs them in the verify-templates job.
# Interactive
npx @jml6m/skeletor new my-project
# TypeScript + recommended enhancement layers
npx @jml6m/skeletor new my-api --template typescript --with-recommended
# Non-interactive — pass --owner when auto-detection cannot run
npx @jml6m/skeletor new my-service --auto --template go --owner acme-corp--template <id>— stack to scaffold--with-recommended/--with <layers>/--bundle <name>— enhancement layers--owner <user>— skips GitHub owner auto-detection--description <text>— optional (generic default when omitted)--auto— non-interactive; requires--template--no-git— skipgit init
Interactive prompts use select lists with (recommended) labels. enhance blocks dirty git trees unless --allow-dirty.
Apply during new or later via enhance:
skeletor enhance --add governance,quality-gates
skeletor enhance --listLayers are recorded in .skeletor/manifest.json.
@clack/prompts drives template selection, owner detection (git remote → package.json → gh CLI), layer prompts, and confirmations.
- Developers pick language + flavor.
- Personal conventions live in JS/TS templates; other stacks start from solid defaults.
- Add templates under
templates/<id>/— auto-discovered by CLI and tests. - Dependency manifests in templates use
.tmplsuffix (see rootAGENTS.md).
npm install
npm test # fast — generation + contract checks
npm run test:verify # full — runs each template's verifyCommands (needs toolchains)
npm run lint:encodingTag-driven CI publish uses npm Trusted Publishing. See docs/RELEASE.md.
- npm: @jml6m/skeletor
- GitHub: jml6m/skeletor
Feedback welcome via GitHub issues.