# Комплексный анализ репозитория

{
  "task": "comprehensive_repository_analysis",
  "objective": "Проведи исчерпывающий анализ всей кодовой базы, чтобы выявить, расставить по приоритету, исправить и задокументировать ВСЕ проверяемые ошибки, уязвимости безопасности и критические проблемы в любом технологическом стеке.",
  "analysis_phases": [
    {
      "phase": 1,
      "name": "Изучение и картирование репозитория",
      "steps": [
        {
          "step": "1.1",
          "title": "Анализ архитектуры и структуры",
          "actions": [
            "Составь полную карту каталогов (src/, lib/, tests/, docs/, config/, scripts/, build/, deploy/).",
            "Определи все используемые технологические стеки и фреймворки.",
            "Разбери манифесты зависимостей (package.json, requirements.txt, go.mod, pom.xml, Gemfile, Cargo.toml, composer.json).",
            "Задокументируй точки входа, основные пути выполнения и границы модулей.",
            "Проанализируй системы сборки (Webpack, Gradle, Maven, Make, CMake).",
            "Изучи конфигурации CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI).",
            "Изучи существующую документацию (README, CONTRIBUTING, спецификации API, архитектурные диаграммы)."
          ]
        },
        {
          "step": "1.2",
          "title": "Инвентаризация среды разработки",
          "actions": [
            "Определи фреймворки тестирования (Jest, Mocha, pytest, PHPUnit, Go test, JUnit, RSpec, xUnit).",
            "Изучи конфигурации линтеров и форматтеров (ESLint, Prettier, Black, Flake8, RuboCop, golangci-lint, Checkstyle).",
            "Найди встроенные в код маркеры проблем (TODO, FIXME, HACK, XXX, BUG, NOTE).",
            "Проанализируй историю git на предмет проблемных закономерностей и недавних срочных исправлений.",
            "Извлеки существующие отчёты и метрики покрытия тестами.",
            "Определи уже используемые инструменты анализа кода (SonarQube, CodeClimate и т. д.)."
          ]
        }
      ]
    },
    {
      "phase": 2,
      "name": "Систематическое выявление ошибок",
      "bug_categories": [
        {
          "category": "CRITICAL",
          "severity": "P0",
          "types": [
            "Уязвимости SQL-инъекций",
            "Уязвимости межсайтового скриптинга (XSS)",
            "Уязвимости межсайтовой подделки запросов (CSRF)",
            "Обход аутентификации/авторизации",
            "Риски удалённого выполнения кода (RCE)",
            "Повреждение данных или их безвозвратная потеря",
            "Сбои системы, взаимные блокировки или бесконечные циклы",
            "Утечки памяти и исчерпание ресурсов",
            "Небезопасные реализации криптографии",
            "Жёстко заданные в коде секреты или учётные данные"
          ]
        },
        {
          "category": "FUNCTIONAL",
          "severity": "P1-P2",
          "types": [
            "Логические ошибки (неверные условия, ошибочные вычисления, ошибки на единицу)",
            "Проблемы управления состоянием (состояния гонки, устаревшее состояние, некорректные изменения)",
            "Неверные контракты API или сопоставления запросов и ответов",
            "Отсутствующая или недостаточная проверка входных данных",
            "Нарушенная бизнес-логика или нарушения рабочих процессов",
            "Неверные преобразования данных или сериализация",
            "Несоответствия типов или небезопасные приведения типов",
            "Неверная обработка исключений или распространение ошибок"
          ]
        },
        {
          "category": "INTEGRATION",
          "severity": "P2",
          "types": [
            "Неправильное использование внешних API или устаревшие конечные точки",
            "Ошибки запросов к базе данных, проблемы синтаксиса SQL или проблемы N+1",
            "Сбои обработки очередей сообщений (RabbitMQ, Kafka, SQS)",
            "Ошибки операций файловой системы (права доступа, обход каталогов)",
            "Проблемы сетевого взаимодействия (тайм-ауты, повторные попытки, пулы соединений)",
            "Несогласованность кэша или проблемы его инвалидации",
            "Неправильное использование сторонних библиотек или несовместимость версий"
          ]
        },
        {
          "category": "EDGE_CASES",
          "severity": "P2-P3",
          "types": [
            "Разыменование указателей Null/undefined/nil/None",
            "Обработка пустых массивов/списков/коллекций",
            "Граничные случаи с нулевыми или отрицательными значениями",
            "Граничные условия (максимальные/минимальные целые числа, ограничения длины строк)",
            "Отсутствующая обработка ошибок или подавляемые исключения",
            "Сбои логики тайм-аутов и повторных попыток",
            "Проблемы одновременного доступа без надлежащих блокировок",
            "Переполнение/потеря значимости в числовых операциях"
          ]
        },
        {
          "category": "CODE_QUALITY",
          "severity": "P3-P4",
          "types": [
            "Использование устаревших API",
            "Мёртвый код или недостижимые пути выполнения",
            "Циклические зависимости",
            "Узкие места производительности (неэффективные алгоритмы, избыточные операции)",
            "Отсутствующие или неверные аннотации типов",
            "Несогласованные подходы к обработке ошибок",
            "Утечки ресурсов (файловые дескрипторы, соединения с базой данных, сетевые сокеты)",
            "Неправильное журналирование (раскрытие конфиденциальных данных, недостаточный контекст)"
          ]
        }
      ],
      "discovery_methods": [
        "Статический анализ кода с помощью инструментов для конкретного языка",
        "Поиск распространённых антипаттернов и признаков проблемного кода по шаблонам",
        "Сканирование уязвимостей зависимостей (npm audit, pip-audit, bundle-audit, cargo audit)",
        "Анализ потоков управления и данных",
        "Обнаружение мёртвого кода",
        "Проверка конфигурации на соответствие лучшим практикам",
        "Перекрёстная сверка документации и реализации",
        "Проверка кода с акцентом на безопасность"
      ]
    },
    {
      "phase": 3,
      "name": "Документирование ошибок и определение приоритетов",
      "bug_report_schema": {
        "bug_id": "Последовательный идентификатор (BUG-001, BUG-002 и т. д.)",
        "severity": {
          "type": "enum",
          "values": [
            "CRITICAL",
            "HIGH",
            "MEDIUM",
            "LOW"
          ],
          "description": "Уровень серьёзности ошибки"
        },
        "category": {
          "type": "enum",
          "values": [
            "SECURITY",
            "FUNCTIONAL",
            "PERFORMANCE",
            "INTEGRATION",
            "CODE_QUALITY"
          ],
          "description": "Классификация ошибки"
        },
        "location": {
          "files": [
            "Массив путей затронутых файлов с номерами строк"
          ],
          "component": "Название модуля/сервиса/функциональной возможности",
          "function": "Название конкретной функции или метода"
        },
        "description": {
          "current_behavior": "Что сломано или работает неправильно",
          "expected_behavior": "Что должно происходить вместо этого",
          "root_cause": "Техническое объяснение причины неисправности"
        },
        "impact_assessment": {
          "user_impact": "Влияние на конечных пользователей (потеря данных, угрозы безопасности, ухудшение UX)",
          "system_impact": "Влияние на систему (производительность, стабильность, масштабируемость)",
          "business_impact": "Влияние на бизнес (соблюдение требований, выручка, репутация, правовые аспекты)"
        },
        "reproduction": {
          "steps": [
            "Пошаговые инструкции по воспроизведению"
          ],
          "test_data": "Необходимые примеры данных или условия",
          "actual_result": "Что происходит при воспроизведении",
          "expected_result": "Что должно происходить"
        },
        "verification": {
          "code_snippet": "Наглядный код, демонстрирующий ошибку",
          "test_case": "Тест, который завершился бы неудачей из-за этой ошибки",
          "logs_or_metrics": "Подтверждения из журналов или мониторинга"
        },
        "dependencies": {
          "related_bugs": [
            "Массив связанных BUG-IDs"
          ],
          "blocking_issues": [
            "Массив ошибок, которые нужно исправить в первую очередь"
          ],
          "blocked_by": [
            "Внешние факторы, препятствующие исправлению"
          ]
        },
        "metadata": {
          "discovered_date": "Метка времени в формате ISO 8601",
          "discovered_by": "Использованный инструмент или метод",
          "cve_id": "Идентификатор CVE, если применимо",
          "cwe_id": "Идентификатор CWE, если применимо"
        }
      },
      "prioritization_matrix": {
        "criteria": [
          {
            "factor": "severity",
            "weight": 0.4,
            "scale": "CRITICAL=100, HIGH=70, MEDIUM=40, LOW=10"
          },
          {
            "factor": "user_impact",
            "weight": 0.3,
            "scale": "All users=100, Many=70, Some=40, Few=10"
          },
          {
            "factor": "fix_complexity",
            "weight": 0.15,
            "scale": "Simple=100, Medium=60, Complex=20"
          },
          {
            "factor": "regression_risk",
            "weight": 0.15,
            "scale": "Low=100, Medium=60, High=20"
          }
        ],
        "formula": "priority_score = Σ(factor_value × weight)"
      }
    },
    {
      "phase": 4,
      "name": "Реализация исправлений",
      "fix_workflow": [
        {
          "step": 1,
          "action": "Создай отдельную ветку для исправления.",
          "naming": "fix/BUG-{id}-{short-description}"
        },
        {
          "step": 2,
          "action": "СНАЧАЛА напиши падающий тест.",
          "rationale": "Разработка через тестирование обеспечивает проверяемость исправления."
        },
        {
          "step": 3,
          "action": "Внеси минимальное, адресное исправление.",
          "principle": "Минимальное изменение, корректно устраняющее проблему"
        },
        {
          "step": 4,
          "action": "Убедись, что теперь тест проходит.",
          "validation": "Запусти конкретный тест и связанный набор тестов."
        },
        {
          "step": 5,
          "action": "Запусти полный набор регрессионных тестов.",
          "validation": "Убедись, что существующая функциональность не нарушена."
        },
        {
          "step": 6,
          "action": "Обнови документацию.",
          "scope": "Документация API, комментарии в коде, журнал изменений"
        }
      ],
      "fix_principles": [
        "MINIMAL_CHANGE: Внеси минимальное изменение, которое корректно устраняет проблему.",
        "NO_SCOPE_CREEP: Избегай несвязанного рефакторинга и добавления новых функций.",
        "BACKWARDS_COMPATIBLE: Сохраняй существующие контракты API, если только сама ошибка не нарушает совместимость.",
        "FOLLOW_CONVENTIONS: Придерживайся существующего стиля кода и шаблонов проекта.",
        "DEFENSIVE_PROGRAMMING: Добавляй защитные проверки, предотвращающие подобные ошибки в будущем.",
        "EXPLICIT_OVER_IMPLICIT: Делай намерение понятным через структуру кода и комментарии.",
        "FAIL_FAST: Проверяй входные данные на раннем этапе и завершай работу с понятными сообщениями об ошибках."
      ],
      "code_review_checklist": [
        "Исправление устраняет первопричину, а не только симптомы.",
        "Все граничные случаи обрабатываются надлежащим образом.",
        "Сообщения об ошибках понятны, позволяют предпринять конкретные действия и не раскрывают конфиденциальную информацию.",
        "Влияние на производительность допустимо (никакого O(n²) там, где достаточно O(n)).",
        "Последствия для безопасности тщательно рассмотрены.",
        "Нет новых предупреждений компилятора или ошибок линтера.",
        "Изменения покрыты тестами.",
        "Документация обновлена и точна.",
        "Несовместимые изменения явно отмечены и обоснованы.",
        "Зависимости актуальны и безопасны."
      ]
    },
    {
      "phase": 5,
      "name": "Тестирование и проверка",
      "test_requirements": {
        "mandatory_tests_per_fix": [
          {
            "type": "unit_test",
            "description": "Изолированный тест конкретного исправления ошибки",
            "coverage": "Должен охватывать именно тот путь выполнения, который был нарушен."
          },
          {
            "type": "integration_test",
            "description": "Тест, если ошибка затрагивает несколько компонентов",
            "coverage": "Сквозной процесс через затронутые системы"
          },
          {
            "type": "regression_test",
            "description": "Убедись, что исправление не нарушает существующую функциональность.",
            "coverage": "Все связанные функции и пути выполнения кода"
          },
          {
            "type": "edge_case_tests",
            "description": "Охвати граничные условия и крайние случаи.",
            "coverage": "Значения Null, пустые входные данные, предельные значения, условия ошибок"
          }
        ]
      },
      "test_structure_template": {
        "description": "Независимая от языка структура теста",
        "template": [
          "describe('BUG-{ID}: {description}', () => {",
          "  test('reproduces original bug', () => {",
          "    // This test demonstrates the bug existed",
          "    // Should fail before fix, pass after",
          "  });",
          "",
          "  test('verifies fix resolves issue', () => {",
          "    // This test proves correct behavior after fix",
          "  });",
          "",
          "  test('handles edge case: {case}', () => {",
          "    // Additional coverage for related scenarios",
          "  });",
          "});"
        ]
      },
      "validation_steps": [
        {
          "step": "Запусти полный набор тестов.",
          "commands": {
            "javascript": "npm test",
            "python": "pytest",
            "go": "go test ./...",
            "java": "mvn test",
            "ruby": "bundle exec rspec",
            "rust": "cargo test",
            "php": "phpunit"
          }
        },
        {
          "step": "Измерь покрытие кода тестами.",
          "tools": [
            "Istanbul/NYC",
            "Coverage.py",
            "JaCoCo",
            "SimpleCov",
            "Tarpaulin"
          ]
        },
        {
          "step": "Запусти статический анализ.",
          "tools": [
            "ESLint",
            "Pylint",
            "golangci-lint",
            "SpotBugs",
            "Clippy"
          ]
        },
        {
          "step": "Измерение производительности",
          "condition": "Если исправление затрагивает часто выполняемые участки кода или критические операции"
        },
        {
          "step": "Сканирование безопасности",
          "tools": [
            "Snyk",
            "OWASP Dependency-Check",
            "Trivy",
            "Bandit"
          ]
        }
      ]
    },
    {
      "phase": 6,
      "name": "Документирование и отчётность",
      "fix_documentation_requirements": [
        "Обнови комментарии в коде, объяснив исправление и причину его необходимости.",
        "Пересмотри документацию API, если поведение изменилось.",
        "Добавь запись об исправлении ошибки в CHANGELOG.md.",
        "Создай или обнови руководства по устранению неполадок.",
        "Задокументируй обходные решения для отложенных/неисправленных проблем.",
        "Добавь примечания по миграции, если исправление требует действий пользователя."
      ],
      "executive_summary_template": {
        "title": "Отчёт об исправлении ошибок — {repository_name}",
        "metadata": {
          "date": "Дата в формате ISO 8601",
          "analyzer": "Название инструмента/имя человека",
          "repository": "Полный путь к репозиторию",
          "commit_hash": "SHA коммита Git",
          "duration": "Продолжительность анализа в часах"
        },
        "overview": {
          "total_bugs_found": "integer",
          "total_bugs_fixed": "integer",
          "bugs_deferred": "integer",
          "test_coverage_before": "percentage",
          "test_coverage_after": "percentage",
          "files_analyzed": "integer",
          "lines_of_code": "integer"
        },
        "critical_findings": [
          "3–5 наиболее критичных обнаруженных ошибок и их исправления"
        ],
        "fix_summary_by_category": {
          "security": "count",
          "functional": "count",
          "performance": "count",
          "integration": "count",
          "code_quality": "count"
        },
        "detailed_fix_table": {
          "columns": [
            "BUG-ID",
            "File",
            "Line",
            "Category",
            "Severity",
            "Description",
            "Status",
            "Test Added"
          ],
          "format": "Таблица Markdown или CSV"
        },
        "risk_assessment": {
          "remaining_high_priority": [
            "Список неисправленных критических проблем"
          ],
          "recommended_next_steps": [
            "Действия, упорядоченные по приоритету"
          ],
          "technical_debt": [
            "Сводка выявленного технического долга"
          ],
          "breaking_changes": [
            "Любые исправления, нарушающие обратную совместимость"
          ]
        },
        "testing_results": {
          "test_command": "Точная команда, использованная для запуска тестов",
          "tests_passed": "X из Y",
          "tests_failed": "Количество с указанием причин",
          "tests_added": "count",
          "coverage_delta": "+X% or -X%"
        }
      },
      "deliverables_checklist": [
        "Все ошибки задокументированы в стандартизированном формате.",
        "Исправления реализованы с минимальным объёмом изменений.",
        "Набор тестов обновлён и успешно проходит.",
        "Документация обновлена (код, API, пользовательские руководства).",
        "Проверка кода завершена и одобрена.",
        "Влияние на производительность оценено и признано допустимым.",
        "Для исправлений, связанных с безопасностью, проведена проверка безопасности.",
        "Подготовлены примечания по развёртыванию и план отката.",
        "Журнал изменений обновлён с учётом изменений, видимых пользователям.",
        "Заинтересованные стороны уведомлены о критических исправлениях."
      ]
    },
    {
      "phase": 7,
      "name": "Непрерывное улучшение",
      "pattern_analysis": {
        "objectives": [
          "Выяви повторяющиеся шаблоны ошибок во всей кодовой базе.",
          "Обнаружь архитектурные проблемы, способствующие появлению ошибок.",
          "Найди пробелы в стратегии тестирования.",
          "Выдели области с техническим долгом."
        ],
        "outputs": [
          "Отчёт о распространённых шаблонах ошибок",
          "Рекомендации по профилактическим мерам",
          "Предложения по улучшению инструментов",
          "Предложения по архитектурному рефакторингу"
        ]
      },
      "monitoring_recommendations": {
        "metrics_to_track": [
          "Частота обнаружения ошибок с течением времени",
          "Время устранения по уровням серьёзности",
          "Частота регрессий (повторно внесённых ошибок)",
          "Процент покрытия тестами",
          "Объём изменений кода в областях, склонных к ошибкам",
          "Количество уязвимостей в зависимостях"
        ],
        "alerting_rules": [
          "Критические уязвимости безопасности в зависимостях",
          "Сбои набора тестов",
          "Покрытие кода опускается ниже порогового значения.",
          "Ухудшение производительности ключевых операций"
        ],
        "logging_improvements": [
          "Добавь структурированное журналирование там, где оно отсутствует.",
          "Включи идентификаторы корреляции для отслеживания запросов.",
          "Записывай в журнал события, связанные с безопасностью.",
          "Убедись, что журналы ошибок содержат трассировки стека и контекст."
        ]
      }
    }
  ],
  "constraints_and_best_practices": [
    "НИКОГДА не жертвуй безопасностью ради простоты или удобства.",
    "СОХРАНЯЙ полный журнал аудита всех изменений.",
    "СОБЛЮДАЙ семантическое версионирование, если исправления меняют публичный API.",
    "СОБЛЮДАЙ ограничения частоты запросов при тестировании внешних сервисов.",
    "ИСПОЛЬЗУЙ флаги функциональности для высокорисковых исправлений или их постепенного внедрения.",
    "ДОКУМЕНТИРУЙ все допущения, сделанные в ходе анализа.",
    "ПРОДУМЫВАЙ стратегию отката для каждого исправления.",
    "ПРЕДПОЧИТАЙ исправления с обратной совместимостью, когда это возможно.",
    "ИЗБЕГАЙ добавления новых зависимостей без обоснования.",
    "ТЕСТИРУЙ в нескольких средах, когда это применимо."
  ],
  "output_formats": [
    {
      "format": "markdown",
      "purpose": "Документация и отчёты, удобные для чтения человеком",
      "filename_pattern": "bug_report_{date}.md"
    },
    {
      "format": "json",
      "purpose": "Машиночитаемый формат для автоматизированной обработки",
      "filename_pattern": "bug_data_{date}.json",
      "schema": "Следуй bug_report_schema, определённой в фазе 3."
    },
    {
      "format": "csv",
      "purpose": "Импорт в системы отслеживания ошибок (Jira, GitHub Issues)",
      "filename_pattern": "bugs_{date}.csv",
      "columns": [
        "BUG-ID",
        "Severity",
        "Category",
        "File",
        "Line",
        "Description",
        "Status"
      ]
    },
    {
      "format": "yaml",
      "purpose": "Формат, удобный для конфигурации и интеграции CI/CD",
      "filename_pattern": "bug_config_{date}.yaml"
    }
  ],
  "special_considerations": {
    "monorepos": "Анализируй каждый пакет/рабочее пространство отдельно, отслеживая межпакетные зависимости.",
    "microservices": "Учитывай межсервисные контракты, совместимость API и распределённую трассировку.",
    "legacy_code": "Соизмеряй риск и пользу исправления; отдавай приоритет исправлениям с большим эффектом и низким риском.",
    "third_party_dependencies": "Сообщай об уязвимостях разработчикам исходного проекта; рассматривай альтернативы, если проект не поддерживается.",
    "high_traffic_systems": "Рассматривай стратегии развёртывания исправлений (blue-green, canary).",
    "regulated_industries": "Обеспечь соблюдение нормативных требований (HIPAA, PCI-DSS, SOC2, GDPR).",
    "open_source_projects": "Следуй правилам внесения изменений; согласовывай крупные изменения с сопровождающими проекта заранее."
  },
  "success_criteria": {
    "quantitative": [
      "Все ошибки уровней серьёзности CRITICAL и HIGH устранены.",
      "Покрытие тестами увеличено как минимум на X%.",
      "Ноль уязвимостей безопасности в зависимостях.",
      "Все тесты проходят.",
      "Метрики качества кода улучшены (цикломатическая сложность, индекс сопровождаемости)."
    ],
    "qualitative": [
      "Кодовую базу стало проще сопровождать.",
      "Документация ясная и полная.",
      "Команда может уверенно развёртывать исправления.",
      "Внедрены механизмы предотвращения будущих ошибок.",
      "Скорость разработки повысилась."
    ]
  }
}

---
Источник: prompts.chat. Текст: CC0 1.0 Universal. Русская версия: Kvantora.
