Thank you for your interest in contributing! This guide covers everything you need to get started.
# 1. Fork https://github.com/maystudios/maxsimcli, then clone your fork
git clone https://github.com/<your-username>/maxsimcli.git
cd maxsimcli
# 2. Install dependencies
npm install
# 3. Build all packages
npm run build
# 4. Run unit tests
npm test
# 5. Run e2e tests (requires build)
cd packages/cli && npx vitest run --config vitest.e2e.config.ts
# Or simply: `npm run e2e`Note: E2E tests are not yet implemented. The command will be skipped if no test files are found.
Requirements: Node >= 22.0.0
Use descriptive, lowercase, hyphen-separated names:
feat/add-new-command-name
fix/install-path-resolution
docs/update-contributing-guide
refactor/cli-router-cleanup
All commits must follow Conventional Commits. This is not optional — semantic-release reads commit prefixes to determine version bumps and changelog entries automatically.
<type>(<scope>): <short description>
[optional body]
| Type | When to use | Version bump |
|---|---|---|
fix: |
Bug fix | patch (1.0.8 → 1.0.9) |
feat: |
New feature | minor (1.0.8 → 1.1.0) |
fix!: / feat!: |
Breaking change | major (1.0.8 → 2.0.0) |
chore: |
Maintenance, build changes, version bumps | none |
docs: |
Documentation only | none |
test: |
Adding or fixing tests | none |
refactor: |
Code change that's neither fix nor feature | none |
git commit -m "fix(install): copy maxsim-tools.cjs to bin/ during install"
git commit -m "feat(cli): add new phase:insert command"
git commit -m "docs: update README with new model profiles"
git commit -m "feat!: rename STATE.md fields — breaks existing projects"Note:
chore:,docs:, andtest:commits do not trigger a publish to npm.fix:andfeat:do.
This project uses Biome for linting.
npm run lint # Check
npm run lint -- --write # Auto-fix (passes --write through to Biome)Biome runs automatically on CI. PRs with lint failures will not be merged.
Key locations for common tasks:
| Task | Location |
|---|---|
| Add a new CLI tool command | packages/cli/src/cli.ts (registry-based dispatch — currently a stub; commands will be registered in a future phase) + relevant module in src/core/ |
| Add a new workflow | templates/workflows/ |
| Add a new agent | templates/agents/ |
| Change model assignments | MODEL_PROFILES in packages/cli/src/core/types.ts |
| Change install behavior | packages/cli/src/install/index.ts |
| Modify hooks | packages/cli/src/hooks/ |
Static assets (commands, agents, workflows) live in templates/ at the repo root. See PROJECT.md for the full architecture overview.
-
npm run buildpasses with no errors -
npm testpasses -
npm run lintpasses - Commits follow Conventional Commits format
- No direct edits to
packages/cli/README.md— it is auto-generated by the build from the rootREADME.md
Use the GitHub issue templates — they guide you through providing the information needed to act on your report quickly.