Contributing to PALO Framework#
Semantic contract changes#
PALO v3 semantic sources are versioned public contracts. Change the semantic source through the documented generator workflow, then run npm run semantic:generate, npm run semantic:validate and npm run semantic:release. Do not hand-edit the generated Explorer graph or lifecycle projection. Breaking identifier, meaning, cardinality, authority-boundary or mapping changes require a major semantic version, a change-impact record, migration gates and updated valid/invalid fixtures.
First off, thank you for considering contributing to PALO!
Fast path: contribute a case#
During the 30-day activation freeze, the most valuable contribution is one synthetic or safely publishable Evidence Pack case. Generate the Case File and pull request body with:
npm run case:contribute -- \
--slug retail-returns-assistant \
--title "Retail returns assistant" \
--sector retail \
--scenario "An assistant drafts a recommendation while a named employee approves refunds." \
--community builders \
--author "@your-github-handle"Complete the generated TODO fields, then run:
npm run case:contribute -- --validate-all
npm run evidence:test
npm run validateThe command does not push, open a pull request or transmit case content. Cases must state allowed and prohibited actions, an observable expected effect, an independent verification method and their non-production boundary.
Table of Contents#
Code of Conduct#
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to conduct@paloframework.org.
How Can I Contribute?#
Reporting Bugs#
Before creating bug reports, please check existing issues. 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
- Describe the behavior you observed and expected
- Include screenshots if applicable
- Note your browser and version
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 any similar features in other projects if applicable
Documentation#
- Fix typos or clarify language
- Add missing documentation
- Improve code comments
- Write tutorials or guides
Translations#
We welcome translations! Currently available:
- English (default)
- Italian (partial)
To add a new language:
- Copy the English version of the file
- Add language suffix (e.g.,
_DE.htmlfor German) - Translate all content
- Submit a pull request
Development Setup#
Prerequisites#
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Text editor (VS Code recommended)
- Git
Local Development#
# Clone your fork
git clone https://github.com/YOUR-USERNAME/PALOframework.git
cd PALOframework
# Create a branch for your feature
git checkout -b feature/your-feature-name
# Start a local server (optional, but recommended for testing)
python3 -m http.server 8000
# Open in browser
open http://localhost:8000Style Guidelines#
Text and Git metadata#
- Use plain ASCII punctuation in source text, generated pages, commit messages, tag messages and ref names.
- Use the normal hyphen (
-), straight quotes ('and"), three periods (...) and ASCII arrows (->) when needed. - Do not use typographic dashes, typographic quotes, Unicode ellipses, decorative separators, emoji or invisible spacing characters.
- Letters with language-specific accents and necessary currency symbols remain valid.
- Run
npm run validate:text-stylebefore committing. The P0 gate applies the same rule to source files, generateddistfiles and current Git metadata.
HTML#
- Use semantic HTML5 elements
- Include proper ARIA labels for accessibility
- Maintain consistent indentation (4 spaces)
- Include
altattributes for all images
CSS#
- Use CSS custom properties (variables) for colors
- Follow BEM naming convention where applicable
- Ensure responsive design (mobile-first)
- Test in multiple browsers
JavaScript#
- Use vanilla JavaScript (no frameworks required)
- Add comments for complex logic
- Ensure keyboard navigation works
- Handle errors gracefully
Accessibility#
All contributions must maintain WCAG 2.1 AA compliance:
- Color contrast ratio >= 4.5:1
- Keyboard navigable
- Screen reader compatible
- Focus indicators visible
Pull Request Process#
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
PR Checklist#
- My code follows the style guidelines
- I have tested in multiple browsers
- I have updated documentation if needed
- I have added tests if applicable
- My changes generate no new warnings
- I have checked accessibility compliance
Review Process#
- Maintainers will review your PR
- Address any requested changes
- Once approved, your PR will be merged
- Celebrate!
Questions?#
Feel free to open an issue with the tag question or reach out to the maintainers.
**Thank you for contributing to responsible AI governance! **
PALO FRAMEWORK