---
type: JS Module
title: main.mjs
resource: npm/rules/php/project/main.mjs
docgen:
  crc: 9f638bab
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  tier: local-min
  score: 100
  issues: judge:inaccurate:0.97
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Цей файл реалізує `read-only` детектор якості проекту, який виконує аудит залежностей за допомогою `composer audit` та статичний аналіз коду PHP за допомогою `phpstan` та `psalm`. Функціонал взято з `spec docs/specs/2026-07-02-text-check-per-file-split-design.md §5-A`. Перевірки є read-only та не здійснюють змін у файловій системі чи базах даних. Статичний аналіз вимагає повного project-graph для коректного виявлення логічних помилок та проблем із залежностями, тоді як `composer audit` виконує аудит на рівні проекту. Виклик цих інструментів можливий лише через `n-cursor lint --full` або scoped `n-cursor lint php`.

## Поведінка

Поведінка:
1. Перевіряє наявність файлу `composer.json` у корені. Якщо відсутній, процес завершується з результату, що не містить порушень.
2. Шукає інструмент `composer` у системному середовищі. Якщо не знайдено, фіксує порушення щодо відсутності `composer`.
3. Запускає інструмент `composer audit` у корені проекту для перевірки залежностей. Якщо інструмент повертає ненульовий код, фіксує порушення, пов'язане з аудитом залежностей.
4. Шукає бінарні файли `phpstan` та `psalm` у каталозі `vendor/bin`.
5. Якщо `phpstan` знайдено, запускає його з метою аналізу коду. Якщо повертає ненульовий код, фіксує порушення.
6. Якщо `psalm` знайдено, запускає його для аналізу коду. Якщо повертає ненульовий код, фіксує порушення.
7. Повертає фінальний результат, що містить усі зафіксовані порушення.

## Публічний API

lint — Виявляє помилки у коді PHP проекту.

## Гарантії поведінки

- Read-only: не виконує операцій запису (ФС/БД).
- Кешує результати в межах одного прогону.
