Thank you for your interest in contributing to the Soul.md specification! This document provides guidelines for contributing.
Found a bug, ambiguity, or inconsistency in the specification?
- Check existing issues to avoid duplicates
- Open a new issue with:
- Title: Clear, concise description
- Section reference: Which section(s) are affected
- Description: What's wrong and why
- Proposed fix: If you have one (optional)
Example issues:
- Normative contradiction between Sections X and Y
- Ambiguous wording in merge semantics
- Missing cross-reference
- Typo or formatting error
Have an idea for a new feature or improvement?
- Start a discussion first
- Describe:
- Use case: What problem does this solve?
- Proposed solution: How would it work?
- Alternatives considered: What else did you think about?
- Impact: Breaking change? New optional feature?
- If consensus is reached, create an issue for tracking
Examples:
- New optional field for a specific domain
- Alternative merge strategy
- Extension namespace proposal
Ready to fix an issue or implement an enhancement?
- For small fixes (typos, formatting, clarifications): just submit a PR
- For significant changes (new sections, breaking changes): discuss first (see above)
- Fork the repository
- Create a branch:
git checkout -b fix/section-5-typoorfeature/add-field-x - Make changes:
- Follow existing style and formatting
- Update Table of Contents if adding/removing sections
- Add/update examples if relevant
- Keep changes focused (one issue per PR)
- Test:
- Validate YAML examples
- Check cross-references
- Ensure numbering is correct
- Commit: Use clear, descriptive messages
Fix typo in Section 8.3 Changed "merege" to "merge" in Standard Merge rules. - Submit PR with:
- Title: Brief description
- Description: What changed and why
- Related issues: Link to issue(s) if applicable
- Maintainer will review within 1-2 weeks
- May request changes or clarifications
- Once approved, PR will be merged
Implemented a useful extension for Soul.md?
- Document your extension:
- Namespace (reverse-DNS)
- Semantics and behavior
- Example usage
- Implementation notes
- Share in Discussions under "Extensions"
- Consider submitting for inclusion in a future RFC version
Example extensions:
- Custom merge strategies
- Advanced predicate languages for triggers
- Provider-specific presentation hints
Used Soul.md in a real project?
- Share your experience in Discussions
- What worked well?
- What was confusing or difficult?
- What features are missing?
Built a validator, converter, or runtime loader?
- Share it in Discussions under "Show and Tell"
- Consider adding it to an "Ecosystem" list (TBD)
Example tools:
- JSON Schema validator
- YAML formatter
- Soul.md → OpenAI system prompt converter
- IDE plugin (syntax highlighting, autocomplete)
- RFC-style language: Use RFC 2119 keywords (MUST, SHOULD, MAY)
- Normative vs Non-normative: Clearly distinguish
- Normative: defines required behavior
- Non-normative: examples, guidance, rationale
- Clarity over brevity: Be precise, avoid ambiguity
- Examples: Provide concrete examples for complex features
- Sections: Use numbered sections (e.g.,
## 5. Core Model) - Subsections: Use ### for major subsections, #### for minor
- Code blocks: Use triple backticks with language hint (
yaml) - Links: Use reference-style links for cross-references
- Emphasis:
code, bold, italic (sparingly)
| Keyword | Meaning |
|---|---|
| MUST / REQUIRED | Mandatory requirement |
| MUST NOT | Prohibited |
| SHOULD / RECOMMENDED | Strong recommendation (deviation allowed with justification) |
| SHOULD NOT | Strong discouragement |
| MAY / OPTIONAL | Truly optional |
## N. Feature Name
Brief overview.
### N.1 Field name (REQUIRED/OPTIONAL)
Type: string/int/enum/etc.
Description of field.
**Normative behavior:**
- Rule 1
- Rule 2
**Example:**
\`\`\`yaml
field: value
\`\`\`
Rationale: Why this design choice.We are committed to providing a welcoming and inclusive environment for all contributors.
Positive behaviors:
- Respectful and constructive feedback
- Focusing on what's best for the specification
- Gracefully accepting constructive criticism
- Showing empathy toward other contributors
Unacceptable behaviors:
- Harassment, trolling, or insulting comments
- Personal or political attacks
- Publishing others' private information
- Other conduct inappropriate in a professional setting
Violations may result in temporary or permanent ban from the project.
Report issues to: ecsiar@gmail.com
- Technical questions: Open a discussion
- Private concerns: Email ecsiar@gmail.com
Thank you for contributing to Soul.md! 🎉