AI Slop Code Risk Monitor

mermaid-js/mermaid

SlopCodeMonitor badge for mermaid-js/mermaid Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown

1.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for mermaid-js/mermaid, a TypeScript project with 90,942 GitHub stars. SynthScan examined 341,457 lines of code across 1657 source files, recording 383 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.9 (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.9
Adjusted Signal
1.9
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
90.9K
Stars
TypeScript
Language
341.5K
Lines of Code
1.7K
Files
383
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.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 5.7/100 · LOW

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

PR Review Velocity Impact 8.7/100 · LOW

Which changes need focused human review? 383 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 5HIGH 0MEDIUM 97LOW 281

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 383 distinct pattern matches across 11 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.

Decorative Section Separators88 hits · 260 pts
SeverityFileLineSnippetContext
MEDIUM…c/rendering-util/layout-algorithms/ddlt/sizeCapture.ts5// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…c/rendering-util/layout-algorithms/ddlt/sizeCapture.ts25// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…dering-util/layout-algorithms/layout-utils/geometry.ts9// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…dering-util/layout-algorithms/layout-utils/geometry.ts11// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…dering-util/layout-algorithms/layout-utils/geometry.ts18// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…dering-util/layout-algorithms/layout-utils/geometry.ts20// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…dering-util/layout-algorithms/layout-utils/geometry.ts34// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…dering-util/layout-algorithms/layout-utils/geometry.ts36// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts16// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts18// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts55// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts57// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts109// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts111// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts143// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts145// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts251// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts253// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts271// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts273// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ing-util/layout-algorithms/layout-utils/scoreLayout.ts358// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ing-util/layout-algorithms/layout-utils/scoreLayout.ts360// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts457// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts459// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts499// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ing-util/layout-algorithms/layout-utils/scoreLayout.ts501// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts16// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts18// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts35// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts37// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts94// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts96// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts165// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts167// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts662 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts664 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts726 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts738 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts776 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts778 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts798 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts800 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts825 // ─── New: edge-bend-near-endpoint ────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1099 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1114 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1244 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1246 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1294 // ─── New: edge-shared-attachment-point ───────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1318 // ─── New: edge-shared-projected-port ─────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1360 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1362 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1448 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1450 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1467 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-util/layout-algorithms/layout-utils/validateLayout.ts1469 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/mermaid/src/diagrams/flowchart/flowDb.ts1179 // ── Collapsible subgraphs (issue #7784) ──────────────────────────────COMMENT
MEDIUMpackages/mermaid/src/diagrams/flowchart/flowDb.ts1179 // ── Collapsible subgraphs (issue #7784) ──────────────────────────────COMMENT
MEDIUMpackages/mermaid/src/diagrams/agentflow/agentflowDb.ts232 // ── Element-mapping infrastructure (PR 2a) ───────────────────────────COMMENT
MEDIUMpackages/mermaid/src/diagrams/agentflow/agentflowDb.ts246 // ── Diagnostic layer (PR 2b) ──────────────────────────────────────────COMMENT
MEDIUMpackages/mermaid/src/diagrams/agentflow/agentflowDb.ts1978 // ── Semantic-model projection (PR 3) ─────────────────────────────────COMMENT
28 more matches not shown…
Hyper-Verbose Identifiers142 hits · 141 pts
SeverityFileLineSnippetContext
LOWscripts/screenshot-sheets.ts590function sheetMetadataFromManifest(manifest: SheetManifest): ArgosScreenshotMetadata {CODE
LOWscripts/screenshot-sheets.ts629export async function ensureSheetMetadataSidecars(outDir: string): Promise<number> {CODE
LOWpackages/mermaid-layout-tidy-tree/src/layout.ts166function convertNodeToTidyTreeTransposed(CODE
LOWpackages/mermaid-layout-tidy-tree/src/layout.ts298function positionLeftTreeBidirectional(CODE
LOWpackages/mermaid-layout-tidy-tree/src/layout.ts332function positionRightTreeBidirectional(CODE
LOWpackages/mermaid-layout-tidy-tree/src/layout.ts369function computeCircleEdgeIntersection(circle: Bounds, lineStart: Point, lineEnd: Point): Point {CODE
LOWpackages/parser/tests/test-util.ts40export function expectNoErrorsOrAlternatives(result: ParseResult) {CODE
LOWpackages/parser/tests/test-util.ts62export function createArchitectureTestServices() {CODE
LOWpackages/parser/tests/test-util.ts106export function createGitGraphTestServices() {CODE
LOWpackages/parser/tests/test-util.ts118export function createEventModelingTestServices() {CODE
LOWpackages/parser/tests/test-util.ts128export function createTreeViewTestServices() {CODE
LOWpackages/parser/src/language/architecture/module.ts65export function createArchitectureServices(CODE
LOWpackages/parser/src/language/eventmodeling/module.ts44export function createEventModelingServices(CODE
LOWpackages/parser/src/language/railroad-ebnf/module.ts41export function createRailroadEbnfServices(CODE
LOWpackages/parser/src/language/railroad-abnf/module.ts41export function createRailroadAbnfServices(CODE
LOWpackages/parser/src/language/railroad-peg/module.ts41export function createRailroadPegServices(CODE
LOWpackages/mermaid/src/mermaidAPI.ts73function processAndSetConfigs(text: string) {CODE
LOWpackages/mermaid/src/utils.ts398function calcTerminalLabelPosition(CODE
LOWpackages/mermaid/src/styles.spec.ts37function checkValidStylisCSSStyleSheet(stylisString: string) {CODE
LOWpackages/mermaid/src/rendering-util/createText.ts237function updateTextContentAndStyles(CODE
LOWpackages/mermaid/src/rendering-util/createGraph.ts29export function createLayoutElementGroups(CODE
LOW…ermaid/src/rendering-util/cloneLayoutDataForMeasure.ts7export function cloneLayoutDataForDomMeasure(layout: LayoutData): LayoutData {CODE
LOW…ermaid/src/rendering-util/cloneLayoutDataForMeasure.ts27export function copyMeasuredGraphOntoCanonical(canonical: LayoutData, measured: LayoutData): void {CODE
LOWpackages/mermaid/src/rendering-util/splitText.ts46function splitWordToFitWidthRecursion(CODE
LOWpackages/mermaid/src/rendering-util/splitText.ts90function splitLineToFitWidthRecursion(CODE
LOW…dering-util/layout-algorithms/ddlt/baselineDdltSpec.ts21function segmentCrossesRectInterior(CODE
LOW…/rendering-util/layout-algorithms/ddlt/fixtureSizes.ts79export function applySyntheticContentSizes(CODE
LOW…/rendering-util/layout-algorithms/ddlt/fixtureSizes.ts118export function applyFixtureContentSizesStrict(layout: LayoutData, fixture: SizesFixture): void {CODE
LOW…/rendering-util/layout-algorithms/ddlt/fixtureSizes.ts136export function applyFixtureLabelSizesStrict(layout: LayoutData, fixture: SizesFixture): void {CODE
LOW…ng-util/layout-algorithms/ddlt/domusEdgeLabelInject.ts7export function injectDomusEdgeLabelNodes(data: LayoutData): void {CODE
LOW…dering-util/layout-algorithms/ddlt/discoverFixtures.ts43export function discoverLayoutTestFixtures(): LayoutTestFixture[] {CODE
LOW…/src/rendering-util/layout-algorithms/ddlt/backends.ts23function topUpSwimlaneFlowchartConfig(layout: LayoutData): void {CODE
LOW…ering-util/layout-algorithms/ddlt/aggregateValidate.ts45export function combineValidateLayoutResults(CODE
LOW…ing-util/layout-algorithms/swimlanes/phase0.helpers.ts81export function buildPredecessorSuccessorMaps(CODE
LOW…/rendering-util/layout-algorithms/swimlanes/helpers.ts137function dropLanesEmptiedBySharedNodes(layout: LayoutData, nodes: Node[]): void {CODE
LOW…/rendering-util/layout-algorithms/swimlanes/helpers.ts163export function prepareLayoutForSwimlanes(layout: LayoutData): void {CODE
LOW…ing-util/layout-algorithms/swimlanes/postProcessing.ts29export function postProcessSwimlaneLayout(layout: LayoutData, direction?: string): void {CODE
LOW…layout-algorithms/swimlanes/phase2.laneAwareCompact.ts16function topoSortByGenerationIfAcyclic(g: Graph): NodeId[] | null {CODE
LOW…ayout-algorithms/swimlanes/phase2.crossOptimization.ts12function countCrossingsBetweenAdjacent(upper: NodeId[], lower: NodeId[], edges: EdgeRef[]): number {CODE
LOW…/layout-algorithms/swimlanes/mermaid-work.ddlt.spec.ts197function maxRectangularHairpinLength(points: Point[]): number {CODE
LOW…util/layout-algorithms/swimlanes/phase2.crossCounts.ts12export function computeSubtreeCrossCounts(CODE
LOW…ng-util/layout-algorithms/swimlanes/phase3.ordering.ts59function countCrossingsBetweenAdjacent(upper: NodeId[], lower: NodeId[], edges: Edge[]): number {CODE
LOW…algorithms/swimlanes/__tests__/phase2.layering.spec.ts25function mkSwimlaneGraphForCrossLane(): Graph {CODE
LOW…algorithms/swimlanes/__tests__/pipeline.hoe.lr.spec.ts177function hasZeroProgressOutAndBack(points: Point[]): boolean {CODE
LOW…/layout-algorithms/swimlanes/direction/terminalStub.ts44export function collapseShortTerminalStub(edges: any[], nodeByIdMap: Map<string, any>): void {CODE
LOW…util/layout-algorithms/swimlanes/direction/geometry.ts142export function sameAxisSegmentOverlapLength(CODE
LOW…util/layout-algorithms/swimlanes/direction/geometry.ts156export function orthogonalSegmentsForPoints(points: Point[], epsilon = EPS): OrthogonalSegment[] {CODE
LOW…util/layout-algorithms/swimlanes/direction/geometry.ts224export function classifyThreeSegmentRoute(CODE
LOW…util/layout-algorithms/swimlanes/direction/geometry.ts576export function segmentConflictsWithAnyEdge(CODE
LOW…util/layout-algorithms/swimlanes/direction/geometry.ts611export function orthogonalSegmentsStrictlyCross(CODE
LOW…/layout-algorithms/swimlanes/direction/endpointClip.ts85export function clipEdgeEndpointsToNodeBoundaries(edges: unknown[], nodeByIdMap: Map<string, any>) {CODE
LOW…/layout-algorithms/swimlanes/direction/endpointClip.ts238function clearStraightEndpointCornerAxis(CODE
LOW…/layout-algorithms/swimlanes/direction/endpointClip.ts267function clearStraightEndpointCornerConnections(CODE
LOW…/layout-algorithms/swimlanes/direction/endpointClip.ts320function clearEndpointCornerConnection(points: Point[], r: NodeRect, atStart: boolean): Point[] {CODE
LOW…/layout-algorithms/swimlanes/direction/endpointClip.ts447export function prepareEdgeEndpointsForRenderer(edges: unknown[], nodeByIdMap: Map<string, any>) {CODE
LOW…t-algorithms/swimlanes/direction/sharedTrackNudging.ts13export function nudgeSharedInteriorSubpaths(edges: Edge[], nodeByIdMap: Map<string, Node>): void {CODE
LOW…rithms/swimlanes/direction/siblingSharedFaceRouting.ts84export function straightenCollinearSiblingDetours(edges: Edge[], nodes: Node[]): void {CODE
LOW…l/layout-algorithms/swimlanes/direction/lrTransform.ts71function recomputeNestedGroupBounds(nodes: LayoutNode[]): void {CODE
LOW…l/layout-algorithms/swimlanes/direction/lrTransform.ts133export function applyBtDirectionTransform(layout: LayoutData): boolean {CODE
LOW…l/layout-algorithms/swimlanes/direction/lrTransform.ts270export function applyLrDirectionTransform(CODE
82 more matches not shown…
Over-Commented Block86 hits · 84 pts
SeverityFileLineSnippetContext
LOWnetlify.toml1# Settings in the [build] context are global and are applied toCOMMENT
LOWtsconfig.json21 // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in sourCOMMENT
LOWtsconfig.json41COMMENT
LOWtsconfig.json61 // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only useCOMMENT
LOWtsconfig.json81 "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,COMMENT
LOWpackages/mermaid/src/profiler.ts321 profiling: false,COMMENT
LOW…c/rendering-util/layout-algorithms/ddlt/sizeCapture.ts1import type { Selection } from 'd3';COMMENT
LOW…layout-algorithms/swimlanes/query-process.ddlt.spec.ts181 // Pure orthogonal routing should not produce any segment crossings here.COMMENT
LOW…layout-algorithms/swimlanes/query-process.ddlt.spec.ts301 const layout = await runQueryProcessSwimlanes();COMMENT
LOW…layout-algorithms/swimlanes/query-process.ddlt.spec.ts341 //COMMENT
LOW…ing-util/layout-algorithms/swimlanes/postProcessing.ts81 // Retarget short terminal stubs that are hidden by endpoint clipping.COMMENT
LOW…ing-util/layout-algorithms/swimlanes/postProcessing.ts121 anchorLabelsToPolyline(edges, nodeByIdMap);COMMENT
LOW…util/layout-algorithms/swimlanes/simple-2.ddlt.spec.ts41 // terminate at node B. Before iter 14, `anchorLabelsToPolyline` pickedCOMMENT
LOW…util/layout-algorithms/swimlanes/simple-2.ddlt.spec.ts81 );COMMENT
LOW…util/layout-algorithms/swimlanes/simple-2.ddlt.spec.ts101 // E→B" (user report, 2026-04-16).COMMENT
LOW…ut-algorithms/swimlanes/8-query-process-2.ddlt.spec.ts61 // ... → (1191.89, 331.79) → (1191.89, 240.54) → (1197.41, 240.54)=G.leftCOMMENT
LOW…ut-algorithms/swimlanes/8-query-process-2.ddlt.spec.ts101 });COMMENT
LOW…ut-algorithms/swimlanes/8-query-process-2.ddlt.spec.ts141 '[8_QUERY_PROCESS_2_DDLT] short-terminal-stub offenders:',COMMENT
LOW…ut-algorithms/swimlanes/8-query-process-2.ddlt.spec.ts161 // incoming direction (i.e. the face that points toward E's lane).COMMENT
LOW…t-algorithms/swimlanes/7-car-sales-constr.ddlt.spec.ts41 });COMMENT
LOW…orithms/swimlanes/5-car-fun-sales-wide-tb.ddlt.spec.ts41 }COMMENT
LOW…orithms/swimlanes/5-car-fun-sales-wide-tb.ddlt.spec.ts81 JSON.stringify({ ldeEndOnE, lefStartOnE })COMMENT
LOW…orithms/swimlanes/5-car-fun-sales-wide-tb.ddlt.spec.ts101 // L_D_E_0 routes afterward, A* sees the +1000 crossing penalty againstCOMMENT
LOW…orithms/swimlanes/5-car-fun-sales-wide-tb.ddlt.spec.ts161 // Iter 10's simplifyDetouredEdges correctly produces this straightCOMMENT
LOW…algorithms/swimlanes/6-legal-constr-sales.ddlt.spec.ts41 it('Level 1: L_I_K_0 does not hug J while routing toward K', async () => {COMMENT
LOW…layout-algorithms/swimlanes/orthogonalRouter/router.ts481 dxSign: Math.sign(dx),COMMENT
LOW…layout-algorithms/swimlanes/orthogonalRouter/router.ts601COMMENT
LOW…layout-algorithms/swimlanes/orthogonalRouter/router.ts1041 //COMMENT
LOW…layout-algorithms/swimlanes/orthogonalRouter/router.ts1061 // When these hold, set e.points directly and skip the rest of theCOMMENT
LOW…layout-algorithms/swimlanes/orthogonalRouter/router.ts1101 if (COMMENT
LOW…thogonalRouter/__tests__/raykov.repro_crossing.spec.ts201 //COMMENT
LOW…lanes/orthogonalRouter/__tests__/raykov.router.spec.ts421 });COMMENT
LOW…lanes/orthogonalRouter/__tests__/raykov.router.spec.ts521 );COMMENT
LOW…lanes/orthogonalRouter/__tests__/raykov.router.spec.ts541 // In LR direction with swimlanes, I, J, K are all at the same Y levelCOMMENT
LOW…lanes/orthogonalRouter/__tests__/raykov.issues.spec.ts401 // Check for hookCOMMENT
LOW…algorithms/swimlanes/__tests__/pipeline.hoe.lr.spec.ts201 }COMMENT
LOW…ayout-algorithms/swimlanes/direction/labelAnchoring.ts281 if (aFits !== bFits) {COMMENT
LOW…rithms/swimlanes/direction/siblingSharedFaceRouting.ts181 }COMMENT
LOW…algorithms/swimlanes/direction/detourSimplification.ts141 // checked against real-node obstacles and was blind to the E.topCOMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts41 * shipping as a silent rendering change for every user.COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts61 // 'elk.layered.layering.nodePromotion.strategy': 'NIKOLOV_IMPROVED',COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts81 // Wired to `elk.nodePlacementStrategy`; uncomment to override that config.COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts101 // 'elk.layered.nodePlacement.networkSimplex.nodeFlexibility': 'NODE_SIZE',COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts121 // 'elk.layered.compaction.postCompaction.strategy': 'EDGE_LENGTH',COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts161 */COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts181 // 'elk.layered.mergeHierarchyEdges': false,COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts201 // 'elk.layered.edgeRouting.splines.mode': 'SLOPPY',COMMENT
LOW…ering-util/layout-algorithms/elk/elkOptionCatalogue.ts281 * frame. MUST be empty on `develop`.COMMENT
LOW…aid/src/rendering-util/layout-algorithms/elk/render.ts401 // the layered-scoped key; the unscoped `spacing.edgeNodeBetweenLayers` isCOMMENT
LOW…aid/src/rendering-util/layout-algorithms/elk/render.ts421 // so that lowering the base does not leave parallel edges touching.COMMENT
LOW…aid/src/rendering-util/layout-algorithms/elk/render.ts441 // say in which wins, and quietly ignores an explicit `nodePlacementStrategy`.COMMENT
LOW…aid/src/rendering-util/layout-algorithms/elk/render.ts961 // 'spacing.nodeNodeBetweenLayers': 25,COMMENT
LOW…-util/layout-algorithms/layout-utils/validateLayout.ts41// per-event constant. All tunable in this single block — relative orderingCOMMENT
LOW…-util/layout-algorithms/layout-utils/validateLayout.ts721 overlapCount: overlapDetails.length,COMMENT
LOW…-util/layout-algorithms/layout-utils/validateLayout.ts1101 //COMMENT
LOW…ng-util/rendering-elements/intersect/intersect-line.js41 }COMMENT
LOW…ng-util/rendering-elements/intersect/intersect-line.js61 // The magnitude is always exactly half a unit, but the SIGN is per axis,COMMENT
LOW…ages/mermaid/src/diagrams/paletteCssGeneration.spec.ts161});COMMENT
LOWpackages/mermaid/src/diagrams/sankey/sankeyRenderer.ts101 const labelStyle = conf?.labelStyle ?? defaultSankeyConfig.labelStyle ?? 'legacy';COMMENT
LOW…ges/mermaid/src/diagrams/swimlanes/swimlanesDiagram.ts1// Swimlanes is a "layout-variant diagram": it reuses the flowchart parser, DB,COMMENT
26 more matches not shown…
Structural Annotation Overuse34 hits · 56 pts
SeverityFileLineSnippetContext
LOWdocs/community/new-diagram-jison.md14### Step 1: Grammar & ParsingCOMMENT
LOW⚡docs/community/new-diagram-jison.md60### Step 2: RenderingCOMMENT
LOW⚡docs/community/new-diagram-jison.md66### Step 3: Detection of the new diagram typeCOMMENT
LOW⚡docs/community/new-diagram-jison.md75### Step 4: The final piece - triggering the renderingCOMMENT
LOWdocs/community/new-diagram.md85## Step 1: Grammar and parsingCOMMENT
LOWdocs/community/new-diagram.md108## Step 2: The databaseCOMMENT
LOWdocs/community/new-diagram.md129## Step 3: The rendererCOMMENT
LOWdocs/community/new-diagram.md156## Step 4: Detection and registrationCOMMENT
LOWdocs/community/new-diagram.md189## Step 5: ThemingCOMMENT
LOWdocs/community/new-diagram.md216## Step 6: ConfigurationCOMMENT
LOWdocs/community/new-diagram.md251## Step 7: TestsCOMMENT
LOWdocs/community/new-diagram.md271## Step 8: Documentation, demos, and examplesCOMMENT
LOWdocs/community/new-diagram.md294## Step 9: Changeset and pull requestCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts51 // Step 1: Insert nodes into DOM to get their actual dimensionsCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts90 // Step 2: Run the bidirectional tidy-tree layout algorithmCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts106 // Step 3: Position the nodes based on bidirectional layout resultsCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts121 // Step 3: Position the nodes based on bidirectional layout resultsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts51 // Step 1: Insert nodes into DOM to get their actual dimensionsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts86 // Step 2: Run the cose-bilkent layout algorithmCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts104 // Step 3: Position the nodes based on layout resultsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts137 // Step 4: Insert and position edgesCOMMENT
LOW…ckages/mermaid/src/docs/community/new-diagram-jison.md13### Step 1: Grammar & ParsingCOMMENT
LOW⚡…ckages/mermaid/src/docs/community/new-diagram-jison.md60### Step 2: RenderingCOMMENT
LOW⚡…ckages/mermaid/src/docs/community/new-diagram-jison.md66### Step 3: Detection of the new diagram typeCOMMENT
LOW⚡…ckages/mermaid/src/docs/community/new-diagram-jison.md75### Step 4: The final piece - triggering the renderingCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md83## Step 1: Grammar and parsingCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md106## Step 2: The databaseCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md127## Step 3: The rendererCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md154## Step 4: Detection and registrationCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md187## Step 5: ThemingCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md214## Step 6: ConfigurationCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md249## Step 7: TestsCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md269## Step 8: Documentation, demos, and examplesCOMMENT
LOWpackages/mermaid/src/docs/community/new-diagram.md292## Step 9: Changeset and pull requestCOMMENT
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALpackages/mermaid/src/diagrams/sequence/sequenceDb.ts228 this.state.records.currentBox.actorKeys.push(id);CODE
CRITICALpackages/mermaid/src/diagrams/sequence/sequenceDb.ts263 id: this.state.records.messages.length.toString(),CODE
CRITICALpackages/mermaid/src/diagrams/sequence/sequenceDb.ts298 id: this.state.records.messages.length.toString(),CODE
CRITICALpackages/mermaid/src/diagrams/sequence/sequenceDb.ts442 id: this.state.records.messages.length.toString(),CODE
CRITICALpackages/mermaid/src/diagrams/sequence/sequenceDb.ts566 id: this.state.records.messages.length.toString(),CODE
Modern AI Meta-Vocabulary6 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
MEDIUMCHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
MEDIUMpackages/tiny/CHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
MEDIUMpackages/tiny/CHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
MEDIUMpackages/mermaid/CHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
MEDIUMpackages/mermaid/CHANGELOG.md198- [#8073](https://github.com/mermaid-js/mermaid/pull/8073) [`0cf3797`](https://github.com/mermaid-js/mermaid/commit/0cf3CODE
Verbosity Indicators8 hits · 12 pts
SeverityFileLineSnippetContext
LOWpackages/mermaid-layout-tidy-tree/src/render.ts51 // Step 1: Insert nodes into DOM to get their actual dimensionsCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts90 // Step 2: Run the bidirectional tidy-tree layout algorithmCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts106 // Step 3: Position the nodes based on bidirectional layout resultsCOMMENT
LOWpackages/mermaid-layout-tidy-tree/src/render.ts121 // Step 3: Position the nodes based on bidirectional layout resultsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts51 // Step 1: Insert nodes into DOM to get their actual dimensionsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts86 // Step 2: Run the cose-bilkent layout algorithmCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts104 // Step 3: Position the nodes based on layout resultsCOMMENT
LOW…endering-util/layout-algorithms/cose-bilkent/render.ts137 // Step 4: Insert and position edgesCOMMENT
Fake / Example Data8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…thms/swimlanes/__tests__/helpers.prepareLayout.spec.ts145 { id: 'placeholder', isGroup: true },CODE
LOW…thms/swimlanes/__tests__/helpers.prepareLayout.spec.ts151 expect(ids(layout)).toEqual(['lane1', 'placeholder', 'a']);CODE
LOWpackages/mermaid/src/diagrams/kanban/samples.md71 descr: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWpackages/mermaid/src/diagrams/kanban/samples.md71 descr: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWpackages/mermaid/src/diagrams/kanban/samples.md99 descr: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWpackages/mermaid/src/diagrams/kanban/samples.md99 descr: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWdemos/xychart.html212 x-axis "this is x axis" [category1, "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sintCODE
LOWdemos/xychart.html212 x-axis "this is x axis" [category1, "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sintCODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpackages/mermaid/src/diagrams/agentflow/agentflowDb.ts2160 // enabled, but defend against a missing loc to keep the parser robustCOMMENT
MEDIUMe2e/rendering/xychart/nightly-check/xyChart.spec.js37 // the nearest bar along that axis (robust to filtered/degenerate bars).COMMENT
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOW.github/workflows/lint.yml56 # make sure to return an error exitcode so that GitHub actions shows a red-crossCOMMENT
LOW.github/workflows/lint.yml69 # make sure to return an error exitcode so that GitHub actions shows a red-crossCOMMENT
LOW.github/workflows/lint.yml83 # make sure to return an error exitcode so that GitHub actions shows a red-crossCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/mermaid/src/schemas/config.schema.yaml4# This file defines the MermaidConfig JSON Schema as a YAML file.COMMENT