Contributing
agento-patronum is open source. Whether you want to fix a bug, add a default pattern, or improve the docs — every contribution is welcome.
Local Development
Clone the repo and run the self-test to confirm everything works:
bash
git clone https://github.com/emaarco/agento-patronum.git
cd agento-patronum
# Validate all JSON files
node -e "for(const f of ['plugin.json','marketplace.json','hooks.json','defaults/patronum.json']){JSON.parse(require('fs').readFileSync(f.includes('/')?f:'.claude-plugin/'+f,'utf8'))}" && echo "All JSON valid"
# Run the full enforcement self-test
CLAUDE_PLUGIN_ROOT="$(pwd)" node scripts/management/patronum-verify.jsTesting the Plugin Install Flow Locally
Before pushing changes to .claude-plugin/, verify the full marketplace install flow without needing a GitHub push:
bash
# 1. Validate the plugin schema (built-in Claude Code validator)
/plugin validate .
# 2. Add the local repo as a marketplace
/plugin marketplace add /path/to/agento-patronum
# 3. Install the plugin from it
/plugin install agento-patronum@emaarco
# 4. Verify protection is active, then clean up
/patronum-verify
/plugin uninstall agento-patronumThis catches invalid JSON, schema errors, source resolution failures, and install errors — all before any push.
Documentation
The docs site is built with VitePress:
bash
cd docs
npm install
npm run dev # dev server at http://localhost:5173
npm run build # production buildSubmitting Changes
- Fork the repo and create a branch from
main - Run validation (JSON check,
patronum-verify.js) before pushing - Open a pull request —
@emaarcois auto-assigned via CODEOWNERS