Thank you for your interest in contributing to Structured MADR! This document provides guidelines for contributing to the specification, templates, and tooling.
The Structured MADR specification is designed to be comprehensive yet practical. We welcome feedback on:
- Clarity: Are any sections unclear or ambiguous?
- Completeness: Are there missing elements that would improve the format?
- Practicality: Are any requirements too burdensome for real-world use?
Open an issue with the specification label to discuss proposed changes.
Templates should be:
- Easy to use as starting points
- Self-documenting with helpful placeholders
- Consistent with the specification
Submit pull requests for template improvements with clear descriptions of the changes.
High-quality examples help users understand the format. Good examples:
- Address real architectural decisions
- Demonstrate all required sections
- Show proper use of frontmatter fields
- Include realistic audit entries
If you're building tools that work with Structured MADR:
- Validate against the JSON Schema
- Follow the specification requirements
- Consider contributing integration guides
- Check existing issues to avoid duplicates
- Use the appropriate issue template
- Provide clear reproduction steps for bugs
- Include relevant context for feature requests
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-improvement) - Make your changes
- Ensure all examples validate against the schema
- Update documentation as needed
- Submit a pull request with a clear description
Use conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesspec: Specification changeschore: Maintenance tasks
- Be respectful and constructive
- Focus on the technical merits of proposals
- Welcome newcomers and help them contribute
Changes to the core specification require:
- Discussion: Open an issue explaining the rationale
- Consensus: Allow time for community feedback
- Documentation: Update specification and examples
- Versioning: Follow semantic versioning for the spec
We strive to maintain backward compatibility:
- New optional fields can be added in minor versions
- Required fields require major version bumps
- Deprecation should provide migration paths
All contributions should:
- Schema Compliance: Examples must validate against
schemas/structured-madr.schema.json - Specification Compliance: Content must follow
SPECIFICATION.md - Markdown Validity: Use proper Markdown syntax
# Validate frontmatter against schema (requires ajv-cli)
npx ajv validate -s schemas/structured-madr.schema.json -d examples/*.md --spec=draft7
# Or use any JSON Schema validator- Open a discussion for general questions
- Check existing issues and discussions first
- Be specific about what you're trying to accomplish
By contributing, you agree that your contributions will be licensed under the MIT License.