Powerful system container and virtual machine manager
This report summarizes scanner evidence for lxc/incus, a Go project with 6,544 GitHub stars. SynthScan examined 589,511 lines of code across 1824 source files, recording 1654 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 3.0 (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? 1640 finding(s).
Are imports declared and package/API names verified? 14 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 1654 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 1654 distinct pattern matches across 9 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 | cmd/generate-config/README.md | 21 | ``` | COMMENT |
| LOW | cmd/generate-config/README.md | 41 | COMMENT | |
| LOW | cmd/incus-migrate/cgo.go | 1 | // build +linux,cgo | COMMENT |
| LOW | cmd/incusd/main_forkproxy.go | 1 | package main | COMMENT |
| LOW | cmd/incusd/main_forkproxy.go | 221 | strerror(errno), sk_fds[0]); | COMMENT |
| LOW | cmd/incusd/storage_volumes_sftp.go | 21 | // | COMMENT |
| LOW | cmd/incusd/storage_volumes_sftp.go | 41 | // description: Storage volume name | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 61 | // produces: | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 81 | // description: Cluster member name | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 101 | // description: Status code | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 121 | COMMENT | |
| LOW | cmd/incusd/storage_buckets_backup.go | 141 | // required: true | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 161 | // description: Response type | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 261 | COMMENT | |
| LOW | cmd/incusd/storage_buckets_backup.go | 281 | // produces: | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 301 | // name: target | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 521 | // swagger:operation GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} storage storage_pool_bu | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 541 | // - in: path | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 561 | // description: Sync response | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 641 | // Rename a storage bucket backup | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 661 | // - in: path | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 681 | // $ref: "#/definitions/StorageBucketBackupPost" | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 781 | // swagger:operation DELETE /1.0/storage-pools/{poolName}/buckets/{bucketName}/backups/{backupName} storage storage_pool | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 801 | // type: string | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 901 | } | COMMENT |
| LOW | cmd/incusd/storage_buckets_backup.go | 921 | // type: string | COMMENT |
| LOW | cmd/incusd/metadata.go | 21 | // | COMMENT |
| LOW | cmd/incusd/metadata.go | 41 | // type: integer | COMMENT |
| LOW | cmd/incusd/network_allocations.go | 21 | ) | COMMENT |
| LOW | cmd/incusd/network_allocations.go | 41 | // description: Project name | COMMENT |
| LOW | cmd/incusd/network_allocations.go | 61 | // example: Success | COMMENT |
| LOW | cmd/incusd/main_forkcoresched.go | 1 | package main | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 41 | Get: APIEndpointAction{Handler: clusterGroupGet, AccessHandler: allowPermission(auth.ObjectTypeServer, auth.Entitlem | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 61 | // name: cluster | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 141 | requestor := request.CreateRequestor(r) | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 161 | // type: object | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 181 | // example: | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 201 | // --- | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 221 | // description: Status code | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 301 | // produces: | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 321 | // type: string | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 381 | }) | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 401 | // - in: path | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 501 | // - application/json | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 681 | // - application/json | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 901 | // - application/json | COMMENT |
| LOW | cmd/incusd/api_cluster_group.go | 981 | // It's important to ensure that all servers in the group match that baseline. | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 41 | // - application/json | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 61 | // type: string | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 81 | // description: Status description | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 101 | // "409": | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 121 | // - in: path | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 141 | // responses: | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 161 | // type: array | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 281 | // produces: | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 301 | // name: project | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 421 | // | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 441 | // name: volumeName | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 461 | // "200": | COMMENT |
| LOW | cmd/incusd/storage_volumes_bitmap.go | 481 | // "400": | COMMENT |
| 1464 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/suites/openfga.sh | 90 | # Create an instance for testing the "instance -> user" relation. | COMMENT |
| MEDIUM | test/suites/openfga.sh | 292 | # Create the network and a restricted project sharing it. | COMMENT |
| MEDIUM | test/suites/storage_profiles.sh | 39 | # Create a new profile that provides a root device for some containers. | COMMENT |
| MEDIUM | test/suites/storage_profiles.sh | 91 | # Create a second profile. | COMMENT |
| MEDIUM | test/suites/storage_profiles.sh | 95 | # Create a third profile | COMMENT |
| MEDIUM | test/suites/network_zone.sh | 11 | # Create a network | COMMENT |
| MEDIUM | test/suites/network_zone.sh | 17 | # Create the zones | COMMENT |
| MEDIUM | test/suites/dependent_volumes.sh | 30 | # Create a blank snapshot on the volume if the instance already has a snapshot | COMMENT |
| MEDIUM | test/suites/storage.sh | 28 | # Create a storage volume with a description | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 246 | # Create a project and switch to it | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 256 | # Create a container in the project | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 261 | # Create a backup. | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 344 | # Create a new project, without the features.profiles config. | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 352 | # Create a container | COMMENT |
| MEDIUM⚡ | test/suites/projects.sh | 362 | # Create a container in the default project as well. | COMMENT |
| MEDIUM | test/suites/projects.sh | 16 | # Create a project | COMMENT |
| MEDIUM | test/suites/projects.sh | 40 | # Create a second project | COMMENT |
| MEDIUM | test/suites/projects.sh | 63 | # Create a project with a description | COMMENT |
| MEDIUM | test/suites/projects.sh | 79 | # Create a project and switch to it | COMMENT |
| MEDIUM | test/suites/projects.sh | 90 | # Create a container in the project | COMMENT |
| MEDIUM | test/suites/projects.sh | 127 | # Create a container with the same name in the default project | COMMENT |
| MEDIUM | test/suites/projects.sh | 155 | # Create a couple of projects | COMMENT |
| MEDIUM | test/suites/projects.sh | 159 | # Create a container in the project | COMMENT |
| MEDIUM | test/suites/projects.sh | 197 | # Create a project and switch to it | COMMENT |
| MEDIUM | test/suites/projects.sh | 207 | # Create a container in the project | COMMENT |
| MEDIUM | test/suites/projects.sh | 224 | # Create a snapshot in this project and another one in the default project | COMMENT |
| MEDIUM | test/suites/projects.sh | 286 | # Create a project and switch to it | COMMENT |
| MEDIUM | test/suites/projects.sh | 294 | # Create a profile in this project | COMMENT |
| MEDIUM | test/suites/projects.sh | 383 | # Create a project and switch to it | COMMENT |
| MEDIUM | test/suites/projects.sh | 441 | # Create a new project, without the features.images config. | COMMENT |
| MEDIUM | test/suites/projects.sh | 540 | # Create a container in the project | COMMENT |
| MEDIUM | test/suites/projects.sh | 557 | # Create a project | COMMENT |
| MEDIUM | test/suites/projects.sh | 609 | # Create a couple of containers in the project. | COMMENT |
| MEDIUM | test/suites/projects.sh | 642 | # Create a new profile which does not define "limits.memory". | COMMENT |
| MEDIUM | test/suites/projects.sh | 759 | # Create a custom volume without any size property defined. | COMMENT |
| MEDIUM | test/suites/projects.sh | 852 | # Create a couple of containers in the project. | COMMENT |
| MEDIUM | test/suites/projects.sh | 886 | # Create a project and switch to it | COMMENT |
| MEDIUM | test/suites/projects.sh | 1112 | # Create a profile defining resource allocations | COMMENT |
| MEDIUM | test/suites/clustering_instance_placement_scriptlet.sh | 136 | # Create an instance | COMMENT |
| MEDIUM | test/suites/network_ovn.sh | 1859 | # Create an ACL that allows ICMPv4 and ICMPv6 ping to incusbr0 IP. | COMMENT |
| MEDIUM | test/suites/network_ovn.sh | 2315 | # Create the parent network and two children sharing its logical router. | COMMENT |
| MEDIUM | test/suites/interception.sh | 46 | # Create a device node in the allowed device source path. | COMMENT |
| MEDIUM | test/suites/image.sh | 165 | # Create an alias for the received image | COMMENT |
| MEDIUM | test/suites/backup.sh | 334 | # Create a projects | COMMENT |
| MEDIUM | test/suites/backup.sh | 549 | # Create a project | COMMENT |
| MEDIUM | test/suites/backup.sh | 697 | # Create a project. | COMMENT |
| MEDIUM | test/suites/backup.sh | 1039 | # Create an instance with snapshot. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 277 | # Create a new empty file. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 306 | # Create a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 319 | # Create a symlink and play with our options. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 335 | # Create a symlink to a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 367 | # Create a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 380 | # Create a symlink and play with our options. | COMMENT |
| MEDIUM | test/suites/filemanip.sh | 392 | # Create a symlink to a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 127 | # Create a new empty file. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 156 | # Create a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 169 | # Create a symlink and play with our options. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 185 | # Create a symlink to a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 217 | # Create a directory and play with our options. | COMMENT |
| MEDIUM | test/suites/storage_volume_filemanip.sh | 230 | # Create a symlink and play with our options. | COMMENT |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | cmd/incusd/network_peers.go | 224 | // Use fmt.Errorf as requested, though logging might be preferable in some contexts. | COMMENT |
| HIGH | internal/server/db/cluster/schema.go | 5 | // This code was generated by the schema.DotGo function. If you need to | COMMENT |
| HIGH | internal/server/db/schema/update.go | 66 | "// This code was generated by the schema.DotGo function. If you need to\n" + | CODE |
| HIGH | internal/server/db/node/schema.go | 5 | // This code was generated by the schema.DotGo function. If you need to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/suites/container_devices_gpu.sh | 45 | # Check if nvidia GPU exists. | COMMENT |
| LOW | test/suites/migration.sh | 332 | # Check if the file got refreshed to a different remote. | COMMENT |
| LOW | test/suites/migration.sh | 340 | # Check if the file got refreshed locally. | COMMENT |
| LOW | test/suites/image_acl.sh | 18 | # Check if the ACLs are still present | COMMENT |
| LOW | test/suites/network_ovn.sh | 1892 | # Assign ACL to OVN network. | COMMENT |
| LOW | test/suites/backup.sh | 617 | # Check if hyphens cause issues when creating backups | COMMENT |
| LOW | test/suites/kernel_limits.sh | 6 | # Set it to a limit < 65536 because older systemd's do not have my nofile | COMMENT |
| LOW | test/suites/incremental_copy.sh | 35 | # Set size to check this is supported during copy. | COMMENT |
| LOW | test/suites/clustering.sh | 830 | # Set member_config to match `spawn_incus_and_join_cluster` for 'data' and `driver_config` for 'pool1'. | COMMENT |
| LOW | test/suites/remote.sh | 210 | # Check if we can see instances | COMMENT |
| LOW | test/suites/remote.sh | 226 | # Check if we can see instances in the foo project | COMMENT |
| LOW | test/includes/storage.sh | 143 | # Check if block.create_options are applied. | COMMENT |
| LOW | test/includes/incusd.sh | 135 | # Check if already killed | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | cmd/incus/utils_properties_test.go | 100 | Name: "John Doe", | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 104 | setFieldByJSONTag(&ts, "name", "Jane Doe") | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 105 | s.Equal("Jane Doe", ts.Name) | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 110 | Name: "John Doe", | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 114 | setFieldByJSONTag(&ts, "invalid name", "Jane Doe") | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 115 | s.NotEqual(ts.Name, "Jane Doe") | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 120 | Name: "John Doe", | CODE |
| LOW | cmd/incus/utils_properties_test.go | 131 | Name: "John Doe", | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 150 | "name": "John Doe", | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 160 | s.Equal("John Doe", ws.Name) | CODE |
| LOW⚡ | cmd/incus/utils_properties_test.go | 170 | "name": "John Doe", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/mini-oidc/storage/storage.go | 20 | // the corresponding private key is in the service-key1.json (for demonstration purposes) | COMMENT |
| MEDIUM | test/mini-oidc/storage/storage.go | 159 | // for demonstration purposes we'll check we'll have a simple user store and | COMMENT |
| LOW | …/server/instance/drivers/agent-loader/install-macos.sh | 35 | echo "Don't forget to allow full disk access to sh." | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/suites/init_preseed.sh | 16 | # creating a zfs storage pool, otherwise just use dir. | COMMENT |
| LOW | test/suites/storage_driver_truenas.sh | 194 | # FIXME: when deletes aren't so slow, just use `incus rm -f c1 c3 c11 c21 c4 c5` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doc/conf.py | 1 | CODE | |
| LOW | doc/conf.py | 4 | CODE | |
| LOW | doc/conf.py | 6 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ernal/server/storage/drivers/driver_linstor_volumes.go | 994 | // snapshot, we need to check if the given snapshot is the latest one. | COMMENT |