Thank you for your interest in contributing! This project provides deterministic skills for Claude to generate flawless ERPNext/Frappe code.
- Bug reports: Use the bug report template
- Feature requests: Use the feature request template
- Questions: Open a discussion or issue
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes
- Test your changes (see Testing below)
- Commit with clear messages (
git commit -m "Add: description") - Push to your fork (
git push origin feature/your-feature) - Open a Pull Request
Every skill must follow this structure:
skill-name/
├── SKILL.md # Main skill file (<500 lines)
└── references/
├── methods.md # Detailed method documentation
├── examples.md # Working code examples
└── anti-patterns.md # Common mistakes to avoid
- Must be in skill folder root (not in subdirectory)
- Maximum 500 lines
- Must include YAML frontmatter with name, description, version
- English language only
- Only verified facts from official Frappe documentation
DO:
- Verify all code against official docs.frappe.io
- Include version-specific information (v14/v15/v16)
- Provide working examples tested in actual ERPNext
- Document anti-patterns with explanations
DON'T:
- Make assumptions about API behavior
- Copy from outdated community posts
- Use imports in Server Script examples (sandbox restriction)
Server Scripts run in a RestrictedPython sandbox. Never use imports:
# ❌ WRONG - Will fail
from frappe.utils import nowdate
# ✅ CORRECT - Use namespace
date = frappe.utils.nowdate()Before submitting:
-
Validate one skill:
python3 tools/quick_validate.py skills/source/category/your-skill/
-
Validate all skills:
python3 tools/quick_validate.py skills/source --all
-
Keep every
SKILL.mdat maximum 500 lines, measured with:python3 - <<'PY' from pathlib import Path p = Path('skills/source/category/your-skill/SKILL.md') print(len(p.read_text(encoding='utf-8').splitlines())) PY
-
Verify all code examples work in ERPNext
Type: Short description
Types:
- Add: New feature or skill
- Fix: Bug fix
- Update: Improvement to existing content
- Docs: Documentation only
- Cleanup: Code cleanup, no functional change
Open an issue or check existing documentation in the docs/ folder.