AI Slop Code Risk Monitor

massCodeIO/massCode

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

A free, open-source developer workspace. Snippets, notes, HTTP requests, calculations, and dev tools in one local-first app.

1.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for massCodeIO/massCode, a TypeScript project with 7,095 GitHub stars. SynthScan examined 516,564 lines of code across 1864 source files, recording 571 pattern matches distributed across 9 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-29
Last Push
7.1K
Stars
TypeScript
Language
516.6K
Lines of Code
1.9K
Files
571
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 4.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.2/100 · LOW

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

Agent Over-Engineering Ratio 4.4/100 · LOW

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

PR Review Velocity Impact 5.6/100 · LOW

Which changes need focused human review? 571 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 2HIGH 1MEDIUM 2LOW 566

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 571 distinct pattern matches across 9 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 Identifiers451 hits · 462 pts
SeverityFileLineSnippetContext
LOWsrc/renderer/composables/useCodeSpaceInit.ts11export function resetCodeSpaceInitialization(): void {CODE
LOWsrc/renderer/composables/useFolders.ts49function getNextUntitledFolderName(parentId?: number): string {CODE
LOWsrc/renderer/composables/useFolders.ts108function syncSelectedFoldersWithTree() {CODE
LOWsrc/renderer/composables/useFolders.ts189function applySingleFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/useFolders.ts197function applyRangeFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/useFolders.ts219function applyToggleFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/useFolders.ts261async function ensureSelectedFolderIsVisible() {CODE
LOWsrc/renderer/composables/useCloudDownloads.ts28async function refreshCloudDownloadStatus(): Promise<void> {CODE
LOWsrc/renderer/composables/importResult.ts10export function createImportResultSession() {CODE
LOW⚡src/renderer/composables/useStorageMutation.ts6export function subscribeStorageMutations(listener: () => void): () => void {CODE
LOW⚡src/renderer/composables/useStorageMutation.ts16export function markPersistedStorageMutation(): void {CODE
LOW⚡src/renderer/composables/useStorageMutation.ts25export function shouldSkipStorageSyncRefresh(): boolean {CODE
LOWsrc/renderer/composables/useApp.ts91function persistCodeSelectionState() {CODE
LOWsrc/renderer/composables/useDonations.ts67function markCreatedMilestoneShown(space: CreatedSpace, milestone: number) {CODE
LOWsrc/renderer/composables/useNavigationHistory.ts173function syncCurrentEntryWithLocation() {CODE
LOW…/renderer/composables/useCodeSelectionNormalization.ts37export async function normalizeCodeSelectionState() {CODE
LOWsrc/renderer/composables/layoutModes.ts13export function getCodeLayoutModeFromLegacyState(CODE
LOWsrc/renderer/composables/layoutModes.ts19export function getNextLayoutModeForSidebarToggle(CODE
LOWsrc/renderer/composables/layoutModes.ts36export function getLayoutModeFromNotesPanels(CODE
LOWsrc/renderer/composables/layoutModes.ts46export function getNotesPanelsFromLayoutMode(CODE
LOWsrc/renderer/composables/useCommandPalette.ts395async function loadCommandPaletteFilterOptions() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts456function getCommandPaletteFolderOptions(CODE
LOWsrc/renderer/composables/useCommandPalette.ts499function getQueryWithoutActiveFilterToken() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts886function applyDeferredWordsOnTimeout(generation: number) {CODE
LOWsrc/renderer/composables/useCommandPalette.ts1115async function enableSemanticSearchFromPalette() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts1188function applyLoadedSearchFilterOptions() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts1470async function createCodeFolderFromPalette() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts1491async function createNotesFolderFromPalette() {CODE
LOWsrc/renderer/composables/useCommandPalette.ts1508async function openPreferencesFromPalette() {CODE
LOWsrc/renderer/composables/useSnippets.ts522function isSnippetListMembershipAffecting(data: SnippetsUpdate) {CODE
LOWsrc/renderer/composables/useSnippets.ts530function patchSnippetInCollections(snippetId: number, data: SnippetsUpdate) {CODE
LOWsrc/renderer/composables/useSemanticIndexing.ts30function setSemanticIndexingStatus(next: AiSemanticProgress): void {CODE
LOWsrc/renderer/composables/useSemanticIndexing.ts47async function refreshSemanticIndexingStatus(): Promise<void> {CODE
LOWsrc/renderer/composables/useDeleteShortcut.ts26function shouldIgnoreDeleteShortcutTarget(target: EventTarget | null) {CODE
LOWsrc/renderer/composables/useNavigationUIState.ts34export function registerNavigationNoteUIState(CODE
LOWsrc/renderer/composables/useNavigationUIState.ts47export function registerNavigationRouteUIState(CODE
LOWsrc/renderer/composables/useNavigationUIState.ts93export function queueNavigationUIStateRestore(entry: NavigationHistoryEntry) {CODE
LOWsrc/renderer/composables/useNavigationUIState.ts105export function applyPendingNavigationUIStateForNote(noteId: number) {CODE
LOWsrc/renderer/composables/useNavigationUIState.ts119export function applyPendingNavigationUIStateForRoute(routeName: string) {CODE
LOWsrc/renderer/composables/useNavigationUIState.ts133export function clearPendingNavigationUIStateRestore() {CODE
LOWsrc/renderer/composables/useNavigationUIState.ts137export function clearNavigationUIStateForTests() {CODE
LOW…omposables/spaces/notes/useNotesSpaceInitialization.ts20export function resetNotesSpaceInitialization() {CODE
LOW…omposables/spaces/notes/useNotesSpaceInitialization.ts67export function useNotesSpaceInitialization() {CODE
LOWsrc/renderer/composables/spaces/notes/taskProperties.ts81export function createTaskCompletionPatch(CODE
LOW…renderer/composables/spaces/notes/useNotesDashboard.ts78function setDashboardWidgetVisibility(CODE
LOWsrc/renderer/composables/spaces/notes/useNotesApp.ts119function restoreNotesStateSnapshot(action: NotesStateAction): void {CODE
LOWsrc/renderer/composables/spaces/notes/useNotesApp.ts196function persistNotesSelectionState() {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts71function getNextUntitledFolderName(parentId?: number): string {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts111function syncSelectedFoldersWithTree() {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts198function applySingleFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts206function applyRangeFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts229function applyToggleFolderSelection(folderId: number) {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts258async function ensureSelectedFolderIsVisible() {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts353async function createNoteFolderAndSelect(parentId?: number) {CODE
LOWsrc/renderer/composables/spaces/notes/useNoteFolders.ts408async function deleteSelectedNoteFolders(fallbackFolderId?: number) {CODE
LOW…omposables/spaces/notes/useNotesWorkspaceNavigation.ts13export function useNotesWorkspaceNavigation() {CODE
LOW…omposables/spaces/notes/useNotesWorkspaceNavigation.ts87 async function openNoteInNotesWorkspaceInternal(noteId: number) {CODE
LOW…omposables/spaces/notes/useNotesWorkspaceNavigation.ts108 async function openNoteWithOptionalRouteHistory(noteId: number) {CODE
LOWsrc/renderer/composables/spaces/notes/useNotes.ts302function clearNotesLoadingVisibilityTimer() {CODE
LOWsrc/renderer/composables/spaces/notes/useNotes.ts371function selectFirstNoteIfCurrentSelectionIsMissing(previousNoteId?: number) {CODE
391 more matches not shown…
Fake / Example Data105 hits · 106 pts
SeverityFileLineSnippetContext
LOWCHANGELOG.md14* **devtools:** add Lorem Ipsum generator ([#645](https://github.com/massCodeIO/massCode/issues/645)) ([332362a](https:/COMMENT
LOWREADME.md148- **Generators:** JSON Generator, Lorem IpsumCODE
LOWdocs/website/documentation/tools/index.md82### Lorem Ipsum GeneratorCOMMENT
LOWscripts/license/issue.js4 * Запуск: pnpm license:issue --email john@example.com [--name "John Doe"]COMMENT
LOWscripts/license/issue.js30 'Usage: pnpm license:issue --email john@example.com [--name "John Doe"]',CODE
LOWsrc/renderer/components/ui/input/Input.vue71 :placeholder="placeholder"CODE
LOWsrc/renderer/components/ui/input/Input.vue87 :placeholder="placeholder"CODE
LOWsrc/renderer/components/ui/shadcn/calendar/Calendar.vue43const delegatedProps = reactiveOmit(props, 'class', 'layout', 'placeholder')CODE
LOWsrc/renderer/components/ui/shadcn/calendar/Calendar.vue45const placeholder = useVModel(props, 'placeholder', emits, {CODE
LOWsrc/renderer/components/ui/shadcn/calendar/Calendar.vue172 v-model:placeholder="placeholder"CODE
LOWsrc/renderer/components/ui/textarea/Textarea.vue44 :data-placeholder="placeholder"CODE
LOWsrc/renderer/components/ui/editable-table/Cell.vue46 :placeholder="placeholder"CODE
LOWsrc/renderer/components/http/RuntimeInput.vue44 :placeholder="placeholder"CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json155 "comment": "A block id (i.e. anchor).\n\nExamples:\n [[myid]]\n Lorem ipsum dolor.\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json253 "comment": "Bibliography anchor\n\nExamples:\n [[[Lorem ipsum]]]\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json340 "comment": "Strong (bold) text (constrained variant).\n\nExamples:\n *Lorem ipsum* dolor\n [red]*Lorem ipsum* doCODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json373 "comment": "Examples:\n ----\n Lorem ipsum.\n ----\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json398 "comment": "Monospaced text (constrained variant).\n\nExamples:\n `Lorem ipsum` dolor\n [red]`Lorem ipsum` dolorCODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json419 "comment": "Label of a definition (labeled) list item.\n\nExamples:\n Label level 1:: lorem ipsum\n Label level CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json419 "comment": "Label of a definition (labeled) list item.\n\nExamples:\n Label level 1:: lorem ipsum\n Label level CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json449 "comment": "Examples:\n ****\n Lorem ipsum\n ****\n\nNote: Might need to add more includes, but these are the oCODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json505 "comment": "Examples:\n ....\n Lorem ipsum.\n ....\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json592 "comment": "Examples:\n ====\n Lorem ipsum.\n ====\n\nNote: Might need to add more includes, but these are the CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json614 "comment": "Passthrough macro\n\nExamples:\n pass:[Lorem ipsum]\n pass::[Lorem ipsum]\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json641 "comment": "Marked text (constrained variant).\n\nExamples:\n #Lorem ipsum# dolor\n [red]#Lorem ipsum# dolor\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json681 "comment": "Title of a block.\n\nExamples:\n .My title\n Lorem ipsum dolor.\n",CODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json703 "comment": "Examples:\n ____\n Lorem ipsum\n ____\n\nNote: Might need to add more includes, but these are the oCODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json737 "comment": "Emphasized (italic) text (constrained variant).\n\nExamples:\n _Lorem ipsum_ dolor\n [red]_Lorem ipsCODE
LOW…s/editor/grammars/textmate/asciidoctor.tmLanguage.json782 "comment": "Examples:\n --\n Lorem ipsum\n --\nNote: Might need to check on these includes.\n",CODE
LOWsrc/main/ai/semantic/__tests__/corpus.test.ts293 expect([...searchKeywords(target.keyword, 'placeholder').keys()]).toEqual([CODE
LOWsrc/main/i18n/locales/fa_IR/ui.json144 "placeholder": {CODE
LOWsrc/main/i18n/locales/fa_IR/devtools.json6 "label": "تولیدکننده Lorem Ipsum",CODE
LOWsrc/main/i18n/locales/fa_IR/devtools.json217 "placeholder": {CODE
LOWsrc/main/i18n/locales/zh_HK/ui.json144 "placeholder": {CODE
LOWsrc/main/i18n/locales/zh_HK/devtools.json6 "label": "Lorem Ipsum 生成器",CODE
LOWsrc/main/i18n/locales/zh_HK/devtools.json217 "placeholder": {CODE
LOWsrc/main/i18n/locales/uk_UA/ui.json144 "placeholder": {CODE
LOWsrc/main/i18n/locales/uk_UA/devtools.json6 "label": "Генератор Lorem Ipsum",CODE
LOWsrc/main/i18n/locales/uk_UA/devtools.json217 "placeholder": {CODE
LOWsrc/main/i18n/locales/en_US/ui.json14 "placeholder": "Find in content",CODE
LOWsrc/main/i18n/locales/en_US/ui.json21 "placeholder": "Search or run command...",CODE
LOWsrc/main/i18n/locales/en_US/ui.json597 "placeholder": "Enter request body",CODE
LOWsrc/main/i18n/locales/en_US/ui.json628 "placeholder": "Add a description for this request"CODE
LOWsrc/main/i18n/locales/en_US/ui.json1393 "placeholder": {CODE
LOWsrc/main/i18n/locales/en_US/ui.json1566 "placeholder": "Ask a question or describe a task…",CODE
LOWsrc/main/i18n/locales/en_US/devtools.json6 "label": "Lorem Ipsum Generator",CODE
LOWsrc/main/i18n/locales/en_US/devtools.json240 "placeholder": {CODE
LOWsrc/main/i18n/locales/en_US/preferences.json363 "placeholder": "Paste your supporter key",CODE
LOWsrc/main/i18n/locales/pt_BR/ui.json144 "placeholder": {CODE
LOWsrc/main/i18n/locales/pt_BR/devtools.json6 "label": "Gerador Lorem Ipsum",CODE
LOWsrc/main/i18n/locales/pt_BR/devtools.json217 "placeholder": {CODE
LOWsrc/main/i18n/locales/ko_KR/ui.json15 "placeholder": "검색 또는 명령 실행...",CODE
LOWsrc/main/i18n/locales/ko_KR/ui.json291 "placeholder": "요청 본문 입력",CODE
LOWsrc/main/i18n/locales/ko_KR/ui.json311 "placeholder": "이 요청에 대한 설명 추가"CODE
LOWsrc/main/i18n/locales/ko_KR/ui.json621 "placeholder": {CODE
LOWsrc/main/i18n/locales/ko_KR/devtools.json236 "placeholder": {CODE
LOWsrc/main/i18n/locales/ko_KR/preferences.json254 "placeholder": "후원자 키를 붙여넣으세요",CODE
LOWsrc/main/i18n/locales/zh_TW/ui.json144 "placeholder": {CODE
LOWsrc/main/i18n/locales/zh_TW/devtools.json6 "label": "Lorem Ipsum 生成器",CODE
LOWsrc/main/i18n/locales/zh_TW/devtools.json217 "placeholder": {CODE
45 more matches not shown…
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICAL…sables/spaces/http/__tests__/useHttpCollection.test.ts111 collection.draft.value.runtime.assertions.push({CODE
CRITICAL…sables/spaces/http/__tests__/useHttpCollection.test.ts125 collection.draft.value.runtime.extractions.push({CODE
Verbosity Indicators3 hits · 6 pts
SeverityFileLineSnippetContext
LOWsrc/main/storage/providers/markdown/runtime/parser.ts38 // Step 1: Try .meta.yamlCOMMENT
LOW⚡src/main/storage/providers/markdown/runtime/parser.ts53 // Step 2: Try legacy .masscode-folder.ymlCOMMENT
LOW⚡src/main/storage/providers/markdown/runtime/parser.ts63 // Step 3: Migrate legacy → .meta.yamlCOMMENT
Structural Annotation Overuse3 hits · 6 pts
SeverityFileLineSnippetContext
LOWsrc/main/storage/providers/markdown/runtime/parser.ts38 // Step 1: Try .meta.yamlCOMMENT
LOW⚡src/main/storage/providers/markdown/runtime/parser.ts53 // Step 2: Try legacy .masscode-folder.ymlCOMMENT
LOW⚡src/main/storage/providers/markdown/runtime/parser.ts63 // Step 3: Migrate legacy → .meta.yamlCOMMENT
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…onents/editor/grammars/textmate/scheme.tmLanguage.json236 "comment": "\n\t\tThe foldings do not currently work the way I want them to. This\n\t\tmay be a limitation of the way CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOW…renderer/components/notes/cm-extensions/tableBlocks.ts2081 root.style.position = 'relative'COMMENT
LOWsrc/main/storage/providers/markdown/cloudDownloads.ts21// `brctl download` (без блокировки процессов), для остальных провайдеровCOMMENT
LOW…main/storage/providers/markdown/http/runtime/parser.ts341 // Ленивая запись (body/description ещё не дочитаны из индекса): ониCOMMENT
LOWsrc/main/ai/semantic/score.ts41 limit: numberCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…omponents/editor/grammars/textmate/css.tmLanguage.json1333 "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…omponents/editor/grammars/textmate/ada.tmLanguage.json94 "comment": "Ada -- chris@cjack.com. Feel free to modify, distribute, be happy. Share and enjoy.",CODE