Contributing to Scafix
Thanks for your interest in contributing! Here's how to get started.
Development Setup
bash
npm install
npm run buildRunning Tests
bash
npm run test # unit tests
npm run test:smoke # network smoke tests (downloads real CLIs)
npm run lint # ESLint
npm run typecheck # TypeScript type checkingAdding a New Stack Adapter
- Create
src/adapters/<stack>.adapter.tsimplementing theStackAdapterinterface. - Add a customization interface and prompt function in
src/prompts/customizations.ts. - Register the adapter in
src/adapters/index.ts. - Add unit tests in
tests/adapters/<stack>.adapter.test.ts. - Update the registry test count in
tests/adapters/registry.test.ts. - Add a card entry in
docs/components/stacks-section.tsx.
Code Style
- Run
npm run formatbefore committing. - Follow existing patterns for adapter structure (validate, prompt, exec, reconcile).
- Use the shared scaffold helpers in
src/adapters/shared/scaffold.ts.
Pull Requests
- Keep PRs focused on a single change.
- Include tests for new functionality.
- Ensure
npm run lint && npm run typecheck && npm run testpasses.
