Skip to content

Add Homeboy CI workflow for automated PR review#526

Merged
chubes4 merged 3 commits intomainfrom
ci/homeboy-action
Mar 3, 2026
Merged

Add Homeboy CI workflow for automated PR review#526
chubes4 merged 3 commits intomainfrom
ci/homeboy-action

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 3, 2026

Summary

  • Adds .github/workflows/homeboy.yml that runs homeboy lint and homeboy test on every PR
  • Uses the new homeboy-action to install Homeboy, set up the WordPress extension, and run checks
  • SQLite for test database (no MySQL needed in CI)

What this enables

Every PR to data-machine will automatically get lint (PHPCS + ESLint + PHPStan) and test (PHPUnit) checks. Failed checks block merge.

Closes #268 (via homeboy-action)

@github-actions
Copy link

github-actions bot commented Mar 3, 2026

Homeboy Results — data-machine

lint (changed files only)

test

  • PHPCS: LINT SUMMARY: 212 errors, 199 warnings
  • Fixable: 176 | Files with issues: 108 of 346
Top violations
  WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine    93
  WordPress.DB.PreparedSQL.NotPrepared                       55
  Generic.CodeAnalysis.UnusedFunctionParameter.Found         36
  Generic.Formatting.MultipleStatementAlignment.NotSameWarning    35
  WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned    35
- PHPStan: PHPSTAN SUMMARY: 152 errors at level 5 - BUILD FAILED: PHPUnit tests
Fatal error
Fatal:  Uncaught Error: Class "DataMachine\Engine\AI\System\Tasks\ImageGenerationTask" not found in /home/runner/work/data-machine/data-machine/tests/Unit/AI/System/Tasks/ImageGenerationTaskTest.php:13

audit


Homeboy Action v1 — homeboy 0.52.0

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Collateral damage (417 issue(s) in untouched files)

These errors are in files you did not modify but may be caused by your changes:

data-machine.php

  • ❌ L421: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L428: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L401: Parameter #1 $new_blog_id of function switch_to_blog expects int, string given. argument.type

inc/Abilities/AgentMemoryAbilities.php

  • ⚠️ L247: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Abilities/Analytics/BingWebmasterAbilities.php

  • ❌ L232: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ⚠️ L245: Equals sign not aligned with surrounding assignments; expected 5 spaces but found 1 space Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L246: Equals sign not aligned with surrounding assignments; expected 5 spaces but found 1 space Generic.Formatting.MultipleStatementAlignment.NotSameWarning

inc/Abilities/Analytics/GoogleAnalyticsAbilities.php

  • ⚠️ L437: The method parameter $report_config is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ⚠️ L537: base64_encode() can be used to obfuscate code which is strongly discouraged. Please verify that the function is used for benign reasons. WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode

inc/Abilities/Analytics/GoogleSearchConsoleAbilities.php

  • ⚠️ L659: base64_encode() can be used to obfuscate code which is strongly discouraged. Please verify that the function is used for benign reasons. WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode

inc/Abilities/Analytics/PageSpeedAbilities.php

  • ⚠️ L207: Equals sign not aligned with surrounding assignments; expected 3 spaces but found 1 space Generic.Formatting.MultipleStatementAlignment.NotSameWarning

inc/Abilities/ChatAbilities.php

  • ❌ L24: Property DataMachine\Abilities\ChatAbilities::$list_sessions is never read, only written. property.onlyWritten
  • ❌ L25: Property DataMachine\Abilities\ChatAbilities::$get_session is never read, only written. property.onlyWritten
  • ❌ L26: Property DataMachine\Abilities\ChatAbilities::$delete_session is never read, only written. property.onlyWritten
  • ❌ L27: Property DataMachine\Abilities\ChatAbilities::$create_session is never read, only written. property.onlyWritten

inc/Abilities/Content/EditPostBlocksAbility.php

  • ⚠️ L142: The method parameter $tool_def is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Abilities/Content/GetPostBlocksAbility.php

  • ⚠️ L141: The method parameter $tool_def is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ❌ L183: Offset 'innerHTML' on array{blockName: string|null, attrs: array, innerBlocks: array, innerHTML: string, innerContent: array} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Abilities/Content/ReplacePostBlocksAbility.php

  • ⚠️ L137: The method parameter $tool_def is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Abilities/DailyMemoryAbilities.php

  • ⚠️ L281: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Abilities/Engine/ExecuteStepAbility.php

  • ❌ L253: Method DataMachine\Abilities\Engine\ExecuteStepAbility::resolveFlowStepConfig() never returns null so it can be removed from the return type. return.unusedType

inc/Abilities/Engine/PipelineBatchScheduler.php

  • ⚠️ L82: Array double arrow not aligned correctly; expected 13 space(s) between "'batch'" and double arrow, but found 14. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L83: Array double arrow not aligned correctly; expected 7 space(s) between "'batch_total'" and double arrow, but found 8. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L84: Array double arrow not aligned correctly; expected 3 space(s) between "'batch_scheduled'" and double arrow, but found 4. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L85: Array double arrow not aligned correctly; expected 2 space(s) between "'batch_chunk_size'" and double arrow, but found 3. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L86: Array double arrow not aligned correctly; expected 1 space(s) between "'next_flow_step_id'" and double arrow, but found 2. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ...and 7 more

inc/Abilities/Engine/ScheduleNextStepAbility.php

  • ❌ L162: Strict comparison using !== between false and int will always evaluate to true. notIdentical.alwaysTrue
  • ❌ L168: Strict comparison using !== between false and int will always evaluate to true. notIdentical.alwaysTrue

inc/Abilities/EngineAbilities.php

  • ❌ L26: Property DataMachine\Abilities\EngineAbilities::$run_flow is never read, only written. property.onlyWritten
  • ❌ L27: Property DataMachine\Abilities\EngineAbilities::$execute_step is never read, only written. property.onlyWritten
  • ❌ L28: Property DataMachine\Abilities\EngineAbilities::$schedule_next_step is never read, only written. property.onlyWritten
  • ❌ L29: Property DataMachine\Abilities\EngineAbilities::$schedule_flow is never read, only written. property.onlyWritten

inc/Abilities/Fetch/FetchFilesAbility.php

  • ❌ L278: The closing brace for the class must go on the next line after the body PSR2.Classes.ClassDeclaration.CloseBraceAfterBody
  • ❌ L269: Offset 'type' on array{ext: string|false, type: string|false} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Abilities/Fetch/FetchRssAbility.php

  • ⚠️ L207: Equals sign not aligned with surrounding assignments; expected 2 spaces but found 3 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L208: Equals sign not aligned with surrounding assignments; expected 1 space but found 2 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning

inc/Abilities/Fetch/FetchWordPressMediaAbility.php

  • ❌ L224: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ⚠️ L252: Array double arrow not aligned correctly; expected 5 space(s) between "'title'" and double arrow, but found 4. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L253: Array double arrow not aligned correctly; expected 3 space(s) between "'content'" and double arrow, but found 2. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L254: Array double arrow not aligned correctly; expected 2 space(s) between "'metadata'" and double arrow, but found 1. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ❌ L248: Expression on left side of ?? is not nullable. nullCoalesce.expr

inc/Abilities/Fetch/GetWordPressPostAbility.php

  • ❌ L143: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L163: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L180: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L158: Expression on left side of ?? is not nullable. nullCoalesce.expr

inc/Abilities/Fetch/QueryWordPressPostsAbility.php

  • ❌ L246: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L262: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L284: Expression on left side of ?? is not nullable. nullCoalesce.expr

inc/Abilities/FileAbilities.php

  • ⚠️ L927: Variable assignment found within a condition. Did you mean to do a comparison ? Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
  • ⚠️ L999: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ❌ L39: Property DataMachine\Abilities\FileAbilities::$db_pipelines is never read, only written. property.onlyWritten
  • ❌ L721: Right side of && is always true. booleanAnd.rightAlwaysTrue

inc/Abilities/FlowAbilities.php

  • ❌ L36: Property DataMachine\Abilities\FlowAbilities::$webhook_trigger is never read, only written. property.onlyWritten

inc/Abilities/FlowStep/ConfigureFlowStepsAbility.php

  • ❌ L572: Variable $effective_slug on left side of ?? always exists and is not nullable. nullCoalesce.variable

inc/Abilities/FlowStep/ValidateFlowStepsConfigAbility.php

  • ❌ L297: Variable $warnings in empty() always exists and is always falsy. empty.variable

inc/Abilities/HandlerAbilities.php

  • ❌ L289: Variable $handler_slug in empty() always exists and is not falsy. empty.variable

inc/Abilities/InternalLinkingAbilities.php

  • ⚠️ L483: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L808: Use placeholders and $wpdb->prepare(); found interpolated variable $id_placeholders at WHERE ID IN ($id_placeholders) AND post_status = %s" WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ⚠️ L1080: Array double arrow not aligned correctly; expected 3 space(s) between "'post_type'" and double arrow, but found 6. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L1081: Array double arrow not aligned correctly; expected 1 space(s) between "'post_status'" and double arrow, but found 4. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L1082: Array double arrow not aligned correctly; expected 4 space(s) between "'category'" and double arrow, but found 7. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ...and 31 more

inc/Abilities/Job/ExecuteWorkflowAbility.php

  • ❌ L247: Offset 0 on non-empty-list<int<min, -1>|int<1, max>> on left side of ?? always exists and is not nullable. nullCoalesce.offset
  • ❌ L392: Strict comparison using === between false and int will always evaluate to false. identical.alwaysFalse

inc/Abilities/LocalSearchAbilities.php

  • ⚠️ L184: Incorrect number of replacements passed to $wpdb->prepare(). Found 1 replacement parameters, expected 2. WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber
  • ❌ L186: Use placeholders and $wpdb->prepare(); found interpolated variable {$post_type_placeholders} at WHERE post_type IN ({$post_type_placeholders})\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L169: Call to function is_wp_error() with WP_Query will always evaluate to false. function.impossibleType

inc/Abilities/LogAbilities.php

  • ⚠️ L363: Silencing errors is strongly discouraged. Use proper error checking instead. Found: @file( $log_file,... WordPress.PHP.NoSilencedErrors.Discouraged
  • ❌ L283: Call to static method write() on an unknown class DataMachine\Engine\Logger. class.notFound

inc/Abilities/Media/AltTextAbilities.php

  • ⚠️ L276: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L261: Offset 'batch_id' on array{batch_id: string, total: int, chunk_size: int} on left side of ?? always exists and is not nullable. nullCoalesce.offset
  • ❌ L265: Offset 'chunk_size' on array{batch_id: string, total: int, chunk_size: int} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Abilities/Media/GDRenderer.php

  • ⚠️ L799: Silencing errors is strongly discouraged. Use proper error checking instead. Found: @Unlink( $temp_file ... WordPress.PHP.NoSilencedErrors.Discouraged
  • ⚠️ L799: unlink() is discouraged. Use wp_delete_file() to delete a file. WordPress.WP.AlternativeFunctions.unlink_unlink
  • ⚠️ L802: Silencing errors is strongly discouraged. Use proper error checking instead. Found: @Unlink( $path ... WordPress.PHP.NoSilencedErrors.Discouraged
  • ⚠️ L802: unlink() is discouraged. Use wp_delete_file() to delete a file. WordPress.WP.AlternativeFunctions.unlink_unlink
  • ⚠️ L827: Silencing errors is strongly discouraged. Use proper error checking instead. Found: @Unlink( $temp_path ... WordPress.PHP.NoSilencedErrors.Discouraged
  • ...and 3 more

inc/Abilities/Media/ImageTemplateAbilities.php

  • ⚠️ L219: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Abilities/Media/PlatformPresets.php

  • ⚠️ L85: Words in hook names should be separated using underscores. Expected: 'datamachine_image_generation_platform_presets', but found: 'datamachine/image_generation/platform_presets'. WordPress.NamingConventions.ValidHookName.UseUnderscores

inc/Abilities/Media/TemplateRegistry.php

  • ⚠️ L107: Words in hook names should be separated using underscores. Expected: 'datamachine_image_generation_templates', but found: 'datamachine/image_generation/templates'. WordPress.NamingConventions.ValidHookName.UseUnderscores

inc/Abilities/Pipeline/PipelineHelpers.php

  • ⚠️ L126: This comment is 43% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found

inc/Abilities/PipelineStepAbilities.php

  • ❌ L298: Variable $pipeline_step_id in empty() always exists and is not falsy. empty.variable
  • ❌ L563: Offset 'providers' on array{system_prompt?: mixed, provider?: string, model: string} in isset() does not exist. isset.offset

inc/Abilities/PostQueryAbilities.php

  • ⚠️ L453: The method parameter $tool_def is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Abilities/Publish/PublishWordPressAbility.php

  • ❌ L396: Call to function is_wp_error() with int<0, max> will always evaluate to false. function.impossibleType

inc/Abilities/SEO/MetaDescriptionAbilities.php

  • ❌ L319: Using short ternaries is not allowed as they are rarely used correctly Universal.Operators.DisallowShortTernary.Found
  • ❌ L221: Offset 'batch_id' on array{batch_id: string, total: int, chunk_size: int} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Abilities/SettingsAbilities.php

  • ⚠️ L315: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L545: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L708: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Abilities/StepTypeAbilities.php

  • ❌ L147: Variable $step_type_slug in empty() always exists and is not falsy. empty.variable

inc/Abilities/SystemAbilities.php

  • ⚠️ L213: The method parameter $options is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L250: Ternary operator condition is always true. ternary.alwaysTrue

inc/Abilities/TaxonomyAbilities.php

  • ❌ L32: Property DataMachine\Abilities\TaxonomyAbilities::$resolve_term is never read, only written. property.onlyWritten

inc/Abilities/Update/UpdateWordPressAbility.php

  • ❌ L290: Strict comparison using === between 0 and int<1, max> will always evaluate to false. identical.alwaysFalse

inc/Abilities/WorkspaceAbilities.php

  • ⚠️ L445: The method parameter $input is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Analytics.php

  • ⚠️ L80: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Auth.php

  • ⚠️ L98: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Chat/ChatFilters.php

  • ❌ L28: Call to function DataMachine\Api\Chat\datamachine_register_chat_filters() on a separate line has no effect. function.resultUnused

inc/Api/Chat/ChatPipelinesDirective.php

  • ❌ L73: Offset 'execution_order' on array{pipeline_step_id: string, step_name: string, step_type: string, execution_order: int} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Api/Chat/Tools/ApiQuery.php

  • ❌ L220: Call to function is_wp_error() with WP_REST_Response will always evaluate to false. function.impossibleType
  • ❌ L275: Variable $next in empty() always exists and is not falsy. empty.variable

inc/Api/Chat/Tools/CreatePipeline.php

  • ⚠️ L290: This comment is 43% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found
  • ⚠️ L316: This comment is 43% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found

inc/Api/Chat/Tools/CreateTaxonomyTerm.php

  • ⚠️ L193: It is recommended not to use reserved keyword "parent" as function parameter name. Found: $parent Universal.NamingConventions.NoReservedKeywordParameterNames.parentFound

inc/Api/Chat/Tools/UpdateTaxonomyTerm.php

  • ⚠️ L245: It is recommended not to use reserved keyword "parent" as function parameter name. Found: $parent Universal.NamingConventions.NoReservedKeywordParameterNames.parentFound

inc/Api/Files.php

  • ⚠️ L261: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L410: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L529: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Flows/FlowQueue.php

  • ⚠️ L214: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L331: If control structure block found as the only statement within an "else" block. Use elseif instead. Universal.ControlStructures.DisallowLonelyIf.Found

inc/Api/Flows/FlowSteps.php

  • ⚠️ L218: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Flows/Flows.php

  • ⚠️ L247: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/InternalLinks.php

  • ⚠️ L82: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L136: Call to function is_array() with array will always evaluate to true. function.alreadyNarrowedType

inc/Api/Jobs.php

  • ⚠️ L151: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Logs.php

  • ⚠️ L190: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L207: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Pipelines/PipelineFlows.php

  • ⚠️ L52: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Pipelines/PipelineSteps.php

  • ⚠️ L214: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L315: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ❌ L557: Assignments must be the first block of code on a line Squiz.PHP.DisallowMultipleAssignments.Found
  • ❌ L576: Empty CATCH statement detected Generic.CodeAnalysis.EmptyStatement.DetectedCatch
  • ❌ L522: Offset 'providers' on array{provider?: mixed, model: mixed} in isset() does not exist. isset.offset
  • ...and 2 more

inc/Api/Pipelines/Pipelines.php

  • ⚠️ L223: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L549: Static method DataMachine\Api\Pipelines\Pipelines::add_display_fields() is unused. method.unused

inc/Api/ProcessedItems.php

  • ⚠️ L74: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Api/Providers.php

  • ❌ L104: Method DataMachine\Api\Providers::handle_get_providers() should return WP_REST_Response but returns WP_Error. return.type

inc/Api/Settings.php

  • ⚠️ L178: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L198: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L302: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L356: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L386: Method DataMachine\Api\Settings::handle_get_handler_defaults() should return WP_REST_Response but returns WP_Error. return.type

inc/Api/System/System.php

  • ⚠️ L73: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ⚠️ L93: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found
  • ❌ L139: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L74: Method DataMachine\Api\System\System::get_status() should return array|WP_Error but returns WP_REST_Response. return.type

inc/Api/Users.php

  • ⚠️ L221: The method parameter $request is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Cli/Commands/BlocksCommand.php

  • ⚠️ L85: strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. WordPress.WP.AlternativeFunctions.strip_tags_strip_tags
  • ⚠️ L172: strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. WordPress.WP.AlternativeFunctions.strip_tags_strip_tags
  • ⚠️ L173: strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. WordPress.WP.AlternativeFunctions.strip_tags_strip_tags

inc/Cli/Commands/Flows/FlowsCommand.php

  • ⚠️ L418: Array double arrow not aligned correctly; expected 3 space(s) between "'step_id'" and double arrow, but found 4. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L419: Array double arrow not aligned correctly; expected 5 space(s) between "'order'" and double arrow, but found 6. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L420: Array double arrow not aligned correctly; expected 1 space(s) between "'step_type'" and double arrow, but found 2. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L421: Array double arrow not aligned correctly; expected 3 space(s) between "'handler'" and double arrow, but found 4. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ⚠️ L422: Array double arrow not aligned correctly; expected 4 space(s) between "'config'" and double arrow, but found 5. WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned
  • ...and 10 more

inc/Cli/Commands/Flows/QueueCommand.php

  • ❌ L596: Comparison operation ">" between int<1, max> and 0 is always true. greater.alwaysTrue

inc/Cli/Commands/JobsCommand.php

  • ❌ L1066: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at "SELECT job_id FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L355: Call to static method YAMLDump() on an unknown class Spyc. class.notFound

inc/Cli/Commands/PipelinesCommand.php

  • ⚠️ L688: Equals sign not aligned with surrounding assignments; expected 3 spaces but found 4 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L689: Equals sign not aligned with surrounding assignments; expected 1 space but found 2 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L690: Equals sign not aligned with surrounding assignments; expected 2 spaces but found 3 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ❌ L596: Right side of && is always true. booleanAnd.rightAlwaysTrue

inc/Core/ActionScheduler/QueueTuning.php

  • ⚠️ L33: This comment is 75% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found
  • ⚠️ L34: This comment is 50% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found
  • ⚠️ L35: This comment is 75% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found

inc/Core/Admin/DateFormatter.php

  • ⚠️ L46: The method parameter $status is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Core/Admin/FlowFormatter.php

  • ❌ L62: Variable $effective_slug in empty() always exists and is not falsy. empty.variable

inc/Core/Admin/Settings/SettingsFilters.php

  • ⚠️ L67: The method parameter $data is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Core/Database/BaseRepository.php

  • ❌ L69: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ⚠️ L71: Replacement variables found, but no valid placeholders found in the query. WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare
  • ❌ L72: Use placeholders and $wpdb->prepare(); found $id WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L45: Access to undefined constant static(DataMachine\Core\Database\BaseRepository)::TABLE_NAME. classConstant.notFound

inc/Core/Database/Flows/Flows.php

  • ❌ L205: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L232: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L234: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L235: Use placeholders and $wpdb->prepare(); found $pipeline_id WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L236: Use placeholders and $wpdb->prepare(); found $per_page WordPress.DB.PreparedSQL.NotPrepared
  • ...and 7 more

inc/Core/Database/Jobs/Jobs.php

  • ❌ L196: Use placeholders and $wpdb->prepare(); found interpolated variable {$table_name} at "ALTER TABLE {$table_name} MODIFY status varchar(255) NOT NULL" WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L209: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L211: Use placeholders and $wpdb->prepare(); found interpolated variable {$table_name} at "ALTER TABLE {$table_name} MODIFY pipeline_id varchar(20) NOT NULL" WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L223: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L225: Use placeholders and $wpdb->prepare(); found interpolated variable {$table_name} at "ALTER TABLE {$table_name} MODIFY flow_id varchar(20) NOT NULL" WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ...and 5 more

inc/Core/Database/Jobs/JobsOperations.php

  • ❌ L405: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L407: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L408: Use placeholders and $wpdb->prepare(); found $like_pattern WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L409: Use placeholders and $wpdb->prepare(); found $cutoff_datetime WordPress.DB.PreparedSQL.NotPrepared
  • ❌ L448: Use placeholders and $wpdb->prepare(); found $this WordPress.DB.PreparedSQL.NotPrepared
  • ...and 7 more

inc/Core/Database/Pipelines/Pipelines.php

  • ❌ L167: Variable $update_data in empty() always exists and is not falsy. empty.variable

inc/Core/EngineData.php

  • ⚠️ L145: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Core/ExecutionContext.php

  • ❌ L149: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L158: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L214: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda

inc/Core/FilesRepository/AgentMemory.php

  • ⚠️ L69: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ⚠️ L92: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ⚠️ L115: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ⚠️ L146: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ⚠️ L185: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ...and 4 more

inc/Core/FilesRepository/DailyMemory.php

  • ⚠️ L104: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
  • ⚠️ L135: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents(). WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
  • ⚠️ L177: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents(). WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
  • ⚠️ L179: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents(). WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
  • ⚠️ L431: Variable assignment found within a condition. Did you mean to do a comparison ? Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
  • ...and 3 more

inc/Core/FilesRepository/DirectoryManager.php

  • ⚠️ L125: The method parameter $pipeline_name is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ⚠️ L169: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writable(). WordPress.WP.AlternativeFunctions.file_system_operations_is_writable

inc/Core/FilesRepository/FileRetrieval.php

  • ⚠️ L46: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents

inc/Core/FilesRepository/ImageValidator.php

  • ❌ L33: Constant DataMachine\Core\FilesRepository\ImageValidator::MAX_FILE_SIZE is unused. classConstant.unused

inc/Core/FilesRepository/Workspace.php

  • ⚠️ L458: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents(). WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
  • ⚠️ L463: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents(). WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents

inc/Core/FilesRepository/WorkspaceWriter.php

  • ⚠️ L106: Silencing errors is strongly discouraged. Use proper error checking instead. Found: @Unlink( $file_path ... WordPress.PHP.NoSilencedErrors.Discouraged
  • ⚠️ L165: File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writable(). WordPress.WP.AlternativeFunctions.file_system_operations_is_writable

inc/Core/HttpClient.php

  • ❌ L79: Offset 'DELETE'|'GET'|'PATCH'|'POST'|'PUT' on array{GET: array{200, 202}, POST: array{200, 201, 202}, PUT: array{200, 201, 204}, PATCH: array{200, 204}, DELETE: array{200, 202, 204}} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Core/JobStatus.php

  • ❌ L151: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L159: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L173: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L187: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ❌ L195: Use Yoda Condition checks, you must. WordPress.PHP.YodaConditions.NotYoda
  • ...and 4 more

inc/Core/NetworkSettings.php

  • ⚠️ L58: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Core/OAuth/BaseOAuth1Provider.php

  • ❌ L54: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Core/OAuth/BaseOAuth2Provider.php

  • ❌ L72: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType
  • ❌ L103: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType
  • ❌ L315: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType
  • ❌ L376: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Core/OAuth/OAuth1Handler.php

  • ⚠️ L50: Loose comparisons are not allowed. Expected: "!=="; Found: "!=" Universal.Operators.StrictComparisons.LooseNotEqual
  • ⚠️ L244: Loose comparisons are not allowed. Expected: "!=="; Found: "!=" Universal.Operators.StrictComparisons.LooseNotEqual
  • ❌ L44: Instantiated class Abraham\TwitterOAuth\TwitterOAuth not found. class.notFound
  • ❌ L47: Call to method oauth() on an unknown class Abraham\TwitterOAuth\TwitterOAuth. class.notFound
  • ❌ L50: Call to method getLastHttpCode() on an unknown class Abraham\TwitterOAuth\TwitterOAuth. class.notFound
  • ...and 8 more

inc/Core/PluginSettings.php

  • ⚠️ L42: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L63: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Core/Selection/SelectionMode.php

  • ⚠️ L132: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Core/Steps/AI/AIStep.php

  • ❌ L141: Offset 'type' on array{ext: string|false, type: string|false} on left side of ?? always exists and is not nullable. nullCoalesce.offset
  • ❌ L160: Variable $mime_type on left side of ?? always exists and is not nullable. nullCoalesce.variable
  • ❌ L265: PHPDoc tag @param references unknown parameter: $data parameter.notFound

inc/Core/Steps/Fetch/Handlers/FetchHandler.php

  • ⚠️ L391: The method parameter $engine_data is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ❌ L66: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Core/Steps/Fetch/Handlers/Files/Files.php

  • ❌ L115: Call to an undefined method DataMachine\Core\Database\ProcessedItems\ProcessedItems::get_processed_item_ids(). method.notFound

inc/Core/Steps/Fetch/Handlers/Rss/Rss.php

  • ❌ L103: When a multi-item array uses associative keys, each value should start on a new line. WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound

inc/Core/Steps/Fetch/Handlers/WordPressAPI/WordPressAPI.php

  • ⚠️ L126: Equals sign not aligned with surrounding assignments; expected 8 spaces but found 12 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L127: Equals sign not aligned with surrounding assignments; expected 9 spaces but found 13 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L128: Equals sign not aligned with surrounding assignments; expected 1 space but found 5 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ❌ L169: Call to an undefined method DataMachine\Core\Database\ProcessedItems\ProcessedItems::get_processed_item_ids(). method.notFound

inc/Core/Steps/Fetch/Handlers/WordPressMedia/WordPressMedia.php

  • ❌ L118: Call to an undefined method DataMachine\Core\Database\ProcessedItems\ProcessedItems::get_processed_item_ids(). method.notFound

inc/Core/Steps/Fetch/Tools/SkipItemTool.php

  • ⚠️ L34: The method parameter $tool_def is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Core/Steps/HandlerRegistrationTrait.php

  • ⚠️ L39: It is recommended not to use reserved keyword "class" as function parameter name. Found: $class Universal.NamingConventions.NoReservedKeywordParameterNames.classFound

inc/Core/Steps/QueueableTrait.php (in context of class DataMachine\Core\Steps\AI\AIStep)

  • ❌ L78: Call to function property_exists() with $this(DataMachine\Core\Steps\AI\AIStep) and 'job_id' will always evaluate to true. function.alreadyNarrowedType

inc/Core/Steps/QueueableTrait.php (in context of class DataMachine\Core\Steps\AgentPing\AgentPingStep)

  • ❌ L78: Call to function property_exists() with $this(DataMachine\Core\Steps\AgentPing\AgentPingStep) and 'job_id' will always evaluate to true. function.alreadyNarrowedType

inc/Core/Steps/Settings/SettingsDisplayService.php

  • ❌ L192: Strict comparison using === between null and mixed will always evaluate to false. identical.alwaysFalse

inc/Core/Steps/Settings/SettingsHandler.php

  • ⚠️ L110: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L123: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L166: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L179: Loose comparisons are not allowed. Expected: "==="; Found: "==" Universal.Operators.StrictComparisons.LooseEqual

inc/Core/Steps/StepTypeRegistrationTrait.php

  • ⚠️ L50: It is recommended not to use reserved keyword "class" as function parameter name. Found: $class Universal.NamingConventions.NoReservedKeywordParameterNames.classFound

inc/Core/WordPress/PostTracking.php

  • ⚠️ L100: This comment is 55% valid code; is this commented out code? Squiz.PHP.CommentedOutCode.Found

inc/Core/WordPress/SiteContext.php

  • ❌ L92: Call to function is_object() with stdClass will always evaluate to true. function.alreadyNarrowedType
  • ❌ L132: Call to function is_object() with stdClass will always evaluate to true. function.alreadyNarrowedType
  • ❌ L137: Property WP_Taxonomy::$object_type (array) on left side of ?? is not nullable. nullCoalesce.property

inc/Core/WordPress/TaxonomyHandler.php

  • ⚠️ L294: The method parameter $engine_data is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ❌ L222: Right side of && is always true. booleanAnd.rightAlwaysTrue

inc/Core/WordPress/WordPressFilters.php

  • ❌ L30: Call to function DataMachine\Core\WordPress\datamachine_register_wordpress_utilities() on a separate line has no effect. function.resultUnused

inc/Core/WordPress/WordPressPublishHelper.php

  • ❌ L45: Offset 'type' on array{ext: string|false, type: string|false} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Core/WordPress/WordPressSettingsResolver.php

  • ⚠️ L31: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L50: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Engine/AI/ConversationManager.php

  • ⚠️ L114: The method parameter $tool_parameters is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Engine/AI/Directives/CoreMemoryFilesDirective.php

  • ⚠️ L88: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents

inc/Engine/AI/Directives/MemoryFilesReader.php

  • ⚠️ L54: file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead. WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents

inc/Engine/AI/Directives/SiteContextDirective.php

  • ❌ L35: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Engine/AI/PromptBuilder.php

  • ❌ L122: Call to function is_array() with array will always evaluate to true. function.alreadyNarrowedType
  • ❌ L131: Call to function is_array() with array will always evaluate to true. function.alreadyNarrowedType

inc/Engine/AI/System/SystemAgent.php

  • ❌ L517: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L607: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at "SELECT * FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L411: Variable $jobs_db in isset() always exists and is not nullable. isset.variable
  • ❌ L458: Variable $jobs_db in isset() always exists and is not nullable. isset.variable

inc/Engine/AI/System/SystemAgentServiceProvider.php

  • ⚠️ L61: Equals sign not aligned with surrounding assignments; expected 12 spaces but found 8 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L62: Equals sign not aligned with surrounding assignments; expected 9 spaces but found 5 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L63: Equals sign not aligned with surrounding assignments; expected 9 spaces but found 5 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L64: Equals sign not aligned with surrounding assignments; expected 12 spaces but found 8 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L65: Equals sign not aligned with surrounding assignments; expected 5 spaces but found 7 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ...and 1 more

inc/Engine/AI/System/Tasks/AltTextTask.php

  • ❌ L68: Offset 'type' on array{ext: string|false, type: string|false} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Engine/AI/System/Tasks/DailyMemoryTask.php

  • ❌ L170: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L217: Use placeholders and $wpdb->prepare(); found interpolated variable {$table} at FROM {$table}\n WordPress.DB.PreparedSQL.InterpolatedNotPrepared
  • ❌ L101: Offset 'message' on array{success: false, message: string} on left side of ?? always exists and is not nullable. nullCoalesce.offset

inc/Engine/AI/System/Tasks/ImageGenerationTask.php

  • ⚠️ L719: Avoid function calls in a FOR loop test part Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
  • ❌ L719: The use of count() inside a loop condition is not allowed; assign the return value to a variable and use the variable in the loop condition instead Squiz.PHP.DisallowSizeFunctionsInLoops.Found

inc/Engine/AI/System/Tasks/InternalLinkingTask.php

  • ⚠️ L546: Equals sign not aligned with surrounding assignments; expected 1 space but found 2 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning
  • ⚠️ L547: Equals sign not aligned with surrounding assignments; expected 3 spaces but found 4 spaces Generic.Formatting.MultipleStatementAlignment.NotSameWarning

inc/Engine/AI/System/Tasks/MetaDescriptionTask.php

  • ❌ L234: String "- Maximum " does not require double quotes; use single quotes instead Squiz.Strings.DoubleQuoteUsage.NotRequired
  • ❌ L242: String "Return ONLY the meta description text, nothing else." does not require double quotes; use single quotes instead Squiz.Strings.DoubleQuoteUsage.NotRequired

inc/Engine/AI/Tools/BaseTool.php

  • ⚠️ L76: The method parameter $tool_id is never used Generic.CodeAnalysis.UnusedFunctionParameter.Found

inc/Engine/AI/Tools/Global/AmazonAffiliateLink.php

  • ❌ L358: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L363: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/Global/BingWebmaster.php

  • ❌ L157: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/Global/GoogleAnalytics.php

  • ❌ L173: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L178: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L186: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L191: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/Global/GoogleSearch.php

  • ❌ L205: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/Global/GoogleSearchConsole.php

  • ❌ L187: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L195: Unreachable statement - code above always terminates. deadCode.unreachable
  • ❌ L200: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/Global/ImageGeneration.php

  • ❌ L176: Unreachable statement - code above always terminates. deadCode.unreachable

inc/Engine/AI/Tools/ToolParameters.php

  • ⚠️ L25: The method parameter $tool_definition is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Engine/Actions/Engine.php

  • ⚠️ L76: The method parameter $dataPackets is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Engine/Actions/Handlers/LogManageHandler.php

  • ❌ L69: Variable $max_size_mb on left side of ?? always exists and is not nullable. nullCoalesce.variable
  • ❌ L70: Variable $max_age_days on left side of ?? always exists and is not nullable. nullCoalesce.variable

inc/Engine/Actions/Handlers/MarkItemProcessedHandler.php

  • ❌ L28: Result of || is always false. booleanOr.alwaysFalse
  • ❌ L28: Variable $flow_step_id in isset() always exists and is not nullable. isset.variable
  • ❌ L41: Method DataMachine\Engine\Actions\Handlers\MarkItemProcessedHandler::handle() should return bool|null but empty return statement found. return.empty
  • ❌ L44: Call to function is_numeric() with int<min, -1>|int<1, max> will always evaluate to true. function.alreadyNarrowedType
  • ❌ L58: Method DataMachine\Engine\Actions\Handlers\MarkItemProcessedHandler::handle() should return bool|null but empty return statement found. return.empty

inc/Engine/Filters/Admin.php

  • ⚠️ L28: The method parameter $data is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
  • ⚠️ L300: The method parameter $page_slug is never used Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed

inc/Engine/Filters/DataMachineFilters.php

  • ⚠️ L76: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L98: It is recommended not to use reserved keyword "null" as function parameter name. Found: $null Universal.NamingConventions.NoReservedKeywordParameterNames.nullFound

inc/Engine/Filters/Handlers.php

  • ⚠️ L18: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L55: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound
  • ⚠️ L86: It is recommended not to use reserved keyword "default" as function parameter name. Found: $default Universal.NamingConventions.NoReservedKeywordParameterNames.defaultFound

inc/Engine/Logger.php

  • ❌ L123: Empty CATCH statement detected Generic.CodeAnalysis.EmptyStatement.DetectedCatch
  • ❌ L36: Function datamachine_get_monolog_instance() has invalid return type Monolog\Logger. class.notFound
  • ❌ L48: Instantiated class Monolog\Logger not found. class.notFound
  • ❌ L52: Instantiated class Monolog\Handler\StreamHandler not found. class.notFound
  • ❌ L54: Instantiated class Monolog\Formatter\LineFormatter not found. class.notFound
  • ...and 14 more

chubes4 added 3 commits March 3, 2026 21:08
Uses Extra-Chill/homeboy-action@v1 to run homeboy lint and test
on every pull request. WordPress extension with SQLite for tests.
@chubes4 chubes4 force-pushed the ci/homeboy-action branch from 229cd51 to 0eb3bd7 Compare March 3, 2026 21:08
@chubes4 chubes4 merged commit 8a923dd into main Mar 3, 2026
1 check failed
@chubes4 chubes4 deleted the ci/homeboy-action branch March 3, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant