AI Slop Code RIsk Monitor

mautic/mautic

Mautic: Open Source Marketing Automation Software.

8.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for mautic/mautic, a PHP project with 10,743 GitHub stars. SynthScan examined 743,382 lines of code across 5366 source files, recording 5665 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 8.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

8.0
Adjusted Signal
8.0
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
10.7K
Stars
PHP
Language
743.4K
Lines of Code
5.4K
Files
5.7K
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 30.9/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 5270 finding(s).

Hallucinated Dependency & Supply Chain Risk 3.0/100 · LOW

Are imports declared and package/API names verified? 395 finding(s).

Agent Over-Engineering Ratio 30.4/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 5221 finding(s).

PR Review Velocity Impact 31.9/100 · MEDIUM

Which changes need focused human review? 5665 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 4HIGH 0MEDIUM 8LOW 5653

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 5665 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers5221 hits · 5390 pts
SeverityFileLineSnippetContext
LOWapp/AppKernel.php256 public function registerContainerConfiguration(LoaderInterface $loader): voidCODE
LOWapp/middlewares/CORSMiddleware.php94 private function getAllowOriginHeaderValue(Request $request)CODE
LOWapp/middlewares/Tests/HSTSMiddlewareTest.php66 public function testIncludeSubdomainsEnabled(): voidCODE
LOWapp/middlewares/Tests/HSTSMiddlewareTest.php76 public function testIncludeSubdomainsDisabled(): voidCODE
LOWapp/middlewares/Tests/HSTSMiddlewareTest.php129 private function setIncludeDubDomainsValue(bool $value): voidCODE
LOWapp/middlewares/Tests/Dev/IpRestrictMiddlewareTest.php31 public function testWorkflowWithLocalhostIp(): voidCODE
LOWapp/middlewares/Tests/Dev/IpRestrictMiddlewareTest.php48 public function testWorkflowWithDisallowedIp(): voidCODE
LOWapp/middlewares/Tests/Dev/IpRestrictMiddlewareTest.php70 public function testWorkflowWithConfiguredIp(): voidCODE
LOWapp/bundles/ReportBundle/Entity/SchedulerRepository.php24 public function getScheduledReportsForExport(ExportOption $exportOption)CODE
LOWapp/bundles/ReportBundle/Entity/ReportRepository.php40 protected function addSearchCommandWhereClause($q, $filter): arrayCODE
LOWapp/bundles/ReportBundle/Entity/Report.php493 public function getSelectAndAggregatorAndOrderAndGroupByColumns(): arrayCODE
LOWapp/bundles/ReportBundle/Entity/Report.php498 public function getSelectAndAggregatorColumns(): arrayCODE
LOWapp/bundles/ReportBundle/Entity/Report.php600 public function getScheduleMonthFrequency()CODE
LOWapp/bundles/ReportBundle/Entity/Report.php608 public function setScheduleMonthFrequency($scheduleMonthFrequency): voidCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php159 public static function getValidReportTotalResult(): intCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php197 public static function getReportBuilderEventData(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php256 public static function getValidReportResultWithAggregatedColumns(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php306 public static function getValidReportDataAggregatedColumns(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php329 public static function getValidReportDataAggregatedTotals(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php341 public static function getValidReportWithAggregatedColumnsHeaders(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php355 public static function getValidReportWithAggregatedColumnsKeys(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php366 public static function getValidReportWithAggregatedColumnsTotalResult(): intCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php374 public static function getValidReportResultWithNoGraphs(): arrayCODE
LOWapp/bundles/ReportBundle/Tests/Fixtures.php385 public static function getValidReportResultWithGraphs(): arrayCODE
LOW…dles/ReportBundle/Tests/Unit/Model/ReportModelTest.php19 public function testThatGetReportDataUsesCorrectDataRange(): voidCODE
LOW…rm/DataTransformer/ReportFilterDataTransformerTest.php63 public function testTransformUtcToLocalForSupportedTypes(string $column, string $utcValue, string $expectedLocalValuCODE
LOW…rm/DataTransformer/ReportFilterDataTransformerTest.php85 public function testReverseTransformLocalToUtc(): voidCODE
LOW…rm/DataTransformer/ReportFilterDataTransformerTest.php102 public function testRelativeDatesRemainUnchanged(string $column, string $value): voidCODE
LOW…rm/DataTransformer/ReportFilterDataTransformerTest.php132 public function testTransformationIsSkippedForStringLikeConditions(string $condition): voidCODE
LOW…rm/DataTransformer/ReportFilterDataTransformerTest.php151 public function testReturnsOriginalFiltersIfColumnIsNotDefined(): voidCODE
LOW…undles/ReportBundle/Tests/Form/Type/ReportTypeTest.php37 public function testBuildFormThatAssetWillBePreselectedSource(): voidCODE
LOW…eportBundle/Tests/Form/Type/FilterSelectorTypeTest.php32 public function testBuildFormWithTagFilter(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php123 public function testBuildFormWithNoDynamicFilters(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php132 public function testBuildFormWithNonDynamicFilter(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php143 public function testBuildFormWithDynamicFilterDefaultType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php175 public function testBuildFormWithDynamicFilterBoolType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php215 public function testBuildFormWithDynamicFilterBooleanType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php237 public function testBuildFormWithDynamicFilterDateType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php273 public function testBuildFormWithDynamicFilterDateTimeType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php309 public function testBuildFormWithDynamicFilterSelectType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php335 public function testBuildFormWithDynamicFilterMultiselectType(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php363 public function testBuildFormWithDynamicFilterWithData(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php385 public function testBuildFormWithDynamicFilterInvalidOperatorGroup(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php407 public function testBuildFormWithDynamicFilterNoOperatorGroup(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php429 public function testBuildFormWithDynamicFilterNoOperatorLabel(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php498 public function testFilterWithDefaultValueIsSet(): voidCODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php527 public function testBooleanFilterIsSetCorrectly(): voidCODE
LOW…/ReportBundle/Tests/Entity/SchedulerRepositoryTest.php18 public function testGetScheduledReportsForExportNoID(): voidCODE
LOW⚡app/bundles/ReportBundle/Tests/Entity/ReportTest.php66 public function testInvalidMonthlyScheduled(): voidCODE
LOW⚡app/bundles/ReportBundle/Tests/Entity/ReportTest.php74 public function testInvalidWeeklyScheduled(): voidCODE
LOW⚡app/bundles/ReportBundle/Tests/Entity/ReportTest.php82 public function testGetFilterValueIfFIltersAreEmpty(): voidCODE
LOW⚡app/bundles/ReportBundle/Tests/Entity/ReportTest.php90 public function testGetFilterValueIfExists(): voidCODE
LOWapp/bundles/ReportBundle/Tests/Entity/ReportTest.php103 public function testGetFilterValueIfDoesNotExist(): voidCODE
LOW…s/Scheduler/Validator/ScheduleIsValidValidatorTest.php246 public function testNotSupportedScheduleType(): voidCODE
LOW…/ReportBundle/Tests/Scheduler/Date/DateBuilderTest.php60 public function testSchedulerNotSupported(): voidCODE
LOW…/ReportBundle/Tests/Scheduler/Date/DateBuilderTest.php98 public function testGetPreviewDaysForMonths(): voidCODE
LOW…rtBundle/Tests/Scheduler/Model/MessageScheduleTest.php32 public function testGetMessageForAttachedFile(): voidCODE
LOW…rtBundle/Tests/Scheduler/Model/MessageScheduleTest.php53 public function testGetMessageForLinkedFile(): voidCODE
LOW…eportBundle/Tests/Scheduler/Model/SendScheduleTest.php62 public function testSendScheduleWithCsvFile(): voidCODE
LOW…eportBundle/Tests/Scheduler/Model/SendScheduleTest.php107 public function testSendScheduleWithZipFile(): voidCODE
5161 more matches not shown…
Fake / Example Data391 hits · 408 pts
SeverityFileLineSnippetContext
LOWapp/bundles/ReportBundle/Form/Type/TableOrderType.php35 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/TableOrderType.php56 'placeholder' => false,CODE
LOW…/bundles/ReportBundle/Form/Type/DynamicFiltersType.php59 $args['attr']['placeholder'] = $filter['value'];CODE
LOW…/bundles/ReportBundle/Form/Type/DynamicFiltersType.php61 $args['attr']['placeholder'] = $definition['defaultValue'];CODE
LOWapp/bundles/ReportBundle/Form/Type/ReportType.php122 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/ReportType.php335 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/ReportType.php353 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/ReportType.php371 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/AggregatorType.php40 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/AggregatorType.php58 'placeholder' => false,CODE
LOW…/bundles/ReportBundle/Form/Type/FilterSelectorType.php34 'placeholder' => false,CODE
LOW…/bundles/ReportBundle/Form/Type/FilterSelectorType.php61 'placeholder' => false,CODE
LOW…/bundles/ReportBundle/Form/Type/FilterSelectorType.php115 'placeholder' => false,CODE
LOWapp/bundles/ReportBundle/Form/Type/ReportWidgetType.php47 'placeholder' => false,CODE
LOW…eportBundle/Tests/Form/Type/FilterSelectorTypeTest.php79 'placeholder' => false,CODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php162 'placeholder' => 'test_value',CODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php194 'placeholder' => 1,CODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php256 'placeholder' => '2023-01-01',CODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php292 'placeholder' => '2023-01-01 12:00:00',CODE
LOW…eportBundle/Tests/Form/Type/DynamicFiltersTypeTest.php583 $this->assertEquals('US', $view->children['country']->vars['attr']['placeholder']);CODE
LOW…le/Tests/Controller/ReportControllerFunctionalTest.php383 $report->setToAddress('test@test.com');CODE
LOW…le/Tests/Controller/ReportControllerFunctionalTest.php531 $toAddress = 'test@test.com';CODE
LOW…bhookBundle/Form/Type/CampaignEventSendWebhookType.php61 'placeholder' => false,CODE
LOWapp/bundles/WebhookBundle/Form/Type/WebhookType.php139 'placeholder' => 'mautic.core.form.default',CODE
LOWapp/bundles/WebhookBundle/Form/Type/ConfigType.php31 'placeholder' => false,CODE
LOW…les/InstallBundle/Tests/Command/InstallCommandTest.php78 '--admin_email' => 'admin@example.com',CODE
LOW…les/InstallBundle/Tests/Command/InstallCommandTest.php105 '--admin_email' => 'admin@example.com',CODE
LOW…les/InstallBundle/Tests/Command/InstallCommandTest.php145 '--admin_email' => 'admin@example.com',CODE
LOW…s/InstallBundle/Configurator/Form/DoctrineStepType.php37 'placeholder' => false,CODE
LOWapp/bundles/DashboardBundle/Form/Type/WidgetType.php56 'placeholder' => 'mautic.core.select',CODE
LOW…bundles/ConfigBundle/Form/Helper/RestrictionHelper.php71 'placeholder' => $this->translator->trans('mautic.config.restricted'),CODE
LOW…nfigBundle/Tests/Form/Helper/RestrictionHelperTest.php202 'placeholder' => 'mautic.config.restricted',CODE
LOW…bundles/ConfigBundle/Tests/Mapper/ConfigMapperTest.php107 'address' => 'test@test.com',CODE
LOW…bundles/ConfigBundle/Tests/Mapper/ConfigMapperTest.php111 'user' => 'test@test.com',CODE
LOW…bundles/ConfigBundle/Tests/Mapper/ConfigMapperTest.php197 'address' => 'test@test.com',CODE
LOW…bundles/ConfigBundle/Tests/Mapper/ConfigMapperTest.php201 'user' => 'test@test.com',CODE
LOW⚡…igBundle/Tests/Mapper/Helper/RestrictionHelperTest.php54 'address' => 'test@test.com',CODE
LOW⚡…igBundle/Tests/Mapper/Helper/RestrictionHelperTest.php58 'user' => 'test@test.com',CODE
LOW…igBundle/Tests/Mapper/Helper/RestrictionHelperTest.php88 'address' => 'test@test.com',CODE
LOW…igBundle/Tests/Mapper/Helper/RestrictionHelperTest.php92 'user' => 'test@test.com',CODE
LOW…/ConfigBundle/Tests/Mapper/Helper/ConfigHelperTest.php58 'address' => 'test@test.com',CODE
LOW…/ConfigBundle/Tests/Mapper/Helper/ConfigHelperTest.php62 'user' => 'test@test.com',CODE
LOW…/ConfigBundle/Tests/Mapper/Helper/ConfigHelperTest.php98 'address' => 'test@test.com',CODE
LOW…/ConfigBundle/Tests/Mapper/Helper/ConfigHelperTest.php102 'user' => 'test@test.com',CODE
LOW…/bundles/CampaignBundle/Form/Type/CampaignListType.php46 'placeholder' => false,CODE
LOW…bundles/CampaignBundle/Form/Type/CampaignShareType.php83 'placeholder' => 'mautic.campaign.share.vendor_name.placeholder',CODE
LOW…bundles/CampaignBundle/Form/Type/CampaignShareType.php162 'placeholder' => 'mautic.campaign.share.keywords.placeholder',CODE
LOW…bundles/CampaignBundle/Form/Type/CampaignShareType.php224 'placeholder' => 'mautic.campaign.share.gallery_alt.placeholder',CODE
LOW…bundles/CampaignBundle/Form/Type/CampaignShareType.php244 'placeholder' => '0.00',CODE
LOWapp/bundles/CampaignBundle/Form/Type/EventType.php86 'placeholder' => false,CODE
LOWapp/bundles/CampaignBundle/Form/Type/EventType.php145 'placeholder' => false,CODE
LOWapp/bundles/CampaignBundle/Form/Type/EventType.php237 'placeholder' => false,CODE
LOW…aignBundle/Tests/Model/CampaignModelFunctionalTest.php217 $stat->setEmailAddress('test@test.com');CODE
LOW…paignBundle/Tests/Functional/Fixtures/entity_data.json590 "custom_html": "<!doctype html>\r\n<html lang=\"und\" dir=\"auto\" xmlns=\"http:\/\/www.w3.org\/1999\/xhCODE
LOW…paignBundle/Tests/Functional/Fixtures/entity_data.json590 "custom_html": "<!doctype html>\r\n<html lang=\"und\" dir=\"auto\" xmlns=\"http:\/\/www.w3.org\/1999\/xhCODE
LOW…paignBundle/Tests/Functional/Fixtures/entity_data.json711 "placeholder": nullCODE
LOW…ndles/CampaignBundle/Controller/CampaignController.php1013 'placeholder' => $this->translator->trans('mautic.campaign.filter.placeholder'),CODE
LOWapp/bundles/UserBundle/Form/Type/UserInviteType.php31 'placeholder' => 'mautic.user.invite.email.label',CODE
LOWapp/bundles/UserBundle/Form/Type/UserInviteType.php49 'placeholder' => 'mautic.user.invite.role.placeholder',CODE
LOWapp/bundles/UserBundle/Form/Type/ConfigType.php176 'placeholder' => '',CODE
331 more matches not shown…
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippetContext
CRITICALthemes/fresh-fixed/js/jquery.min.js4null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;returnCODE
CRITICALthemes/fresh-wide/js/jquery.min.js4null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;returnCODE
CRITICALthemes/fresh-left/js/jquery.min.js4null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;returnCODE
CRITICALthemes/fresh-center/js/jquery.min.js4null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;returnCODE
Verbosity Indicators17 hits · 37 pts
SeverityFileLineSnippetContext
LOW⚡…InstallBundle/Tests/Functional/InstallWorkflowTest.php76 // Step 0: System checks.COMMENT
LOW⚡…InstallBundle/Tests/Functional/InstallWorkflowTest.php86 // Step 1: DB.COMMENT
LOW…InstallBundle/Tests/Functional/InstallWorkflowTest.php100 // Step 2: Admin user.COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php50 // Step 1: GET the campaign (like API Library test does)COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php57 // Step 2: Remove last event with array_pop (exactly like API Library test)COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php60 // Step 3: PUT request to update campaign (this triggers the SQL error)COMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php28 // Step 1: Create a custom field of type select with 4 optionsCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php31 // Step 2: Create a form with a field mapped to the custom field using syncListCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php34 // Step 3: Create a landing page with the formCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php54 // Step 4: Edit custom field and remove one optionCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php57 // Step 5: Refresh the page and assert the form has updated optionsCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php30 // Step 1: Create a form with an email field that has auto-fill enabledCOMMENT
LOW…undle/Tests/Functional/Model/FocusFormAutoFillTest.php51 // Step 2: Create a Focus item using this formCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php83 // Step 3: Create a contact with emailCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php89 // Step 4: Track the contact using setSystemContact (bypasses HTTP request requirement)COMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php94 // Step 5: Generate Focus content directlyCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php99 // Step 6: Verify the generated form HTML contains auto-filled email valueCOMMENT
Structural Annotation Overuse17 hits · 37 pts
SeverityFileLineSnippetContext
LOW⚡…InstallBundle/Tests/Functional/InstallWorkflowTest.php76 // Step 0: System checks.COMMENT
LOW⚡…InstallBundle/Tests/Functional/InstallWorkflowTest.php86 // Step 1: DB.COMMENT
LOW…InstallBundle/Tests/Functional/InstallWorkflowTest.php100 // Step 2: Admin user.COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php50 // Step 1: GET the campaign (like API Library test does)COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php57 // Step 2: Remove last event with array_pop (exactly like API Library test)COMMENT
LOW⚡…le/Tests/Functional/Api/CampaignApiEventDeleteTest.php60 // Step 3: PUT request to update campaign (this triggers the SQL error)COMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php28 // Step 1: Create a custom field of type select with 4 optionsCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php31 // Step 2: Create a form with a field mapped to the custom field using syncListCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php34 // Step 3: Create a landing page with the formCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php54 // Step 4: Edit custom field and remove one optionCOMMENT
LOW⚡…/EventListener/CustomFieldSubscriberFunctionalTest.php57 // Step 5: Refresh the page and assert the form has updated optionsCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php30 // Step 1: Create a form with an email field that has auto-fill enabledCOMMENT
LOW…undle/Tests/Functional/Model/FocusFormAutoFillTest.php51 // Step 2: Create a Focus item using this formCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php83 // Step 3: Create a contact with emailCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php89 // Step 4: Track the contact using setSystemContact (bypasses HTTP request requirement)COMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php94 // Step 5: Generate Focus content directlyCOMMENT
LOW⚡…undle/Tests/Functional/Model/FocusFormAutoFillTest.php99 // Step 6: Verify the generated form HTML contains auto-filled email valueCOMMENT
Modern AI Meta-Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUM…s/CoreBundle/Tests/Unit/Loader/ParameterLoaderTest.php68 // Create a composer.json with mautic-scaffold web-root (recommended-project style)COMMENT
MEDIUMapp/bundles/CoreBundle/Loader/ParameterLoader.php145 // Otherwise, auto-detect from composer.json's mautic-scaffold.locations.web-rootCOMMENT
MEDIUMapp/bundles/CoreBundle/Loader/ParameterLoader.php289 // Check mautic-scaffold.locations.web-root (used by recommended-project)COMMENT
MEDIUM.github/workflows/tests.yml292 # test that local_root is auto-detected from composer.json's mautic-scaffold.locations.web-rootCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…undles/LeadBundle/Controller/Api/LeadApiController.php618 // new endpoints will leverage getNewEntity in order to return the correct status codesCOMMENT
MEDIUM…p/bundles/CoreBundle/Assets/js/libraries/8a.adminre.js694 // utilize bootstrap collapseCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ries/bootstrap/_bootstrap-mautic-custom-variables.scss288//## Define the breakpoints at which your layout will change, adapting to different screen sizes.COMMENT
MEDIUM…ries/bootstrap/_bootstrap-mautic-custom-variables.scss342//## Define the maximum width of `.container` for different screen sizes.COMMENT
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOWapp/bundles/CoreBundle/Loader/ParameterLoader.php81 EnvVars\SiteUrlEnvVars::load($this->parameterBag, $defaultParameters, $envVariables);COMMENT
LOWapp/bundles/PageBundle/Model/TrackableModel.php661 * @param array<int|string, Redirect|Trackable> $trackableTokensCOMMENT
LOW…derBundle/Assets/library/js/preset-mautic/listeners.js1export default () => {COMMENT
LOW…ibrary/js/preset-mautic/buttons/buttonClose.command.js81COMMENT
LOWplugins/MauticSocialBundle/Form/Type/TweetSendType.php81 // 'contentOnly' => 1,COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.ddev/mautic-setup.sh40# Check if the user has indicated their preference for the Mautic installationCOMMENT
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapp/bundles/LeadBundle/Translations/en_US/messages.ini73mautic.contact.noinformation.places="Our system is still on the trail. Don't forget to enable geolocation services in thCODE