system-prompts-and-models-o.../dealix/CONTRIBUTING.md
2026-05-01 14:03:52 +03:00

3.3 KiB

Contributing | المساهمة

Thanks for considering a contribution! | شكراً لاهتمامك بالمساهمة!

🚀 Quick start

git clone https://github.com/YOUR-ORG/ai-company-saudi.git
cd ai-company-saudi
make setup

This creates a virtualenv, installs dev deps, installs pre-commit hooks, and copies .env.example.env for you.

🧰 Development workflow

  1. Create a feature branch from main:
    git checkout -b feat/your-feature
    
  2. Make changes — write code + tests.
  3. Run quality checks:
    make lint
    make test
    
  4. Commit — pre-commit hooks run automatically (gitleaks, ruff, mypy, etc.).
  5. Open a Pull Request using the PR template.

📝 Commit message style

Conventional Commits (loose):

  • feat(phase8): add booking confirmation email
  • fix(intake): normalize Kuwaiti phone numbers
  • docs: update README install instructions
  • chore(deps): bump fastapi to 0.116
  • test(icp): cover edge case for budget in range
  • refactor(core): extract LLM client base

🧪 Testing requirements

  • Every new agent MUST have at least one unit test.
  • Every new API endpoint MUST have at least one integration test.
  • Aim for meaningful coverage — not just line-count.

🔒 Security

  • NEVER commit secrets. The pre-commit hooks should catch it, but be vigilant.
  • If you find a vulnerability, please see SECURITY.md — do NOT open a public issue.

🌍 Bilingual contributions

  • Docstrings: English primary, Arabic translation where it adds value (especially user-facing).
  • User-facing strings (sales scripts, prompts, docs): provide both AR and EN.
  • Commit messages + PR descriptions: English preferred, Arabic acceptable.

🏷️ Style

  • Python: ruff + black + mypy — run make format before committing.
  • Line length: 100.
  • Type hints: required on new code.
  • Docstrings: Google-style for public APIs.

📦 Releasing (maintainers)

  1. Bump version in pyproject.toml and .env.example.
  2. Update CHANGELOG.md.
  3. Commit, tag: git tag -a v2.x.x -m "v2.x.x".
  4. Push: git push && git push --tags.
  5. GitHub Actions will handle the release + Docker publish.

🇸🇦 بالعربية

شكراً لمساهمتك!

البدء السريع

git clone https://github.com/YOUR-ORG/ai-company-saudi.git
cd ai-company-saudi
make setup

سير العمل

  1. أنشئ فرعاً من main.
  2. اكتب الكود + الاختبارات.
  3. شغّل make lint و make test.
  4. كل commit يمر عبر pre-commit hooks تلقائياً.
  5. افتح Pull Request.

متطلبات الاختبار

  • كل وكيل جديد يحتاج اختبار وحدة واحد على الأقل.
  • كل endpoint جديد يحتاج اختبار تكامل واحد على الأقل.

الأمن

  • لا ترفع أبداً أي أسرار. pre-commit hooks ستمسكها، لكن انتبه.
  • إذا اكتشفت ثغرة، راجع SECURITY.md.

الأسلوب ثنائي اللغة

  • docstrings: الإنجليزية أساسية، مع عربي حيث يضيف قيمة.
  • النصوص التي يراها المستخدم: العربية والإنجليزية.
  • رسائل commit: الإنجليزية مفضّلة، العربية مقبولة.