Skip to content

Latest commit

 

History

History
97 lines (80 loc) · 6.3 KB

File metadata and controls

97 lines (80 loc) · 6.3 KB

Onboarding for AI Agents

Purpose: Give an AI coding agent a fast, reliable mental model of this repo to ship changes with minimal trial-and-error.

Summary

Tech stack (see configs for details)

Project structure (high-level)

lib/ directory overview

  • The ../lib/ directory contains core extensions, helpers, integrations, and business logic modules that are not part of the Rails standard structure but are essential for Zammad's backend functionality.
  • It includes:
    • Helpers and utilities: e.g., email_helper.rb, migration_helper.rb, sql_helper.rb, image_helper.rb, time_range_helper.rb, session_helper.rb, notification_factory.rb, and more.
    • Integrations: Subfolders and files for external services such as github/, gitlab/, microsoft_graph/, facebook.rb, telegram_helper.rb, whatsapp/, and others.
    • Business logic and features: e.g., auto_wizard.rb, bulk_import_info.rb, calendar_subscriptions/, escalation/, excel_sheet/, external_data_source/, knowledge_base/, password_policy/, secure_mailing/, stats/, tasks/, etc.
    • Core extensions: e.g., core_ext/ for Ruby or Rails extensions.
    • Background services and operations: e.g., background_services/, operations_rate_limiter.rb, sequencer/, transaction_dispatcher.rb.
    • Other: app_version.rb, exceptions.rb, models.rb, version.rb, and more.
  • Many subfolders contain related modules or classes grouped by feature or integration.

Runtime, environment, and coding standards

Legacy desktop-app tips

Vue apps tips

  • Use path aliases from ../tsconfig.base.json.
  • Do not cross-import between desktop/mobile apps (ESLint enforces boundaries).
  • Use Vitest and Testing Library for unit/component tests (../app/frontend/tests/).
  • Use Tailwind CSS utilities for styling. Lint with Stylelint and Prettier.
  • For i18n, wrap user-facing strings and see ../eslint.config.ts for rules.

When in doubt

  • The Developer Manual (../doc/developer_manual/) is the source of truth for setup, testing, and standards.
  • Prefer referencing config files over duplicating information here.
  • Keep PRs focused; include tests for new code.