Thank you for your interest in contributing to the DESTIN Protocol! We welcome contributions of all kinds—specification edits, new ideas, bug reports, documentation, and more.
- Specification changes: Major protocol changes should be proposed via a DESTIN Improvement Proposal (DIP). See the DIP process for details.
- Minor edits: For typo fixes, clarifications, or small improvements, feel free to open a pull request directly.
- Use GitHub Issues to report bugs, suggest features, or ask questions.
- Please check for existing issues before opening a new one.
- Participate in GitHub Discussions to share ideas and feedback.
- Follow the Code of Conduct in all interactions.
This project uses automated checks to ensure code quality and consistency.
After cloning the repository:
# Install dependencies (pre-commit hooks are installed automatically)
npm installThe following checks run automatically before each commit:
-
Schema Validation (
npm run validate-samples)- Validates all JSON sample files against their schemas
- Ensures protocol data integrity
- Blocks commits if validation fails
-
Markdown Linting (
npm run lint)- Checks markdown formatting and style
- Enforces consistent documentation standards
- Warns but allows commits if issues found
You can run these checks manually:
# Validate protocol samples
npm run validate-samples
# Check markdown formatting
npm run lint
# Fix common markdown issues (if available)
npm run lint:fix- Line length: Keep lines under 80 characters
- Code blocks: Add language specifiers (e.g.,
json`,bash`) - Blank lines: Add blank lines around headings and code blocks
- Links: Use proper markdown link syntax
For significant protocol changes, follow the DIP process:
- Draft: Create a detailed proposal with rationale and impact analysis
- Review: Open for community feedback and technical review
- Vote: Protocol council votes on the proposal
- Implementation: Approved changes are integrated into the specification
See the Protocol Governance section for detailed DIP requirements.
- Be respectful: Follow our Code of Conduct
- Be specific: Provide clear, actionable feedback and suggestions
- Be patient: Protocol changes require careful consideration and review
- Be collaborative: Work with the community to improve proposals
- Questions: Use GitHub Discussions
- Bugs: File an issue
- Ideas: Start a discussion or propose a DIP
Thank you for helping make DESTIN better! 🚀
- Read the README.md for an overview of the project and its structure.
- See
spec/design-principles.mdfor the foundational ideas behind DESTIN. - If you're unsure where to start, look for issues labeled
good first issueor ask in Discussions.
This project uses Husky to run automated checks before each commit. When you commit, the following checks will run:
-
Schema Validation (Required)
- Validates all JSON samples against their schemas
- Blocks commit if validation fails
- Ensures protocol data integrity
-
Markdown Linting (Required)
- Checks markdown formatting and style
- Blocks commit if linting fails
- Ensures consistent documentation quality
-
Code Formatting (Required)
- Formats code and markdown files
- Blocks commit if formatting fails
- Ensures consistent code style
You can run these checks manually to catch issues before committing:
# Validate protocol samples
npm run validate-samples
# Check markdown formatting
npm run lint
# Format code and documentation
npm run formatIf you encounter linting errors:
- Line length issues: Break long lines at 80 characters
- Missing blank lines: Add blank lines around headings and lists
- Trailing spaces: Remove trailing whitespace
- Code block language: Add language specifiers to code blocks
We are committed to a welcoming, inclusive, and respectful environment. By participating, you agree to follow our Code of Conduct (to be added).
- spec/: Protocol specification and design principles
- protocol-data/: JSON schemas, samples, and validation tools
- .github/: Templates and CI
- README.md: Project entrypoint
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.
We appreciate your help in making DESTIN a robust, open, and community-driven protocol!