Contributing to AI Code Toolkit
December 8, 2025 · View on GitHub
Help us scale AI coding agents with better scaffolding, patterns, and validation!
Thank you for considering contributing to AI Code Toolkit! We're excited to have you join our community. This guide will help you get started and ensure a smooth contribution process.
Contents
Found an Issue?
Thank you for reporting issues! Your feedback helps make AI Code Toolkit more robust.
When reporting issues, please:
- Title format:
<Error> when <Task>(e.g., "Template validation fails when using custom variables") - Add labels: Tag with
bug,enhancement,documentation, etc. - Include details:
- Short summary of what you're trying to do
- Steps to reproduce the issue
- Error logs or stack traces (if applicable)
- Exact version:
npm ls @agiflowai/scaffold-mcp - Node.js version:
node --version - Operating system
- Be awesome: Consider contributing a pull request with a fix!
Report issues here: GitHub Issues
Want to Contribute?
We appreciate all contributions! Please follow these guidelines when submitting pull requests.
Coding Rules
Keep the codebase clean and consistent
- Biome is king - We use Biome for linting and formatting
- Run
pnpm formatbefore committing - Run
pnpm lint:fixto auto-fix issues
- Run
- Favor micro-libraries - Prefer small, focused libraries over monolithic ones
- Type safety - All code must be fully typed (TypeScript strict mode)
- Test coverage - Add tests for new features and bug fixes
- Documentation - Update README and JSDoc comments for public APIs
- Be awesome - Write clean, readable code with clear variable names
Commit Rules
Help everyone understand the commit history
We use Conventional Commits enforced by commitlint.
Commit message format:
type(scope): subject
[optional body]
[optional footer]
Commit types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Test updateschore: Build process or tooling changesci: CI/CD changesperf: Performance improvementsrevert: Revert a previous commit
Examples:
feat(scaffold-mcp): add support for Vue.js templates
fix(aicode-utils): resolve path resolution issue on Windows
docs(readme): update installation instructions
test(scaffold-mcp): add tests for conditional includes
Rules:
- Present tense ("add feature" not "added feature")
- Maximum 100 characters for subject line
- Use imperative mood ("fix bug" not "fixes bug")
- Reference issues:
fixes #123orcloses #456
Pre-commit hooks: We use Husky to enforce commit message format automatically.
Environment Setup
Prerequisites:
Setup steps:
-
Fork and clone the repository:
git clone https://github.com/<your-username>/aicode-toolkit.git cd aicode-toolkit -
Install dependencies:
pnpm install -
Build all packages:
pnpm build -
Verify your setup:
pnpm test pnpm lint pnpm typecheck
Testing
Run all tests:
pnpm test
Test a specific package:
pnpm exec nx test scaffold-mcp
Run tests in watch mode:
pnpm exec nx test scaffold-mcp --watch
Check test coverage:
pnpm exec nx test scaffold-mcp --coverage
Documentation Updates
Update package documentation:
- Edit the relevant
README.mdinpackages/<package-name>/ - Follow the existing structure and style
- Include code examples for new features
Update main documentation:
- Edit
README.mdin the project root - Update
CLAUDE.mdif adding new guidance for AI agents
Build and preview documentation:
# Format markdown files
pnpm format
# Check for broken links (if applicable)
pnpm exec nx lint
Pull Request Process
Before submitting a PR:
- ✅ Ensure all tests pass:
pnpm test - ✅ Lint your code:
pnpm lint - ✅ Format your code:
pnpm format - ✅ Type check:
pnpm typecheck - ✅ Build all packages:
pnpm build - ✅ Rebase on latest main:
git rebase origin/main - ✅ Squash commits (if multiple commits address the same feature/fix)
PR guidelines:
- Title: Short and descriptive (max 100 characters)
- Format:
feat(scope): add new featureorfix(scope): resolve issue
- Format:
- Description: Include:
- What: What you want to achieve
- Why: Why this change is needed
- How: How you implemented it
- Changed: What you changed
- Added: What you added
- Removed: What you removed
- Breaking changes: Any breaking changes (if applicable)
- Related issues: Link to issues with
fixes #123orrelates to #456
- Screenshots/GIFs: Include for UI changes
- Tests: Add tests for new features or bug fixes
- Documentation: Update docs if needed
PR review process:
- Automated checks run (tests, linting, type checking)
- Maintainers review your code
- Address feedback in new commits (don't force push during review)
- Once approved, maintainers will merge your PR
Package Dependency Overview
This is an Nx monorepo with the following structure:
aicode-toolkit/
├── packages/
│ ├── aicode-utils/ # Core utilities and types
│ ├── architect-mcp/ # MCP server for design patterns and code review
│ └── scaffold-mcp/ # MCP server for scaffolding (depends on aicode-utils)
├── templates/ # Boilerplate templates
│ ├── nextjs-15/
│ └── vite-react/
└── apps/ # Example apps (if any)
Dependency graph:
scaffold-mcp
└── aicode-utils
architect-mcp
└── aicode-utils
View the full project graph:
pnpm exec nx graph
Development Workflow
Working on a Package
- Make your changes in
packages/<package-name>/ - Build the package:
pnpm exec nx build <package-name> - Test your changes:
pnpm exec nx test <package-name> - Lint and format:
pnpm lint:fix pnpm format
Adding a New Package
- Use Nx generator:
pnpm exec nx g @nx/js:library <package-name> - Update package.json with metadata (description, keywords, etc.)
- Add to Nx workspace in
nx.json(if not auto-added) - Document in main README.md
Adding a New Template
- Create template directory:
templates/<framework-name>/ - Add
scaffold.yamldefining boilerplates and features - Create template files with
.liquidextension - Document in template README.md
- Test with scaffold-mcp CLI:
scaffold-mcp init scaffold-mcp boilerplate list scaffold-mcp boilerplate create <template-name> --vars '{}'
Questions?
- 💬 Discussions: GitHub Discussions
- 🐛 Issues: GitHub Issues
- 📧 Email: For sensitive questions, contact the maintainers
Thank you for contributing to AI Code Toolkit! 🚀