mirror of
https://github.com/asyouplz/SpeechNote.git
synced 2026-07-22 16:30:31 +00:00
## Summary - Add MIT License file - Add comprehensive Contributing guidelines - Add Contributor Covenant Code of Conduct - Update .gitignore to allow CODE_OF_CONDUCT.md - Fix Korean anchor link in README navigation ## New Files ### LICENSE - MIT License with copyright 2025 Taesun Lee - Standard open source license for the project ### CONTRIBUTING.md - Complete contribution guidelines - Bug reporting process - Pull request workflow - Development setup instructions - Coding standards and architecture guidelines - Commit message conventions (Conventional Commits) - Testing requirements ### CODE_OF_CONDUCT.md - Contributor Covenant Code of Conduct v2.1 - Community standards and expectations - Enforcement guidelines - Reporting procedures ## Minor Fix - Fixed Korean section anchor: #korean → #한국어 ## Impact - Establishes clear community guidelines - Provides contribution workflow for new contributors - Adds proper licensing - Makes project more professional and welcoming 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5 KiB
5 KiB
Contributing to Speech-to-Text Plugin
First off, thank you for considering contributing to the Obsidian Speech-to-Text Plugin! It's people like you that make this plugin better for everyone.
Code of Conduct
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
How Can I Contribute?
Reporting Bugs
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples (audio file format, size, etc.)
- Describe the behavior you observed and what you expected
- Include screenshots or error messages if applicable
- Specify your environment:
- Obsidian version
- Operating system and version
- Plugin version
- Provider (OpenAI Whisper/Deepgram)
Suggesting Enhancements
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- List some examples of how it would be used
Pull Requests
- Fork the repo and create your branch from
main - Install dependencies:
npm install - Make your changes following our coding standards
- Add tests if applicable
- Update documentation if you changed functionality
- Run tests:
npm test - Run linter:
npm run lint - Ensure type safety:
npm run typecheck - Commit with conventional commit format:
feat:for new featuresfix:for bug fixesdocs:for documentationrefactor:for code refactoringtest:for testschore:for maintenance
Development Setup
# Clone your fork
git clone https://github.com/YOUR_USERNAME/SpeechNote.git
cd SpeechNote
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Run linter
npm run lint
# Type checking
npm run typecheck
Project Structure
src/
├── application/ # Application services
├── architecture/ # DI container, error boundaries
├── core/ # Business logic
├── domain/ # Domain models and events
├── infrastructure/ # External integrations (API clients)
├── ui/ # User interface components
└── utils/ # Utility functions
Coding Standards
TypeScript
- Use TypeScript strict mode
- Prefer interfaces over types for object shapes
- Use explicit return types for public methods
- Document complex logic with comments
Code Style
- Follow the existing code style
- Use ESLint and Prettier (configured in the project)
- Keep functions small and focused
- Use meaningful variable and function names
Architecture
- Follow Clean Architecture principles
- Maintain separation of concerns
- Use dependency injection where appropriate
- Keep business logic in the core layer
Testing
- Write unit tests for business logic
- Write integration tests for API interactions
- Maintain test coverage above 70%
- Use descriptive test names
API Keys for Testing
For development and testing:
- OpenAI Whisper: Get a key from OpenAI Platform
- Deepgram: Get a key from Deepgram Console
Never commit API keys to the repository!
Commit Message Guidelines
We follow Conventional Commits:
<type>(<scope>): <subject>
<body>
<footer>
Types
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples
feat(deepgram): add Nova-3 model support
Implement support for Deepgram's Nova-3 model with improved
accuracy and speaker diarization capabilities.
Closes #123
fix(whisper): handle timeout errors gracefully
Add retry logic and better error messages for Whisper API
timeout issues with large files.
Fixes #456
Review Process
- Automated checks must pass (tests, linting, type checking)
- Code review by at least one maintainer
- Testing by reviewers when applicable
- Documentation must be updated if needed
Release Process
Releases are managed by maintainers:
- Version bump in
package.jsonandmanifest.json - Update
CHANGELOG.md - Create a GitHub release with release notes
- Publish to Obsidian Community Plugins (maintainers only)
Questions?
Feel free to:
- Open a Discussion for questions
- Join our community discussions
- Reach out to maintainers
Recognition
Contributors are recognized in:
- Release notes
- Credits section of README
- GitHub contributors page
Thank you for contributing! 🎉