We welcome contributions! This guide covers how to get started.
- Node.js >= 18.0.0
- pnpm (recommended package manager)
- ESM project (
"type": "module")
# Fork the repo on GitHub, then:
git clone https://github.com/<your-username>/architect.git
cd architect
pnpm install
pnpm build && pnpm testpnpm build # Compile TypeScript
pnpm dev # Watch mode
pnpm test # Run all tests
pnpm test <pattern> # Run specific tests
pnpm typecheck # Type check without emit
pnpm lint # ESLint
pnpm format:check # Prettier checkThis package enforces strict Gherkin-only testing:
- All tests are
.featurefiles with step definitions in.steps.ts - No
.test.tsfiles — exception-free policy - Edge cases use
Scenario Outlinewith Examples tables - Feature files live in
tests/features/, step defs intests/steps/
A package that generates documentation from .feature files should demonstrate that Gherkin is sufficient for testing.
The project uses Husky with lint-staged. On every commit:
- ESLint + Prettier auto-fix on staged
.tsfiles - Prettier on staged
.json,.md,.ymlfiles
These run automatically — no manual setup needed after pnpm install.
- Create a branch from
main - Make your changes
- Run the full validation suite:
pnpm build && pnpm test && pnpm typecheck && pnpm lint && pnpm format:check
- Commit with a clear message describing the "why"
- PRs target the
mainbranch - CI runs on Node.js 18, 20, and 22
- All checks (build, test, typecheck, lint, format) must pass
- We review for consistency with the four-stage pipeline architecture (Scanner, Extractor, Transformer, Codec)
- Use GitHub Issues
- For security vulnerabilities, see SECURITY.md
Be respectful, constructive, and inclusive. We follow the Contributor Covenant.