One-shot scaffolding for new projects with strict TypeScript, ESLint flat-config, Prettier, format-on-save VS Code, Husky + commitlint + lint-staged, and
CLAUDE.md/AGENTS.md/README.mdtemplates.
claude plugin marketplace add bymaxone/bymax-claude-code
claude plugin install bymax-bootstrap@bymax-claude-code| Command | Purpose |
|---|---|
/bymax-bootstrap:bootstrap |
New project — full scaffold. Detects (or asks) the stack, picks the right ESLint preset, writes everything. |
/bymax-bootstrap:upgrade-standards |
Existing project — non-destructive incremental upgrade with confirmation per change. |
| File | Purpose |
|---|---|
tsconfig.universal.json |
Strict TS + noUncheckedIndexedAccess + path aliases. |
prettier.universal.json |
100 col, single quotes, trailing comma all, LF. |
editorconfig.universal |
Cross-IDE consistency (indent, EOL, trim trailing). |
gitignore.universal |
Comprehensive ignores for Node / Next / Expo / Vite / etc. |
vscode-settings.json |
Format on save, ESLint flat-config, Tailwind IntelliSense. |
vscode-extensions.json |
Recommended extensions on first repo open. |
commitlint.universal.cjs |
Conventional Commits enforcement. |
lint-staged.universal.cjs |
Stage-only lint + format on commit. |
husky-pre-commit |
Runs lint-staged on staged files. |
husky-commit-msg |
Runs commitlint on the message. |
| File | Stack |
|---|---|
eslint.config.universal.cjs |
Composable base layer (security plugin + import-order + suppression bans + risky-import bans + Prettier integration). Each per-stack config spreads this on top of its preset. |
eslint.config.next.cjs |
Next.js + TypeScript (App Router or Pages). |
eslint.config.expo-rn.cjs |
Expo / React Native + TypeScript. |
eslint.config.vite-react.cjs |
Vite + React + TypeScript. |
eslint.config.node.cjs |
Node backend (Express / Fastify / Hono / NestJS / plain Node). |
eslint.config.tailwind.cjs |
Overlay — spread on top of any base. Auto-detects Tailwind major version. v3: just sorting + shorthand + no-contradicting. v4: adds canonical-class warnings (CSS variable shorthand (--x) and ARIA boolean variants aria-invalid:, etc.). |
All five base configs enforce: no cross-feature imports, ban enum (use unions), ban suppression comments, force node:crypto over plain crypto, ban bcrypt/crypto-js/md5/uuid/nanoid.
| File | Used by |
|---|---|
claude-md.template.md |
/bymax-bootstrap:bootstrap — generates CLAUDE.md in the new project. |
spec.template.md |
/bymax-workflow:spec (in bymax-workflow) |
roadmap.template.md |
/bymax-workflow:roadmap (in bymax-workflow) |
phase-tasks.template.md |
/bymax-workflow:phase-tasks (in bymax-workflow) |
These render CLAUDE.md, then the spec → roadmap → phase-tasks docs your project's docs/ ends up with.
Looking for the public-facing project starter templates (the elaborate
CLAUDE.md,AGENTS.md, andREADME.md)? Those live at the repo root in/templates/. Theclaude-md.template.mdhere is the leaner template that/bymax-bootstrap:bootstrapwrites for new projects — the root templates are reference / fork material, not consumed by/bymax-bootstrap:bootstrap.
cd ~/projects/my-new-app
# tell Claude Code:
"bootstrap a new Next.js project here"
# /bymax-bootstrap:bootstrap activates → detects stack → asks confirmation → writes all configs
# you `pnpm install` and run all four gates:
pnpm type-check && pnpm lint && pnpm format:check && pnpm test --passWithNoTestscd ~/projects/legacy-app
# tell Claude Code:
"upgrade this project to Bymax standards"
# /bymax-bootstrap:upgrade-standards activates → audits → groups changes by risk → asks per bucket🟢 Safe (auto-applied with one confirm): .vscode/, .editorconfig, .gitignore merge, Prettier, CLAUDE.md if missing.
🟡 Needs install (asks): Husky + commitlint + lint-staged + security plugin.
🔴 Potentially breaking (asks per item, dry-runs first): strengthen tsconfig.json, promote rules from warn to error, ban enum, ban cross-feature imports.
MIT — see root LICENSE.