{"owner":"krayin","repo":"laravel-crm","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"files":{"AGENTS.md":"# Krayin CRM: Agent Instructions\n\nThis repository ships reusable **agent skills** for developing Krayin CRM. These\ninstructions apply to all AI coding agents (Claude Code, Codex, Copilot, Cursor,\nKilo Code, etc.).\n\n---\n\n## Framework Context\n\n- **Product:** Krayin CRM (Webkul) — an open-source Laravel CRM.\n- **Stack:** Laravel `^12.0`, PHP `^8.3`, Pest `^3.0`, Laravel Pint `^1.18`.\n- **Follow Krayin's own conventions** — use the patterns already present in this\n  repository's modules; do not import patterns from other Laravel products.\n- **Module location:** `packages/Webkul/{ModuleName}/src/`\n- **Core modules (reference implementations):** `Lead`, `Contact`, `Activity`,\n  `Quote`, `Product`, `User`, `Attribute`, `Core`, `Admin`, `DataGrid`.\n\n---\n\n## Skills\n\nWorkspace skills live in `.github/skills/` (canonical source) and are symlinked\ninto every agent runtime (`.ai`, `.claude`, `.codex`, `.cursor`, `.kilocode`).\nSee [.github/skills/README.md](.github/skills/README.md) for the standard.\n\n| Skill | Use when |\n|-------|----------|\n| `crm-package-development` | Creating a new CRM package/module or extending CRM functionality without touching core. |\n| `pest-testing` | Writing or debugging unit/feature tests with Pest. |\n\nRead the relevant `SKILL.md` before starting work in its domain. Do not restate\nskill content here — keep details in the skills.\n\n---\n\n## Critical Conventions (Never Deviate)\n\n- **Never modify core Krayin files** unless explicitly required. Extend behavior\n  through a package under `packages/Webkul/`.\n- **All schema changes go through migrations** — never edit the database directly.\n- **Follow the existing module layout** (Providers, Models, Contracts,\n  Repositories, Http/Controllers, Routes, Database/Migrations, Resources/views,\n  Config). The `crm-package-development` skill documents the full structure.\n- **Repository pattern:** models are accessed through repositories bound via\n  contracts in the service provider — match the surrounding modules.\n- **Translations follow the views:** a package gets its own `Resources/lang/`\n  **only if** it also has `Resources/views/`. Every view-less package keeps its\n  strings in the Admin package under `admin::app.*` — no lang directory, no\n  `loadTranslationsFrom()`. See the `crm-package-development` skill.\n- **Every fix and feature updates `CHANGELOG.md`** in the same change, under the\n  topmost unreleased version heading. Never invent a `#PR` number and never bump\n  `KRAYIN_VERSION` outside a release commit. See the `crm-package-development`\n  skill for the entry format and tags.\n- **Preserve backward compatibility** so the CRM stays upgrade-safe.\n\n---\n\n## Development Cycle\n\n```bash\ncomposer install            # install PHP dependencies\nphp artisan migrate          # run migrations\nphp artisan test --compact   # run the Pest test suite\n./vendor/bin/pint            # format code (PSR-12 via Laravel Pint)\n```\n\n- Add tests for new behavior; follow the `pest-testing` skill.\n- Run `./vendor/bin/pint` before committing — CI applies Pint formatting.\n- Validate the skills setup with `bash bin/validate-skills.sh`.\n"}}