Repository Analysis

umbraco/Umbraco-CMS

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

4.6 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of umbraco/Umbraco-CMS, a C# project with 5,213 GitHub stars. SynthScan v2.0 examined 1,342,615 lines of code across 16599 source files, recording 5739 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 4.6 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

4.6
Adjusted Score
4.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
5.2K
Stars
C#
Language
1.3M
Lines of Code
16.6K
Files
5.7K
Pattern Hits
2026-07-14
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 7HIGH 64MEDIUM 39LOW 5629

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 5739 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Over-Commented Block5180 hits · 5104 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…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
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…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
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs661// // gen 1COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs681// Assert.IsTrue(d.Test.NextGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs701//COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs721// t.CollectAuto = false;COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs741// Assert.AreEqual(1, t.LiveGen);COMMENT
LOW…/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs761// Assert.AreEqual(0, d.CreateSnapshot().Gen);COMMENT
5120 more matches not shown…
Fake / Example Data248 hits · 264 pts
SeverityFileLineSnippetContext
LOW…mbraco.Tests.Benchmarks/StringReplaceManyBenchmarks.cs19 //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.cs480 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.cs711 content.SetValue("author", "John Doe");CODE
LOW…co.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs715 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.cs368 [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.ts83 const textExceedMaxChars = 'Lorem ipsum dolor sit';CODE
LOW…eTest/lib/builders/dataTypes/decimalDataTypeBuilder.ts55 alias: 'placeholder',CODE
LOW…o.Tests.AcceptanceTest/lib/helpers/DataTypeUiHelper.ts339 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.cs101 Assert.AreEqual("test@test.com", model.Email);CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs103 Assert.AreEqual("test@test.com", model.UserName);CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs579 Email = "test@test.com",CODE
LOW…anagementApi/Factories/UserPresentationFactoryTests.cs581 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…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.cs924 var user = UserService.CreateUserWithIdentity("John Doe", "john@umbraco.io");CODE
LOW…on/Umbraco.Infrastructure/Services/UserServiceTests.cs935 var user = UserService.CreateUserWithIdentity("John Doe", "john@umbraco.io");CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs41 Assert.AreEqual("test@test.com", member.Email);CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs193 Email = "test@test.com",CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs327 Assert.AreEqual("test@test.com", member.Email);CODE
LOW…o.Infrastructure/Services/MemberEditingServiceTests.cs510 Email = "test@test.com",CODE
LOW…mbraco.Infrastructure/Services/RelationServiceTests.cs133 var member = MemberBuilder.CreateSimpleMember(memberType, "Test Member", "test@test.com", "xxxxxxxx", "testMembeCODE
188 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…
Synthetic Comment Markers11 hits · 80 pts
SeverityFileLineSnippetContext
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs51// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs152// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs265// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs431// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs504// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs620// This code was generated by a tool.COMMENT
HIGH…itTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs702// 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
Hallucination Indicators7 hits · 75 pts
SeverityFileLineSnippetContext
CRITICAL…b.Website/Controllers/BasicAuthLoginControllerTests.cs479 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.cs689 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…s/core/resources/try-execute/try-execute.controller.ts93 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
Modern AI Meta-Vocabulary25 hits · 68 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.ts207 const newHint = { ...this.#scaffold.getValue(), ...hint } as unknown as HintType;CODE
MEDIUM…type/structure/content-type-structure-manager.class.ts341 this.#initRejection?.(`Content Type structure manager could not create scaffold`);CODE
MEDIUM…type/structure/content-type-structure-manager.class.ts349 // 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.ts65 if (!this.#variantScaffold) throw new Error('Variant scaffold data is missing');CODE
MEDIUM…rc/packages/block/block/context/block-entry.context.ts464 // 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
Hyper-Verbose Identifiers64 hits · 64 pts
SeverityFileLineSnippetContext
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…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.ts7export 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.ts7 * @class UmbEntityWorkspaceDataManagerCOMMENT
LOW…core/workspace/entity/entity-workspace-data-manager.ts12export 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…ore/utils/pagination/target/is-target-request.guard.ts8export function isTargetPaginationRequest(CODE
LOW…ore/utils/pagination/offset/is-offset-request.guard.ts7export function isOffsetPaginationRequest(CODE
LOW…/utils/path/remove-initial-slash-from-path.function.ts5export 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.ts39function undefinedFallbackToString(value: number | undefined, fallback: number): string {CODE
LOW…-data-source/is-picker-searchable.data-source.guard.ts7export function isPickerSearchableDataSource(dataSource: unknown): dataSource is UmbPickerSearchableDataSource {CODE
LOW…-data-source/is-picker-collection-data-source.guard.ts7export 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…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.ts8export function umbGenerateRoutePathBuilder(path: string) {CODE
LOW…lient/src/packages/core/router/router-slot/util/url.ts48export function constructPathWithBasePath(path: string, options: Partial<ISlashOptions> = {}) {CODE
LOW…tiptap/components/input-tiptap/input-tiptap.stories.ts19function ensureManifestsRegistered() {CODE
LOW…nt/controller/merge-content-variant-data.controller.ts13function defaultCompareVariantMethod(a: UmbVariantDataModel, b: UmbVariantDataModel) {CODE
LOW…ckages/content/content/manager/element-data-manager.ts15export 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…ges/elements/configuration/configuration.repository.ts41export function resetUmbElementConfigurationCache(): void {CODE
LOW…s/repository/detail/element-detail-response.mappers.ts11export function umbMapElementResponseToDetailModel(CODE
LOW…ts/documents/configuration/configuration.repository.ts41export function resetUmbDocumentConfigurationCache(): void {CODE
LOW…s/repository/detail/document-detail-request.mappers.ts14export function umbMapDocumentCreateRequestBody(CODE
LOW…s/repository/detail/document-detail-request.mappers.ts34export function umbMapDocumentUpdateRequestBody(model: UmbDocumentDetailModel): UpdateDocumentRequestModel {CODE
LOW…ermissions/document-property-value/conditions/utils.ts9export function isDocumentPropertyValueUserPermission(CODE
LOW…ckages/documents/documents/audit-log/info-app/utils.ts24export function getDocumentHistoryTagStyleAndText(type: UmbDocumentAuditLogType): HistoryData {CODE
LOW…y-editors/dropdown/property-editor-ui-dropdown.test.ts46 function verifyLocalSelectionAndDOM(expectedSelection: string[], expectedSelected: string[]) {CODE
LOW…y-editors/dropdown/property-editor-ui-dropdown.test.ts51 function setupBasicConfigWithMultiple(multiple = false) {CODE
LOW…s/property-editors/utils/property-editor-test-utils.ts160export function verifyMultiSelectValueAndDOM(CODE
LOW…s/property-editors/utils/property-editor-test-utils.ts175export function verifyDropdownValueAndDOM(CODE
LOW…editors/number/resolve-number-preset-value.function.ts17export function umbResolveNumberPresetValue(config: UmbPropertyEditorConfig): number | undefined {CODE
LOW…checkbox-list/property-editor-ui-checkbox-list.test.ts38 function verifyLocalSelectionAndDOM(expectedSelection: string[], expectedChecked: string[]) {CODE
LOW…ity-data-picker-supports-text-filter.condition.test.ts16function createCollectionDataSourceMock(enabled: boolean) {CODE
LOW…ity-data-picker-supports-text-filter.condition.test.ts29function createNonCollectionDataSourceMock() {CODE
LOW…cloner/property-value-cloner-block-grid.cloner.test.ts190function testLayoutEntryNewKeyIsReflected(CODE
LOW…UI.Client/src/packages/block/block-grid/utils/index.ts37export async function forEachBlockLayoutEntryOf(CODE
LOW…nents/block-grid-entries/block-grid-entries.element.ts34function resolvePlacementAsBlockGrid(CODE
LOW…lock/workspace/block-workspace-label-value.function.ts12export function buildBlockLabelValueObject(CODE
LOW…lock/workspace/block-workspace-label-index.function.ts15export function resolveBlockWorkspaceLabelIndex(CODE
LOW…ck/validation/data-path-element-data-query.function.ts10export function UmbDataPathBlockElementDataQuery(data: Pick<UmbBlockDataModel, 'key'>): string {CODE
4 more matches not shown…
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.ts34 // 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.ts77 // 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.cs138 // Step 1: Premigrations upgrade.COMMENT
LOW…tructure/Install/UnattendedUpgradeBackgroundService.cs165 // Step 2: Post-premigrations (navigation and publish-status initialization).COMMENT
LOW…tructure/Install/UnattendedUpgradeBackgroundService.cs168 // 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.cs1107 // 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 Vocabulary12 hits · 36 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.cs238 // 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.cs51 // Global is correctness-robust; only revisit if read-through churn under heavy concurrentCOMMENT
MEDIUM…blishedCache.HybridCache/Services/MediaCacheService.cs47 // 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
MEDIUM…bleContentWarningsWhenPublishingNotificationHandler.cs96 // successfulCultures will be null here - change it to a wildcard and utilize this belowCOMMENT
TODO Padding13 hits · 20 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.ts99 // 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.ts114 // TODO: implement upload progressCOMMENT
LOW…ctions/create/document-create-options-modal.element.ts103 // TODO: implement pagination, or get 1000?COMMENT
LOW…y-actions/create/media-create-options-modal.element.ts64 // TODO: implement pagination, or get 1000?COMMENT
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.cs113 * 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