Bootstrap, verify, audit, and sync open-source JavaScript/TypeScript repositories.
oss-bootstrap is a repo lifecycle tool. It does more than generate files once: it helps you create a clean starter, check whether the repo works, detect drift, and sync template-backed standards over time.
Most generators stop after scaffolding.
oss-bootstrap is built around this loop:
init -> verify -> audit -> sync
That gives you one tool for:
- starting a new OSS library
- standardizing an existing repo
- detecting missing standards
- keeping multiple repos aligned over time
v1 supports one robust starter path:
starter-lib-ts
It includes:
- TypeScript library starter files
- community health documents
- CI and release workflow templates
- repo-local
AGENTS.md - lifecycle commands:
init,verify,audit,sync
Run locally from this repo:
node src/cli.js --helpOr from the workspace root:
npm run oss:bootstrap -- --helpv0.1.0 means one starter path is stable enough to use end to end:
initcan scaffold a repo fromstarter-lib-tsauditreports required repo standards correctlysynccan detect and repair managed-file driftverifycan pass after dependencies are installed in the generated repo
Before tagging a release in this repo, run:
npm run checkThat command lint-checks this CLI code and runs a generated-repo smoke test for the full lifecycle loop.
node src/cli.js init \
--target ../demo-lib \
--name demo-lib \
--description "A demo OSS library" \
--github-user Hazel-Lin \
--author-name "Hazel Lin" \
--author-email "hazel@example.com"node src/cli.js verify --target ../demo-libnode src/cli.js audit --target ../demo-libnode src/cli.js sync --target ../demo-lib --dry-runinit: scaffold a new repo fromstarter-lib-tsverify: run required checks and core scripts, then returnPASSorFAILaudit: inspect a repo for missing standards and driftsync: write template-backed standard files back into an existing repo
Lifecycle commands should always give you:
- a clear status
- a short summary
- actionable next steps when incomplete
- JSON output when requested
- one strong starter beats many partial ones
synconly manages template-owned standard files- user product code stays out of scope
- publishing remains manual
This project stays in manual 0.x versioning for v1:
0.1.xfor fixes, doc improvements, and tighter validation without changing the core workflow0.2.0and later when a new stable capability or starter is added1.0.0only after the lifecycle contract is stable enough for long-term external use
- richer drift rules
- starter-specific audit packs
- config file support
- additional starter types after the lifecycle loop is solid