AI Slop Code RIsk Monitor

umbraco/Umbraco-CMS

Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.

4.5 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for umbraco/Umbraco-CMS, a C# project with 5,265 GitHub stars. SynthScan examined 1,437,481 lines of code across 17142 source files, recording 5979 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 4.5 (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.

4.5
Adjusted Signal
4.5
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
5.3K
Stars
C#
Language
1.4M
Lines of Code
17.1K
Files
6.0K
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 18.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.2/100 · LOW

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

Agent Over-Engineering Ratio 1.2/100 · LOW

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

PR Review Velocity Impact 20.1/100 · LOW

Which changes need focused human review? 5979 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 8HIGH 64MEDIUM 39LOW 5868

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 5979 distinct pattern matches across 15 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.

Over-Commented Block5390 hits · 5310 pts
SeverityFileLineSnippetContext
LOWtests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs41// Nov 8 2018COMMENT
LOWtests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs61// ToHexStringBuilder | 64 | 5,775.33 ns | 2,825.42 ns | 154.871 ns | 1.00 |COMMENT
LOW…Tests.Benchmarks/CompositeStringStringKeyBenchmarks.cs1using System.Collections.Concurrent;COMMENT
LOW…Tests.Benchmarks/CompositeStringStringKeyBenchmarks.cs81COMMENT
LOW…Tests.Benchmarks/CompositeStringStringKeyBenchmarks.cs101 // | 'OrdinalIgnoreCase: TryGetValue (mixed case)' | 32.6253 ns | 14.1231 ns | 0.7741 ns | 1.218 | - | COMMENT
LOW…Umbraco.Tests.Benchmarks/StringExtensionsBenchmarks.cs241 }COMMENT
LOW…braco.Tests.Benchmarks/StringReplaceFirstBenchmarks.cs61 //| | | | | | | | COMMENT
LOWtests/Umbraco.Tests.Benchmarks/CollectionBenchmarks.cs81 [Benchmark]COMMENT
LOWtests/Umbraco.Tests.Benchmarks/CollectionBenchmarks.cs101 //| IReadOnlyListToList | 236.8 ns | 3.77 ns | 3.53 ns | 0.6464 | 0.0098 | 4056 B |COMMENT
LOWtests/Umbraco.Tests.Benchmarks/GuidUdiBenchmarks.cs81 //COMMENT
LOW….Tests.Benchmarks/CompositeStringArrayKeyBenchmarks.cs1using System.Collections.Concurrent;COMMENT
LOW….Tests.Benchmarks/CompositeStringArrayKeyBenchmarks.cs101 // | 'OrdinalIgnoreCase: construct key' | 40.20 ns | 0.58 | 0.0112 | 48 B |COMMENT
LOWtests/Umbraco.Tests.Benchmarks/CombineGuidBenchmarks.cs41//WarmupCount=3COMMENT
LOWtests/Umbraco.Tests.Benchmarks/HashFromStreams.cs1using System.IO;COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs1using System;COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs101 // elseCOMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs121 /// <remarks>COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs141 // else if (char.IsSeparator(c))COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs3321COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs3601 // {COMMENT
LOW…ts/Umbraco.Tests.Benchmarks/OldUtf8ToAsciiConverter.cs3621 // return false;COMMENT
LOW…/Umbraco.Tests.Benchmarks/MediaUniqueNameBenchmarks.cs21/// <list type="bullet">COMMENT
LOW…mbraco.Tests.Benchmarks/ShortStringHelperBenchmarks.cs101 //| RemoveSurrogatePairs | 70.75 ns | 15.307 ns | 0.839 ns | 1.00 | 0.0610 | 192 B |COMMENT
LOWtests/Umbraco.Tests.Benchmarks/DetectJsonBenchmarks.cs61 }COMMENT
LOW…anagement/Services/UserStartNodePathComparisonTests.cs1using NUnit.Framework;COMMENT
LOW…Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs81 // {COMMENT
LOW…Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs101 // Alias = "thumb",COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs1// // Copyright (c) Umbraco.COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs21// d.Test.CollectAuto = false;COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs41//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs61// Assert.IsTrue(d.Test.NextGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs81//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs101// var d = new SnapDictionary<int, string>();COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs121// Assert.AreEqual(1, d.Test.GetValues(1).Length);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs141//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs161//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs181// Assert.AreEqual(1, d.Test.GetValues(1).Length);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs201// Assert.IsFalse(d.Test.NextGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs221// Assert.AreEqual(0, d.GenCount);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs241// Assert.AreEqual(1, d.Test.LiveGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs261// Assert.AreEqual(2, d.Test.LiveGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs281// Assert.AreEqual(0, d.Test.FloorGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs301// Assert.AreEqual(1, d.SnapCount);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs321// // poof, goneCOMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs341// await d.CollectAsync();COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs361//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs381// // collect snapshotCOMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs401//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs421// [Test]COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs441// Assert.AreEqual(2, d.Test.GetValues(1).Length);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs461// Assert.IsFalse(d.Test.NextGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs481// [Retry(5)] // TODO make this test non-flaky.COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs501// d.Set(1, "two");COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs521// Assert.AreEqual(3, d.Test.LiveGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs541// {COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs561// Assert.AreEqual(2, d.SnapCount);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs581// [Retry(5)] // TODO make this test non-flaky.COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs601// v1 = s1.Get(1);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs621// Assert.AreEqual(0, d.SnapCount);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs641// Assert.AreEqual(0, s1.Gen);COMMENT
5330 more matches not shown…
Fake / Example Data257 hits · 273 pts
SeverityFileLineSnippetContext
LOW…mbraco.Tests.Benchmarks/StringReplaceManyBenchmarks.cs20 //Text = "Sed ut perspiciatis unde omnis iste natus &error sit voluptatem accusantium doloremque l:audantium, toCOMMENT
LOW…Configuration/ConfigureBackOfficeCookieOptionsTests.cs224 new Claim(ClaimTypes.Name, "admin@example.com", ClaimValueTypes.String, Constants.Security.BackOfficeAuthentCODE
LOW…b.Website/Controllers/BasicAuthLoginControllerTests.cs519 return BackOfficeIdentityUser.CreateNew(globalSettings, "admin", "admin@example.com", "en-US");CODE
LOW…/Umbraco.Infrastructure/Security/MemberManagerTests.cs319 Email = "test@test.com",CODE
LOW…aco.Tests.UnitTests/Umbraco.Core/Models/MemberTests.cs129 .WithKeyValue("author", "John Doe")CODE
LOW…braco.Tests.UnitTests/Umbraco.Core/Models/UserTests.cs55 .WithEmail("test@test.com")CODE
LOW…co.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs751 content.SetValue("author", "John Doe");CODE
LOW…co.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs755 Assert.That(content.Properties["author"].GetValue(), Is.EqualTo("John Doe"));CODE
LOW…Core/PropertyEditors/Validators/EmailValidatorTests.cs20 [TestCase("test@test.com", true)]CODE
LOW…mbraco.Core/ShortStringHelper/StringExtensionsTests.cs406 [TestCase("test@test.com", true)]CODE
LOW…ts/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs56 var testPropertyData3 = new KeyValuePair<string, object>("author", "John Doe");CODE
LOW…p/App_Plugins/custom-text-box/custompropertyeditors.js40 this._maxLength = this.config?.getValueByAlias("maxChars"), this._placeholder = this.config?.getValueByAlias("placeholCODE
LOW…ests/DefaultConfig/Content/ContentWithTextarea.spec.ts83 const textExceedMaxChars = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam mattis porttitor orci id cuCODE
LOW…ests/DefaultConfig/Content/ContentWithTextarea.spec.ts83 const textExceedMaxChars = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam mattis porttitor orci id cuCODE
LOW…ts/DefaultConfig/Content/ContentWithTextstring.spec.ts87 const textExceedMaxChars = 'Lorem ipsum dolor sit';CODE
LOW…eTest/lib/builders/dataTypes/decimalDataTypeBuilder.ts55 alias: 'placeholder',CODE
LOW…o.Tests.AcceptanceTest/lib/helpers/DataTypeUiHelper.ts345 this.dynamicRootPlaceholderBtn = this.dynamicRootComponent.locator('uui-button[look="placeholder"]');CODE
LOWtests/Umbraco.Tests.Common/Builders/MemberBuilder.cs306 .WithKeyValue("author", "John Doe" + i)CODE
LOWtests/Umbraco.Tests.Common/Builders/MemberBuilder.cs333 .WithKeyValue("author", "John Doe")CODE
LOWtests/Umbraco.Tests.Common/Builders/MemberBuilder.cs354 .WithKeyValue("author", "John Doe" + i)CODE
LOWtests/Umbraco.Tests.Common/Builders/ContentBuilder.cs323 author = "John Doe"CODE
LOWtests/Umbraco.Tests.Common/Builders/ContentBuilder.cs337 author = "John Doe"CODE
LOWtests/Umbraco.Tests.Common/Builders/ContentBuilder.cs358 new { title = name + " Subpage", bodyText = "This is a subpage", author = "John Doe" },CODE
LOWtests/Umbraco.Tests.Common/Builders/ContentBuilder.cs449 content.SetValue("bodyText", "Lorem Ipsum Body Text Test");CODE
LOWtests/Umbraco.Tests.Common/Builders/MediaBuilder.cs220 .WithPropertyValues(new { title = name + " Subpage", bodyText = "This is a subpage", author = "John Doe" })CODE
LOW…tion/Umbraco.Web.Common/Security/MemberManagerTests.cs103 Email = "test@test.com",CODE
LOW…o.PublishedCache.HybridCache/MemberHybridCacheTests.cs42 Assert.AreEqual("test@test.com", member.Email);CODE
LOW…o.PublishedCache.HybridCache/MemberHybridCacheTests.cs59 Email = "test@test.com",CODE
LOW…shedCache.HybridCache/MemberPropertyCacheLevelTests.cs80 Email = "test@test.com",CODE
LOW…Api/Document/GetPublicAccessDocumentControllerTests.cs79 var member = MemberService.CreateMember("test", "test@test.com", "T. Est", memberType.Alias);CODE
LOW…/Document/UpdatePublicAccessDocumentControllerTests.cs94 var member = MemberService.CreateMember("test", "test@test.com", "T. Est", memberType.Alias);CODE
LOW…/Document/UpdatePublicAccessDocumentControllerTests.cs146 MemberUserNames = ["test@test.com"],CODE
LOW…/Document/CreatePublicAccessDocumentControllerTests.cs80 var member = MemberService.CreateMember("test", "test@test.com", "T. Est", memberType.Alias);CODE
LOW…/Document/CreatePublicAccessDocumentControllerTests.cs121 MemberUserNames = ["test@test.com"],CODE
LOW…/Document/DeletePublicAccessDocumentControllerTests.cs80 var member = MemberService.CreateMember("test", "test@test.com", "T. Est", memberType.Alias);CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs106 Assert.AreEqual("test@test.com", model.Email);CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs108 Assert.AreEqual("test@test.com", model.UserName);CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs667 Email = "test@test.com",CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs669 UserName = "test@test.com",CODE
LOW…co.Infrastructure/Security/BackOfficeUserStoreTests.cs75 Email = "test@test.com",CODE
LOW…co.Infrastructure/Security/BackOfficeUserStoreTests.cs76 UserName = "test@test.com",CODE
LOW…co.Infrastructure/Security/BackOfficeUserStoreTests.cs102 Email = "test@test.com",CODE
LOW…co.Infrastructure/Security/BackOfficeUserStoreTests.cs103 UserName = "test@test.com",CODE
LOW…/Persistence/Repositories/ContentTypeRepositoryTest.cs923 content.SetValue("metaAuthor", "John Doe");CODE
LOW…/Persistence/Repositories/ContentTypeRepositoryTest.cs928 Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe"));CODE
LOW…/Persistence/Repositories/ContentTypeRepositoryTest.cs967 content.SetValue("metaAuthor", "John Doe");CODE
LOW…/Persistence/Repositories/ContentTypeRepositoryTest.cs972 Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe"));CODE
LOW…ture/Persistence/Repositories/ElementRepositoryTest.cs925 element.SetValue("author", "John Doe", "en-US");CODE
LOW…ure/Persistence/Repositories/DocumentRepositoryTest.cs949 child.SetValue("author", "John Doe", culture);CODE
LOW…raco.Infrastructure/Services/UserIdKeyResolverTests.cs26 UserName = "test@test.com",CODE
LOW…raco.Infrastructure/Services/UserIdKeyResolverTests.cs27 Email = "test@test.com",CODE
LOW…raco.Infrastructure/Services/UserIdKeyResolverTests.cs47 UserName = "test@test.com",CODE
LOW…raco.Infrastructure/Services/UserIdKeyResolverTests.cs48 Email = "test@test.com",CODE
LOW…on/Umbraco.Infrastructure/Services/UserServiceTests.cs176 var user = UserService.CreateUserWithIdentity("John Doe", "john@umbraco.io");CODE
LOW…on/Umbraco.Infrastructure/Services/UserServiceTests.cs929 var user = UserService.CreateUserWithIdentity("John Doe", "john@umbraco.io");CODE
LOW…on/Umbraco.Infrastructure/Services/UserServiceTests.cs940 var user = UserService.CreateUserWithIdentity("John Doe", "john@umbraco.io");CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs59 Assert.AreEqual("test@test.com", member.Email);CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs211 Email = "test@test.com",CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs345 Assert.AreEqual("test@test.com", member.Email);CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs413 Email = "test@test.com",CODE
197 more matches not shown…
Cross-File Repetition52 hits · 260 pts
SeverityFileLineSnippetContext
HIGH…Editors/ValueConverters/TimeOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":null}STRING
HIGH…ueConverters/DateTimeUnspecifiedValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":null}STRING
HIGH…eConverters/DateTimeWithTimeZoneValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":null}STRING
HIGH…Editors/ValueConverters/DateOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":null}STRING
HIGH…Editors/ValueConverters/TimeOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":"europe/copenhagen"}STRING
HIGH…ueConverters/DateTimeUnspecifiedValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":"europe/copenhagen"}STRING
HIGH…eConverters/DateTimeWithTimeZoneValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":"europe/copenhagen"}STRING
HIGH…Editors/ValueConverters/DateOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000z","timezone":"europe/copenhagen"}STRING
HIGH…Editors/ValueConverters/TimeOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000-05:00","timezone":"europe/copenhagen"}STRING
HIGH…ueConverters/DateTimeUnspecifiedValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000-05:00","timezone":"europe/copenhagen"}STRING
HIGH…eConverters/DateTimeWithTimeZoneValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000-05:00","timezone":"europe/copenhagen"}STRING
HIGH…Editors/ValueConverters/DateOnlyValueConverterTests.cs0{"date":"2025-08-20t16:30:00.0000000-05:00","timezone":"europe/copenhagen"}STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1001122"" parentid=""100112"" level=""4"" writerid=""0"" crSTRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1001122"" parentid=""100112"" level=""4"" writerid=""0"" crSTRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1001122"" parentid=""100112"" level=""4"" writerid=""0"" crSTRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1001122"" parentid=""100112"" level=""4"" writerid=""0"" crSTRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100121"" parentid=""10012"" level=""3"STRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100121"" parentid=""10012"" level=""3"STRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100121"" parentid=""10012"" level=""3"STRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100121"" parentid=""10012"" level=""3"STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // <doc id=""1001221"" parentid=""100122"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // <doc id=""1001221"" parentid=""100122"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // <doc id=""1001221"" parentid=""100122"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // <doc id=""1001221"" parentid=""100122"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10013"" parentid=""1001"" level=""2"" wSTRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10013"" parentid=""1001"" level=""2"" wSTRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10013"" parentid=""1001"" level=""2"" wSTRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10013"" parentid=""1001"" level=""2"" wSTRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // </doc> // <doc id=""1003"" parentid=""-1"" level=""1"" writerid=""0"" creatorid=""0"" nodetype=""1044"" template=STRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // </doc> // <doc id=""1003"" parentid=""-1"" level=""1"" writerid=""0"" creatorid=""0"" nodetype=""1044"" template=STRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // </doc> // <doc id=""1003"" parentid=""-1"" level=""1"" writerid=""0"" creatorid=""0"" nodetype=""1044"" template=STRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // </doc> // <doc id=""1003"" parentid=""-1"" level=""1"" writerid=""0"" creatorid=""0"" nodetype=""1044"" template=STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100311"" parentid=""10031"" level=""3"STRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100311"" parentid=""10031"" level=""3"STRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100311"" parentid=""10031"" level=""3"STRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[<div>this is some content</div>]]></content> // <doc id=""100311"" parentid=""10031"" level=""3"STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // <doc id=""1003121"" parentid=""100312"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // <doc id=""1003121"" parentid=""100312"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // <doc id=""1003121"" parentid=""100312"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // <doc id=""1003121"" parentid=""100312"" level=""4"" writerid=""0"" creatorid=""STRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10032"" parentid=""1003"" level=""2"" wSTRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10032"" parentid=""1003"" level=""2"" wSTRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10032"" parentid=""1003"" level=""2"" wSTRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // </doc> // </doc> // </doc> // <doc id=""10032"" parentid=""1003"" level=""2"" wSTRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""100322"" parentid=""10032"" level=""3"" writerid=""0"" creaSTRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""100322"" parentid=""10032"" level=""3"" writerid=""0"" creaSTRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""100322"" parentid=""10032"" level=""3"" writerid=""0"" creaSTRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""100322"" parentid=""10032"" level=""3"" writerid=""0"" creaSTRING
HIGH…s.UnitTests/Umbraco.Core/Routing/UrlRoutingTestBase.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1003222"" parentid=""100322"" level=""4"" writerid=""0"" crSTRING
HIGH…s/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1003222"" parentid=""100322"" level=""4"" writerid=""0"" crSTRING
HIGH…tTests/Umbraco.Core/Routing/DomainsAndCulturesTests.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1003222"" parentid=""100322"" level=""4"" writerid=""0"" crSTRING
HIGH…nitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs0"> // <content><![cdata[]]></content> // </doc> // <doc id=""1003222"" parentid=""100322"" level=""4"" writerid=""0"" crSTRING
Structural Annotation Overuse90 hits · 148 pts
SeverityFileLineSnippetContext
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs89 // Step 1: Normal traffic sets the URLCOMMENT
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs93 // Step 2: Attacker sends request with forged Host header — must be ignoredCOMMENT
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs97 // Step 3: Legitimate traffic continues — URL remains stableCOMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs41 // Step 1: Use an EFCore scope to trigger InitializeDatabase() which callsCOMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs55 // Step 2: At this point the scope has disposed:COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs60 // Step 3: Get a context from the factory. If pooling is active, this may returnCOMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs64 // Step 4: The context should be usable. Before the fix, this would throwCOMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs78 // Step 1: Normal data access via scope (triggers SetDbConnection)COMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs89 // Step 2: Migration-like operation via factory (the scenario that fails)COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs112 // Step 1: Capture the original connection string before any scope usage.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs121 // Step 2: Use and dispose an EFCore scope, which calls SetDbConnection(null) on cleanup.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs131 // Step 3: Get a context from the pool — may be the same instance that was just disposed.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs135 // Step 4: The connection string must still be set.COMMENT
LOW⚡…astructure/Security/MemberUserStoreConcurrencyTests.cs95 // Step 1: Create (as MemberSignInManager.AutoLinkAndSignInExternalAccount does).COMMENT
LOW⚡…astructure/Security/MemberUserStoreConcurrencyTests.cs103 // Step 2: Update security stamp (as SignInOrTwoFactorAsync does after sign-in).COMMENT
LOW…ent/Extensions/UmbracoApplicationBuilder.BackOffice.cs33 // NOTE: This method will have been called after UseRouting, UseAuthentication, UseAuthorizationCOMMENT
LOW…eb.UI.Client/devops/generate-check-const-test/index.js63 // Step 1: Validate package.json existence and read exports fieldCOMMENT
LOW…eb.UI.Client/devops/generate-check-const-test/index.js103 // Step 2: Scan JavaScript files for exported "UMB_" constantsCOMMENT
LOW….UI.Client/.claude/skills/general-create-kind/SKILL.md34## Step 1: Define the kind manifestCOMMENT
LOW….UI.Client/.claude/skills/general-create-kind/SKILL.md70## Step 2: Create the default element (if providing UI)COMMENT
LOW….UI.Client/.claude/skills/general-create-kind/SKILL.md92## Step 3: Create the default API (if providing logic)COMMENT
LOW….UI.Client/.claude/skills/general-create-kind/SKILL.md106## Step 4: Register the kind in manifestsCOMMENT
LOW….UI.Client/.claude/skills/general-create-kind/SKILL.md118## Step 5: Add kind-specific type to the extension type (if not already done)COMMENT
LOW…lient/.claude/skills/general-create-condition/SKILL.md31## Step 1: Define the alias constantCOMMENT
LOW…lient/.claude/skills/general-create-condition/SKILL.md38## Step 2: Define the config typeCOMMENT
LOW…lient/.claude/skills/general-create-condition/SKILL.md83## Step 3: Implement the condition controllerCOMMENT
LOW…lient/.claude/skills/general-create-condition/SKILL.md158## Step 4: Register the condition manifestCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md46### Step 1: Create the summary elementCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md76### Step 2: Create the manifestCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md96### Step 3: Wire manifests into parentCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md129### Step 1: Create the summary elementCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md133### Step 2: Create the resolverCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md173### Step 3: Create the manifestCOMMENT
LOW…ient/.claude/skills/general-add-value-summary/SKILL.md194### Step 4: Wire manifests into parentCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md49## Step 1: Create package.jsonCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md65## Step 2: Create vite.config.tsCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md84## Step 3: Create umbraco-package.tsCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md102## Step 4: Create the package-level manifests.tsCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md116## Step 5: Create the first moduleCOMMENT
LOW….Client/.claude/skills/general-create-package/SKILL.md144## Step 6: Register the packageCOMMENT
LOW….Client/.claude/skills/general-add-value-type/SKILL.md28## Step 1: Create the constant fileCOMMENT
LOW….Client/.claude/skills/general-add-value-type/SKILL.md77## Step 2: Export from the package indexCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md55### Step 1: Create store context tokenCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md69### Step 2: Create storeCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md88### Step 3: Create server data sourceCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md195### Step 4: Create repositoryCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md215### Step 5: Create constantsCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md224### Step 6: Create manifestsCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md248### Step 7: Wire manifests into parentCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md299### Step 1: Create item store context tokenCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md313### Step 2: Create item storeCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md332### Step 3: Create item server data sourceCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md362### Step 4: Create item repositoryCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md382### Step 5: Create constants and manifestsCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md409### Step 1: Create collection server data sourceCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md448### Step 2: Create collection repositoryCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md506### Step 1: Create types (if needed)COMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md517### Step 2: Create server data sourceCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md550### Step 3: Create repositoryCOMMENT
LOW…ient/.claude/skills/general-create-repository/SKILL.md579### Step 4: Create manifestsCOMMENT
30 more matches not shown…
Hyper-Verbose Identifiers86 hits · 86 pts
SeverityFileLineSnippetContext
LOW…ntent/BlockGrid/VariantBlockGridDiscardChanges.spec.ts26async function createContentWithBlocksInSeveralCultures(umbracoApi) {CODE
LOW…chTextEditor/VariantTipTapBlocksDiscardChanges.spec.ts26async function openVariantContentWithTipTapAndAddABlock(umbracoApi, umbracoUi) {CODE
LOW…ntent/BlockList/VariantBlockListDiscardChanges.spec.ts26async function createContentWithBlocksInSeveralCultures(umbracoApi) {CODE
LOW…raco.Web.Website/Routing/PublicAccessRequestHandler.cs17public class PublicAccessRequestHandler : IPublicAccessRequestHandlerCODE
LOW…raco.Web.UI.Client/devops/module-dependencies/index.js90function getFolderPathFromModuleAlias(moduleAlias) {CODE
LOW…raco.Web.UI.Client/devops/module-dependencies/index.js103function getUmbracoModuleImportsInModule(moduleAlias) {CODE
LOW…raco.Web.UI.Client/devops/module-dependencies/index.js115function reportIllegalImportsFromCore() {CODE
LOW…raco.Web.UI.Client/devops/module-dependencies/index.js157function reportSelfImportsFromModules() {CODE
LOW…raco.Web.UI.Client/devops/module-dependencies/index.js191function reportBidirectionalModuleImports(modules, label, threshold) {CODE
LOW…b.UI.Client/devops/localization/generate-known-keys.js92function findDefaultExportObjectLiteral(source) {CODE
LOWsrc/Umbraco.Web.UI.Client/utils/test-utils.ts16export function ignoreResizeObserverLoopErrors(): () => void {CODE
LOW…able-api/utils/strict-equality-memoization.function.ts8export function strictEqualityMemoization(previousValue: unknown, currentValue: unknown): boolean {CODE
LOW…/type-guards/is-manifest-element-name-type.function.ts8export function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName {CODE
LOW…s/core/sorter/replacement-resolver-as-grid.function.ts8export function UmbSorterResolvePlacementAsGrid(args: UmbSorterResolvePlacementArgs<unknown>) {CODE
LOW…core/resources/extractUmbNotificationColor.function.ts11export function extractUmbNotificationColor(type: EventMessageTypeModel): UmbNotificationColor {CODE
LOW…ts/tokens/notify-workspace-action-starting.function.ts13export function notifyWorkspaceActionStarting(options?: UmbWorkspaceActionExecutionOptions): void {CODE
LOW…core/workspace/entity/entity-workspace-data-manager.ts8 * @class UmbEntityWorkspaceDataManagerCOMMENT
LOW…core/workspace/entity/entity-workspace-data-manager.ts13export class UmbEntityWorkspaceDataManager<ModelType>CODE
LOW…e/workspace/utils/check-will-navigate-away.function.ts12export function umbWorkspaceWillNavigateAway(CODE
LOW…space/utils/object-to-property-value-array.function.ts8export function umbObjectToPropertyValueArray(data: object | undefined): Array<UmbPropertyValueData> | undefined {CODE
LOW…kspace-split-view/workspace-split-view.context.test.ts78 async function waitForFirstDatasetContext(): Promise<void> {CODE
LOW…ore/utils/pagination/target/is-target-request.guard.ts9export function isTargetPaginationRequest(CODE
LOW…ore/utils/pagination/offset/is-offset-request.guard.ts8export function isOffsetPaginationRequest(CODE
LOW…/utils/path/remove-initial-slash-from-path.function.ts6export function removeInitialSlashFromPath(path: string) {CODE
LOW…aco.Web.UI.Client/src/packages/core/utils/math/math.ts109export function calculateExtrapolatedValue(initialValue: number, increaseFactor: number): number {CODE
LOW…aco.Web.UI.Client/src/packages/core/utils/math/math.ts124export function getInterpolatedIndexOfPositionInWeightMap(target: number, weights: Array<number>): number {CODE
LOW…aco.Web.UI.Client/src/packages/core/utils/math/math.ts159export function getAccumulatedValueOfIndex(index: number, weights: Array<number>): number {CODE
LOW…/packages/core/utils/deprecation/deprecation-origin.ts31export function umbParseDeprecationOrigin(stack: string | undefined, selfUrl: string): UmbDeprecationOrigin {CODE
LOW…y-contains/string-or-string-array-contains.function.ts7export function stringOrStringArrayContains(value: string | Array<string>, search: string): boolean {CODE
LOW…y-contains/string-or-string-array-contains.function.ts17export function stringOrStringArrayIntersects(value: string | Array<string>, search: Array<string>): boolean {CODE
LOW…s/core/components/input-slider/input-slider.element.ts41function undefinedFallbackToString(value: number | undefined, fallback: number): string {CODE
LOW…variant-tree-structure-workspace-context.test-utils.ts65export function createTestVariantAncestorItem(CODE
LOW…s/core/variant/variant-object-sort-compare.function.ts10export function umbVariantCodeSortCompare(a: string | null | undefined, b: string | null | undefined): number {CODE
LOW…s/core/variant/variant-object-sort-compare.function.ts27export function umbVariantObjectSortCompare(a: UmbSortableVariantObject, b: UmbSortableVariantObject): number {CODE
LOW…-data-source/is-picker-searchable.data-source.guard.ts8export function isPickerSearchableDataSource(dataSource: unknown): dataSource is UmbPickerSearchableDataSource {CODE
LOW…-data-source/is-picker-collection-data-source.guard.ts8export function isPickerCollectionDataSource(dataSource: unknown): dataSource is UmbPickerCollectionDataSource {CODE
LOW…core/validation/context/validation-messages.manager.ts20function MatchPathOrDescendantPath(source: string, match: string): boolean {CODE
LOW…e/validation/utils/scope-mapper-json-paths.function.ts8export async function umbScopeMapperForJsonPaths(CODE
LOW…e/validation/utils/first-json-path-bracket.function.ts12export function umbGetFirstJsonPathBracket(path: string): string | undefined {CODE
LOW…/utils/extract-first-json-query-containing.function.ts16export function extractFirstJsonQueryContaining(CODE
LOW…ation/utils/data-path-property-value-query.function.ts11export function UmbDataPathPropertyValueQuery(CODE
LOW…c/packages/core/validation/utils/json-path.function.ts25function GetNextPropertyValueFromPath(data: any, path: string): any {CODE
LOW…c/packages/core/validation/utils/json-path.function.ts101function JsFilterFromJsonPathFilter(filter: string): Array<(item: any) => boolean> {CODE
LOW…es/core/router/generate-route-path-builder.function.ts9export function umbGenerateRoutePathBuilder(path: string) {CODE
LOW…ent/src/packages/core/router/route/router-slot.test.ts213 function createParentRouteWrapping(child: IRouterSlot): IRoute {CODE
LOW…lient/src/packages/core/router/router-slot/util/url.ts52export function constructPathWithBasePath(path: string, options: Partial<ISlashOptions> = {}) {CODE
LOW…tiptap/components/input-tiptap/input-tiptap.stories.ts22function ensureManifestsRegistered() {CODE
LOW…/map-data-type-to-collection-configuration.function.ts17export function umbMapDataTypeToCollectionConfiguration(dataType: UmbDataTypeDetailModel): UmbCollectionConfiguration {CODE
LOW…nt/controller/merge-content-variant-data.controller.ts14function defaultCompareVariantMethod(a: UmbVariantDataModel, b: UmbVariantDataModel) {CODE
LOW…ckages/content/content/manager/element-data-manager.ts6export class UmbElementWorkspaceDataManager<ModelType extends UmbElementDetailModel>CODE
LOW…ckages/content/content/manager/content-data-manager.ts7export class UmbContentWorkspaceDataManager<CODE
LOW…ient/src/packages/content/property-type/utils/index.ts9export function UmbDataPathPropertyTypeQuery(value: Pick<UmbPropertyTypeData, 'unique'>): string {CODE
LOW…ackages/user/current-user/current-user.context.test.ts286 async function removeUsersSectionFromCurrentUserGroup() {CODE
LOW…ges/elements/configuration/configuration.repository.ts41export function resetUmbElementConfigurationCache(): void {CODE
LOW…s/repository/detail/element-detail-response.mappers.ts11export function umbMapElementResponseToDetailModel(CODE
LOW…ts/repository/detail/element-detail-request.mappers.ts14export function umbMapElementCreateRequestBody(CODE
LOW…ts/repository/detail/element-detail-request.mappers.ts33export function umbMapElementUpdateRequestBody(model: UmbElementDetailModel): UpdateElementRequestModel {CODE
LOW…-context/document-publishing.workspace-context.test.ts50async function countPublishWithDescendantsCalls(run: () => Promise<unknown>): Promise<number> {CODE
LOW…ts/documents/configuration/configuration.repository.ts41export function resetUmbDocumentConfigurationCache(): void {CODE
LOW…s/repository/detail/document-detail-request.mappers.ts14export function umbMapDocumentCreateRequestBody(CODE
26 more matches not shown…
Hallucination Indicators8 hits · 85 pts
SeverityFileLineSnippetContext
CRITICAL…b.Website/Controllers/BasicAuthLoginControllerTests.cs518 var globalSettings = new global::Umbraco.Cms.Core.Configuration.Models.GlobalSettings();CODE
CRITICAL…braco.Web.Common/UmbracoContext/UmbracoContextTests.cs138 return new global::Umbraco.Cms.Web.Common.UmbracoContext.UmbracoContext(CODE
CRITICAL…tHelpers/Assets/UmbracoTraceLog.UNITTEST.20181112.json91{"@t":"2018-11-12T08:38:04.9607485Z","@mt":"Could not validate XSRF token","@l":"Error","@x":"System.Web.Mvc.HttpAntiForCODE
CRITICAL…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs765 public virtual string CompositionProp => global::Umbraco.Cms.Web.Common.PublishedModels.Composition1.GetCompositionProCODE
CRITICAL…ingHelper/DefaultShortStringHelperTestsWithoutSetup.cs346 var output = global::Umbraco.Cms.Core.Strings.Utf8ToAsciiConverter.ToAsciiString(str);CODE
CRITICAL…tions/Upgrade/V_17_0_0/SetDateDefaultsToUtcNowTests.cs85 Is.Not.Null.And.Not.EqualTo(ExpectedConstraintName),CODE
CRITICAL…s/core/resources/try-execute/try-execute.controller.ts75 apiError.problemDetails.detail?.includes('Umbraco.Cms.Infrastructure.Scoping.Scope.DisposeLastScope()')CODE
CRITICAL…braco.Core/Composing/DefaultUmbracoAssemblyProvider.cs40 // var allAssemblies = System.Runtime.Loader.AssemblyLoadContext.All.SelectMany(x => x.Assemblies);COMMENT
Synthetic Comment Markers11 hits · 80 pts
SeverityFileLineSnippetContext
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs52// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs153// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs266// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs432// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs505// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs696// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs778// This code was generated by a tool.COMMENT
HIGH…o.Tests.Common/Factories/ContentEditingModelFactory.cs8// Disclaimer: Based on code generated by Claude code.COMMENT
HIGH…co.Examine.Lucene/UmbracoExamine/TestFiles.Designer.cs3// This code was generated by a tool.COMMENT
HIGH…ructure/Services/Importing/ImportResources.Designer.cs3// This code was generated by a tool.COMMENT
HIGH…rastructure/ModelsBuilder/Building/TextHeaderWriter.cs16 sb.Append("// This code was generated by a tool.\n");CODE
Modern AI Meta-Vocabulary26 hits · 70 pts
SeverityFileLineSnippetContext
MEDIUMsrc/Umbraco.Web.Common/CLAUDE.md33│ └── UmbracoApplicationBuilder.cs # Middleware orchestration (170 lines)CODE
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts28 #scaffold = new UmbObjectState<Partial<HintType>>({});COMMENT
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts29 readonly scaffold = this.#scaffold.asObservable();CODE
MEDIUM⚡…ient/src/packages/core/hint/context/hint.controller.ts42 this.#scaffold.update(updates);CODE
MEDIUM⚡…ient/src/packages/core/hint/context/hint.controller.ts45 return this.#scaffold.getValue();CODE
MEDIUM⚡…ient/src/packages/core/hint/context/hint.controller.ts53 this.#scaffold.setValue(args?.scaffold);CODE
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts128 this.observe(this.#parent?.scaffold, (scaffold) => {CODE
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts130 this.#scaffold.update(scaffold as any);CODE
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts208 const newHint = { ...this.#scaffold.getValue(), ...hint } as unknown as HintType;CODE
MEDIUM…ient/src/packages/core/hint/context/hint.controller.ts278 this.#scaffold.destroy();CODE
MEDIUM…type/structure/content-type-structure-manager.class.ts345 this.#initRejection?.(`Content Type structure manager could not create scaffold`);CODE
MEDIUM…type/structure/content-type-structure-manager.class.ts353 // Add the new content type to the list of content types, this holds our draft state of this scaffold.COMMENT
MEDIUM…ckages/content/content/manager/content-data-manager.ts44 if (!this.#variantScaffold) throw new Error('Variant scaffold data is missing');CODE
MEDIUM…rc/packages/block/block/context/block-entry.context.ts473 // We have a settings ElementType in config but not in data, so lets create the scaffold for that: [NL]COMMENT
MEDIUM…-picker/components/media-picker-folder-path.element.ts199 const { data } = await this.#mediaDetailRepository.create(scaffold, parentUnique);CODE
MEDIUM…ackages/media/media/dropzone/media-dropzone.manager.ts121 const { data, error } = await this.#mediaDetailRepository.createSilently(scaffold, item.parentUnique);CODE
MEDIUM…ackages/media/media/dropzone/media-dropzone.manager.ts142 const { data, error } = await this.#mediaDetailRepository.createSilently(scaffold, item.parentUnique);CODE
MEDIUMsrc/Umbraco.Infrastructure/CLAUDE.md64│ ├── MigrationPlan.cs # Migration orchestrationCODE
MEDIUM⚡…c/Umbraco.Core/Notifications/ScaffoldedNotification.cs13/// This notification provides both the original entity and the scaffold (copy) being created.COMMENT
MEDIUM⚡…c/Umbraco.Core/Notifications/ScaffoldedNotification.cs22 /// <param name="scaffold">The scaffold (copy) being created.</param>COMMENT
MEDIUM⚡…c/Umbraco.Core/Notifications/ScaffoldedNotification.cs23 /// <param name="parentId">The ID of the parent under which the scaffold will be created.</param>COMMENT
MEDIUM…c/Umbraco.Core/Notifications/ScaffoldedNotification.cs38 /// Gets the scaffold (copy) being created.COMMENT
MEDIUM…c/Umbraco.Core/Notifications/ScaffoldedNotification.cs43 /// Gets the ID of the parent under which the scaffold will be created.COMMENT
MEDIUM…co.Core/Notifications/ContentScaffoldedNotification.cs18 /// <param name="scaffold">The scaffold (copy) being created.</param>COMMENT
MEDIUM…co.Core/Notifications/ContentScaffoldedNotification.cs19 /// <param name="parentId">The ID of the parent under which the scaffold will be created.</param>COMMENT
MEDIUM…braco.Core/Services/IContentBlueprintEditingService.cs26 /// <param name="key">The unique identifier of the blueprint to scaffold from.</param>COMMENT
Verbosity Indicators30 hits · 56 pts
SeverityFileLineSnippetContext
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs89 // Step 1: Normal traffic sets the URLCOMMENT
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs93 // Step 2: Attacker sends request with forged Host header — must be ignoredCOMMENT
LOW⚡…braco.Web.Website/AspNetCoreHostingEnvironmentTests.cs97 // Step 3: Legitimate traffic continues — URL remains stableCOMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs41 // Step 1: Use an EFCore scope to trigger InitializeDatabase() which callsCOMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs55 // Step 2: At this point the scope has disposed:COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs60 // Step 3: Get a context from the factory. If pooling is active, this may returnCOMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs64 // Step 4: The context should be usable. Before the fix, this would throwCOMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs78 // Step 1: Normal data access via scope (triggers SetDbConnection)COMMENT
LOW…re/DbContext/PooledDbContextConnectionTaintingTests.cs89 // Step 2: Migration-like operation via factory (the scenario that fails)COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs112 // Step 1: Capture the original connection string before any scope usage.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs121 // Step 2: Use and dispose an EFCore scope, which calls SetDbConnection(null) on cleanup.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs131 // Step 3: Get a context from the pool — may be the same instance that was just disposed.COMMENT
LOW⚡…re/DbContext/PooledDbContextConnectionTaintingTests.cs135 // Step 4: The connection string must still be set.COMMENT
LOW⚡…astructure/Security/MemberUserStoreConcurrencyTests.cs95 // Step 1: Create (as MemberSignInManager.AutoLinkAndSignInExternalAccount does).COMMENT
LOW⚡…astructure/Security/MemberUserStoreConcurrencyTests.cs103 // Step 2: Update security stamp (as SignInOrTwoFactorAsync does after sign-in).COMMENT
LOW…braco.Web.Website/Routing/UmbracoRouteValuesFactory.cs125 // Here we need to check if there is no hijacked route and no template assigned but there is a content item.COMMENT
LOW…eb.UI.Client/devops/generate-check-const-test/index.js63 // Step 1: Validate package.json existence and read exports fieldCOMMENT
LOW…eb.UI.Client/devops/generate-check-const-test/index.js103 // Step 2: Scan JavaScript files for exported "UMB_" constantsCOMMENT
LOW…i/controller/base-extensions-initializer.controller.ts130 // This might be called after this is destroyed, so we need to check if the _permittedExts is still available: [NL]COMMENT
LOW…s/core/resources/try-execute/try-execute.controller.ts13 // Error might be a legacy error, so we need to check if it is an UmbErrorCOMMENT
LOW…id/property-actions/block-grid-paste-from-clipboard.ts26 // we need to check if the content types are allowed at the rootCOMMENT
LOW…raco.Web.UI.Client/src/apps/app/app-auth.controller.ts83 // If we are logging in, we need to check if we can redirect directly to the providerCOMMENT
LOW…co.Infrastructure/Packaging/PackageDataInstallation.cs528 // we need to check if the content already exists and if so we ignore the installation for this itemCOMMENT
LOW…s/Delete/KeysAndIndexes/DeleteKeysAndIndexesBuilder.cs81 // In some cases not all FK's are prefixed with "FK" :/ mostly with old upgraded databases so we need toCOMMENT
LOW…tructure/Install/UnattendedUpgradeBackgroundService.cs158 // Step 1: Premigrations upgrade.COMMENT
LOW⚡…tructure/Install/UnattendedUpgradeBackgroundService.cs185 // Step 2: Post-premigrations (navigation and publish-status initialization).COMMENT
LOW⚡…tructure/Install/UnattendedUpgradeBackgroundService.cs188 // Step 3: Unattended upgrade (main migrations and package migrations).COMMENT
LOW…ture/Persistence/DatabaseProviderMetadataExtensions.cs32 // In case more metadata providers can recognize the connection string, we need to check if any can force createCOMMENT
LOW…e/Persistence/Repositories/Implement/FileRepository.cs301 // now that the file has been written, we need to check if the path had been changedCOMMENT
LOWsrc/Umbraco.Core/Services/UserService.cs1151 // We need to check if there's any Deny Local login providers present, if so we need to ensure that the user's eCOMMENT
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUM….Infrastructure/Services/DistributedJobServiceTests.cs24 // A long, clock-divisible period (boundaries on the hour) keeps the aligned tests robust against runningCOMMENT
MEDIUMtemplates/UmbracoDockerCompose/docker-compose.yml37 # This is to better facilitate local development in the IDE, so the views, models, etc... are available in the IDE.COMMENT
MEDIUM…ientCredentials/ClientCredentialsUserControllerBase.cs8/// Serves as the base controller for user-related operations that utilize client credentials authentication in the manaCOMMENT
MEDIUMsrc/Umbraco.Web.Website/Routing/EagerMatcherPolicy.cs258 // Ideally we should do this in a more robust way, for instance with a dedicated attribute we can then checkCOMMENT
MEDIUMsrc/Umbraco.Web.Common/Extensions/StringExtensions.cs6 /// Provides a robust way to check if a path starts with another path, normalizing multiple slashes.COMMENT
MEDIUM…ishedCache.HybridCache/Services/ElementCacheService.cs45 // Global is correctness-robust; only revisit if read-through churn under heavy concurrentCOMMENT
MEDIUM…shedCache.HybridCache/Services/DocumentCacheService.cs54 // Global is correctness-robust; only revisit if read-through churn under heavy concurrentCOMMENT
MEDIUM…blishedCache.HybridCache/Services/MediaCacheService.cs51 // Global is correctness-robust; only revisit if read-through churn under heavy concurrentCOMMENT
MEDIUMsrc/Umbraco.Cms.Persistence.EFCore/UmbracoDbContext.cs64 // we're throwing an exception here to make it abundantly clear that one should never utilize (or have aCOMMENT
MEDIUM…braco.Infrastructure/ModelsBuilder/Building/Builder.cs124 // Essentially this means that a `global::` syntax will be output for the generated modelsCOMMENT
MEDIUMsrc/Umbraco.Core/Packaging/PackagesRepository.cs718 ////This is pretty round-about but it works. Essentially we need to get the properties that are taggCOMMENT
TODO Padding11 hits · 16 pts
SeverityFileLineSnippetContext
LOW…tionalSetup/App_Plugins/picker-data-source/tree-api.js50 // TODO: implement when neededCOMMENT
LOW…/Persistence/Repositories/ContentTypeRepositoryTest.cs77 // TODO: Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id).COMMENT
LOW…tegration/Umbraco.Core/Services/ContentServiceTests.cs48 // TODO: Add test to verify there is only ONE newest document/content in {Constants.DatabaseSchema.Tables.Document} COMMENT
LOW…tegration/Umbraco.Core/Services/ContentServiceTests.cs49 // TODO: Add test to delete specific version (with and without deleting prior versions) and versions by date.COMMENT
LOWsrc/Umbraco.Web.UI.Client/index.ts22 // TODO: implement for the static build too. We need to be able load the mock setsCOMMENT
LOW…-data-source/example-custom-picker-tree-data-source.ts37 // TODO: implement args when neededCOMMENT
LOW…nt/src/packages/core/tree/data/tree-repository-base.ts107 // TODO: implement observable for ancestor items in the storeCOMMENT
LOW…rkspace/namable/namable-workspace-context.interface.ts9 // TODO: implement across all namable workspaces and make it mandatoryCOMMENT
LOW…ty-dataset-context/element-property-dataset.context.ts74 // TODO: implement a rejector as well, and handle that in the places awaiting this promise. [NL]COMMENT
LOW…ges/user/user/workspace/user/user-workspace.context.ts150 // TODO: implement upload progressCOMMENT
LOWsrc/Umbraco.Core/IO/IFileSystem.cs205 // TODO: implement theseCOMMENT
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/Umbraco.Cms.Api.Delivery/CLAUDE.md295 "ApiKey": "your-api-key",CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM…ntegration/TestServerTest/UmbracoTestServerTestBase.cs114 * It's worth noting that our usage of WebApplicationFactory is non-standard,COMMENT
LOW…ructure/Services/Importing/CompositionsTestPackage.xml25 <aboutText><![CDATA[<p>This is <a href="http://html5up.net/txt/">TXT</a>, a free site template designed by <a hrCODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…ManagementApi/Document/PatchDocumentControllerTests.cs1200 // ── Deeply nested block editor tests ──────────────────────────────────────COMMENT
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/Umbraco.Web.UI.Login/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWsrc/Umbraco.Web.UI.Client/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWsrc/Umbraco.Web.UI.Client/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE