Secure, fast, efficient, battle-tested at Alibaba's scale. Hybrid architecture code review tool: deterministic pipelines + LLM Agent, precise line-level comments, built-in multi-language ruleset (NPE, thread-safety, XSS, SQL injection), OpenAI & Anthropic compatible.
This report summarizes scanner evidence for alibaba/open-code-review, a Go project with 49,169 GitHub stars. SynthScan examined 243,703 lines of code across 1019 source files, recording 747 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 3.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? 705 finding(s).
Are imports declared and package/API names verified? 17 finding(s).
Are wrappers, guards, and repeated structures necessary? 442 finding(s).
Which changes need focused human review? 747 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 747 distinct pattern matches across 18 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 | extensions/frontend/src/shared/configUtils.ts | 117 | export function buildCustomCreateSaveEntries(params: { | CODE |
| LOW | extensions/frontend/src/shared/configUtils.ts | 143 | export function buildCustomUpdateSaveEntries(params: { | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 101 | def test_handles_alternate_field_names(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 107 | def test_missing_line_omits_colon(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 113 | def test_category_included_in_badge(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 238 | def test_extra_args_are_split_and_forwarded(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 248 | def test_ocr_failure_returns_nonzero_and_skips_post(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 256 | def test_missing_env_var_returns_nonzero(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 264 | def test_missing_org_id_returns_nonzero(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 272 | def test_post_failure_defaults_to_non_blocking(self): | CODE |
| LOW⚡ | examples/codeup_ci/post_review_test.py | 282 | def test_post_failure_can_be_made_blocking(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 35 | def test_from_to_ref_are_passed_through(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 83 | def test_accepts_bare_list_shape(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 89 | def test_sorts_by_severity_high_first(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 124 | def test_max_items_truncates_and_notes_remainder(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 136 | def test_unknown_top_level_shape_treated_as_no_comments(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 148 | def test_builds_url_without_organization_id(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 167 | def test_builds_url_with_organization_id(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 180 | def test_returns_status_and_body(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 191 | def test_http_error_raises_codeup_api_error(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 203 | def test_url_error_raises_codeup_api_error(self): | CODE |
| LOW | examples/codeup_ci/post_review_test.py | 225 | def test_happy_path_posts_comment_and_returns_zero(self): | CODE |
| LOW | examples/gitflic_ci/post_review_test.py | 72 | def test_single_hunk_positions(self): | STRING |
| LOW | examples/gitflic_ci/post_review_test.py | 111 | def test_pure_addition_at_top(self): | STRING |
| LOW | examples/gitflic_ci/post_review_test.py | 188 | def test_fallback_for_unmapped_comment(self): | CODE |
| LOW | examples/gitflic_ci/post_review_test.py | 205 | def test_inline_error_falls_back(self): | CODE |
| LOW | examples/gitflic_ci/post_review_test.py | 226 | def test_new_file_anchors_to_new_path(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 99 | def test_severity_critical_unresolved(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 102 | def test_severity_high_unresolved(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 105 | def test_severity_medium_resolved(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 108 | def test_severity_low_resolved(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 111 | def test_severity_missing_resolved(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 116 | def test_severity_category_line(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 123 | def test_severity_line_omitted_when_unset(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 229 | def test_revision_default_current(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 237 | def test_url_from_change_url_modern(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 240 | def test_url_from_change_url_path_prefix(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 245 | def test_url_from_change_url_legacy(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 491 | def test_positional_input_wins_over_flag(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 500 | def test_timeout_must_be_positive(self): | CODE |
| LOW⚡ | examples/gerrit_ci/post_review_test.py | 510 | def test_timeout_float_still_parses(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 80 | def test_start_gt_end_degenerate(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 136 | def test_suggestion_without_existing(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 140 | def test_unicode_comment_roundtrip(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 152 | def test_very_long_message_truncated(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 159 | def test_multiple_files_grouped(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 176 | def test_empty_comments_summary_only(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 194 | def test_warnings_only_no_comments(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 328 | def test_single_post_batching(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 346 | def test_password_never_in_error_body(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 390 | def test_non_gerrit_response_body(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 404 | def test_dry_run_no_credentials(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 417 | def test_missing_required_env(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 451 | def test_fold_retry_also_fails(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 459 | def test_fold_truncation_and_message(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 471 | def test_change_url_derivation(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 557 | def test_xssi_response_parses(self): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 610 | def test_read_timeout_not_retried(self): | CODE |
| LOW | examples/gitlab_ci/post_review.py | 375 | def build_pre_review_summary_body(total, no_line, routed, warnings): | CODE |
| LOW | examples/gitlab_ci/post_review.py | 487 | def is_line_resolution_failure(error_body): | CODE |
| 356 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | action.yml | 721 | OCR_MERGE_BASE: ${{ env.MERGE_BASE }} | COMMENT |
| LOW | action.yml | 741 | OCR_FP_LANGUAGE: ${{ inputs.language }} | COMMENT |
| LOW | cmd/opencodereview/sarif.go | 301 | // | COMMENT |
| LOW | cmd/opencodereview/interrupt.go | 21 | } | COMMENT |
| LOW | cmd/opencodereview/retry_fake_llm_test.go | 21 | ) | COMMENT |
| LOW | cmd/opencodereview/retry_fake_llm_test.go | 61 | // "the whole review failed" use this rather than naming files, so they keep | COMMENT |
| LOW | cmd/opencodereview/shared.go | 201 | Model string | COMMENT |
| LOW | cmd/opencodereview/shared.go | 221 | // endpoint and app config, for the run manifest's runtime_config_sha256. It | COMMENT |
| LOW | cmd/opencodereview/shared.go | 361 | } | COMMENT |
| LOW | cmd/opencodereview/shared.go | 381 | case "json", "sarif", "html": | COMMENT |
| LOW | cmd/opencodereview/shared.go | 781 | // that skipped / failed the summary phase. | COMMENT |
| LOW | cmd/opencodereview/shared.go | 801 | COMMENT | |
| LOW | cmd/opencodereview/output.go | 661 | enc.SetIndent("", " ") | COMMENT |
| LOW | cmd/opencodereview/review_cmd.go | 381 | COMMENT | |
| LOW | cmd/opencodereview/manual_e2e_retry_test.go | 1 | // SPDX-License-Identifier: Apache-2.0 | COMMENT |
| LOW | cmd/opencodereview/smallfiles_test.go | 81 | COMMENT | |
| LOW | plugins/open-code-review/opencode/open-code-review.ts | 461 | }), | COMMENT |
| LOW | internal/llm/raw.go | 21 | // value "1" enables it (mirrors telemetry's OCR_ENABLE_TELEMETRY), so an unset | COMMENT |
| LOW | internal/llm/raw.go | 61 | COMMENT | |
| LOW | internal/llm/raw.go | 81 | // server-side request ID lives here, not in the body. | COMMENT |
| LOW | internal/llm/retry_boundary.go | 21 | var errRequestPanicked = errors.New("llm request panicked") | COMMENT |
| LOW | internal/llm/retry_boundary.go | 61 | } | COMMENT |
| LOW | internal/llm/retry_report.go | 161 | Err error | COMMENT |
| LOW | internal/llm/retry_report.go | 221 | type requestEntry struct { | COMMENT |
| LOW | internal/llm/retry_report.go | 241 | func (e *requestEntry) hasErrorAttempt() bool { | COMMENT |
| LOW | internal/llm/retry_report.go | 261 | type RetryCollector struct { | COMMENT |
| LOW | internal/llm/retry_report.go | 321 | // against the strongest fact it had. | COMMENT |
| LOW | internal/llm/retry_report.go | 361 | // report rather than to paper over a real inversion. | COMMENT |
| LOW | internal/llm/retry_report.go | 401 | } | COMMENT |
| LOW | internal/llm/retry_report.go | 421 | // 4. success with an error attempt -> recovered | COMMENT |
| LOW | internal/llm/retry_report.go | 461 | } | COMMENT |
| LOW | internal/llm/retry_meta_test.go | 101 | // "main_task1" with request_no 2 and task_type "main_task" with request_no 12 | COMMENT |
| LOW | internal/llm/retry_observer.go | 21 | // sees neither the backoff sleep (which happens around it) nor the response body | COMMENT |
| LOW | internal/llm/keycmd_windows.go | 21 | // rules (see the exec.Command doc comment), and its escaping mangles any command | COMMENT |
| LOW | internal/llm/keycmd_windows.go | 41 | c := exec.CommandContext(ctx, "cmd.exe") | COMMENT |
| LOW | internal/llm/sessionkey.go | 41 | // session's key at the granularity prompt caches actually work at. | COMMENT |
| LOW | internal/llm/protocol.go | 1 | // SPDX-License-Identifier: Apache-2.0 | COMMENT |
| LOW | internal/llm/protocol.go | 21 | // api.anthropic.com (or a compatible gateway). | COMMENT |
| LOW | internal/llm/client.go | 41 | // AssumeRole, credential_process) is lazy — deferred to the first signed | COMMENT |
| LOW | internal/llm/client.go | 101 | // ToolCallID is used by OpenAI-format APIs to identify which tool call this result responds to. | COMMENT |
| LOW | internal/llm/client.go | 121 | // provider-validated (Anthropic signature, OpenAI encrypted_content) and must | COMMENT |
| LOW | internal/llm/client.go | 421 | COMMENT | |
| LOW | internal/llm/client.go | 461 | } | COMMENT |
| LOW | internal/llm/client.go | 681 | for k, v := range expandSessionKeyInBody(c.cfg.ExtraBody, sessionKey) { | COMMENT |
| LOW | internal/llm/client.go | 1141 | // factory returns an LLMClient with no error channel, and the alternative — | COMMENT |
| LOW | internal/llm/client.go | 1221 | } | COMMENT |
| LOW | internal/llm/client.go | 1241 | cfg.SessionKey = NewSessionKey() | COMMENT |
| LOW | internal/llm/client.go | 1301 | bedrock: true, | COMMENT |
| LOW | internal/llm/embedded_loader.go | 21 | // init installs the embedded BPE loader as soon as this package is linked in. | COMMENT |
| LOW | internal/llm/resolver.go | 501 | } | COMMENT |
| LOW | internal/llm/keycmd_unix.go | 1 | //go:build !windows | COMMENT |
| LOW | internal/llm/keycmd_unix.go | 21 | // `read -r x </dev/tty` answers in 7ms as written here, and under Setpgid | COMMENT |
| LOW | internal/llm/providers.go | 1 | // SPDX-License-Identifier: Apache-2.0 | COMMENT |
| LOW | internal/llm/providers.go | 61 | }, | COMMENT |
| LOW | internal/llm/retry_meta.go | 21 | // business-level call — one main_task turn, one re-location, one memory | COMMENT |
| LOW | internal/llm/retry_meta.go | 121 | type requestMetaKey struct{} | COMMENT |
| LOW | internal/llm/keycmd.go | 21 | COMMENT | |
| LOW | internal/llm/keycmd.go | 101 | c := newKeyCmd(ctx, cmd) | COMMENT |
| LOW | internal/llm/keycmd.go | 141 | COMMENT | |
| LOW | internal/stdout/stdout.go | 41 | mu.Unlock() | COMMENT |
| 148 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …en-code-review/claude-code/commands/delegate-review.md | 9 | ### Step 1: Preview | COMMENT |
| LOW | …en-code-review/claude-code/commands/delegate-review.md | 23 | ### Step 2: Get Rules | COMMENT |
| LOW | …en-code-review/claude-code/commands/delegate-review.md | 31 | ### Step 3: Get Diffs and Review | COMMENT |
| LOW | …en-code-review/claude-code/commands/delegate-review.md | 59 | ### Step 4: Report and Fix | COMMENT |
| LOW | plugins/open-code-review/claude-code/commands/review.md | 9 | ### Step 1: Run Code Review | COMMENT |
| LOW | plugins/open-code-review/claude-code/commands/review.md | 24 | ### Step 2: Filter and Evaluate | COMMENT |
| LOW | plugins/open-code-review/claude-code/commands/review.md | 34 | ### Step 3: Fix | COMMENT |
| LOW | …open-code-review/kimi-code/commands/delegate-review.md | 9 | ### Step 1: Preview | COMMENT |
| LOW | …open-code-review/kimi-code/commands/delegate-review.md | 23 | ### Step 2: Get Rules | COMMENT |
| LOW | …open-code-review/kimi-code/commands/delegate-review.md | 31 | ### Step 3: Get Diffs and Review | COMMENT |
| LOW | …open-code-review/kimi-code/commands/delegate-review.md | 59 | ### Step 4: Report and Fix | COMMENT |
| LOW | plugins/open-code-review/kimi-code/commands/review.md | 9 | ### Step 1: Run Code Review | COMMENT |
| LOW | plugins/open-code-review/kimi-code/commands/review.md | 24 | ### Step 2: Filter and Evaluate | COMMENT |
| LOW | plugins/open-code-review/kimi-code/commands/review.md | 34 | ### Step 3: Fix | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 32 | ### Step 1: Preview — Determine What to Review | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 52 | ### Step 2: Get Rules for Files | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 60 | ### Step 3: Get Diffs | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 100 | ### Step 4: Review Each File | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 113 | ### Step 5: Format Output | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 126 | ### Step 6: Classify and Report | COMMENT |
| LOW | …-code-review/skills/open-code-review-delegate/SKILL.md | 138 | ### Step 7: Fix (Optional) | COMMENT |
| LOW | …gins/open-code-review/skills/open-code-review/SKILL.md | 34 | ### Step 1: Gather Business Context | COMMENT |
| LOW | …gins/open-code-review/skills/open-code-review/SKILL.md | 38 | ### Step 2: Run Code Review | COMMENT |
| LOW | …gins/open-code-review/skills/open-code-review/SKILL.md | 76 | ### Step 3: Report | COMMENT |
| LOW | …gins/open-code-review/skills/open-code-review/SKILL.md | 80 | ### Step 4: Fix | COMMENT |
| LOW | internal/agent/agent.go | 290 | // Step 1: Parse diffs | COMMENT |
| LOW | internal/agent/agent.go | 414 | // Step 2: Dispatch per-group subtasks concurrently | COMMENT |
| LOW⚡ | .claude/commands/tag.md | 11 | ### Step 1: Determine version | COMMENT |
| LOW⚡ | .claude/commands/tag.md | 17 | ### Step 2: Generate summary | COMMENT |
| LOW⚡ | .claude/commands/tag.md | 23 | ### Step 3: Create tag | COMMENT |
| LOW | examples/github_actions/README.md | 491 | #### Step 1: Create a GitHub App | COMMENT |
| LOW⚡ | examples/github_actions/README.md | 504 | #### Step 2: Generate a Private Key | COMMENT |
| LOW⚡ | examples/github_actions/README.md | 512 | #### Step 3: Install the App | COMMENT |
| LOW⚡ | examples/github_actions/README.md | 518 | #### Step 4: Configure Repository Secrets | COMMENT |
| LOW⚡ | examples/github_actions/README.md | 528 | #### Step 5: Pass the App token to the action | COMMENT |
| LOW | examples/gitlab_ci/README.md | 260 | #### Step 1: Create a Service Account | COMMENT |
| LOW | examples/gitlab_ci/README.md | 271 | #### Step 2: Invite the Service Account to Your Project | COMMENT |
| LOW | examples/gitlab_ci/README.md | 281 | #### Step 3: Create an Access Token | COMMENT |
| LOW | examples/gitlab_ci/README.md | 294 | #### Step 4: Update CI/CD Variables | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 27 | ### Step 1: Preview — Determine What to Review | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 47 | ### Step 2: Get Rules for Files | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 55 | ### Step 3: Get Diffs | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 95 | ### Step 4: Review Each File | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 108 | ### Step 5: Format Output | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 121 | ### Step 6: Classify and Report | COMMENT |
| LOW | skills/open-code-review-delegate/SKILL.md | 133 | ### Step 7: Fix (Optional) | COMMENT |
| LOW | skills/open-code-review/SKILL.md | 29 | ### Step 1: Gather Business Context | COMMENT |
| LOW | skills/open-code-review/SKILL.md | 33 | ### Step 2: Run Code Review | COMMENT |
| LOW | skills/open-code-review/SKILL.md | 71 | ### Step 3: Report | COMMENT |
| LOW | skills/open-code-review/SKILL.md | 75 | ### Step 4: Fix | COMMENT |
| LOW | pages/src/content/docs/en/integrations/delegate.md | 65 | ### Step 1: Preview — determine what to review | COMMENT |
| LOW | pages/src/content/docs/en/integrations/delegate.md | 86 | ### Step 2: Get rules for files | COMMENT |
| LOW | pages/src/content/docs/en/integrations/delegate.md | 96 | ### Step 3: Get diffs | COMMENT |
| LOW | pages/src/content/docs/en/integrations/delegate.md | 134 | ### Step 4: Review each file | COMMENT |
| LOW | pages/src/content/docs/en/integrations/delegate.md | 144 | ### Step 5: Report | COMMENT |
| LOW | pages/src/content/blog/en/introducing-ocr-blog.md | 68 | ### Step 1: Create Your Markdown File | COMMENT |
| LOW | pages/src/content/blog/en/introducing-ocr-blog.md | 72 | ### Step 2: Register the Post | COMMENT |
| LOW | pages/src/content/blog/en/introducing-ocr-blog.md | 116 | ### Step 3: Submit a PR | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | scripts/publish/publish.sh | 36 | # ── Configuration ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 41 | # ── Banner ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 48 | # ── Resolve version from git tag ───────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/publish.sh | 65 | # ── Pre-flight checks ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 93 | # ── Confirm ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 99 | # ── Build ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 107 | # ── Publish platform-specific packages ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/publish.sh | 115 | # ── Upload to git-based release repo (optional) ────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/publish.sh | 184 | # ── Patch package.json for publish ──────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/publish.sh | 240 | # ── Publish ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/publish.sh | 271 | # ── Restore package.json ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/publish.sh | 279 | # ── Done ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/_common.sh | 9 | # ── Colors ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/_common.sh | 17 | # ── Logging ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/_common.sh | 24 | # ── Path resolution ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/publish/_common.sh | 31 | # ── Version helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/_common.sh | 42 | # ── Confirmation prompt ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/publish/_common.sh | 56 | # ── Step execution with timing ─────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 185 | 5. You must review all code, text, and other content generated by AI/LLM yourself before proactively requesting a review | CODE |
| HIGH | AGENTS.md | 13 | 5. You must review all code, text, and other content generated by AI/LLM yourself before proactively requesting a review | CODE |
| HIGH | internal/config/template/scan_template.json | 6 | "content": "## Role\nYou are a code review assistant developed by Alibaba. Unlike diff-based review, in this tas | CODE |
| HIGH | pages/src/content/docs/en/contributing.md | 180 | 5. You must review all code, text, and other content generated by AI/LLM yourself before proactively requesting a review | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …libaba/opencodereview/idea/jcef/JcefConfigPanelHost.kt | 106 | if (app.isDispatchThread) cleanup() else app.invokeLater(cleanup, com.intellij.openapi.application.ModalityState | CODE |
| CRITICAL | …com/alibaba/opencodereview/idea/services/GitService.kt | 353 | request.putUserData(DiffUserDataKeys.SCROLL_TO_LINE, com.intellij.openapi.util.Pair.create(scrollToSide, scr | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/opencodereview/git_test.go | 19 | {"git", "-C", dir, "config", "user.email", "test@test.com"}, | CODE |
| LOW | internal/gitcmd/runner_test.go | 35 | run("config", "user.email", "test@test.com") | CODE |
| LOW | internal/tool/code_search_test.go | 117 | run("git", "config", "user.email", "test@test.com") | CODE |
| LOW | internal/tool/file_find_test.go | 104 | run("git", "config", "user.email", "test@test.com") | CODE |
| LOW | acp/internal/intent/llm/diagnostics_test.go | 80 | {"connect", func(tr *httptrace.ClientTrace) { tr.ConnectStart("tcp", "secret-host") }, errors.New("fake-token-secret") | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 99 | client, _ := NewClient(Endpoint{URL: "http://example.invalid", Token: "fake-token-secret", Model: "test-model", Proto | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 106 | return nil, &url.Error{Op: "Post", URL: "http://user:password@example.invalid?key=fake-token-secret", Err: test.err} | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 112 | for _, secret := range []string{"fake-token-secret", "password", "secret-host"} { | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 243 | _, _ = io.WriteString(w, `{"error":{"message":"No provider channel; fake-token-secret header-secret query-secret passw | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 246 | client, _ := NewClient(Endpoint{URL: srv.URL, Token: "fake-token-secret", Model: "test-model", Protocol: ProtocolAnthro | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 250 | u.User = url.UserPassword("fake-user", "password-secret") | CODE |
| LOW⚡ | acp/internal/intent/llm/diagnostics_test.go | 257 | for _, secret := range []string{"fake-token-secret", "header-secret", "query-secret", "password-secret", "fake-user", " | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/github-actions/check-translation-sync.js | 6 | // OpenCodeReview translation-sync guardrails. | COMMENT |
| MEDIUM | scripts/github-actions/check-plugin-contract.js | 6 | // OpenCodeReview plugin/distribution contract guardrails. | COMMENT |
| MEDIUM | .github/workflows/plugin-contract.yml | 3 | # Distribution-contract guardrails, kept out of ci.yml (which is build/test/lint) | COMMENT |
| MEDIUM | .github/workflows/translation-sync.yml | 3 | # Content-validation guardrails, kept out of ci.yml (which is build/test/lint): | COMMENT |
| MEDIUM | acp/README.md | 26 | │ ├── adapter/ # ACP methods, sessions and prompt orchestration | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/gitlab_ci/post_review.py | 1521 | except OSError: | CODE |
| HIGH | examples/gitlab_ci/post_review.py | 1616 | except FileNotFoundError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/config/template/scan_template.json | 45 | "content": "## Role\nYou are a senior reviewer producing a project-level summary of a full-repo scan.\n\nYou are | CODE |
| MEDIUM | scripts/github-actions/post-review-comments.js | 1276 | // keeps the public overlapsHistory API robust even when the value arrives from | COMMENT |
| MEDIUM | .github/workflows/action-contract.yml | 50 | # both present: the contract harness spawns /bin/bash directly. No | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/gitflic_ci/post_review.py | 124 | CODE | |
| LOW | examples/gitflic_ci/post_review.py | 196 | CODE | |
| LOW | examples/gitlab_ci/post_review.py | 542 | CODE | |
| LOW | examples/gitlab_ci/post_review.py | 729 | CODE | |
| LOW | examples/gitlab_ci/post_review.py | 1251 | CODE | |
| LOW | examples/gitlab_ci/post_review.py | 1065 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/gitflic_ci/post_review.py | 302 | except Exception as e: # noqa: BLE001 - any transport error falls back | CODE |
| LOW | examples/gerrit_ci/post_review.py | 316 | except Exception: # noqa: BLE001 - body is best-effort diagnostics only | CODE |
| MEDIUM | examples/gerrit_ci/post_review.py | 313 | def read_error_body(e): | CODE |
| LOW | examples/gerrit_ci/post_review_test.py | 587 | except Exception as e: # noqa: BLE001 - counted and asserted below | CODE |
| LOW | examples/gitlab_ci/post_review_test.py | 866 | except Exception as e: # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pages/src/components/QuickStartSection.tsx | 136 | && ocr config set llm.auth_token {{your-api-key}} \\ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/agent/agent.go | 290 | // Step 1: Parse diffs | COMMENT |
| LOW | internal/agent/agent.go | 414 | // Step 2: Dispatch per-group subtasks concurrently | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 62 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/codeup_ci/post_review.py | 44 | CODE | |
| LOW | examples/codeup_ci/post_review_test.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/publish/publish.sh | 12 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/gitlab_ci/post_review_test.py | 130 | CODE |