AI Slop Code Risk Monitor

toeverything/AFFiNE

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

There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.

1.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for toeverything/AFFiNE, a TypeScript project with 74,007 GitHub stars. SynthScan examined 1,228,957 lines of code across 8833 source files, recording 859 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.2 (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.

1.2
Adjusted Signal
1.2
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
74.0K
Stars
TypeScript
Language
1.2M
Lines of Code
8.8K
Files
859
Pattern Hits
2026-10-31
Scan Date
0.01
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 3.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.5/100 · LOW

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

Agent Over-Engineering Ratio 2.5/100 · LOW

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

PR Review Velocity Impact 5.6/100 · LOW

Which changes need focused human review? 859 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 59HIGH 6MEDIUM 1LOW 793

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 859 distinct pattern matches across 12 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 Identifiers592 hits · 614 pts
SeverityFileLineSnippetContext
LOWtools/cli/src/bundle-shared.ts16export function isRspackSupportedPackageName(name: string) {CODE
LOWtools/cli/src/bundle-shared.ts20export function assertRspackSupportedPackageName(name: string) {CODE
LOWtools/cli/src/bundle.ts30function assertRspackSupportedPackage(pkg: Package) {CODE
LOWtools/cli/src/rspack-shared/error-handler.js66 function registerGlobalErrorHandler() {CODE
LOWtools/cli/src/rspack-shared/error-handler.js80 function unregisterRegisterGlobalErrorHandler(fn) {CODE
LOWblocksuite/playground/apps/_common/mock-services.ts155export function mockGenerateDocUrlService(collection: Workspace) {CODE
LOWblocksuite/playground/apps/starter/utils/collection.ts26export function createStarterDocCollection(CODE
LOWblocksuite/framework/std/src/inline/utils/text.ts58export function invalidateInlineRootTextCache(rootElement: HTMLElement) {CODE
LOW…ite/framework/std/src/inline/utils/point-conversion.ts186function getTextPointRoughlyFromElement(element: Element): TextPoint | null {CODE
LOW…ite/framework/std/src/inline/utils/point-conversion.ts193function getTextPointRoughlyFromElementByOffset(CODE
LOWblocksuite/framework/std/src/inline/utils/query.ts4export function getInlineEditorInsideRoot(CODE
LOWblocksuite/framework/std/src/inline/range/active.ts15export function isRangeSyncExcludedTarget(target: EventTarget | null) {CODE
LOWblocksuite/framework/std/src/inline/range/active.ts21export function shouldDeactivateEditorOnFocusOut(CODE
LOWblocksuite/framework/std/src/__tests__/inline/utils.ts19export async function enterInlineEditorPlayground(page: Page) {CODE
LOWblocksuite/framework/std/src/__tests__/inline/utils.ts41export async function getDeltaFromInlineRichText(CODE
LOWblocksuite/framework/std/src/__tests__/inline/utils.ts60export async function getInlineRangeFromInlineRichText(CODE
LOWblocksuite/framework/std/src/gfx/viewport-element.ts45export function getGestureTransformMinInterval({CODE
LOWblocksuite/framework/std/src/gfx/viewport-element.ts59export function shouldSkipGestureTransformWrite({CODE
LOWblocksuite/framework/std/src/gfx/viewport-element.ts78export function shouldUseLowZoomBlockSurvivalMode({CODE
LOWblocksuite/framework/std/src/gfx/viewport.ts109export function getPostGestureRecoveryDelay({CODE
LOW…suite/framework/std/src/clipboard/clipboard-adapter.ts22export function ClipboardAdapterConfigExtension(CODE
LOWblocksuite/framework/global/src/gfx/bound.ts20export function getPointsFromBoundWithRotation(CODE
LOWblocksuite/framework/global/src/gfx/bound.ts108export function getCommonBoundWithRotation(bounds: IBound[]): Bound {CODE
LOWblocksuite/framework/global/src/gfx/math.ts504export function getPointFromBoundsWithRotation(CODE
LOWblocksuite/framework/global/src/gfx/curve.ts160export function getBezierCurveBoundingBox(values: BezierCurveParameters) {CODE
LOW…suite/framework/store/src/extension/store-extension.ts57export function isStoreExtensionConstructor(CODE
LOWblocksuite/framework/store/src/test/index.ts7export function createAutoIncrementIdGenerator(): IdGenerator {CODE
LOW…/framework/store/src/__tests__/collection.unit.spec.ts72function requestIdleCallbackPolyfill(CODE
LOWblocksuite/framework/store/src/model/store/query.ts72function setAncestorsToDisplayIfHidden(mode: QueryMode, block: Block) {CODE
LOW…tion-test/src/__tests__/edgeless/connector-dom.spec.ts49async function waitForConnectorElementRemoval(CODE
LOWblocksuite/affine/blocks/embed/src/types.ts14export function isExternalEmbedBlockComponent(CODE
LOW…e/affine/blocks/embed/src/embed-youtube-block/utils.ts25export async function refreshEmbedYoutubeUrlData(CODE
LOW…te/affine/blocks/embed/src/common/render-linked-doc.ts80export function getDocContentWithMaxLength(doc: Store, maxlength = 500) {CODE
LOW…te/affine/blocks/embed/src/common/render-linked-doc.ts115export function getTitleFromSelectedModels(selectedModels: DraftModel[]) {CODE
LOW…te/affine/blocks/embed/src/common/render-linked-doc.ts150export async function convertSelectedBlocksToLinkedDoc(CODE
LOW…affine/blocks/embed/src/common/adapters/notion-html.ts7export function createEmbedBlockNotionHtmlAdapterMatcher(CODE
LOW…te/affine/blocks/embed/src/common/adapters/markdown.ts3export function createEmbedBlockMarkdownAdapterMatcher(CODE
LOW…/affine/blocks/embed/src/common/adapters/plain-text.ts3export function createEmbedBlockPlainTextAdapterMatcher(CODE
LOW…ksuite/affine/blocks/embed/src/common/adapters/html.ts3export function createEmbedBlockHtmlAdapterMatcher(CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts36function isValidGoogleDriveFileUrl(parsedUrl: URL): boolean {CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts51function isValidGoogleDriveFolderUrl(parsedUrl: URL): boolean {CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts65function isValidGoogleDrivePathUrl(parsedUrl: URL): boolean {CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts116function isValidGoogleDriveIframeUrl(url: string): boolean {CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts144function buildGoogleDriveFileEmbedUrl(fileId: string): string | undefined {CODE
LOW…c/embed-iframe-block/configs/providers/google-drive.ts158function buildGoogleDriveFolderEmbedUrl(folderId: string): string | undefined {CODE
LOWblocksuite/affine/blocks/embed/src/configs/toolbar.ts85function createBuiltinToolbarConfigForExternal(CODE
LOW…te/affine/blocks/embed/src/embed-github-block/utils.ts76export async function refreshEmbedGithubUrlData(CODE
LOWblocksuite/affine/blocks/attachment/src/utils.ts144export async function addSiblingAttachmentBlocks(CODE
LOWblocksuite/affine/blocks/attachment/src/embed.ts66export function AttachmentEmbedConfigExtension(CODE
LOW…suite/affine/blocks/code/src/code-preview-extension.ts18export function CodeBlockPreviewExtension(CODE
LOWblocksuite/affine/blocks/code/src/clipboard/index.ts30export function CodeClipboardAdapterConfigExtension(CODE
LOWblocksuite/affine/blocks/code/src/clipboard/index.ts192export function getCodeClipboardExtensions(): ExtensionType[] {CODE
LOW…ffine/blocks/surface/src/renderer/placeholder-style.ts4export function getSurfacePlaceholderFallback(colorScheme: ColorScheme) {CODE
LOW…ffine/blocks/surface/src/renderer/placeholder-style.ts8export function resolveSurfacePlaceholderColor(colorScheme: ColorScheme) {CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts128export function shouldSyncCanvasBudgetOnViewportUpdate(CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts142export function shouldUseLowZoomSurvivalMode(CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts150export function getStackingCanvasBypassState(params: {CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts175export function shouldBypassStackingCanvasesDuringLowZoomGesture(params: {CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts186export function getStackingCanvasAttachmentDiff(params: {CODE
LOW…/affine/blocks/surface/src/renderer/canvas-renderer.ts211export function getMainCanvasFallbackBounds(params: {CODE
532 more matches not shown…
Hallucination Indicators59 hits · 590 pts
SeverityFileLineSnippetContext
CRITICAL…suite/playground/apps/_common/components/docs-panel.ts111 this.editor.doc.workspace.slots.docListUpdated.subscribe(() => {CODE
CRITICAL…/framework/std/src/view/element/gfx-block-component.ts90 instance.gfx.layer.slots.layerUpdated.subscribe(() => {CODE
CRITICAL…uite/framework/std/src/view/element/block-component.ts219 const disposable = this.std.store.slots.blockUpdated.subscribe(CODE
CRITICALblocksuite/framework/std/src/gfx/viewport-element.ts341 this.host.std.view.views.forEach(view => {CODE
CRITICALblocksuite/framework/std/src/gfx/viewport-element.ts415 this.host.std.view.views.forEach(view => {CODE
CRITICALblocksuite/framework/std/src/gfx/viewport-element.ts702 this.host.std.view.viewUpdated.subscribe(payload => {CODE
CRITICAL…/affine/blocks/bookmark/src/bookmark-edgeless-block.ts35 this.gfx.selection.slots.updated.subscribe(() => {CODE
CRITICAL…e/blocks/code/src/code-toolbar/components/more-menu.ts16 this.context.blockComponent.model.propsUpdated.subscribe(({ key }) => {CODE
CRITICAL…c/src/embed-linked-doc-block/embed-linked-doc-block.ts558 this.store.workspace.slots.docListUpdated.subscribe(() => {CODE
CRITICAL…c/src/embed-synced-doc-block/embed-synced-doc-block.ts532 this.store.workspace.slots.docListUpdated.subscribe(() => {CODE
CRITICAL…oc/src/embed-synced-doc-block/init-height-extension.ts15 this.std.store.slots.blockUpdated.subscribe(payload => {CODE
CRITICAL…affine/blocks/root/src/edgeless/edgeless-root-block.ts160 this.gfx.layer.slots.layerUpdated.subscribe(() => updateLayers())CODE
CRITICAL…blocks/root/src/preview/edgeless-root-preview-block.ts119 this._gfx.layer.slots.layerUpdated.subscribe(() => updateLayers())CODE
CRITICAL…cksuite/affine/fragments/outline/src/outline-viewer.ts205 this.editor.store.workspace.meta.docMetaUpdated.subscribe(() => {CODE
CRITICAL…e/affine/fragments/outline/src/card/outline-preview.ts55 const refMeta = block.store.workspace.meta.docMetas.find(CODE
CRITICAL…affine/shared/src/services/doc-display-meta-service.ts171 const disposable = this.std.workspace.slots.docListUpdated.subscribe(CODE
CRITICAL…e/affine/inlines/comment/src/inline-comment-manager.ts59 this.std.selection.slots.changed.subscribe(this._handleSelectionChanged)CODE
CRITICALblocksuite/affine/gfx/note/src/toolbar/note-menu.ts69 const [_, { insertedLinkType }] = this.edgeless.service.std.command.exec(CODE
CRITICALblocksuite/affine/gfx/mindmap/src/view/view.ts150 this.gfx.selection.slots.updated.subscribe(() => {CODE
CRITICAL…dgets/remote-selection/src/doc/doc-remote-selection.ts280 this.std.store.slots.blockUpdated.subscribe(() => {CODE
CRITICALblocksuite/affine/widgets/toolbar/src/toolbar.ts514 context.gfx.selection.slots.updated.subscribe(selections => {CODE
CRITICAL…ffine/widgets/scroll-anchoring/src/scroll-anchoring.ts102 this.std.store.slots.blockUpdated.subscribe(v => {CODE
CRITICAL…ffine/widgets/scroll-anchoring/src/scroll-anchoring.ts157 const subscription = this.std.store.slots.blockUpdated.subscribe(v => {CODE
CRITICAL…s/edgeless-selected-rect/src/edgeless-auto-complete.ts688 this.gfx.selection.slots.updated.subscribe(() => {CODE
CRITICAL…te/affine/widgets/linked-doc/src/linked-doc-popover.ts206 this.context.inlineEditor.slots.renderComplete.subscribe(() => {CODE
CRITICAL…te/affine/widgets/linked-doc/src/linked-doc-popover.ts226 this.context.inlineEditor.slots.renderComplete.subscribe(() => {CODE
CRITICAL…widgets/drag-handle/src/watchers/drag-event-watcher.ts1229 this.std.store.workspace.docs.has(sourceDocId) &&CODE
CRITICAL…ocksuite/affine/widgets/frame-title/src/frame-title.ts226 this.model.props.title.yText.unobserve(updateTitle);CODE
CRITICAL…ocksuite/affine/widgets/frame-title/src/frame-title.ts228 this.model.props.title.yText.observe(updateTitle);CODE
CRITICAL…locksuite/ai/runtime/frontend/delegated-editor-host.ts96 this.options.host.store.slots.blockUpdated.subscribe(changed);CODE
CRITICAL…locksuite/ai/runtime/frontend/delegated-editor-host.ts100 this.options.host.selection.slots.changed.subscribe(() => {CODE
CRITICAL…rontend/core/src/blocksuite/ai/runtime/chat/runtime.ts159 items: this.snapshot.composer.focus.items.filter(CODE
CRITICAL…rontend/core/src/blocksuite/ai/runtime/chat/runtime.ts602 items: this.snapshot.composer.scopeSelection.items.filter(CODE
CRITICAL…frontend/core/src/blocksuite/ai/services/block-diff.ts430 this.std.store.slots.blockUpdated.subscribe(() => {CODE
CRITICALpackages/frontend/core/src/__tests__/share-page.spec.ts244 sharedWorkspace.engine.doc.waitForDocLoaded.mock.calls.map(CODE
CRITICAL…modules/navigation-projection/shell-data-projection.ts418 this.workspace.workspace.engine.doc.addPriority(id, 10),CODE
CRITICAL…d/core/src/modules/comment/services/snapshot-helper.ts49 await this.workspaceService.workspace.engine.blob.get(key);CODE
CRITICAL…tend/core/src/modules/favorite/services/old/adapter.ts125 transact = this.workspaceService.workspace.docCollection.doc.transact.bind(CODE
CRITICAL…ore/src/modules/blob-management/entity/unused-blobs.ts65 await this.workspaceService.workspace.engine.doc.waitForSynced();CODE
CRITICAL…end/core/src/modules/doc-summary/stores/doc-summary.ts37 const undoSync = this.workspaceService.workspace.engine.doc.addPriority(CODE
CRITICALpackages/frontend/core/src/modules/db/services/db.ts52 this.workspaceService.workspace.engine.doc.connectDoc(ydoc);CODE
CRITICALpackages/frontend/core/src/modules/db/services/db.ts53 this.workspaceService.workspace.engine.doc.addPriority(CODE
CRITICALpackages/frontend/core/src/modules/db/services/db.ts84 this.workspaceService.workspace.engine.doc.connectDoc(ydoc);CODE
CRITICALpackages/frontend/core/src/modules/db/services/db.ts85 this.workspaceService.workspace.engine.doc.addPriority(CODE
CRITICALpackages/frontend/core/src/modules/doc/stores/docs.ts248 this.workspaceService.workspace.docCollection.meta.setDocMeta(id, meta);CODE
CRITICALpackages/frontend/core/src/modules/doc/stores/docs.ts294 return this.workspaceService.workspace.engine.doc.waitForDocLoaded(id);CODE
CRITICALpackages/frontend/core/src/modules/doc/stores/docs.ts298 return this.workspaceService.workspace.engine.doc.addPriority(id, priority);CODE
CRITICALpackages/frontend/core/src/modules/doc/entities/doc.ts39 this.workspaceService.workspace.engine.doc.addPriority(this.id, 100)CODE
CRITICALpackages/frontend/core/src/modules/doc/entities/doc.ts43 this.workspaceService.workspace.engine.indexer.addPriority(this.id, 100)CODE
CRITICALpackages/frontend/core/src/modules/tag/stores/tag.ts48 this.workspaceService.workspace.docCollection.slots.docListUpdated.subscribe(CODE
CRITICALpackages/frontend/core/src/modules/tag/stores/tag.ts78 this.workspaceService.workspace.docCollection.meta.setProperties(CODE
CRITICALpackages/frontend/core/src/modules/tag/stores/tag.ts99 this.workspaceService.workspace.docCollection.doc.transact(() => {CODE
CRITICALpackages/frontend/core/src/modules/tag/stores/tag.ts102 this.workspaceService.workspace.docCollection.docs.forEach(doc => {CODE
CRITICALpackages/frontend/core/src/modules/tag/stores/tag.ts115 this.workspaceService.workspace.docCollection.meta.setDocMeta(pageId, {CODE
CRITICAL…rontend/core/src/modules/media/entities/audio-media.ts163 await this.workspaceService.workspace.engine.blob.get(blobId);CODE
CRITICAL…va/uniffi/affine_mobile_native/affine_mobile_native.kt1427 private val cleaner = com.sun.jna.internal.Cleaner.getCleaner()CODE
CRITICAL…end/server/src/core/storage/__tests__/blob-job.spec.ts74 t.context.db.workspace.findMany.resolves([CODE
CRITICAL…end/server/src/core/storage/__tests__/blob-job.spec.ts96 t.context.db.workspace.findMany.resolves([]);CODE
CRITICAL…backend/server/src/__tests__/auth/auth-session.spec.ts113 t.context.runtime.executeAuthSessionCommandV1.secondCall.calledWithExactly({CODE
Over-Commented Block92 hits · 86 pts
SeverityFileLineSnippetContext
LOWblocksuite/framework/std/src/gfx/viewport-element.ts741COMMENT
LOWblocksuite/framework/std/src/gfx/viewport-element.ts801 // for the center shift. Formula: final_pos = container_translate + scale * base_posCOMMENT
LOWblocksuite/framework/global/src/di/stable-hash.ts1// copied from https://github.com/shuding/stable-hashCOMMENT
LOWblocksuite/framework/global/src/lit/watch.ts41 this.__dispose?.();COMMENT
LOWblocksuite/framework/global/src/lit/signal-watcher.ts41 if (this.isUpdatePending === false || this.isConnected === false) {COMMENT
LOW…e/affine/blocks/paragraph/src/utils/merge-with-prev.ts81 }).catch(console.error);COMMENT
LOWblocksuite/affine/blocks/frame/src/frame-manager.ts241 surfaceModel.elementAdded.subscribe(({ id, local }) => {COMMENT
LOW…cksuite/affine/shared/src/utils/figma-squircle/draw.ts21// The original code by MartinRGBCOMMENT
LOW…te/affine/components/src/color-picker/custom-button.ts41 content-box,COMMENT
LOW…cksuite/affine/data-view/src/core/common/properties.ts281COMMENT
LOW…/view-presets/table/pc-virtual/controller/selection.ts721 const newSelection = this.focusToArea(selection);COMMENT
LOW…/view-presets/table/pc-virtual/controller/selection.ts761 // inline: 'nearest',COMMENT
LOW…/view-presets/table/pc-virtual/controller/selection.ts821 newSelection.rowsSelection.start - 1COMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts1// related componentCOMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts21 // | undefinedCOMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts41 // }COMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts61 // }COMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts141 // // const event = context.get('pointerState').raw;COMMENT
LOW…w/src/view-presets/table/pc-virtual/controller/drag.ts161COMMENT
LOWtests/affine-cloud-copilot/e2e/basic/chat.spec.ts21 // loggedInPage: page,COMMENT
LOWtests/blocksuite/e2e/list.spec.ts601 await pressBackspace(page);COMMENT
LOWtests/affine-local/e2e/links.spec.ts821 await expect(cardTitle).toHaveText('Test Page');COMMENT
LOWtests/affine-local/e2e/links.spec.ts841 // await toolbar.getByRole('button', { name: 'Edit' }).click();COMMENT
LOWtests/affine-local/e2e/links.spec.ts861 // await page.keyboard.press('Enter');COMMENT
LOWtests/affine-mobile/e2e/back-button-visibility.spec.ts21});COMMENT
LOW.cargo/config.toml21rustflags = ["-C", "link-args=-Wl,-z,nodelete"]COMMENT
LOW…op/dialogs/setting/general-setting/plans/plan-card.tsx121 const isFree = detail.plan === SubscriptionPlan.Free;COMMENT
LOW…oks/affine/use-register-blocksuite-editor-commands.tsx121 // icon: <EdgelessIcon />,COMMENT
LOW…ntend/core/src/modules/journal/suggest-journal-date.ts21export function suggestJournalDate(query: string): {COMMENT
LOWpackages/frontend/apps/ios/App/IOSApp-Bridging-Header.h1#ifndef IOSApp_Bridging_Header_hCOMMENT
LOW…end/apps/ios/App/App/uniffi/affine_mobile_native.swift61// Define reader functionality. Normally this would be defined in a class orCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h1// This file was autogenerated by some hot garbage in the `uniffi` crate.COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h41 RustBuffer errorBuf;COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h241#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOIDCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h261void uniffi_affine_mobile_native_fn_free_docstoragepool(void*_Nonnull ptr, RustCallStatus *_Nonnull out_statusCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h281uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_crawl_doc_data(void*_Nonnull ptr, RustBuffer universal_id,COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h301uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_get_blob(void*_Nonnull ptr, RustBuffer universal_id, RustBCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h321uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_get_doc_clocks(void*_Nonnull ptr, RustBuffer universal_id,COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h341uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_get_peer_pushed_clock(void*_Nonnull ptr, RustBuffer univerCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h361uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_index_aggregate(void*_Nonnull ptr, RustBuffer universal_idCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h381uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_index_search(void*_Nonnull ptr, RustBuffer universal_id, RCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h401uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_push_update(void*_Nonnull ptr, RustBuffer universal_id, RuCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h421uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_set_doc_indexed_clock(void*_Nonnull ptr, RustBuffer univerCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h441uint64_t uniffi_affine_mobile_native_fn_method_docstoragepool_set_peer_remote_clock(void*_Nonnull ptr, RustBuffer univerCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h461#define UNIFFI_FFIDEF_UNIFFI_AFFINE_MOBILE_NATIVE_FN_FUNC_RENDER_MERMAID_PREVIEW_SVGCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h481#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUSTBUFFER_FREECOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h501#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_U8COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h521#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_I8COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h541#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_U16COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h561#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_I16COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h581#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_U32COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h601#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_I32COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h621#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_U64COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h641#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_I64COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h661#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_F32COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h681#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_F64COMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h701#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_POINTERCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h721#define UNIFFI_FFIDEF_FFI_AFFINE_MOBILE_NATIVE_RUST_FUTURE_FREE_RUST_BUFFERCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h761#endifCOMMENT
LOW…tend/apps/ios/App/App/uniffi/affine_mobile_nativeFFI.h821#endifCOMMENT
32 more matches not shown…
Structural Annotation Overuse35 hits · 63 pts
SeverityFileLineSnippetContext
LOWblocksuite/framework/sync/src/doc/engine.ts127 // Step 1: start main sync peerCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/engine.ts145 // Step 2: wait for main sync completeCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/engine.ts148 // Step 3: start shadow sync peerCOMMENT
LOWblocksuite/framework/sync/src/doc/engine.ts170 // Step 4: continuously sync main and shadowCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/peer.ts243 // Step 1: load root docCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/peer.ts246 // Step 2: load subdocsCOMMENT
LOWblocksuite/framework/store/src/extension/extension.ts20 * ## Step 1: Define the interfacesCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts33 * ## Step 2: Create a service identifierCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts41 * ## Step 3: Create implementationsCOMMENT
LOWblocksuite/framework/store/src/extension/extension.ts59 * ## Step 4: Create an extension factoryCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts74 * ## Step 5: Create concrete extensionsCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts81 * ## Step 6: Use the extensionsCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md25## Step 1: Define the interfacesCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md38## Step 2: Create a service identifierCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md46## Step 3: Create implementationsCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md64## Step 4: Create an extension factoryCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md79## Step 5: Create concrete extensionsCOMMENT
LOW…ksuite/docs/api/@blocksuite/store/classes/Extension.md86## Step 6: Use the extensionsCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts19 // Step 1: Open home pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts23 // Step 2: Create a new pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts28 // Step 3: Create a database in the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts31 // Step 4: Add a text columnCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts34 // Step 5: Create a new page to get its linkCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts38 // Step 6: Go back to database pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts42 // Step 7: Select and edit the rich text cellCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts45 // Step 8: Paste the document linkCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts57 // Step 9: Verify the resultCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts64 // Step 1: Open home pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts68 // Step 2: Create a new pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts72 // Step 3: Create a database in the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts75 // Step 4: Add a text columnCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts78 // Step 5: Create a new page as reference targetCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts83 // Step 6: Select and edit the rich text cellCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts88 // Step 7: Wait for reference picker and select the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts94 // Step 8: Verify the resultCOMMENT
Verbosity Indicators30 hits · 56 pts
SeverityFileLineSnippetContext
LOWblocksuite/framework/sync/src/doc/engine.ts127 // Step 1: start main sync peerCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/engine.ts145 // Step 2: wait for main sync completeCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/engine.ts148 // Step 3: start shadow sync peerCOMMENT
LOWblocksuite/framework/sync/src/doc/engine.ts170 // Step 4: continuously sync main and shadowCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/peer.ts243 // Step 1: load root docCOMMENT
LOW⚡blocksuite/framework/sync/src/doc/peer.ts246 // Step 2: load subdocsCOMMENT
LOWblocksuite/framework/store/src/extension/extension.ts20 * ## Step 1: Define the interfacesCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts33 * ## Step 2: Create a service identifierCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts41 * ## Step 3: Create implementationsCOMMENT
LOWblocksuite/framework/store/src/extension/extension.ts59 * ## Step 4: Create an extension factoryCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts74 * ## Step 5: Create concrete extensionsCOMMENT
LOW⚡blocksuite/framework/store/src/extension/extension.ts81 * ## Step 6: Use the extensionsCOMMENT
LOWblocksuite/affine/components/src/peek/peekable.ts61 * In edgeless mode, we need to check if the click target is not covered byCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts19 // Step 1: Open home pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts23 // Step 2: Create a new pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts28 // Step 3: Create a database in the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts31 // Step 4: Add a text columnCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts34 // Step 5: Create a new page to get its linkCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts38 // Step 6: Go back to database pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts42 // Step 7: Select and edit the rich text cellCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts45 // Step 8: Paste the document linkCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts57 // Step 9: Verify the resultCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts64 // Step 1: Open home pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts68 // Step 2: Create a new pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts72 // Step 3: Create a database in the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts75 // Step 4: Add a text columnCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts78 // Step 5: Create a new page as reference targetCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts83 // Step 6: Select and edit the rich text cellCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts88 // Step 7: Wait for reference picker and select the pageCOMMENT
LOW⚡…affine-local/e2e/blocksuite/database/rich-text.spec.ts94 // Step 8: Verify the resultCOMMENT
Synthetic Comment Markers6 hits · 45 pts
SeverityFileLineSnippetContext
HIGH⚡.github/ISSUE_TEMPLATE/BUG-REPORT.yml79 label: Is your content generated by AI?CODE
HIGH⚡.github/ISSUE_TEMPLATE/BUG-REPORT.yml81 (Required) Please confirm that the content you submit was not generated by AI or only minimally edited by AI.CODE
HIGH⚡.github/ISSUE_TEMPLATE/BUG-REPORT.yml84 - label: I confirm that the content I submitted was **not** generated by AI / **merely contained minimal** AI edCODE
HIGH⚡.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml39 label: Is your content generated by AI?CODE
HIGH⚡.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml41 (Required) Please confirm that the content you submit was not generated by AI or only minimally edited by AI.CODE
HIGH⚡.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml44 - label: I confirm that the content I submitted was **not** generated by AI / **merely contained minimal** AI edCODE
Fake / Example Data37 hits · 40 pts
SeverityFileLineSnippetContext
LOW…/integration-test/src/__tests__/utils/doc-generator.ts14 'Hello World! Lorem ipsum dolor sit amet. Consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOW…/integration-test/src/__tests__/utils/doc-generator.ts14 'Hello World! Lorem ipsum dolor sit amet. Consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOW…te/affine/fragments/frame-panel/src/card/frame-card.ts248 accessor status: 'selected' | 'dragging' | 'placeholder' | 'none' = 'none';CODE
LOW…ine/fragments/frame-panel/src/body/frame-panel-body.ts274 ? 'placeholder'CODE
LOW…uite/affine/inlines/latex/src/latex-node/latex-node.ts138 html`<span class="placeholder">Equation</span>`,CODE
LOWtests/blocksuite/e2e/clipboard/image.spec.ts27 'text/html': `<p>Lorem Ipsum placeholder text.</p>CODE
LOWtests/blocksuite/e2e/clipboard/image.spec.ts44 const str = 'Lorem Ipsum placeholder text.';CODE
LOWtests/blocksuite/e2e/clipboard/image.spec.ts56 await assertText(page, 'Lorem Ipsum placeholder text.', 1);CODE
LOWtests/affine-local/e2e/attachment-preview.spec.ts265 await input.fill('What is Lorem Ipsum');CODE
LOWtests/affine-local/e2e/attachment-preview.spec.ts267 await expect(attachmentTitle).toHaveText('What is Lorem Ipsum.pdf');CODE
LOWtests/affine-local/e2e/attachment-preview.spec.ts282 await expect(portalName).toHaveText('What is Lorem Ipsum.pdf');CODE
LOW…ges/frontend/core/src/components/hooks/use-mutation.ts32 * trigger({ name: 'John Doe' })COMMENT
LOW…rontend/core/src/__tests__/auth-native-sign-in.spec.ts70 email: 'user@example.com',CODE
LOW…obile/components/navigation/virtual-scroller/index.tsx903 if (row.kind === 'placeholder') {CODE
LOW…/mobile/dialogs/setting/others/delete-account.spec.tsx31 email: 'user@example.com',CODE
LOW…/mobile/dialogs/setting/others/delete-account.spec.tsx257 email: 'user@example.com',CODE
LOW…/mobile/dialogs/setting/others/delete-account.spec.tsx340 target: { value: 'user@example.com' },CODE
LOW…modules/navigation-projection/navigation-projection.ts8 | 'placeholder';CODE
LOW…modules/navigation-projection/navigation-projection.ts11 kind: Exclude<MobileNavigationKind, 'section' | 'placeholder'>;CODE
LOW…modules/navigation-projection/navigation-projection.ts100 kind: 'placeholder',CODE
LOW…modules/navigation-projection/navigation-projection.ts110 kind: 'placeholder',CODE
LOW…es/navigation-projection/navigation-projection.spec.ts62 'placeholder',CODE
LOW…es/navigation-projection/navigation-projection.spec.ts175 kind: 'placeholder',CODE
LOWpackages/frontend/admin/src/use-mutation.ts32 * trigger({ name: 'John Doe' })COMMENT
LOWpackages/backend/native/src/content_policy.rs316 input: "user@example.com",CODE
LOWpackages/backend/native/src/content_policy.rs318 skeleton: "user@example.com",CODE
LOWpackages/backend/server/src/mails/common.ts5 email: 'test@test.com',CODE
LOW…s/backend/server/src/__tests__/payment/service.spec.ts106 { user: { id: 'user-1', email: 'user@example.com' } }CODE
LOW…s/backend/server/src/__tests__/payment/service.spec.ts170 { user: { id: 'user-1', email: 'user@example.com' } }CODE
LOW…ckend/server/src/__tests__/storage/blob-upload.spec.ts58 email: 'user@example.com',CODE
LOW…ckend/server/src/__tests__/storage/blob-upload.spec.ts119 email: 'user@example.com',CODE
LOW⚡…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts575 address: '123 Main St',CODE
LOW⚡…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts580 expect(doc.address).toBe('123 Main St');CODE
LOW⚡…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts589 address: '123 Main St',CODE
LOW…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts603 address: '123 Main St',CODE
LOW…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts616 address: '123 Main St',CODE
LOW…ckages/common/infra/src/orm/core/__tests__/yjs.spec.ts627 address: '123 Main St',CODE
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…s/frontend/core/src/modules/workspace/services/repo.ts39 * @returns the workspace reference and a release function, don't forget to call release function when you don'tCOMMENT
LOWpackages/frontend/i18n/src/i18n.gen.ts6950 * `Meetings allows you to record and transcribe meetings. Don't forget to enable it in AFFiNE settings.`COMMENT
LOWpackages/frontend/i18n/src/resources/en.json1729 "com.affine.settings.workspace.experimental-features.enable-meetings.description": "Meetings allows you to record and CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/set-version.sh18 # Check if file existsCOMMENT
LOWscripts/set-version.sh52 # Check if file existsCOMMENT
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…ages/frontend/core/src/components/properties/table.tsx82// ─────────────────────────────────────────────────COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/core/src/mobile/pages/workspace/collection/detail.tsx39 // TODO: implement 404 pageCOMMENT
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…es/backend/native/src/llm/assets/prompts/built-in.json233 "template": "### Identify needs\nYou are an assistant helping find actions of meeting summary. Use this format, CODE