@mikert/guardrails
v1.0.0
Published
Mrm preset for project guardrails - CI workflows, Husky, and lint-staged
Maintainers
Readme
@mikert/guardrails
Mrm preset for project guardrails - sets up CI workflows, Husky pre-commit hooks, and lint-staged.
Usage
# Run all tasks
npx mrm husky ci-workflow --preset @mikert/guardrails
# Run individual tasks
npx mrm husky --preset @mikert/guardrails
npx mrm ci-workflow --preset @mikert/guardrailsTasks
husky
Sets up Husky with lint-staged for pre-commit hooks.
What it does:
- Installs
huskyandlint-staged - Adds
preparescript to package.json - Creates
.husky/pre-commithook - Configures lint-staged rules
Default lint-staged rules:
{
"*.{js,ts,tsx}": ["eslint --fix", "prettier --write"],
"*.{json,md,yml,yaml}": ["prettier --write"]
}Custom configuration:
npx mrm husky --preset @mikert/guardrails --config:lintStagedRules='{"*.py": ["black"]}'ci-workflow
Sets up GitHub Actions CI workflow.
What it does:
- Creates
.github/workflows/ci.yml - Configures checkout, Node.js setup, and npm install
- Optionally runs lint, build, and test steps
Default configuration:
- Node.js version: 20
- Branches: main, master
- Steps: lint, build, test (all enabled)
Custom configuration:
npx mrm ci-workflow --preset @mikert/guardrails --config:nodeVersion=18 --config:runTests=falseConfiguration
Create a ~/.mrm/config.json file to set your defaults:
{
"preset": "@mikert/guardrails",
"husky": {
"lintStagedRules": {
"*.{js,ts,tsx}": ["eslint --fix", "prettier --write"]
}
},
"ciWorkflow": {
"nodeVersion": "20",
"branches": ["main", "develop"]
}
}License
MIT
