The Cloud Native Control Plane
This report summarizes scanner evidence for crossplane/crossplane, a Go project with 12,210 GitHub stars. SynthScan examined 181,152 lines of code across 917 source files, recording 256 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 1.8 (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? 246 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 10 finding(s).
Which changes need focused human review? 256 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 256 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 | generate.go | 21 | // $PATH. Use './nix.sh develop' or './nix.sh run .#generate' to ensure they | COMMENT |
| LOW | .golangci.yml | 21 | # this line must have a comment explaining the rationale. | COMMENT |
| LOW | .golangci.yml | 61 | # it would have many more false positives than useful catches, though. | COMMENT |
| LOW | .golangci.yml | 81 | COMMENT | |
| LOW | nix.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .coderabbit.yaml | 261 | # ============================================================================= | COMMENT |
| LOW | cmd/crossplane/render/render.go | 41 | // pipeline step returns a SEVERITY_FATAL result. It is distinct from the | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 601 | // is used as part of the build process to construct dependencies on the | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 641 | // specified, it defaults to `examples/`. | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 801 | // | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 821 | COMMENT | |
| LOW | design/design-doc-developer-experience-tooling.md | 841 | RemoveFields []string `json:"removeFields,omitempty"` | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 861 | // | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 881 | // Optional. | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 961 | COMMENT | |
| LOW | design/design-doc-developer-experience-tooling.md | 981 | // Timeout for the test in seconds | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1001 | Functions Resources `json:"functions"` | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1081 | // E2ETestCase defines the specification of a single test case | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1101 | // +k8s:deepcopy-gen=true | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1121 | // defaults to 600 seconds (10 minutes). Consider increasing this value for | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1141 | // Manifests contains the Kubernetes resources that will be applied as part | COMMENT |
| LOW | design/design-doc-developer-experience-tooling.md | 1161 | // prerequisite resources that the configuration depends on. Common use | COMMENT |
| LOW | design/design-doc-packages-v2.md | 261 | } | COMMENT |
| LOW | design/design-doc-packages-v2.md | 281 | CustomResourceDefinition string `json:"crd,omitempty"` | COMMENT |
| LOW | design/design-doc-packages-v2.md | 381 | Package string `json:"package"` | COMMENT |
| LOW | design/design-doc-packages-v2.md | 501 | // package when the desired CRD is known, but the package name that contains | COMMENT |
| LOW | design/design-doc-packages-v2.md | 661 | // Package is the name of the package package that is being requested, e.g., | COMMENT |
| LOW | design/one-pager-package-format-v2.md | 121 | dependsOn: | COMMENT |
| LOW | design/one-pager-composition-environment.md | 101 | # These selectors are only executed if spec.environmentConfigRefs is null, | COMMENT |
| LOW | …gn/design-doc-composition-functions-extra-resources.md | 661 | COMMENT | |
| LOW | …gn/design-doc-composition-functions-extra-resources.md | 881 | // execute. | COMMENT |
| LOW | design/design-doc-terrajet.md | 241 | // Region is the region you'd like your VPC to be created in. | COMMENT |
| LOW | design/design-doc-composition.md | 541 | # | COMMENT |
| LOW | design/design-doc-composition.md | 581 | # Multiple compositions may potentially satisfy a particular kind of | COMMENT |
| LOW | design/design-doc-composition.md | 681 | # the composite resources they require. | COMMENT |
| LOW | design/design-doc-composition.md | 701 | # phase; if the requirement and the required resource reference each other | COMMENT |
| LOW | design/design-doc-composition.md | 841 | storageType: | COMMENT |
| LOW | design/design-doc-composition.md | 901 | # The Wordpress author may explicitly select which composition should be used | COMMENT |
| LOW | design/design-doc-composition-functions.md | 341 | // State of the composite resource (XR) and any composed resources. | COMMENT |
| LOW | design/design-doc-composition-functions.md | 361 | // desired connection details of the composite resource. | COMMENT |
| LOW | design/one-pager-managed-resource-api-design.md | 521 | ... | COMMENT |
| LOW | design/one-pager-managed-resource-api-design.md | 641 | #### Example | COMMENT |
| LOW | design/defunct/design-doc-complex-workloads.md | 161 | app: wordpress-demo | COMMENT |
| LOW | design/defunct/design-doc-template-stacks-experience.md | 341 | type: kustomize | COMMENT |
| LOW | …ssets/design-doc-provider-strategy/cloudcontrol/aws.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …ssets/design-doc-provider-strategy/cloudcontrol/aws.sh | 21 | echo "Completed create-resource for ECR::Repository" | COMMENT |
| LOW | apis/generate.go | 21 | // are. | COMMENT |
| LOW | apis/generate.go | 41 | COMMENT | |
| LOW | apis/generate.go | 61 | // Generate conversion code | COMMENT |
| LOW | apis/core/v2/resource_cluster.go | 21 | type ClusterManagedResourceSpec struct { | COMMENT |
| LOW | apis/core/v2/resource_cluster.go | 41 | // values would be honored if the feature flag is enabled. If both are | COMMENT |
| LOW | apis/core/v2/observation.go | 21 | // ObservedGeneration is the latest metadata.generation | COMMENT |
| LOW | apis/core/v2/resource_namespace.go | 21 | type ManagedResourceSpec struct { | COMMENT |
| LOW | apis/core/v2/resource.go | 41 | // CredentialsSecretKubeconfigKey is the key inside a connection secret for the raw kubeconfig yaml. | COMMENT |
| LOW | apis/core/v2/resource.go | 101 | COMMENT | |
| LOW | apis/core/v2/resource.go | 241 | // A CredentialsSource is a source from which provider credentials may be | COMMENT |
| LOW | apis/core/v2/resource.go | 261 | // credentials from an environment variable. | COMMENT |
| LOW | apis/core/v2/condition.go | 41 | // both synced and healthy. A composite resource is healthy when the composite | COMMENT |
| LOW | apis/protection/v1beta1/usage_types.go | 41 | } | COMMENT |
| LOW | apis/protection/v1beta1/usage_types.go | 81 | // MatchLabels ensures an object with matching labels is selected. | COMMENT |
| 156 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .coderabbit.yaml | 4 | # ============================================================================= | COMMENT |
| MEDIUM | .coderabbit.yaml | 6 | # ============================================================================= | COMMENT |
| MEDIUM | .coderabbit.yaml | 20 | # ============================================================================= | COMMENT |
| MEDIUM | .coderabbit.yaml | 22 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 261 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 264 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 270 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 277 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 283 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .coderabbit.yaml | 285 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .coderabbit.yaml | 221 | # Our comprehensive golangci-lint setup with "default: all" already covers | COMMENT |
| MEDIUM | .coderabbit.yaml | 224 | # Go linting - disabled (we run golangci-lint with comprehensive config) | COMMENT |
| MEDIUM | test/e2e/apiextensions_xrds_test.go | 95 | // This test would be more robust if it could verify that the WatchingComposite | COMMENT |
| LOW | …ests/pkg/configuration/digest/provider-dependency.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| LOW | …configuration/digest/provider-revision-dependency.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| LOW | …/pkg/configuration/dependency/provider-dependency.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| LOW | …iguration/dependency/provider-revision-dependency.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| LOW | …r/provider-revision-common-annotations-and-labels.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| LOW | …g/image-config/runtime-config/provider-dependency.yaml | 1 | # Note that we don't directly create this manifest, we just use it to check | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/e2e/functions/revision-id/crossplane.yaml | 3 | # This function is manually built and pushed to | COMMENT |
| MEDIUM | …anifests/pkg/image-config/runtime-config/function.yaml | 6 | # This function is directly installed (not as a dependency) and should have | COMMENT |
| MEDIUM | …/image-config/runtime-config/function-new-runtime.yaml | 6 | # This function is directly installed (not as a dependency) and should have | COMMENT |
| MEDIUM | …nifests/pkg/composition-function-upgrade/function.yaml | 1 | # This file is NOT applied by the test. It describes the Function that the v1 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ns/composition/required-schemas/setup/composition.yaml | 25 | # Check if we received the schema in this iteration. | COMMENT |
| LOW⚡ | …ns/composition/required-schemas/setup/composition.yaml | 28 | # Check if the schema has the expected structure. | COMMENT |
| LOW⚡ | …ns/composition/required-schemas/setup/composition.yaml | 38 | # Check if referenced schemas (like ObjectMeta) are flattened. | COMMENT |
| LOW | …/composition/required-resources/setup/composition.yaml | 32 | # Check if we received the resource in this iteration. | COMMENT |
| LOW | …/composition/required-resources/setup/composition.yaml | 35 | # Check if the resource has the expected data, and echo its current | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | internal/ssa/managed_fields.go | 89 | // Step 1: All fields are owned by various managers, potentially including | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 93 | // Step 2: Upgrade is called for the first time. We clear all field managers. | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 95 | // Step 3: The controller server-side applies its fully specified intent | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 101 | // Step 4: Upgrade is called for the second time. It deletes the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | internal/ssa/managed_fields.go | 89 | // Step 1: All fields are owned by various managers, potentially including | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 93 | // Step 2: Upgrade is called for the first time. We clear all field managers. | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 95 | // Step 3: The controller server-side applies its fully specified intent | COMMENT |
| LOW⚡ | internal/ssa/managed_fields.go | 101 | // Step 4: Upgrade is called for the second time. It deletes the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apis/hack/duplicate_api_type.sh | 3 | # Usage example: | COMMENT |
| LOW | hack/duplicate_proto_type.sh | 3 | # Usage example: | COMMENT |
| LOW | hack/duplicate_api_type.sh | 3 | # Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ADOPTERS.md | 102 | | [AI CoE at Vodafone Germany](https://www.vodafone.de/) | [@zouldapp](https://github.com/zouldapp) | Crossplane enables | CODE |