AI Slop Code RIsk Monitor

kimai/kimai

Kimai is the #1 open-source time-tracking application. From freelancers to companies and organisations - everyone can manage timesheets, generate reports, create invoices and so much more... Web-based multi-user application, available as On-Premise or SaaS version: https://www.kimai.org

10.1 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for kimai/kimai, a PHP project with 5,067 GitHub stars. SynthScan examined 202,565 lines of code across 1978 source files, recording 1837 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 10.1 (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.

10.1
Adjusted Signal
10.1
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
5.1K
Stars
PHP
Language
202.6K
Lines of Code
2.0K
Files
1.8K
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 35.5/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 2.8/100 · LOW

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

Agent Over-Engineering Ratio 36.6/100 · MEDIUM

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

PR Review Velocity Impact 37.7/100 · MEDIUM

Which changes need focused human review? 1837 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 0HIGH 1MEDIUM 38LOW 1798

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 1837 distinct pattern matches across 8 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 Identifiers1637 hits · 1698 pts
SeverityFileLineSnippetContext
LOWtests/TranslationsTest.php19 public function testForWrongFileExtension(): voidCODE
LOWtests/TranslationsTest.php52 public function testReplacerWereNotTranslated(): voidCODE
LOWtests/TranslationsTest.php107 public function testEnabledLocalesAreLimitedToTranslatedLocales(): voidCODE
LOWtests/Reporting/ReportingServiceTest.php46 public function testGetAvailableReportsWithPermission(): voidCODE
LOWtests/Configuration/MailConfigurationTest.php25 public function testGetFromAddressWithEmptyAddressReturnsNull(): voidCODE
LOWtests/Configuration/LocaleServiceTest.php115 public function testInvalidLocaleWithGivenLocale(): voidCODE
LOWtests/Configuration/LocaleServiceTest.php150 public function testGetNearestTranslationLocale(string $locale, string $expected): voidCODE
LOWtests/Configuration/LocaleServiceTest.php160 public static function getNearestTranslationLocaleData(): arrayCODE
LOWtests/Configuration/SystemConfigurationTest.php156 public function testDefaultWithMixedConfigs(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php170 public function testIsUserAuthChangeAllowed(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php215 public function testCalendarWithoutLoader(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php240 public function testFormDefaultWithoutLoader(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php254 public function testUserDefaultLocaleFallsBackToLanguage(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php266 public function testFormDefaultWithLoader(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php278 public function testUserWizardWithoutLoader(): voidCODE
LOWtests/Configuration/SystemConfigurationTest.php290 public function testTimesheetWithoutLoader(): voidCODE
LOWtests/Repository/TeamRepositoryTest.php73 private function assertMembersAreFullyHydrated(Team $team, int $expectedMembers, bool $expectPreferences): voidCODE
LOWtests/Repository/TeamRepositoryTest.php93 public function testFindDoesNotPreloadMembers(): voidCODE
LOWtests/Repository/TeamRepositoryTest.php103 public function testCreateTeamLoaderPreloadsMembersUsersAndPreferences(): voidCODE
LOWtests/Repository/TeamRepositoryTest.php122 public function testCreateTeamLoaderWithoutMembers(): voidCODE
LOWtests/Repository/TeamRepositoryTest.php133 public function testFindByIdsPreloadsMembersButNotPreferences(): voidCODE
LOWtests/Repository/ProjectRepositoryTest.php65 public function testLockedUntilIsStoredAsPlainDay(string $timezone, string $time): voidCODE
LOWtests/Repository/InvoiceDocumentRepositoryTest.php85 public function testDefaultTemplatesExists(): voidCODE
LOWtests/Repository/UserRepositoryTest.php84 public function testLastLoginIsWrittenOnceWithinTimeWindow(): voidCODE
LOWtests/Repository/UserRepositoryTest.php118 public function testLastLoginIsUpdatedWhenOutdated(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php33 public function testResultTypeForQueryState(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php55 public function testPaginationReturnsDistinctResultsWithIdenticalBegin(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php175 public function testTimesheetResultPreloadsTeamAssignments(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php250 public function testQueryDoesNotReturnTimesheetsWithForeignActivityTeam(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php331 public function testFindTimesheetsByIdDoesNotReturnForeignActivityTeam(): voidCODE
LOWtests/Repository/TimesheetRepositoryTest.php386 public function testGetRecentActivityIdsHidesForeignTeamRestrictedActivity(): voidCODE
LOWtests/Repository/Search/SearchHelperTest.php32 public function testSearchTermIsNullDoesNotModifyQueryBuilder(): voidCODE
LOWtests/Repository/Search/SearchHelperTest.php45 public function testNoAliasThrowsException(): voidCODE
LOWtests/Repository/Search/SearchHelperTest.php61 public function testSupportsMetaFieldsAddsMetaFieldConditions(): voidCODE
LOWtests/Repository/Search/SearchHelperTest.php187 public function testSearchTermWithExcludedFieldAddsExclusionCondition(): voidCODE
LOWtests/Repository/Search/SearchHelperTest.php203 public static function provideMaliciousMetaFieldPayloads(): arrayCODE
LOWtests/Repository/Search/SearchHelperTest.php217 public function testMaliciousMetaFieldNamesCannotInfluenceSubqueryDql(string $term, array $expectedMetaNames): voidCODE
LOWtests/Repository/Loader/TeamLoaderTest.php34 public function testLoadResultsWithEmptyResults(): voidCODE
LOW⚡tests/Repository/Loader/TeamLoaderTest.php72 public function testLoadResultsDoesNotLoadUserPreferencesByDefault(): voidCODE
LOW⚡tests/Repository/Loader/TeamLoaderTest.php82 public function testLoadResultsWithUserPreferences(): voidCODE
LOW⚡tests/Repository/Loader/TeamLoaderTest.php92 public function testLoadResultsWithUserPreferencesAndWithoutMembers(): voidCODE
LOWtests/Repository/Query/BaseQueryTest.php361 public function testHasFullDateRangeWithoutDateRange(): voidCODE
LOWtests/Form/ActivityEditFormTest.php22 public function testWithGlobalNewActivity(): voidCODE
LOWtests/Form/ActivityEditFormTest.php42 public function testWithGlobalNewActivityAndOptionsBudget(): voidCODE
LOWtests/Form/ActivityEditFormTest.php53 public function testWithGlobalNewActivityAndOptionsTimeBudget(): voidCODE
LOWtests/Form/ActivityEditFormTest.php64 public function testWithGlobalNewActivityAndOptionsAllBudget(): voidCODE
LOWtests/Form/ActivityEditFormTest.php76 public function testWithGlobalExistingActivityAndOptions(): voidCODE
LOWtests/Form/ActivityEditFormTest.php89 public function testWithNonGlobalExistingActivityAndOptions(): voidCODE
LOWtests/Form/UserRolesTypeTest.php82 public function testHigherRoleIsPreservedWhenActorCannotAssignIt(): voidCODE
LOWtests/Form/UserRolesTypeTest.php95 public function testMultipleHigherRolesArePreserved(): voidCODE
LOWtests/Form/UserRolesTypeTest.php108 public function testAssignableRoleCanStillBeRemoved(): voidCODE
LOWtests/Form/UserRolesTypeTest.php120 public function testActorCanRemoveARoleTheyAreAllowedToAssign(): voidCODE
LOWtests/Form/UserRolesTypeTest.php132 public function testWithoutActingUserNothingIsPreserved(): voidCODE
LOWtests/Form/CustomerEditFormTest.php61 public function testWithBudgetAndTimeBudget(): voidCODE
LOWtests/Form/CustomerEditFormTest.php61 public function testWithBudgetAndTimeBudget(): voidCODE
LOWtests/Form/ProjectEditFormTest.php62 public function testWithBudgetAndTimeBudget(): voidCODE
LOWtests/Form/ProjectEditFormTest.php62 public function testWithBudgetAndTimeBudget(): voidCODE
LOWtests/Form/ExportTemplateSpreadsheetFormTest.php42 public function testWithGlobalNewActivity(): voidCODE
LOWtests/Form/Extension/ApiFormExtensionTest.php79 public function testConfigureOptionsDisablesCsrfProtection(): voidCODE
LOWtests/Form/Extension/ApiFormExtensionTest.php87 public function testBuildFormRemovesMetaFields(): voidCODE
1577 more matches not shown…
Decorative Section Separators36 hits · 148 pts
SeverityFileLineSnippetContext
MEDIUM⚡phpstan.sh3# ----------------------------------------------------------------------COMMENT
MEDIUM⚡phpstan.sh5# ----------------------------------------------------------------------COMMENT
MEDIUM⚡phpstan.sh11# ----------------------------------------------------------------------COMMENT
MEDIUM⚡php-cs-fixer.sh3# ----------------------------------------------------------------------COMMENT
MEDIUM⚡php-cs-fixer.sh5# ----------------------------------------------------------------------COMMENT
MEDIUM⚡php-cs-fixer.sh11# ----------------------------------------------------------------------COMMENT
MEDIUMkimai.sh3# --------------------------------------------------------------------------------COMMENT
MEDIUMkimai.sh7# --------------------------------------------------------------------------------COMMENT
MEDIUMkimai.sh160# ---------------------------------------------------------COMMENT
MEDIUMconfig/services.yaml45 # ================================================================================COMMENT
MEDIUMconfig/services.yaml47 # ================================================================================COMMENT
MEDIUMconfig/services.yaml91 # ================================================================================COMMENT
MEDIUMconfig/services.yaml93 # ================================================================================COMMENT
MEDIUMconfig/services.yaml107 # ================================================================================COMMENT
MEDIUMconfig/services.yaml109 # ================================================================================COMMENT
MEDIUM⚡config/services.yaml120 # ================================================================================COMMENT
MEDIUM⚡config/services.yaml122 # ================================================================================COMMENT
MEDIUM⚡config/services.yaml128 # ================================================================================COMMENT
MEDIUM⚡config/services.yaml130 # ================================================================================COMMENT
MEDIUM⚡config/packages/kimai.yaml1# ---------------------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml7# ---------------------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml10# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml12# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml16# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml19# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml21# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml71# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml74# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml76# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml124# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml127# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml129# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml149# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml152# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml154# --------------------------------------------------------------------------------COMMENT
MEDIUM⚡config/packages/kimai.yaml162# --------------------------------------------------------------------------------COMMENT
Fake / Example Data96 hits · 115 pts
SeverityFileLineSnippetContext
LOW…sts/Form/Extension/EnhancedChoiceTypeExtensionTest.php67 ['value' => null, 'attr' => ['size' => 1, 'class' => 'selectpicker', 'data-width' => '50%', 'data-disable-seCODE
LOW⚡tests/Form/Helper/ProjectHelperTest.php87 $project->setComment('Lorem Ipsum');CODE
LOW⚡tests/Form/Helper/ProjectHelperTest.php89 self::assertEquals('FOO BAR - Lorem Ipsum - Acme company - F76/123', $helper->getChoiceLabel($project));CODE
LOW⚡tests/Form/Helper/ActivityHelperTest.php58 $activity->setComment('Lorem Ipsum');CODE
LOW⚡tests/Form/Helper/ActivityHelperTest.php59 self::assertEquals('FOO BAR - Lorem Ipsum', $helper->getChoiceLabel($activity));CODE
LOW⚡tests/Form/Helper/CustomerHelperTest.php66 $customer->setComment('Lorem Ipsum');CODE
LOW⚡tests/Form/Helper/CustomerHelperTest.php67 self::assertEquals('FOO BAR - Lorem Ipsum', $helper->getChoiceLabel($customer));CODE
LOW⚡tests/Form/Helper/CustomerHelperTest.php69 self::assertEquals('FOO BAR - Lorem Ipsum - Acme University', $helper->getChoiceLabel($customer));CODE
LOW⚡tests/Form/Helper/CustomerHelperTest.php71 self::assertEquals('FOO BAR - Lorem Ipsum - Acme University - 2023-0815', $helper->getChoiceLabel($customer));CODE
LOW⚡tests/Mail/KimaiMailerTest.php91 $user->method('getEmail')->willReturn('user@example.com');CODE
LOWtests/Controller/TimesheetControllerTest.php637 self::assertEquals('Lorem Ipsum', $timesheet->getDescription());CODE
LOW⚡tests/Controller/ProfileControllerTest.php49 $this->assertHasProfileBox($client, 'John Doe');CODE
LOWtests/Controller/ProfileControllerTest.php86 $this->assertHasProfileBox($client, 'John Doe');CODE
LOWtests/Controller/ProfileControllerTest.php137 self::assertEquals('John Doe', $user->getAlias());CODE
LOWtests/API/CustomerControllerTest.php340 'email' => 'admin@example.com',CODE
LOWtests/API/CustomerControllerTest.php386 self::assertEquals('admin@example.com', $result['email']);CODE
LOW⚡tests/Command/CreateUserCommandTest.php43 $commandTester = $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar');CODE
LOW⚡tests/Command/CreateUserCommandTest.php51 $commandTester = $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar12');CODE
LOW⚡tests/Command/CreateUserCommandTest.php97 $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar123');CODE
LOW⚡tests/Command/CreateUserCommandTest.php106 $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar12');CODE
LOW⚡tests/Command/CreateUserCommandTest.php107 $commandTester = $this->createUser('MyTestUser2', 'user@example.com', 'ROLE_USER', 'foobar');CODE
LOW⚡tests/Command/CreateUserCommandTest.php123 $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar123');CODE
LOW⚡tests/Command/CreateUserCommandTest.php134 $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar123');CODE
LOW⚡tests/Command/CreateUserCommandTest.php135 $commandTester = $this->createUser('MyTestUser2', 'user@example.com', 'ROLE_USER', 'foobar123', true);CODE
LOW⚡tests/Command/CreateUserCommandTest.php143 $commandTester = $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar123', true);CODE
LOW⚡tests/Command/CreateUserCommandTest.php151 $this->createUser('MyTestUser', 'user@example.com', 'ROLE_USER', 'foobar123');CODE
LOWtests/Export/Spreadsheet/CustomerExporterTest.php47 $customer->setComment('Lorem Ipsum');CODE
LOWtests/Export/Spreadsheet/CustomerExporterTest.php98 self::assertEquals('Lorem Ipsum', $worksheet->getCell([++$i, 2])->getValue()); // commentCODE
LOW…xport/Spreadsheet/EntityWithMetaFieldsExporterTest.php48 $project->setComment('Lorem Ipsum');CODE
LOW…xport/Spreadsheet/EntityWithMetaFieldsExporterTest.php77 self::assertEquals('Lorem Ipsum', $worksheet->getCell([++$i, 2])->getValue());CODE
LOWtests/Export/Spreadsheet/ProjectExporterTest.php48 $project->setComment('Lorem Ipsum');CODE
LOWtests/Export/Spreadsheet/ProjectExporterTest.php77 self::assertEquals('Lorem Ipsum', $worksheet->getCell([++$i, 2])->getValue());CODE
LOWtests/Export/Spreadsheet/ActivityExporterTest.php46 $activity->setComment('Lorem Ipsum');CODE
LOWtests/Export/Spreadsheet/ActivityExporterTest.php69 self::assertEquals('Lorem Ipsum', $worksheet->getCell([++$i, 2])->getValue());CODE
LOW…sts/Export/Spreadsheet/AnnotatedObjectExporterTest.php33 $project->setComment('Lorem Ipsum');CODE
LOW…sts/Export/Spreadsheet/AnnotatedObjectExporterTest.php60 self::assertEquals('Lorem Ipsum', $worksheet->getCell([++$i, 2])->getValue());CODE
LOWtests/Export/Spreadsheet/Entities/DemoFull.php22 #[Exporter\Expose(name: 'fake-name', label: 'Protected-Property', type: 'boolean')]COMMENT
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php76 $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt uCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php76 $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt uCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php77 $loremIpsumShort = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php77 $loremIpsumShort = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php108 $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt uCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php108 $loremIpsum = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt uCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php116 'Lorem ipsum dolor sit amet, consetetur sadipscing …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php116 'Lorem ipsum dolor sit amet, consetetur sadipscing …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php121 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore eCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php121 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore eCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php126 'Lorem ipsum dolor sit amet, consetetur sadipscing …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php126 'Lorem ipsum dolor sit amet, consetetur sadipscing …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php131 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php131 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php132 $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php132 $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php136 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php136 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt …',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php137 $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php137 $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nCODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php141 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php141 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt',CODE
LOW⚡tests/Twig/Runtime/MarkdownExtensionTest.php142 $sut->commentOneLiner(implode(PHP_EOL, ['Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nCODE
36 more matches not shown…
Over-Commented Block63 hits · 61 pts
SeverityFileLineSnippetContext
LOWconfig/packages/kimai.yaml1# ---------------------------------------------------------------------------------------------COMMENT
LOWconfig/packages/kimai.yaml21# --------------------------------------------------------------------------------COMMENT
LOWconfig/packages/kimai.yaml41 #COMMENT
LOWconfig/packages/kimai.yaml61 # days: ['saturday','sunday']COMMENT
LOWconfig/packages/kimai.yaml121 ROLE_TEAMLEAD: ['view_rate_own_timesheet','view_rate_other_timesheet','hourly-rate_own_profile','view_team_mCOMMENT
LOWconfig/packages/kimai.yaml141#COMMENT
LOWtests/API/TimesheetControllerTest.php1861COMMENT
LOWsrc/Widget/DashboardService.php121 'DurationMonth',COMMENT
LOWsrc/Entity/Team.php21use Symfony\Component\Validator\Constraints as Assert;COMMENT
LOWsrc/Entity/Team.php41 #[ORM\Column(name: 'name', type: Types::STRING, length: 100, nullable: false)]COMMENT
LOWsrc/Entity/UserPreference.php61 #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]COMMENT
LOWsrc/Entity/WorkingTime.php21#[ORM\ChangeTrackingPolicy('DEFERRED_EXPLICIT')]COMMENT
LOWsrc/Entity/Tag.php21#[ORM\UniqueConstraint(columns: ['name'])]COMMENT
LOWsrc/Entity/Tag.php41 #[ORM\Column(name: 'name', type: Types::STRING, length: 100, nullable: false)]COMMENT
LOWsrc/Entity/User.php41#[UniqueEntity('email')]COMMENT
LOWsrc/Entity/User.php81 */COMMENT
LOWsrc/Entity/User.php161 * This flag will be initialized in UserEnvironmentSubscriber.COMMENT
LOWsrc/Entity/User.php181 #[ORM\Column(name: 'account', type: Types::STRING, length: 30, nullable: true)]COMMENT
LOWsrc/Entity/User.php221 private array $roles = [];COMMENT
LOWsrc/Entity/AccessToken.php21#[ORM\ChangeTrackingPolicy('DEFERRED_EXPLICIT')]COMMENT
LOWsrc/Entity/Customer.php41 #[ORM\Column(name: 'id', type: Types::INTEGER)]COMMENT
LOWsrc/Entity/Customer.php61 #[Exporter\Expose(label: 'number')]COMMENT
LOWsrc/Entity/Customer.php81 #[Assert\Length(max: 100)]COMMENT
LOWsrc/Entity/Customer.php101 /**COMMENT
LOWsrc/Entity/Customer.php121 #[Serializer\Groups(['Default'])]COMMENT
LOWsrc/Entity/Customer.php141 #[Serializer\Groups(['Default'])]COMMENT
LOWsrc/Entity/Customer.php161 #[Assert\Length(max: 100)]COMMENT
LOWsrc/Entity/Customer.php181 *COMMENT
LOWsrc/Entity/Customer.php201 #[Serializer\Groups(['Customer'])]COMMENT
LOWsrc/Entity/Customer.php221 #[Serializer\Groups(['Customer_Entity', 'Customer_Details'])]COMMENT
LOWsrc/Entity/Customer.php241 #[Exporter\Expose(label: 'city')]COMMENT
LOWsrc/Entity/Project.php21use JMS\Serializer\Annotation as Serializer;COMMENT
LOWsrc/Entity/Project.php41COMMENT
LOWsrc/Entity/Project.php61 private ?Customer $customer = null;COMMENT
LOWsrc/Entity/Project.php121 #[ORM\Column(name: 'locked_until', type: Types::DATE_IMMUTABLE, nullable: true)]COMMENT
LOWsrc/Entity/Project.php141 #[Exporter\Expose(label: 'visible', type: 'boolean')]COMMENT
LOWsrc/Entity/ExportTemplate.php21#[ORM\Entity(repositoryClass: ExportTemplateRepository::class)]COMMENT
LOWsrc/Entity/Invoice.php21use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;COMMENT
LOWsrc/Entity/Invoice.php41 public const STATUS_PAID = 'paid';COMMENT
LOWsrc/Entity/Invoice.php61 #[ORM\Column(name: 'comment', type: Types::TEXT, nullable: true)]COMMENT
LOWsrc/Entity/Invoice.php81 #[Assert\NotNull]COMMENT
LOWsrc/Entity/Invoice.php101 #[Serializer\Groups(['Default'])]COMMENT
LOWsrc/Entity/Invoice.php121 #[Serializer\Groups(['Default'])]COMMENT
LOWsrc/Entity/Bookmark.php21#[ORM\ChangeTrackingPolicy('DEFERRED_EXPLICIT')]COMMENT
LOWsrc/Entity/Rate.php21 #[ORM\Id]COMMENT
LOWsrc/Entity/CommentTableTypeTrait.php21 #[ORM\Column(name: 'id', type: Types::INTEGER)]COMMENT
LOWsrc/Entity/Activity.php21use JMS\Serializer\Annotation as Serializer;COMMENT
LOWsrc/Entity/Activity.php41 use CreatedTrait;COMMENT
LOWsrc/Entity/Activity.php61 */COMMENT
LOWsrc/Entity/Activity.php81 #[ORM\Column(name: 'visible', type: Types::BOOLEAN, nullable: false, options: ['default' => true])]COMMENT
LOWsrc/Entity/Activity.php101 #[Serializer\Type(name: 'array<App\Entity\ActivityMeta>')]COMMENT
LOWsrc/Entity/RolePermission.php21#[ORM\ChangeTrackingPolicy('DEFERRED_EXPLICIT')]COMMENT
LOWsrc/Entity/Timesheet.php21use Doctrine\ORM\Mapping as ORM;COMMENT
LOWsrc/Entity/Timesheet.php41#[ORM\Index(columns: ['user', 'id', 'duration'], name: 'IDX_TIMESHEET_RESULT_STATS')]COMMENT
LOWsrc/Entity/Timesheet.php101 * Attention: Accessor MUST be used, otherwise date will be serialized in UTC.COMMENT
LOWsrc/Entity/Timesheet.php141 private ?int $break = 0;COMMENT
LOWsrc/Entity/InvoiceTemplate.php21#[ORM\UniqueConstraint(columns: ['name'])]COMMENT
LOWsrc/Entity/InvoiceTemplate.php41 private ?string $company = null;COMMENT
LOWsrc/Entity/InvoiceTemplate.php61 #[ORM\Column(name: 'number_generator', type: Types::STRING, length: 20, nullable: false)]COMMENT
LOWsrc/Entity/TeamMember.php21#[ORM\ChangeTrackingPolicy('DEFERRED_EXPLICIT')]COMMENT
3 more matches not shown…
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHUPGRADING-1.md89 - some representation names changed (eg. from `ActivityMetaField` to `ActivityMeta`, `TimesheetSubCollection` vs `TiCODE
Example Usage Blocks2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡phpstan.sh6# Usage:COMMENT
LOW⚡php-cs-fixer.sh6# Usage:COMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/API/StatusController.php34 #[OA\Response(response: 200, description: "A simple route that returns a 'pong', which you can use for testing the ACOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/Invoice/Renderer/AbstractSpreadsheetRenderer.php85 // templates can have a formula, which utilize the timesheet records content like this:COMMENT