This report summarizes scanner evidence for isadorasophia/murder. SynthScan examined 114,427 lines of code across 1019 source files, recording 163 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 2.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 157 finding(s).
Are imports declared and package/API names verified? 6 finding(s).
Are wrappers, guards, and repeated structures necessary? 13 finding(s).
Which changes need focused human review? 163 finding(s).
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.
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.
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.
The scanner identified 163 distinct pattern matches across 7 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/Murder.Editor/Core/Cursor/MouseCursor.Sdl.cs | 21 | public static MouseCursor IBeam { get; private set; } | COMMENT |
| LOW | src/Murder.Editor/Core/Cursor/MouseCursor.Sdl.cs | 41 | public static MouseCursor SizeNWSE { get; private set; } | COMMENT |
| LOW | src/Murder.Editor/CustomEditors/CustomEditor.cs | 41 | /// <summary> | COMMENT |
| LOW | src/Murder.Editor/CustomEditors/AssetEditor.cs | 161 | Stages[guid] = stage; | COMMENT |
| LOW | src/Murder.Editor/Utilities/EditorAssetsHelpers.cs | 221 | bool result = EditorAssetHelpers.DrawPreviewButton(asset, id, animationId, size, pressed); | COMMENT |
| LOW | src/Murder.Editor/Diagnostics/EditorDebugSnapshot.cs | 1 | using Murder.Utilities; | COMMENT |
| LOW | src/Murder.Editor/CustomFields/Vector2Field.cs | 81 | COMMENT | |
| LOW | src/Murder.Editor/Systems/DialogueNodeSystem.cs | 81 | //{ | COMMENT |
| LOW | src/Murder.Editor/Data/EditorDataManager_Save.cs | 281 | // { | COMMENT |
| LOW | src/Murder.Editor/Data/TextureInfo.cs | 21 | /// Cropped bounds of the texture, in relation to the top left of the original size | COMMENT |
| LOW | src/Murder.Editor/Data/TextureInfo.cs | 41 | COMMENT | |
| LOW | src/Murder.Editor/Data/EditorDataManager_Sprites.cs | 41 | return default; | COMMENT |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 21 | /// Split Horizontally (textures are stacked up) | COMMENT |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 41 | /// <summary> | COMMENT |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 61 | COMMENT | |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 81 | public int Height; | COMMENT |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 101 | /// </summary> | COMMENT |
| LOW | src/Murder.Editor/Data/TexturePacker.cs | 121 | /// </summary> | COMMENT |
| LOW | src/Murder.Editor/Services/ImporterServices.cs | 61 | // List<(AsepriteFileInfo FileInfo, Guid Guid)> assetsToBake = new(); | COMMENT |
| LOW | src/Murder.Editor/Services/ImporterServices.cs | 81 | // return; | COMMENT |
| LOW | src/Murder.Editor/Services/EditorTileServices.cs | 21 | // IntRectangle bounds = grid.GetTileGrid().Rectangle * Grid.CellSize; | COMMENT |
| LOW | src/Murder/Game.cs | 21 | /// <summary> | COMMENT |
| LOW | src/Murder/Game.cs | 41 | public static GameDataManager Data => Instance._gameData; | COMMENT |
| LOW | src/Murder/Game.cs | 81 | /// Gets the PlayerInput instance. | COMMENT |
| LOW | src/Murder/Game.cs | 101 | /// </summary> | COMMENT |
| LOW | src/Murder/Game.cs | 241 | /// Whether the player is currently skipping frames (due to cutscene) and ignore | COMMENT |
| LOW | src/Murder/Game.cs | 361 | COMMENT | |
| LOW | src/Murder/IGraphicsProvider.cs | 1 | namespace Murder; | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 21 | /// </summary> | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 41 | /// This is called *synchronously*, can use the main thread. | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 61 | /// Called once the game exits. | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 81 | /// Deals with converting save files from a previous version. | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 101 | /// Creates a custom game preferences for the game. | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 121 | /// Creates a custom render context for the game. | COMMENT |
| LOW | src/Murder/IMurderGame.cs | 141 | public string Name { get; } | COMMENT |
| LOW | src/Murder/Core/Particles/WorldParticleSystemTracker.cs | 21 | /// Maps: | COMMENT |
| LOW | src/Murder/Core/Sounds/ISoundPlayer.cs | 81 | public void Initialize(string resourcesPath); | COMMENT |
| LOW | src/Murder/Core/Sounds/ISoundPlayer.cs | 141 | /// <param name="layer">The target sound layer.</param> | COMMENT |
| LOW | src/Murder/Core/Dialogs/RuleKind.cs | 21 | /// <summary> | COMMENT |
| LOW | src/Murder/Core/Dialogs/Lines/Line.cs | 21 | /// Optional sound event that will be fired with this line. | COMMENT |
| LOW | src/Murder/Core/Geometry/Matrix.cs | 1 | namespace Murder.Core.Geometry | COMMENT |
| LOW | src/Murder/Core/Geometry/Matrix.cs | 21 | public float M13; | COMMENT |
| LOW | src/Murder/Core/Geometry/Matrix.cs | 41 | public float M23; | COMMENT |
| LOW | src/Murder/Core/Geometry/Matrix.cs | 61 | public float M33; | COMMENT |
| LOW | src/Murder/Core/Geometry/Line2.cs | 21 | /// <summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Line2.cs | 301 | float lenSquared = (distX * distX) + (distY * distY); | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 21 | /// Point with coordinates X = -1 and Y = 1 (multiply your point by this and you get its mirror). | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 41 | /// Represents half a cell on the current <see cref="Grid"/>. | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 101 | /// </summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 121 | /// </summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 141 | /// </summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 161 | /// </summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 181 | /// </summary> | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 221 | public override string ToString() => (X, Y).ToString(); | COMMENT |
| LOW | src/Murder/Core/Geometry/Point.cs | 241 | /// Equivalent to this * other. | COMMENT |
| LOW | src/Murder/Core/Graphics/RenderContext.cs | 21 | public readonly Camera2D Camera; | COMMENT |
| LOW | src/Murder/Core/Graphics/Color.cs | 21 | COMMENT | |
| LOW | src/Murder/Core/Graphics/Color.cs | 41 | public static Color ColdGray { get; } = new(0.45f, 0.5f, 0.55f); | COMMENT |
| LOW | src/Murder/Core/Graphics/Color.cs | 61 | public static Color Orange { get; } = new(1, 0.6f, 0.1f); | COMMENT |
| LOW | src/Murder/Core/Graphics/Color.cs | 81 | public static Color Blue { get; } = new(0, 0, 1); | COMMENT |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/Murder.Editor/Architect.cs | 200 | Microsoft.Xna.Framework.Media.MediaPlayer.Stop(); | CODE |
| CRITICAL | src/Murder.Editor/EditorScene_Editors.cs | 191 | ImGui.TextColored(Microsoft.Xna.Framework.Color.DarkRed.ToSysVector4(), $"(FILE NOT SAVED)"); | CODE |
| CRITICAL | src/Murder.Editor/EditorScene_Editors.cs | 203 | ImGui.TextColored(Microsoft.Xna.Framework.Color.DarkGray.ToSysVector4(), path); | CODE |
| CRITICAL | src/Murder.Editor/EditorScene_Editors.cs | 219 | ImGui.TextColored(Microsoft.Xna.Framework.Color.DarkGray.ToSysVector4(), $"({asset.GetType().Name})"); | CODE |
| CRITICAL | src/Murder/Game.cs | 1053 | Microsoft.Xna.Framework.Media.MediaPlayer.Stop(); | CODE |
| CRITICAL | src/Murder/Services/TextureServices.cs | 16 | // formats, but will not work with tga files. This internally calls Microsoft.Xna.Framework.Graphics.Texture2D.F | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/Murder.Editor/CustomEditors/SavedWorldInspector.cs | 45 | /// This copy all the settings from the world asset, hopefully aiming for a more "seamless" experience | COMMENT |
| MEDIUM | src/Murder.Editor/Utilities/LocalizationExporter.cs | 69 | // Why, do you ask? Absolutely no reason. It just seemed reasonable that generated strings came later. | COMMENT |
| MEDIUM | src/Murder.Editor/Utilities/LocalizationExporter.cs | 159 | // Why, do you ask? Absolutely no reason. It just seemed reasonable that generated strings came later. | COMMENT |
| MEDIUM | src/Murder/Core/Geometry/Polygon.cs | 1009 | // This is a simplified example; you should replace it with a more robust algorithm | COMMENT |
| MEDIUM | src/Murder/Core/Engine/MonoWorld.cs | 125 | /// Absolutely do not persist this. This is just our pool of entities. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/Murder.Editor/Data/EditorDataManager.cs | 29 | public partial class EditorDataManager : GameDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Save.cs | 11 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Packer.cs | 17 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Dialog.cs | 11 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Media.cs | 6 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Sprites.cs | 16 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Watcher.cs | 15 | public partial class EditorDataManager | CODE |
| LOW | src/Murder.Editor/Data/EditorDataManager_Loader.cs | 13 | public partial class EditorDataManager | CODE |
| LOW | src/Murder/Data/GameDataManager_Sound.cs | 5 | public partial class GameDataManager | CODE |
| LOW | src/Murder/Data/GameDataManager_Recordings.cs | 8 | public partial class GameDataManager | CODE |
| LOW | src/Murder/Data/GameDataManager_Save.cs | 18 | public partial class GameDataManager | CODE |
| LOW | src/Murder/Data/GameDataManager_Packer.cs | 5 | public partial class GameDataManager | CODE |
| LOW | src/Murder/Data/GameDataManager.cs | 21 | public partial class GameDataManager : IDisposable | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/Murder.Editor/CustomEditors/WorldAssetEditor.cs | 674 | // First, we need to check if this is actually a tile grid component. | COMMENT |
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 424 | // Step 1: fill _p[0..255] with [0..255] | COMMENT |
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 428 | // Step 2: Fisher–Yates shuffle | COMMENT |
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 435 | // Step 3: duplicate the array | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 263 | // Step 1: Capture the screenshot | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 286 | // Step 1: Capture the screenshot | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 319 | // Step 2: Return the FileWrapper containing the PNG file data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 424 | // Step 1: fill _p[0..255] with [0..255] | COMMENT |
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 428 | // Step 2: Fisher–Yates shuffle | COMMENT |
| LOW⚡ | src/Murder/Utilities/NoiseHelper.cs | 435 | // Step 3: duplicate the array | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 263 | // Step 1: Capture the screenshot | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 286 | // Step 1: Capture the screenshot | COMMENT |
| LOW | src/Murder/Services/FeedbackServices.cs | 319 | // Step 2: Return the FileWrapper containing the PNG file data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/Murder.Editor/Utilities/Gui/ImGuiHelpers.cs | 191 | /// Don't forget to add a ImGui.Dummy(new Vector2(0,8)) after it to reserve the space for the splitter | COMMENT |
| LOW | src/Murder.Editor/Utilities/Gui/ImGuiHelpers.cs | 247 | /// Don't forget to add a ImGui.Dummy(new Vector2(0,8)) after it to reserve the space for the splitter | COMMENT |
| MEDIUM | src/Murder/Assets/GameAsset.cs | 21 | /// Here's a simple example of how to create a new asset type, 'InventoryItem', extending 'GameAsset': | COMMENT |
| LOW | src/Murder/Services/RenderServices.cs | 1439 | /// Don't forget to dispose this! | COMMENT |
| LOW | src/Murder/Services/RenderServices.cs | 1457 | /// Don't forget to dispose this! | COMMENT |
| LOW | src/Murder/Services/RenderServices.cs | 1477 | /// Don't forget to dispose this! | COMMENT |