Contributing Guide
Thank you for your interest in SuperSpec! We welcome all contributions.
Ways to Contribute
1. Report Issues
If you find a bug or have a feature suggestion:
- Search existing Issues first
- Create new Issue using appropriate template
- Provide as much detail as possible
Bug reports should include:
- SuperSpec version
- Node.js version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
2. Join Discussions
- GitHub Discussions
- Help answer other users' questions
3. Improve Documentation
Documentation contributions are valuable:
- Fix errors and typos
- Improve code examples
- Add more use cases
- Translate documentation
4. Submit Code
Fix bugs or add new features.
Development Setup
Prerequisites
- Node.js 18+
- pnpm 8+
- Git
Clone Repository
bash
git clone https://github.com/asasugar/SuperSpec.git
cd SuperSpecInstall Dependencies
bash
pnpm installBuild Project
bash
pnpm buildLocal Link
bash
# In SuperSpec directory
pnpm devProject Structure
SuperSpec/
├── packages/
│ └── cli/ # Main CLI package
│ ├── src/
│ │ ├── commands/ # Command implementations
│ │ ├── utils/ # Utility functions
│ │ └── index.ts # Entry point
│ └── templates/ # Template files
│ ├── en/ # English templates
│ └── zh/ # Chinese templates
├── docs/ # Documentation site
└── examples/ # Example projectsContribution Process
1. Fork Repository
Click Fork button on GitHub.
2. Create Branch
bash
git checkout -b feature/my-feature
# or
git checkout -b hotfix/my-fixBranch naming:
feature/xxx- New featureshotfix/xxx- Bug fixesdocs/xxx- Documentationrefactor/xxx- Refactoring
3. Develop
Make your changes, ensuring:
- Follow code style
- Add necessary tests
- Update relevant docs
4. Commit
bash
git add .
git commit -m "feat: add new feature"Commit message format:
<type>(<scope>): <subject>
<body>
<footer>Types:
feat- New featurefix- Bug fixdocs- Documentationstyle- Formattingrefactor- Refactoringtest- Testingchore- Build/tools
5. Push
bash
git push origin feature/my-feature6. Create Pull Request
- Go to your fork
- Click "New Pull Request"
- Select target branch (usually
main) - Fill in PR description
PR description should include:
- Change description
- Related Issue
- Testing method
- Screenshots (if UI changes)
Code Style
TypeScript
- Use ESLint configuration
- Use Biome for formatting
- Strict TypeScript types
bash
# Check code style, auto-fix
pnpm checkNaming Conventions
- Files: kebab-case (
my-command.ts) - Classes: PascalCase (
MyCommand) - Functions/variables: camelCase (
myFunction) - Constants: UPPER_SNAKE_CASE (
MAX_LINE_COUNT)
Code of Conduct
Core principles:
- Respect others
- Constructive communication
- Embrace diversity
Getting Help
- Development questions: GitHub Discussions
- Bug reports: GitHub Issues
Thank you for contributing!