AI Slop Code Risk Monitor

twentyhq/twenty

SlopCodeMonitor badge for twentyhq/twenty Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The open alternative to Salesforce, designed for AI.

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for twentyhq/twenty, a TypeScript project with 60,195 GitHub stars. SynthScan examined 2,822,447 lines of code across 36015 source files, recording 1169 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 0.8 (Low 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.

0.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
60.2K
Stars
TypeScript
Language
2.8M
Lines of Code
36.0K
Files
1.2K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 0.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.9/100 · LOW

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

Agent Over-Engineering Ratio 0.7/100 · LOW

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

PR Review Velocity Impact 4.0/100 · LOW

Which changes need focused human review? 1169 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 84HIGH 52MEDIUM 54LOW 979

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 1169 distinct pattern matches across 24 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.

Hallucination Indicators84 hits · 840 pts
SeverityFileLineSnippetContext
CRITICAL…form/visuals/halftone-studio/engine/HalftoneCanvas.tsx161 resources.imageMaterial.uniforms.imageSize.value.set(1, 1);CODE
CRITICAL…form/visuals/halftone-studio/engine/HalftoneCanvas.tsx176 resources.imageMaterial.uniforms.imageSize.value.set(CODE
CRITICAL…google/calendar/channel-visibility.integration-spec.ts51 return response.body.data.calendarEvents.edges.map(CODE
CRITICAL…google/calendar/channel-visibility.integration-spec.ts72 return response.body.data.calendarEventParticipants.edges.map(CODE
CRITICAL…oogle/messaging/channel-visibility.integration-spec.ts50 return response.body.data.messages.edges.map(CODE
CRITICAL…oogle/messaging/channel-visibility.integration-spec.ts71 return response.body.data.messageParticipants.edges.map(CODE
CRITICAL…er/test/integration/utils/list-chat-thread-ids.util.ts30 return response.body.data.agentChatThreads.edges.map(CODE
CRITICAL…on/application-variable-encryption.integration-spec.ts174 findResponse.body.data.findOneApplication.applicationVariables.find(CODE
CRITICAL…on/application-variable-encryption.integration-spec.ts241 findResponse.body.data.findOneApplication.applicationVariables.find(CODE
CRITICAL…l/suites/calendar-event-visibility.integration-spec.ts206 calendarEvents: response.body.data.calendarEvents.edges.map(CODE
CRITICAL…l/suites/calendar-event-visibility.integration-spec.ts241 calendarEvents: response.body.data.calendarEventParticipants.edges.map(CODE
CRITICAL…l/suites/calendar-event-visibility.integration-spec.ts272 response.body.data.person.calendarEventParticipants.edges.map(CODE
CRITICAL…ql/suites/mutate-by-relation-field.integration-spec.ts143 findResponse.body.data.people.edges.map(CODE
CRITICAL…ql/suites/mutate-by-relation-field.integration-spec.ts202 const remainingIds = findResponse.body.data.people.edges.map(CODE
CRITICAL…hql/suites/chat-thread-participant.integration-spec.ts262 return response.body.data.agentChatThreadParticipants.edges.map(CODE
CRITICAL…application-user-role-intersection.integration-spec.ts123 return response.body.data.companies.edges.map(CODE
CRITICAL…hat-conversation-record-attachment.integration-spec.ts109 return response.body.data.agentChatThreadTargets.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts80 const firstPagePeople = firstPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts114 const secondPagePeople = secondPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts153 const thirdPagePeople = thirdPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts180 const firstPagePeople = firstPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts208 const secondPagePeople = secondPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts236 const allPeople = allPeopleResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/composite-field-pagination.integration-spec.ts260 const backwardPagePeople = backwardPageResponse.body.data.people.edges.map(CODE
CRITICAL…/suites/person-participant-rematch.integration-spec.ts73 response.body.data.messageParticipants.edges.map(CODE
CRITICAL…n/graphql/suites/relation-join-rls.integration-spec.ts71 const ids = response.body.data.people.edges.map(CODE
CRITICAL…n/graphql/suites/relation-join-rls.integration-spec.ts94 response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts169 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts205 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts242 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts303 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts345 const companyNames = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts387 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts482 const ids = response.body.data.people.edges.map(CODE
CRITICAL…ql/suites/filter-by-relation-field.integration-spec.ts516 const ids = response.body.data.pets.edges.map(CODE
CRITICAL…suites/timeline-from-object-record.integration-spec.ts432 threadResponse.body.data.getTimelineThreadsFromObjectRecord.timelineThreads.map(CODE
CRITICAL…suites/timeline-from-object-record.integration-spec.ts437 calendarResponse.body.data.getTimelineCalendarEventsFromObjectRecord.timelineCalendarEvents.map(CODE
CRITICAL…/suites/uncompilable-rls-predicate.integration-spec.ts36 return response.body.data.companies.edges.map(CODE
CRITICAL…art-data-relation-traversal-filter.integration-spec.ts58 }> = objectsResponse.body.data.objects.edges.map(CODE
CRITICAL…/suites/cursor-pagination-order-by.integration-spec.ts645 response.body.data.opportunities.edges.map(CODE
CRITICAL…ites/event-logs/object-event-write.integration-spec.ts51 personObjectMetadataId = response.body.data.objects.edges.find(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts301 const errorRecord = response.body.data.eventLogs.records.find(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts346 const firstPageTimestamps = firstPage.body.data.eventLogs.records.map(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts349 const secondPageTimestamps = secondPage.body.data.eventLogs.records.map(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts394 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts437 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts462 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts489 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts515 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts535 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts557 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts594 upgradeResponse.body.data.eventLogs.records.filter(CODE
CRITICAL…aphql/suites/event-logs/event-logs.integration-spec.ts620 response.body.data.eventLogs.records.forEach(CODE
CRITICAL…issions/record-sharing-beyond-role.integration-spec.ts314 sharing.body.data.recordSharing.shares.map(CODE
CRITICAL…actions-object-records-permissions.integration-spec.ts90 response.body.data.currentUser.currentUserWorkspace.objectsPermissions.find(CODE
CRITICAL…cord-level-permissions-on-relation.integration-spec.ts68 return response.body.data.companies.edges.map(CODE
CRITICAL…ability-object-records-permissions.integration-spec.ts417 response.body.data.people.edges.map(CODE
CRITICAL…ect-generated/companies-merge-many.integration-spec.ts503 findCompaniesResponse.body.data.companies.edges.map(CODE
CRITICAL…eople-merge-many-field-permissions.integration-spec.ts80 return response.body.data.people.edges.map(CODE
CRITICAL…object-generated/people-merge-many.integration-spec.ts237 return response.body.data.messageThreadTargets.edges.map(CODE
24 more matches not shown…
Fake / Example Data555 hits · 593 pts
SeverityFileLineSnippetContext
LOW…ves/feedback/Skeleton/__stories__/Skeleton.stories.tsx17 render: (args) => <Skeleton {...args} data-testid="placeholder" />,CODE
LOW…ves/feedback/Skeleton/__stories__/Skeleton.stories.tsx52 const placeholder = canvas.getByTestId('placeholder');CODE
LOW…ves/feedback/Skeleton/__stories__/Skeleton.stories.tsx175 const placeholder = canvas.getByTestId('placeholder');CODE
LOW…ves/feedback/Skeleton/__stories__/Skeleton.stories.tsx199 canvas.getByTestId('placeholder'),CODE
LOW…ves/feedback/Skeleton/__stories__/Skeleton.stories.tsx223 const placeholder = canvas.getByTestId('placeholder');CODE
LOW…ck/Skeleton/__tests__/Skeleton.reduced-motion.test.tsx9 render(<Skeleton data-testid="placeholder" width={120} height={16} />);CODE
LOW…ck/Skeleton/__tests__/Skeleton.reduced-motion.test.tsx11 const placeholder = screen.getByTestId('placeholder');CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx14 render(<Skeleton data-testid="placeholder" />);CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx16 expect(screen.getByTestId('placeholder')).toHaveAttribute(CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx26 data-testid="placeholder"CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx40 expect(screen.getByTestId('placeholder')).toHaveStyle(CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx46 render(<Skeleton data-testid="placeholder" layout="inline" />);CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx48 expect(screen.getByTestId('placeholder').textContent).toBe('‌');CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx52 render(<Skeleton data-testid="placeholder" />);CODE
LOW⚡…imitives/feedback/Skeleton/__tests__/Skeleton.test.tsx54 const placeholder = screen.getByTestId('placeholder');CODE
LOW…mitives/data-display/Chip/__stories__/Chip.stories.tsx109 children: 'John Doe',CODE
LOW…mitives/data-display/Chip/__stories__/Chip.stories.tsx111 <Avatar name="JD" colorSeed="John Doe" size="sm" shape="circle" />CODE
LOW…ves/data-display/Status/__stories__/Status.stories.tsx37 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…ves/data-display/Status/__stories__/Status.stories.tsx37 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW⚡…ves/data-display/Avatar/__stories__/Avatar.stories.tsx268 <Avatar.Root name="Jane Doe" shape="circle" size="xxl">CODE
LOW⚡…ves/data-display/Avatar/__stories__/Avatar.stories.tsx269 <Avatar.Image src={VALID_IMAGE} alt="Jane Doe" decoding="async" />CODE
LOW⚡…ves/data-display/Avatar/__stories__/Avatar.stories.tsx270 <Avatar.Fallback role="img" aria-label="Jane Doe">CODE
LOW…ves/data-display/Avatar/__stories__/Avatar.stories.tsx281 const image = await canvas.findByAltText('Jane Doe');CODE
LOW…ves/data-display/Avatar/__stories__/Avatar.stories.tsx544 <Avatar.Root name="Jane Doe" size="xxl">CODE
LOW…ves/data-display/Avatar/__stories__/Avatar.stories.tsx549 aria-label="Jane Doe"CODE
LOW…ves/data-display/Avatar/__stories__/Avatar.stories.tsx567 const fallback = await canvas.findByRole('img', { name: 'Jane Doe' });CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx38 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx38 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx50 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx50 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx63 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx63 children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx77 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx77 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx90 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx90 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx104 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…rimitives/data-display/Tag/__stories__/Tag.stories.tsx104 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',CODE
LOW…ooltip/__stories__/OverflowTextWithTooltip.stories.tsx12 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi tellus diam, rhoncus nec consequat quis, dapibus quis CODE
LOW…ooltip/__stories__/OverflowTextWithTooltip.stories.tsx12 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi tellus diam, rhoncus nec consequat quis, dapibus quis CODE
LOW…rimitives/typography/Text/__stories__/Text.stories.tsx23 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore';CODE
LOW…rimitives/typography/Text/__stories__/Text.stories.tsx23 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore';CODE
LOW…/utilities/utils/__tests__/normalizeSearchText.test.ts241 { text: 'user@example.com', expected: 'user@example.com' },CODE
LOW…er/__stories__/CurrencyPicker.interactions.stories.tsx170 await expect(search).toHaveAttribute('placeholder', 'Find a currency');CODE
LOW…icker/__stories__/EmojiPicker.interactions.stories.tsx86 await expect(search).toHaveAttribute('placeholder', 'Search by name');CODE
LOW…/src/components/__stories__/LabelOverrides.stories.tsx117 ).toHaveAttribute('placeholder', 'Search everything');CODE
LOW…/src/components/__stories__/LabelOverrides.stories.tsx271 ).toHaveAttribute('placeholder', 'Type a choice');CODE
LOW…components/navigation/MenuItem/types/MenuItemAccent.ts1export type MenuItemAccent = 'default' | 'danger' | 'placeholder';CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx190 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx212 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx219 const name = await canvas.findByText('John Doe');CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx246 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx248 street: '123 Main St',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx314 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx344 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx346 street: '123 Main St',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx393 name: 'John Doe',CODE
LOW…data-display/JsonTree/__stories__/JsonTree.stories.tsx395 street: '123 Main St',CODE
LOW⚡…data-display/JsonTree/__stories__/JsonTree.stories.tsx549 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum iaculis est tincidunt, sagittis neque vitae, CODE
LOW⚡…data-display/JsonTree/__stories__/JsonTree.stories.tsx549 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum iaculis est tincidunt, sagittis neque vitae, CODE
495 more matches not shown…
Hyper-Verbose Identifiers195 hits · 200 pts
SeverityFileLineSnippetContext
LOWpackages/twenty-ui/scripts/generateBarrels.ts366function extractExportsFromSourceFile(sourceFile: ts.SourceFile) {CODE
LOW…mitives/feedback/Banner/__stories__/Banner.stories.tsx233 render: function ControlledDismissalExample() {CODE
LOW…rflowingTextWithTooltip/OverflowingTextWithTooltip.tsx18 function OverflowingTextWithTooltip({CODE
LOW…e/src/apps-marketplace/fetch-marketplace-app-detail.ts40export async function fetchMarketplaceAppDetailBySlug(CODE
LOW…te/src/sections/footer/LocaleSwitcherDismissEffect.tsx12export function LocaleSwitcherDismissEffect({CODE
LOW…ct-feature/PipelineVisual/components/CreatedByChip.tsx9function renderCreatedByLeftComponent(actor: DealActor): ReactNode {CODE
LOW…/sections/testimonials/PartnerTestimonialsCarousel.tsx205export function PartnerTestimonialsCarousel({CODE
LOW…ions/pricing-salesfarce/SalesfarceWrongChoicePopup.tsx91export function SalesfarceWrongChoicePopup({CODE
LOW…/menu/effect-components/CloseDrawerOnDesktopEffect.tsx11export function CloseDrawerOnDesktopEffect({CODE
LOW…oduct-stepper/components/ProductStepperVisualFrame.tsx48export function ProductStepperVisualFrame({CODE
LOW…ctions/case-study-detail/CustomersCaseStudySignoff.tsx7export function CustomersCaseStudySignoff() {CODE
LOW…used)/partners/apply/PartnerApplicationPageContent.tsx34export function PartnerApplicationPageContent() {CODE
LOW…le]/(site)/compare-pricing/microsoft-dynamics/page.tsx13export default async function CompareMicrosoftDynamicsPricingPage({CODE
LOW…app/[locale]/(site)/compare-pricing/pipedrive/page.tsx13export default async function ComparePipedrivePricingPage({CODE
LOW…c/app/[locale]/(site)/compare-pricing/hubspot/page.tsx13export default async function CompareHubspotPricingPage({CODE
LOW…pp/[locale]/(site)/compare-pricing/salesforce/page.tsx13export default async function CompareSalesforcePricingPage({CODE
LOW…artners-marketplace/fetch-live-marketplace-partners.ts85export async function fetchLiveMarketplacePartners(): Promise<CODE
LOW…iliate-application/build-affiliate-workflow-payload.ts18export function buildAffiliateWorkflowPayload(CODE
LOW…rc/platform/enterprise/is-searchable-metadata-value.ts3export function isSearchableMetadataValue(value: unknown): value is string {CODE
LOW…website/src/platform/enterprise/sign-validity-token.ts18function getValidityTokenDurationDays(): number {CODE
LOW…tform/enterprise/resolve-subscription-license-state.ts43export function resolveSubscriptionLicenseState({CODE
LOW…rprise/get-validity-token-emission-limit-per-window.ts3export function getValidityTokenEmissionLimitPerWindow(): number {CODE
LOW…erprise/evaluate-validity-token-emission-rate-limit.ts12export function evaluateValidityTokenEmissionRateLimit({CODE
LOW…atform/enterprise/has-prior-subscription-for-server.ts11export async function hasPriorSubscriptionForServer({CODE
LOW…platform/enterprise/subscription-current-period-end.ts3export function getSubscriptionCurrentPeriodEnd(CODE
LOW…atform/enterprise/get-licensee-from-stripe-customer.ts9export function getLicenseeFromStripeCustomer(CODE
LOW…form/visuals/halftone-studio/studio/HalftoneStudio.tsx118function normalizePresetAssetReference(reference: string | null) {CODE
LOW…/halftone-studio/studio/CopyHalftoneShortcutEffect.tsx29export function CopyHalftoneShortcutEffect({CODE
LOW…c/platform/visuals/halftone-studio/export/exporters.ts27function toIllustrationRegistryKey(componentName: string) {CODE
LOW…c/platform/visuals/halftone-studio/export/exporters.ts35function normalizeReactExportSettings(CODE
LOW…c/platform/visuals/halftone-studio/export/exporters.ts77function getStandaloneThreeImports(CODE
LOW…c/platform/visuals/halftone-studio/export/exporters.ts105function getTwentyReactHeaderComment(CODE
LOW…orm/visuals/halftone-studio/export/exporter-parsing.ts32function isRoundedBandHalftoneSettings(value: unknown): value is Omit<CODE
LOW…orm/visuals/halftone-studio/export/exporter-parsing.ts231function deriveExportComponentName(CODE
LOW…als/halftone-studio/export/footprint-runtime-source.ts107function getFootprintScaleFromRects(currentRect, referenceRect) {CODE
LOW…latform/visuals/halftone-studio/export/export-names.ts21function normalizeExportComponentName(CODE
LOW…latform/visuals/halftone-studio/export/export-names.ts41function resolveExportArtifactNames(CODE
LOW…orm/visuals/halftone-studio/export/image-svg-export.ts49function getHorizontalAlphaSegments(CODE
LOW…form/visuals/halftone-studio/export/exporter-source.ts442function normalizeTextureCoordinates(geometry) {CODE
LOW…form/visuals/halftone-studio/export/exporter-source.ts478function normalizeImportedGeometry(geometry) {CODE
LOW…form/visuals/halftone-studio/export/exporter-source.ts610function createImportedRuntimeSource(loader: HalftoneGeometrySpec['loader']) {CODE
LOW…form/visuals/halftone-studio/export/exporter-source.ts619async function loadImportedGeometryFromUrl(modelUrl, label) {CODE
LOW…form/visuals/halftone-studio/export/exporter-source.ts657function createImportedGeometryRuntimeSource(shape: ExportedShapeDescriptor) {CODE
LOW…uals/halftone-studio/export/material-runtime-source.ts29function createGlassTransmissionScene(environmentTexture) {CODE
LOW…uals/halftone-studio/export/material-runtime-source.ts85async function createHalftoneMaterialAssets(renderer) {CODE
LOW…uals/halftone-studio/export/material-runtime-source.ts100function applyHalftoneMaterialSettings(material, materialSettings, materialAssets) {CODE
LOW…uals/halftone-studio/export/material-runtime-source.ts162function renderHalftoneMaterialScene({CODE
LOW⚡…uals/halftone-studio/export/material-runtime-source.ts207function disposeHalftoneMaterialAssets(materialAssets) {CODE
LOW⚡…uals/halftone-studio/export/material-runtime-source.ts214function createImageTextureLoadSource(url: string | null) {CODE
LOW⚡…uals/halftone-studio/export/material-runtime-source.ts220export function createMaterialRuntimeSource({CODE
LOW…uals/halftone-studio/export/material-runtime-source.ts239function loadMaterialImageTextures(renderer) {CODE
LOW…rm/visuals/halftone-studio/engine/interaction-state.ts33function createHalftoneInteractionState(CODE
LOW…rm/visuals/halftone-studio/engine/interaction-state.ts85function resetHalftoneInteractionState(CODE
LOW…/halftone-studio/engine/create-initial-studio-state.ts5export function createInitialHalftoneStudioState(): HalftoneStudioState {CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts491function createGlassTransmissionScene(environmentTexture: THREE.Texture) {CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts562async function loadHalftoneMaterialTextures({CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts592async function createHalftoneMaterialAssets({CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts621function applyHalftoneMaterialSettings(CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts694function renderHalftoneMaterialScene(options: {CODE
LOW…c/platform/visuals/halftone-studio/engine/materials.ts755function disposeHalftoneMaterialAssets(assets: HalftoneMaterialAssets) {CODE
135 more matches not shown…
Cross-Language Confusion (JS/TS)25 hits · 142 pts
SeverityFileLineSnippetContext
HIGH…ls/code-interpreter-tool/twenty-mcp-helper.constant.ts184 return NoneCODE
HIGH⚡…l-metadata/create-standard-flat-skill-metadata.util.ts775print(f"{len(tools)} catalog tools available")CODE
HIGH⚡…l-metadata/create-standard-flat-skill-metadata.util.ts777 print(f"- {tool['name']}")CODE
HIGH⚡…l-metadata/create-standard-flat-skill-metadata.util.ts782 print(c['name'], c.get('employees'))CODE
HIGH⚡…l-metadata/create-standard-flat-skill-metadata.util.ts791print(f"Created company id={result['id']}")CODE
HIGH⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1049 print(row)CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts267 print(summary) # { 'created': 4000, 'updated': 380, 'upserted': 4380, 'failed': 0, 'errors': [] }CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts733print('Chart saved!')CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts744print(f"Loaded {len(df)} rows")CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts754print('Analysis complete!')CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts1032 print(text)CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts1170 print(para.text)CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts1176 print(cell.text)CODE
HIGH…l-metadata/create-standard-flat-skill-metadata.util.ts1473 print(shape.text)CODE
HIGH⚡…es/ai/components/__stories__/AiChatMessage.stories.tsx85print(f"Total sales: $" + str(df['sales'].sum()))CODE
HIGH⚡…es/ai/components/__stories__/AiChatMessage.stories.tsx86print("Chart saved successfully!")`,CODE
HIGH…es/ai/components/__stories__/AiChatMessage.stories.tsx158print("Processing data...")CODE
HIGH…es/ai/components/__stories__/AiChatMessage.stories.tsx160print("Done!")`,CODE
HIGH…es/ai/components/__stories__/AiChatMessage.stories.tsx184print(df.head())`,CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx23print(f"Total Revenue: $" + f"{total:,.2f}")CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx24print(f"Average Monthly: $" + f"{average:,.2f}")CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx56print("Complete!")`,CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx86print(df.head())`,CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx142print("Files exported successfully!")`,CODE
HIGH…omponents/__stories__/CodeExecutionDisplay.stories.tsx203 print(f"Processing item {i+1}...")`,CODE
Over-Commented Block84 hits · 84 pts
SeverityFileLineSnippetContext
LOWpackages/twenty-ui/src/vite-env.d.ts1/// <reference types="vite/client" />COMMENT
LOW…i/src/components/code-editor/CodeEditor/CodeEditor.tsx21import { defineCodeEditorDefaultTheme } from './internal/utils/defineCodeEditorDefaultTheme';COMMENT
LOWpackages/twenty-docker/docker-compose.yml21 STORAGE_S3_NAME: ${STORAGE_S3_NAME}COMMENT
LOWpackages/twenty-docker/docker-compose.yml81 STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}COMMENT
LOWpackages/twenty-docker/helm/twenty/README.md61**Local (default):** Uses PVCs for persistenceCOMMENT
LOW…te/src/platform/routing/partner-directory-anchor-id.ts1// The lead page's directory zone is reached by anchor from the hero CTACOMMENT
LOW…bsite/src/platform/menu-style/menu-style-background.ts1// The Menu's background override channel: a page writes this customCOMMENT
LOW…e/src/app-preview/stage/traffic-lights-escape-event.ts1// The prompt egg (terminal subtree) launches the traffic-light escapeCOMMENT
LOWpackages/twenty-website/src/tokens/hero-composition.ts1// The hero's internal vertical rhythm: the gap from the CTA row down to theCOMMENT
LOW…ty-website/src/tokens/app-preview/app-preview-tones.ts1// The mockup's tone tables (single module). Every product-color group derivesCOMMENT
LOW…kages/twenty-docs/scripts/prune-orphan-translations.ts1import fs from 'fs';COMMENT
LOW…n-command/2-18/utils/does-physical-index-exist.util.ts1import { type QueryRunner } from 'typeorm';COMMENT
LOW…mmand/2-18/utils/get-physical-index-definition.util.ts1import { type QueryRunner } from 'typeorm';COMMENT
LOW…529458168-backfill-name-field-is-system-side-effect.ts1import { DataSource, QueryRunner } from 'typeorm';COMMENT
LOW…59040-make-billing-credit-grant-expires-at-nullable.ts1import { QueryRunner } from 'typeorm';COMMENT
LOW…-fast-1747234200000-add-sub-field-name-to-view-sort.ts1import { QueryRunner } from 'typeorm';COMMENT
LOW…1277453604-rename-is-ui-read-only-to-is-ui-editable.ts1// Grandfathered: this 2.13 command already shipped to cloud and is recordedCOMMENT
LOW…nly-to-is-ui-editable-upgrade-command-name.constant.ts1// Step name of the 2.13 fast instance command that renames isUIReadOnly toCOMMENT
LOW…compute-unique-field-metadata-ids-from-indexes.util.ts21// UNIQUE index — e.g. `defineIndex({ isUnique: true, fields: [oneField] })` —COMMENT
LOW…de-interpreter/drivers/local-driver-kernel.constant.ts1// Persistent Python "kernel" used by the LocalDriver to keep variables,COMMENT
LOW…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py21Usage:COMMENT
LOW…event/constants/max-events-per-trigger-job.constant.ts1// Hard ceiling on how many database events a single logic function trigger job carries when theCOMMENT
LOW…-modules/file/constants/twenty-mime-policy.constant.ts1// Extensions where Twenty intentionally deviates from the IANA-standard mimeCOMMENT
LOW…modules/usage-limit/utils/normalize-spender-id.util.ts1// The entity stores '' for a limit with no spenderId so the unique index canCOMMENT
LOW…ules/pending-wake-up/types/owner-waiting-state.type.ts1// Whether the owner of a wake-up, or the caller of an agent run, still waits on it.COMMENT
LOW…/message-queue/message-queue-worker-config.constant.ts1import { type MessageQueueWorkerOptions } from 'src/engine/core-modules/message-queue/interfaces/message-queue-worker-opCOMMENT
LOW…nstants/server-route-dispatch-job-priority.constant.ts1// A server route dispatch answers an inbound webhook someone is waiting on,COMMENT
LOW…ool-provider/interfaces/tool-retrieval-options.type.ts1import { type ToolCatalogOptions } from 'src/engine/core-modules/tool-provider/types/tool-catalog-options.type';COMMENT
LOW…ool/constants/max-inline-tool-output-bytes.constant.ts1// Shared budget for inlining a tool result. Above this, outputs are spilled toCOMMENT
LOW…ty-server/src/engine/guards/custom-permission.guard.ts1import {COMMENT
LOW…twenty-server/src/engine/guards/no-permission.guard.ts1import {COMMENT
LOWpackages/twenty-sdk/vite.config.node.ts1import path from 'path';COMMENT
LOW…ogic-function/connections/types/app-connection.type.ts1// One credential the running app owns. Returned from `listConnections` andCOMMENT
LOW…enty-shared/src/constants/CsvInjectionPreventionZwj.ts1// Zero-Width Joiner character used to prevent CSV injection while preserving data.COMMENT
LOW…wenty-shared/src/application/connectionProviderType.ts1// Discriminator on `connectionProvider.type`. Each value pairs with aCOMMENT
LOW…ges/twenty-shared/src/application/appConnectionType.ts1// Wire shape exchanged between an app's logic-function runtime and theCOMMENT
LOW…ges/twenty-shared/src/application/appConnectionType.ts21 // Upstream account id from identifyAccountLogicFunction; not unique, apps dedupe on it themselves.COMMENT
LOW…kages/twenty-front-component-renderer/vitest.config.ts1// Re-exported so @storybook/addon-vitest's in-UI "Run tests" button (whichCOMMENT
LOW…src/polyfills/image/utils/createImagePreloaderClass.ts41 #state: ImagePreloaderState = 'idle';COMMENT
LOWpackages/twenty-utils/setup-dev-env.sh1#!/bin/bashCOMMENT
LOW…pp-template/example/files/github/workflows/publish.yml1# Publishes the app to npm with provenance (npm trusted publishing).COMMENT
LOW…enty-cli/src/app/add/entity-logic-function-template.ts41 // },COMMENT
LOW…enty-cli/src/app/translations/locale-catalog-format.ts1import { isDefined } from 'twenty-shared/utils';COMMENT
LOW…es/twenty-client-sdk/src/generate/runtime-templates.ts1// The generated client ships its own copy of the genql runtime. We import theCOMMENT
LOWpackages/twenty-client-sdk/src/generate/genql/config.ts1// Path the generated client imports its runtime from.COMMENT
LOW…c/generate/genql/render/responseTypes/interfaceType.ts21 )}) & { __isUnion?: true }`,COMMENT
LOW…c/generate/genql/render/responseTypes/interfaceType.ts41// const typeNames = ctx.schema.getPossibleTypes(type).map((t) => t.name)COMMENT
LOW…generate/genql/render/responseTypes/typeMappedAlias.ts21}COMMENT
LOW…k/src/generate/genql/render/responseTypes/unionType.ts21 `${typeComment(type)}export type ${type.name} = (${typeNames.join(COMMENT
LOW…k/src/generate/genql/render/responseTypes/unionType.ts41// }`,COMMENT
LOW…erate/__tests__/upstream-3.0.5/execute-queries.test.ts21} from './fixture/generated';COMMENT
LOW…unctions/constants/recall-recovery-calls-per-minute.ts1// Recall caps GET /bot/{id} at 300/min for the whole account, shared by everyCOMMENT
LOW…nts/upcoming-calendar-event-scheduling-horizon-days.ts1// Recall recommends scheduling bots for a rolling near-term window rather than far in advance,COMMENT
LOWpackages/twenty-front/src/vite-env.d.ts1/// <reference types="vite/client" />COMMENT
LOWpackages/twenty-front/src/nx-react.d.ts1/// <reference types="@nx/react/typings/cssmodule.d.ts" />COMMENT
LOW…s/data-model/indexes/utils/indexableOptionSeparator.ts1// The Select component takes string values. We encode (fieldMetadataId,COMMENT
LOW…s/object-record/__stories__/RecordShowPage.stories.tsx61export default meta;COMMENT
LOW…s/twenty-e2e-testing/tests/workflow-visualizer.spec.ts1// import { expect } from '@playwright/test';COMMENT
LOW…s/twenty-e2e-testing/tests/workflow-visualizer.spec.ts21// await expect(draftWorkflowStatus).toBeVisible();COMMENT
LOW…s/twenty-e2e-testing/tests/workflow-visualizer.spec.ts41// await workflowVisualizer.createStep('create-record');COMMENT
24 more matches not shown…
Magic Placeholder Names16 hits · 80 pts
SeverityFileLineSnippetContext
HIGHpackages/twenty-docs/scripts/__tests__/lint-mdx.spec.ts8 'Set the header to <your-api-key> before calling.',CODE
HIGHpackages/twenty-docs/scripts/__tests__/lint-mdx.spec.ts12 { line: 1, column: 19, text: '<your-api-key>', name: 'your-api-key' },CODE
HIGH…s/twenty-agent-skills/scripts/validate-distribution.js174 if (/Bearer\s+(?!YOUR_API_KEY\b)[A-Za-z0-9._-]{20,}/.test(contents)) {CODE
HIGH…ges/twenty-agent-skills/scripts/validators/metadata.js126 if (/Bearer\s+(?!YOUR_API_KEY\b)[A-Za-z0-9._-]{20,}/.test(contents)) {CODE
HIGH…y-front/src/modules/settings/mcp/constants/McpSetup.ts10 value: 'Bearer <YOUR_API_KEY>',CODE
HIGH…y-front/src/modules/settings/mcp/constants/McpSetup.ts10 value: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts48 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts48 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts61 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts61 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts106 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts106 Authorization: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts122 expect(params.get('header')).toBe('Authorization=Bearer <YOUR_API_KEY>');CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts122 expect(params.get('header')).toBe('Authorization=Bearer <YOUR_API_KEY>');CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts137 value: 'Bearer <YOUR_API_KEY>',CODE
HIGH…/modules/settings/mcp/utils/__tests__/mcpSetup.test.ts137 value: 'Bearer <YOUR_API_KEY>',CODE
Decorative Section Separators25 hits · 75 pts
SeverityFileLineSnippetContext
MEDIUM…-docker/helm/twenty/tests/schema_permissions_test.yaml9 # ================COMMENT
MEDIUM…-docker/helm/twenty/tests/schema_permissions_test.yaml63 # ==================COMMENT
MEDIUM…ls/code-interpreter-tool/twenty-mcp-helper.constant.ts212# --------------------------------------------------------------------------COMMENT
MEDIUM…ls/code-interpreter-tool/twenty-mcp-helper.constant.ts217# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh2# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh4# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh18# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh160# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh162# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh217# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh219# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh235# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh237# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh255# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh257# =============================================================================COMMENT
MEDIUMpackages/twenty-utils/setup-dev-env.sh274# =============================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml115 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml117 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml188 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml190 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml249 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml251 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml323 # ================================================================COMMENT
MEDIUM.github/workflows/ci-cross-version-upgrade.yaml325 # ================================================================COMMENT
MEDIUM.github/workflows/ci-e2e-main.yaml166 # ── QA Scout ─────────────────────────────────────────────────────────COMMENT
Structural Annotation Overuse40 hits · 64 pts
SeverityFileLineSnippetContext
LOW…skills/syncable-entity-builder-and-validation/SKILL.md28## Step 1: Create Validator ServiceCOMMENT
LOW…skills/syncable-entity-builder-and-validation/SKILL.md170## Step 2: Create Builder ServiceCOMMENT
LOW…skills/syncable-entity-builder-and-validation/SKILL.md283## Step 3: Wire into Orchestrator (**CRITICAL**)COMMENT
LOW.claude/skills/syncable-entity-testing/SKILL.md25## Step 1: Create Test UtilitiesCOMMENT
LOW.claude/skills/syncable-entity-testing/SKILL.md120## Step 2: Failing Creation TestsCOMMENT
LOW.claude/skills/syncable-entity-testing/SKILL.md265## Step 3: Successful Creation TestsCOMMENT
LOW.claude/skills/syncable-entity-testing/SKILL.md382## Step 4: Update and Delete TestsCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md25## Step 1: Add Metadata NameCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md38## Step 2: Create TypeORM EntityCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md78## Step 3: Define Flat Entity TypesCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md102## Step 4: Define Editable PropertiesCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md120## Step 5: Define Action TypesCOMMENT
LOW…de/skills/syncable-entity-types-and-constants/SKILL.md171## Step 6: Register in Central ConstantsCOMMENT
LOW…de/skills/syncable-entity-cache-and-transform/SKILL.md25## Step 1: Create Cache ServiceCOMMENT
LOW…de/skills/syncable-entity-cache-and-transform/SKILL.md72## Step 2: Entity-to-Flat ConversionCOMMENT
LOW…de/skills/syncable-entity-cache-and-transform/SKILL.md107## Step 3: Input Transform Utils (DTO → Universal Flat Entity)COMMENT
LOW…de/skills/syncable-entity-cache-and-transform/SKILL.md182## Step 4: Create Flat Entity ModuleCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md26## Step 1: Register in Builder ModuleCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md53## Step 2: Register in Validators ModuleCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md78## Step 3: Register Action HandlersCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md108## Step 4: Create Service LayerCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md186## Step 5: Create Resolver LayerCOMMENT
LOW.claude/skills/syncable-entity-integration/SKILL.md244## Step 6: Flat-to-DTO ConversionCOMMENT
LOW…ude/skills/syncable-entity-runner-and-actions/SKILL.md28## Step 1: Create Action HandlerCOMMENT
LOW…ude/skills/syncable-entity-runner-and-actions/SKILL.md100## Step 2: Update Action HandlerCOMMENT
LOW…ude/skills/syncable-entity-runner-and-actions/SKILL.md173## Step 3: Delete Action HandlerCOMMENT
LOW…ude/skills/syncable-entity-runner-and-actions/SKILL.md230## Step 4: Universal-to-Flat ConversionCOMMENT
LOW⚡packages/twenty-docker/k8s/README.md37### Step 1: Clone the RepositoryCOMMENT
LOW⚡packages/twenty-docker/k8s/README.md46### Step 2: Customize the Manifests and Terraform FilesCOMMENT
LOW⚡packages/twenty-docker/k8s/README.md50### Step 3: Deploy with TerraformCOMMENT
LOW…les/code-interpreter/sandbox-scripts/pptx/rearrange.py176 # Step 1: DUPLICATE repeated slidesCOMMENT
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py200 # Step 2: DELETE unwanted slides (work backwards)COMMENT
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py209 # Step 3: REORDER to final sequenceCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1054### Step 1: Extract field informationCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1059### Step 2: Create fill data JSONCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1068### Step 3: Fill the formCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1073### Step 4: Validate the outputCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1211### Step 1: UnpackCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1216### Step 2: Edit XML directlyCOMMENT
LOW…l-metadata/create-standard-flat-skill-metadata.util.ts1229### Step 3: Validate & RepackCOMMENT
Excessive Try-Catch Wrapping41 hits · 57 pts
SeverityFileLineSnippetContext
LOW…de-interpreter/drivers/local-driver-kernel.constant.ts55 except Exception:CODE
LOW…de-interpreter/drivers/local-driver-kernel.constant.ts60 except Exception:CODE
LOW…odules/code-interpreter/sandbox-scripts/xlsx/recalc.py49 except Exception:CODE
LOW…odules/code-interpreter/sandbox-scripts/xlsx/recalc.py154 except Exception as e:CODE
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py100 print(f"Error: Invalid PowerPoint file: {args.input}")CODE
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py124 print("Error: No slides found")CODE
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py144 except Exception as e:CODE
MEDIUM⚡…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py145 print(f"Error: {e}")CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py351 except Exception:CODE
MEDIUM⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py58 print(f"Error: Template file not found: {args.template}")STRING
MEDIUM⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py68 print(f"Error: {e}")STRING
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py70 except Exception as e:STRING
MEDIUM⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py71 print(f"Error processing presentation: {e}")STRING
LOW…les/code-interpreter/sandbox-scripts/pptx/rearrange.py124 except Exception:CODE
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/inventory.py84 print(f"Error: Input file not found: {args.input}")STRING
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/inventory.py88 print("Error: Input must be a PowerPoint file (.pptx)")STRING
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py120 except Exception as e:STRING
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/inventory.py121 print(f"Error processing presentation: {e}")STRING
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py384 except Exception:CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py504 except Exception:CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py601 except Exception:CODE
MEDIUM⚡…dules/code-interpreter/sandbox-scripts/pptx/replace.py367 print(f"Error: Input file '{input_pptx}' not found")CODE
MEDIUM⚡…dules/code-interpreter/sandbox-scripts/pptx/replace.py371 print(f"Error: Replacements JSON file '{replacements_json}' not found")CODE
LOW⚡…dules/code-interpreter/sandbox-scripts/pptx/replace.py376 except Exception as e:CODE
MEDIUM⚡…dules/code-interpreter/sandbox-scripts/pptx/replace.py377 print(f"Error applying replacements: {e}")CODE
LOW…-modules/code-interpreter/sandbox-scripts/docx/pack.py128 except Exception as e:CODE
MEDIUM…ules/code-interpreter/sandbox-scripts/docx/validate.py52 print(f"Error: Validation not supported for file type {file_extension}")CODE
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/docx.py187 except Exception as e:CODE
MEDIUM⚡…de-interpreter/sandbox-scripts/docx/validation/docx.py188 print(f"Error counting paragraphs in unpacked document: {e}")CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/docx.py211 except Exception as e:CODE
MEDIUM…de-interpreter/sandbox-scripts/docx/validation/docx.py212 print(f"Error counting paragraphs in original document: {e}")CODE
LOW…terpreter/sandbox-scripts/docx/validation/redlining.py59 except Exception:CODE
LOW…terpreter/sandbox-scripts/docx/validation/redlining.py71 except Exception as e:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py228 except Exception as e:CODE
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py471 except Exception as e:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py140 except Exception as e:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py359 except Exception as e:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py604 except Exception:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py626 except Exception as e:CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py866 except Exception as e:CODE
LOW…ls/code-interpreter-tool/twenty-mcp-helper.constant.ts124 except Exception as exc:CODE
Redundant / Tautological Comments28 hits · 49 pts
SeverityFileLineSnippetContext
LOW⚡packages/twenty-docker/scripts/install.sh8# Check if docker compose plugin is installedCOMMENT
LOW⚡packages/twenty-docker/scripts/install.sh13# Check if docker is startedCOMMENT
LOW⚡packages/twenty-docker/scripts/install.sh23# Check if docker compose version is >= 2COMMENT
LOW⚡packages/twenty-docker/scripts/install.sh28# Check if docker-compose is installed, if so issue a warning if version is < 2COMMENT
LOWpackages/twenty-docker/scripts/install.sh127# Check if command nc is availableCOMMENT
LOWpackages/twenty-docker/scripts/install.sh129 # Check if port 3000 is already in use, propose to change itCOMMENT
LOWpackages/twenty-docker/scripts/install.sh155 # Check if port is listeningCOMMENT
LOWpackages/twenty-server/scripts/ssl-generation/script.sh3# Check if OpenSSL is installedCOMMENT
LOW…odules/code-interpreter/sandbox-scripts/xlsx/recalc.py82 # Check if gtimeout is available on macOSCOMMENT
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py873 # Check if there's meaningful overlap (more than tolerance)COMMENT
LOW…dules/code-interpreter/sandbox-scripts/pptx/replace.py173 # Check if slide existsCOMMENT
LOW…dules/code-interpreter/sandbox-scripts/pptx/replace.py306 # Check if any text overflow got worseCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/docx.py90 # Check if text starts or ends with whitespaceCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/docx.py92 # Check if xml:space="preserve" attribute existsCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py94 # Check if this is an ID attributeCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py97 # Check if value looks like a UUID (has the right length and pattern structure)COMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py125 # Check if it's 32 hex-like characters (could include invalid hex chars)COMMENT
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py449 # Check if the ID existsCOMMENT
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py456 # Check if we have type expectations for this elementCOMMENT
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py463 # Check if the actual type matches or contains the expected typeCOMMENT
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py759 # Check if file is in a main content folder and use appropriate schemaCOMMENT
LOW⚡…de-interpreter/sandbox-scripts/docx/validation/base.py776 # Check if attribute is from a namespace other than allowed onesCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py212 # Check if this element type has ID uniqueness requirementsCOMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py503 # Check if this might be a compound like "sldMasterId"COMMENT
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py619 # Check if it's a known media extension that should be declaredCOMMENT
LOW.github/workflows/ci-breaking-changes.yaml538 # Check if the output file was created and is valid JSONCOMMENT
LOW.github/workflows/ci-breaking-changes.yaml609 # Check if the output file was created and is valid JSONCOMMENT
LOW.github/workflows/ci-emails.yaml58 # Check if server is runningCOMMENT
Self-Referential Comments12 hits · 40 pts
SeverityFileLineSnippetContext
MEDIUMpackages/twenty-docker/scripts/install.sh96# Create a directory named twentyCOMMENT
MEDIUMpackages/twenty-server/scripts/ssl-generation/script.sh17# Create a directory to store the certificatesCOMMENT
MEDIUMpackages/twenty-server/scripts/ssl-generation/script.sh36# Create a Certificate Signing Request (CSR) for the provided domainCOMMENT
MEDIUMpackages/twenty-server/scripts/ssl-generation/script.sh40# Create a configuration file for certificate extensionsCOMMENT
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py401 # Create a highlight overlayCOMMENT
MEDIUM…les/code-interpreter/sandbox-scripts/pptx/rearrange.py108 # Create a new relationship in the destination slide for this imageCOMMENT
MEDIUM⚡…de-interpreter/sandbox-scripts/docx/validation/base.py767 # Create a clean copyCOMMENT
MEDIUM…de-interpreter/sandbox-scripts/docx/validation/base.py919 # Create a copy of the document to avoid modifying the originalCOMMENT
MEDIUM…de-interpreter/sandbox-scripts/docx/validation/base.py298 ): # This file is not referenced by .relsCODE
MEDIUM⚡…l-metadata/create-standard-flat-skill-metadata.util.ts784# Create a record — arguments match the tool's inputSchema directly,COMMENT
MEDIUM⚡…es/ai/components/__stories__/AiChatMessage.stories.tsx78# Create the chartCOMMENT
MEDIUM.github/workflows/ci-breaking-changes.yaml246 # Create a temp directory to store current branch filesCOMMENT
Empty Error Handlers7 hits · 35 pts
SeverityFileLineSnippetContext
HIGH…odules/code-interpreter/sandbox-scripts/xlsx/recalc.py86except (FileNotFoundError, subprocess.TimeoutExpired):CODE
HIGH…les/code-interpreter/sandbox-scripts/pptx/rearrange.py124except Exception:CODE
HIGH…les/code-interpreter/sandbox-scripts/pptx/inventory.py384except Exception:CODE
HIGH…les/code-interpreter/sandbox-scripts/pptx/inventory.py504except Exception:CODE
HIGH…les/code-interpreter/sandbox-scripts/pptx/inventory.py219except (AttributeError, TypeError):CODE
HIGH…terpreter/sandbox-scripts/docx/validation/redlining.py59except Exception:CODE
HIGH…terpreter/sandbox-scripts/docx/validation/redlining.py211except (subprocess.CalledProcessError, FileNotFoundError, Exception):CODE
Deep Nesting31 hits · 28 pts
SeverityFileLineSnippetContext
LOW…odules/code-interpreter/sandbox-scripts/xlsx/recalc.py53CODE
LOW…nterpreter/sandbox-scripts/pdf/fill_fillable_fields.py12CODE
LOW…nterpreter/sandbox-scripts/pdf/fill_fillable_fields.py59CODE
LOW…rpreter/sandbox-scripts/pdf/extract_form_field_info.py22CODE
LOW…rpreter/sandbox-scripts/pdf/extract_form_field_info.py62CODE
LOW…nterpreter/sandbox-scripts/pdf/check_bounding_boxes.py18CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py67CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/thumbnail.py321CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/rearrange.py149CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py140CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py280CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py362CODE
LOW…les/code-interpreter/sandbox-scripts/pptx/inventory.py480CODE
LOW…dules/code-interpreter/sandbox-scripts/pptx/replace.py143CODE
LOW…dules/code-interpreter/sandbox-scripts/pptx/replace.py162CODE
LOW…dules/code-interpreter/sandbox-scripts/pptx/replace.py214CODE
LOW…-modules/code-interpreter/sandbox-scripts/docx/pack.py45CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/docx.py72CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/docx.py124CODE
LOW…terpreter/sandbox-scripts/docx/validation/redlining.py139CODE
LOW…terpreter/sandbox-scripts/docx/validation/redlining.py217CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py77CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py128CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/pptx.py243CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py186CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py277CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py388CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py486CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py522CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py688CODE
LOW…de-interpreter/sandbox-scripts/docx/validation/base.py765CODE
Verbosity Indicators11 hits · 18 pts
SeverityFileLineSnippetContext
LOW…les/code-interpreter/sandbox-scripts/pptx/rearrange.py176 # Step 1: DUPLICATE repeated slidesCOMMENT
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py200 # Step 2: DELETE unwanted slides (work backwards)COMMENT
LOW⚡…les/code-interpreter/sandbox-scripts/pptx/rearrange.py209 # Step 3: REORDER to final sequenceCOMMENT
LOW…es/cloudflare/controllers/dns-cloudflare.controller.ts37 // since notification are not scoped to a zone, we need to check if the zone is in the list of zonesCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1054### Step 1: Extract field informationCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1059### Step 2: Create fill data JSONCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1068### Step 3: Fill the formCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1073### Step 4: Validate the outputCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1211### Step 1: UnpackCOMMENT
LOW⚡…l-metadata/create-standard-flat-skill-metadata.util.ts1216### Step 2: Edit XML directlyCOMMENT
LOW…l-metadata/create-standard-flat-skill-metadata.util.ts1229### Step 3: Validate & RepackCOMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…de-interpreter/sandbox-scripts/docx/validation/docx.py0run all validation checks and return true if all pass.STRING
HIGH…de-interpreter/sandbox-scripts/docx/validation/pptx.py0run all validation checks and return true if all pass.STRING
HIGH…de-interpreter/sandbox-scripts/docx/validation/base.py0run all validation checks and return true if all pass.STRING
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHpackages/twenty-apps/public/slack/README.md11> Answers are generated by AI and can be inaccurate. Check important details in Twenty before acting on them.CODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOW…nterpreter/sandbox-scripts/docx/validation/__init__.py5CODE
LOW…nterpreter/sandbox-scripts/docx/validation/__init__.py6CODE
LOW…nterpreter/sandbox-scripts/docx/validation/__init__.py7CODE
LOW…nterpreter/sandbox-scripts/docx/validation/__init__.py8CODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…site/src/sections/testimonials/PartnerTestimonials.tsx10// its notch reveals the white surface behind it (seamless with the whiteCOMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/twenty-cli/src/app/add/README.md1# App definition scaffoldingCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/twenty-docker/docker-compose.dev.yml4# Usage:COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…tabase/commands/instance-command-generation.service.ts155 // TODO: implement data backfill before the DDL migrationCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…nterpreter/sandbox-scripts/docx/validation/__init__.py10__all__ = [CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…yout-widget/compute-my-first-dashboard-widgets.util.ts122 text: "Don't forget to replace the sample data with your own.",CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/twenty-front/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE