This report summarizes scanner evidence for HarbourMasters/Shipwright, a C project with 5,805 GitHub stars. SynthScan examined 4,300,394 lines of code across 23589 source files, recording 775 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 0.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? 773 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 2 finding(s).
Which changes need focused human review? 775 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 775 distinct pattern matches across 5 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 | run-clang-format.sh | 1 | # Default to clang-format-14; override CLANG_FORMAT to use another 14.x binary | COMMENT |
| LOW | run-clang-format.sh | 21 | # | COMMENT |
| LOW | .devcontainer/devcontainer.json | 21 | // Use 'forwardPorts' to make a list of ports inside the container available locally. | COMMENT |
| LOW | soh/resource.h | 1 | //{{NO_DEPENDENCIES}} | COMMENT |
| LOW | soh/include/command_macros_base.h | 21 | COMMENT | |
| LOW | soh/include/z64interface.h | 1 | #ifndef Z64INTERFACE_H | COMMENT |
| LOW | soh/include/z64interface.h | 21 | COMMENT | |
| LOW | soh/include/z64interface.h | 41 | * These are the colors for the hearts in the interface. The prim color is the red color of the heart | COMMENT |
| LOW | soh/include/z64interface.h | 81 | COMMENT | |
| LOW | soh/include/alignment.h | 1 | #ifndef ALIGNMENT_H | COMMENT |
| LOW | soh/include/vt.h | 1 | #ifndef VT_H | COMMENT |
| LOW | soh/include/vt.h | 21 | COMMENT | |
| LOW | soh/include/align_asset_macro.h | 1 | #ifndef ALIGN_ASSET_MACRO_H | COMMENT |
| LOW | soh/include/z64camera.h | 1 | #ifndef Z64CAMERA_H | COMMENT |
| LOW | soh/include/z64camera.h | 21 | COMMENT | |
| LOW | soh/include/global.h | 1 | #pragma once | COMMENT |
| LOW | soh/include/global.h | 21 | #define _AudioseqSegmentRomStart "Audioseq" | COMMENT |
| LOW | soh/include/global.h | 41 | #define _map_name_staticSegmentRomStart 0 | COMMENT |
| LOW | soh/include/message_data_fmt.h | 21 | COMMENT | |
| LOW | soh/include/message_data_fmt.h | 41 | #define CTRL_ITEM_ICON 13 | COMMENT |
| LOW | soh/include/message_data_fmt.h | 61 | // Color magic values, in single-digit hex without prefix | COMMENT |
| LOW | soh/include/message_data_fmt.h | 81 | #define BOX_BREAK STR(CTRL_BOX_BREAK) | COMMENT |
| LOW | soh/include/message_data_fmt.h | 101 | #define POINTS STR(CTRL_POINTS) | COMMENT |
| LOW | soh/include/message_data_fmt.h | 121 | COMMENT | |
| LOW | soh/include/message_data_fmt.h | 141 | #define MSGCOL_LIGHTBLUE HEX(CTRL_LIGHTBLUE) | COMMENT |
| LOW | soh/include/message_data_fmt.h | 161 | #define MESSAGE_FADE2 HEX(CTRL_FADE2) | COMMENT |
| LOW | soh/include/message_data_fmt.h | 181 | #define MESSAGE_SHIFT_JPN 0x86C7 | COMMENT |
| LOW | soh/include/message_data_fmt.h | 201 | #define MESSAGE_UNSKIPPABLE_JPN 0x8199 | COMMENT |
| LOW | soh/include/z64save.h | 1 | #ifndef Z64SAVE_H | COMMENT |
| LOW | soh/include/z64save.h | 441 | } HighScores; | COMMENT |
| LOW | soh/include/z64save.h | 501 | #define EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD 0x07 | COMMENT |
| LOW | soh/include/z64save.h | 521 | #define EVENTCHKINF_21 0x21 | COMMENT |
| LOW | soh/include/z64save.h | 541 | // 0x40 | COMMENT |
| LOW | soh/include/z64save.h | 561 | #define EVENTCHKINF_LEARNED_SERENADE_OF_WATER 0x52 | COMMENT |
| LOW | soh/include/z64save.h | 581 | #define EVENTCHKINF_6E 0x6E | COMMENT |
| LOW | soh/include/z64save.h | 601 | #define EVENTCHKINF_CARPENTERS_FREE_INDEX 9 | COMMENT |
| LOW | soh/include/z64save.h | 621 | #define EVENTCHKINF_ENTERED_HYRULE_CASTLE 0xA5 | COMMENT |
| LOW | soh/include/z64save.h | 641 | #define EVENTCHKINF_COMPLETED_WATER_TRIAL 0xBC | COMMENT |
| LOW | soh/include/z64save.h | 661 | #define EVENTCHKINF_SONGS_FOR_FROGS_SARIA_SHIFT 4 | COMMENT |
| LOW | soh/include/z64save.h | 681 | #define EVENTCHKINF_SKULLTULA_REWARD_10_SHIFT 10 | COMMENT |
| LOW | soh/include/z64save.h | 701 | #define ITEMGETINF_06 0x06 | COMMENT |
| LOW | soh/include/z64save.h | 721 | #define ITEMGETINF_18_SHIFT 8 | COMMENT |
| LOW | soh/include/z64save.h | 741 | #define ITEMGETINF_2C 0x2C | COMMENT |
| LOW | soh/include/z64save.h | 761 | #define INFTABLE_0E 0x0E | COMMENT |
| LOW | soh/include/z64save.h | 781 | #define INFTABLE_66 0x66 | COMMENT |
| LOW | soh/include/z64save.h | 801 | #define INFTABLE_B4 0xB4 | COMMENT |
| LOW | soh/include/z64save.h | 821 | #define INFTABLE_CE 0xCE | COMMENT |
| LOW | soh/include/z64save.h | 841 | #define INFTABLE_SPOKE_TO_GORON_LINK 0x10E | COMMENT |
| LOW | soh/include/z64save.h | 861 | #define INFTABLE_162 0x162 | COMMENT |
| LOW | soh/include/z64save.h | 881 | #define INFTABLE_198 0x198 | COMMENT |
| LOW | soh/include/z64save.h | 901 | #define INFTABLE_1A6_SHIFT 6 | COMMENT |
| LOW | soh/include/z64save.h | 921 | #define EVENTINF_HORSES_HORSETYPE_SHIFT 4 | COMMENT |
| LOW | soh/include/attributes.h | 1 | #ifndef ATTRIBUTES_H | COMMENT |
| LOW | soh/include/z64audio.h | 1 | #ifndef Z64_AUDIO_H | COMMENT |
| LOW | soh/include/z64player.h | 661 | FLAG_GS_TOKEN, | COMMENT |
| LOW | soh/include/z64player.h | 681 | #define PLAYER_STATE1_CARRYING_ACTOR (1 << 11) // Currently carrying an actor | COMMENT |
| LOW | soh/include/z64player.h | 701 | #define PLAYER_STATE1_FLOOR_DISABLED (1u << 31) //Used for grottos | COMMENT |
| LOW | soh/include/z64player.h | 721 | #define PLAYER_STATE2_CRAWLING (1 << 18) // Crawling through a crawlspace | COMMENT |
| LOW | soh/include/z64player.h | 741 | #define PLAYER_STATE3_FORCE_PULL_OCARINA (1 << 5) | COMMENT |
| LOW | soh/include/z64actor_enum.h | 21 | }; | COMMENT |
| 706 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | soh/include/functions.h | 2456 | // Exposing these methods to leverage them from the file select screen to render messages | COMMENT |
| MEDIUM | soh/soh/SohGui/MenuTypes.h | 95 | // It is recommended to utilize `disabledInfo`/`DisableReason` to list out all reasons for disabling and isHidden so | COMMENT |
| MEDIUM | soh/src/code/z_parameter.c | 5428 | // Render enemy health bar after Z-target to leverage set variables | COMMENT |
| MEDIUM | soh/src/code/graph.c | 536 | // SOH [Debugging] Force open/close disp string handling on so that the graphics debugger can leverage it | COMMENT |
| MEDIUM | soh/src/code/graph.c | 549 | // SOH [Debugging] Force open/close disp string handling on so that the graphics debugger can leverage it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | soh/fixbaserom.py | 33 | print("Error: Could not find baserom_original_non_mq.z64/baserom_original_non_mq.n64/baserom_original_non_mq.v64.") | CODE |
| MEDIUM | soh/fixbaserom.py | 82 | print("Error: Expected a hash of 9c1d795429220f5389045693a011b8f6 but got " + str_hash + ". " + | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | soh/fixbaserom.py | 47 | # Check if ROM needs to be byte/word swapped | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | soh/soh/SohGui/UIWidgets.hpp | 520 | // Example usage: | COMMENT |