🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
This report summarizes scanner evidence for JuliusBrussee/caveman, a Go project with 110,916 GitHub stars. SynthScan examined 292,904 lines of code across 1161 source files, recording 1572 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 7.2 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 1126 finding(s).
Are imports declared and package/API names verified? 166 finding(s).
Are wrappers, guards, and repeated structures necessary? 951 finding(s).
Which changes need focused human review? 1572 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 1572 distinct pattern matches across 21 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 | …ns/caveman/skills/caveman-compress/scripts/validate.py | 121 | def extract_indented_code_blocks(text): | CODE |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 420 | def resolve_max_output_tokens() -> int: | CODE |
| LOW | tests/test_eval_fidelity.py | 105 | def test_case_set_mismatch_is_refused(self) -> None: | CODE |
| LOW | tests/test_eval_fidelity.py | 124 | def test_cases_are_well_formed(self) -> None: | CODE |
| LOW | tests/test_eval_fidelity.py | 145 | def test_examples_match_checks(self) -> None: | CODE |
| LOW | tests/test_eval_fidelity.py | 168 | def test_every_category_covered(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 139 | def test_usage_is_stored_alongside_text(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 152 | def test_error_result_is_a_failure(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 165 | def test_transient_failure_is_retried(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 176 | def test_hard_failure_writes_partial_and_exits(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 198 | def test_language_selects_control_and_snapshot(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 210 | def test_fidelity_set_runs_case_prompts(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 231 | def test_bad_eval_set_exits_before_any_call(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 244 | def test_reminder_run_ignores_eval_set_and_lang(self) -> None: | CODE |
| LOW | tests/test_eval_llm_run.py | 254 | def test_unknown_language_exits_before_any_call(self) -> None: | CODE |
| LOW | tests/test_compress_cli.py | 25 | def test_help_and_argument_errors_for_direct_and_module_entrypoints(self): | CODE |
| LOW | tests/test_compress_cli.py | 35 | def test_relative_code_path_is_skipped_without_writing_or_spawning(self): | CODE |
| LOW | tests/test_compress_cli.py | 46 | def test_missing_unicode_file_reports_error_without_import_or_encoding_failure(self): | CODE |
| LOW | tests/verify_repo.py | 121 | def verify_shipped_skills_are_documented() -> None: | CODE |
| LOW | tests/verify_repo.py | 162 | def verify_skills_root_holds_only_skills() -> None: | CODE |
| LOW | tests/verify_repo.py | 205 | def verify_skill_frontmatter_upload_compatibility() -> None: | CODE |
| LOW | tests/verify_repo.py | 302 | def verify_manifests_and_syntax() -> None: | CODE |
| LOW | tests/verify_repo.py | 557 | def verify_python_text_io_encoding() -> None: | CODE |
| LOW | tests/verify_repo.py | 904 | def verify_license_boundaries() -> None: | CODE |
| LOW | tests/verify_repo.py | 1076 | def verify_untrusted_git_invocations() -> None: | CODE |
| LOW⚡ | tests/test_detect.py | 68 | def test_known_names_case_insensitive(self): | STRING |
| LOW⚡ | tests/test_detect.py | 74 | def test_cmakelists_txt_not_compressible_despite_txt_extension(self): | STRING |
| LOW⚡ | tests/test_detect.py | 80 | def test_shebang_script_is_code(self): | STRING |
| LOW⚡ | tests/test_detect.py | 86 | def test_extensionless_prose_still_compressible(self): | STRING |
| LOW⚡ | tests/test_detect.py | 92 | def test_markdown_still_compressible(self): | STRING |
| LOW⚡ | tests/test_detect.py | 98 | def test_cursor_rule_mdc_is_natural_language(self): | STRING |
| LOW⚡ | tests/test_mode_tracker.py | 98 | def test_turn_caveman_mode_off_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 104 | def test_turn_caveman_off_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 109 | def test_turn_off_caveman_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 114 | def test_stop_caveman_multiline_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 120 | def test_normal_mode_command_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 125 | def test_back_to_normal_mode_deactivates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 130 | def test_vim_normal_mode_does_not_deactivate(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 137 | def test_enable_caveman_with_stop_elsewhere_activates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 144 | def test_question_does_not_activate(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 150 | def test_scoped_brevity_does_not_activate(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 154 | def test_unscoped_brevity_activates(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 158 | def test_activate_caveman_still_works(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 162 | def test_turn_on_caveman_mode_still_works(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 166 | def test_talk_like_caveman_still_works(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 170 | def test_bare_caveman_mode_still_works(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 291 | def test_commit_restores_prior_mode_on_next_prompt(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 300 | def test_commit_with_no_prior_mode_deactivates_after(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 307 | def test_chained_independent_modes_keep_original_prev(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 315 | def test_namespaced_commit_and_review_recognized(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 324 | def test_no_reinforcement_during_independent_turn(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 329 | def test_deactivation_clears_saved_prev(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 436 | def test_legacy_mirror_never_holds_literal_off(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 445 | def test_legacy_mirror_tracks_last_write(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 450 | def test_prev_restore_is_session_scoped(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 462 | def test_malformed_session_id_falls_back_to_legacy(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 470 | def test_session_id_cannot_escape_the_sessions_directory(self): | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 476 | def test_one_shot_skill_does_not_switch_an_off_session_on(self): | CODE |
| LOW | tests/test_mode_tracker.py | 60 | def test_acts_on_first_complete_payload_without_waiting_for_eof(self): | CODE |
| LOW | tests/test_mode_tracker.py | 193 | def test_status_reports_active_mode_without_mutating_state(self): | CODE |
| 608 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | proxy/doc.go | 1 | // Package proxy is the public, byte-safe Caveman reverse proxy: the `caveman` | COMMENT |
| LOW | proxy/cmd/caveman-proxy/main.go | 1 | // Command caveman-proxy is the standalone byte-safe proxy binary. `caveman start` | COMMENT |
| LOW | proxy/providers/toolzone.go | 1 | package providers | COMMENT |
| LOW | proxy/providers/adapter.go | 81 | // different, route-scoped env key. | COMMENT |
| LOW | proxy/providers/adapter.go | 201 | // seam — so adapter checks on this field are standalone-only guards. Empty | COMMENT |
| LOW | proxy/providers/adapter.go | 261 | ReasoningTokens int | COMMENT |
| LOW | proxy/providers/adapter.go | 281 | // chunk's null for a key never erases an earlier chunk's non-null value for | COMMENT |
| LOW | proxy/providers/adapter.go | 301 | ObservationCount int | COMMENT |
| LOW | proxy/providers/adapter.go | 341 | type Adapter interface { | COMMENT |
| LOW | proxy/providers/adapter.go | 361 | ParseUsage(ctx context.Context, responseHeaders http.Header, streamOrBody io.Reader) (UsageObservation, io.Reader, erro | COMMENT |
| LOW | proxy/providers/adapter.go | 381 | // metadata spelling with another provider. Bare GET /v1/models is both | COMMENT |
| LOW | proxy/providers/adapter.go | 401 | // RewritableBlock is one content block an adapter exposes for byte-safe rewriting, | COMMENT |
| LOW | proxy/providers/adapter.go | 441 | BaseURL string | COMMENT |
| LOW | proxy/providers/adapter.go | 1281 | } | COMMENT |
| LOW | proxy/providers/adapter.go | 1301 | // ParseUsageBytes a single synthesized {"usage":{...}} document, which carries | COMMENT |
| LOW | proxy/providers/gemini/content_compress.go | 81 | } | COMMENT |
| LOW | proxy/providers/gemini/explicit_cache.go | 21 | // ApplyProviderNativeTransforms is an unconditional byte-safe pass-through. | COMMENT |
| LOW | proxy/providers/openaicompat/openaicompat.go | 201 | // anthropic by construction). The Anthropic grammar is required there, not a | COMMENT |
| LOW | proxy/providers/openaicompat/openaicompat.go | 241 | return inspectOpenAICompatible(ctx, a.Base, body, headers) | COMMENT |
| LOW | proxy/providers/openaicompat/openaicompat.go | 381 | // different wire grammar than the mount's OpenAI-compatible identity. | COMMENT |
| LOW | proxy/providers/bedrock/cache_points.go | 121 | // for a model: an Anthropic Claude id — bare or behind one inference-profile | COMMENT |
| LOW | proxy/providers/bedrock/bedrock.go | 1 | package bedrock | COMMENT |
| LOW | proxy/providers/bedrock/bedrock.go | 21 | // POST /bedrock/model/{modelId}/invoke | COMMENT |
| LOW | proxy/providers/bedrock/usage.go | 21 | COMMENT | |
| LOW | proxy/providers/anthropic/breakpoint_plan.go | 21 | COMMENT | |
| LOW | proxy/providers/anthropic/breakpoint_plan.go | 41 | // changes no model-visible bytes; on any parse anomaly the body is left unchanged. | COMMENT |
| LOW | proxy/providers/anthropic/breakpoint_plan.go | 241 | // The documented semantics (platform.claude.com/docs/en/build-with-claude/prompt-caching): | COMMENT |
| LOW | proxy/providers/anthropic/cogs_bench_test.go | 1 | package anthropic | COMMENT |
| LOW | proxy/providers/vertex/vertex.go | 21 | // the gateway forwards it and holds no GCP secret. | COMMENT |
| LOW | proxy/providers/openai/cache_key.go | 21 | providers.Base | COMMENT |
| LOW | proxy/providers/openai/cache_key.go | 101 | // for that request; the mutation is not. | COMMENT |
| LOW | proxy/providers/openai/cache_key.go | 121 | // | COMMENT |
| LOW | proxy/providers/openai/count_tokens.go | 61 | // unprojectableResponsesFields name SERVER-HELD prompt surface: content the | COMMENT |
| LOW | proxy/providers/openai/count_tokens.go | 81 | // | COMMENT |
| LOW | proxy/providers/openai/reasoning_effort.go | 41 | // | COMMENT |
| LOW | proxy/providers/openai/reasoning_effort.go | 141 | } | COMMENT |
| LOW | proxy/providers/openai/session_cache_key.go | 21 | // sessionCacheKeyDomain separates this hash from any other sha256 of the same | COMMENT |
| LOW | proxy/providers/openai/output_brevity.go | 1 | package openai | COMMENT |
| LOW | proxy/providers/openai/stream_usage.go | 1 | package openai | COMMENT |
| LOW | proxy/providers/openai/stream_usage.go | 21 | // OpenAI-compatible client already knows to either consume or ignore an | COMMENT |
| LOW | proxy/providers/openai/stream_usage.go | 61 | } | COMMENT |
| LOW | proxy/internal/middleware/seal.go | 21 | // authority does not open. | COMMENT |
| LOW | proxy/internal/middleware/runtime.go | 41 | // report persistent:false and nothing is compressed that could not be | COMMENT |
| LOW | proxy/internal/middleware/runtime.go | 621 | } | COMMENT |
| LOW | proxy/internal/identity/identity.go | 1 | // Package identity resolves who is calling the framework middleware routes and | COMMENT |
| LOW | proxy/internal/standalone/standalone.go | 41 | // returns a static context built from caveman.yaml. There is still no | COMMENT |
| LOW | proxy/internal/standalone/standalone.go | 261 | return strings.TrimSpace(strings.TrimPrefix(value, "Bearer ")) | COMMENT |
| LOW | proxy/internal/standalone/standalone.go | 281 | // MCP tool (over the shared CCR store) instead of the proxy's server-side loop, | COMMENT |
| LOW | proxy/internal/standalone/standalone.go | 521 | // dial time so a malicious or misconfigured request can't make the local proxy | COMMENT |
| LOW | proxy/internal/standalone/bedrock_chain.go | 1 | package standalone | COMMENT |
| LOW | proxy/internal/config/config.go | 41 | // Listen is the host:port standalone mode binds to. | COMMENT |
| LOW | proxy/internal/config/config.go | 61 | // "off" disables it; unknown values fail closed to "off". There is | COMMENT |
| LOW | proxy/internal/config/config.go | 81 | // record mode stays byte-safe pass-through and savings_usd stays 0. | COMMENT |
| LOW | proxy/internal/config/config.go | 101 | // Code works unchanged. All bundles are additive; a corrupt one fails Load. | COMMENT |
| LOW | proxy/internal/config/config.go | 161 | // wire shape: its usage block reports input_tokens exclusive of cache | COMMENT |
| LOW | proxy/internal/config/config.go | 581 | return credential | COMMENT |
| LOW | proxy/internal/config/middleware.go | 41 | QuotaRows int64 `yaml:"quota_rows"` // per principal | COMMENT |
| LOW | proxy/internal/nativeruntime/runtime.go | 1201 | COMMENT | |
| LOW | proxy/internal/nativeruntime/runtime.go | 1221 | // webhook-delivery-gaps served JSON and CSV pages over the threshold, were masked | COMMENT |
| 298 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | evals/snapshots/results.json | 24 | "# Database Connection Pooling\n\n## The problem\n\nOpening a database connection is expensive. One connection usu | CODE |
| MEDIUM⚡ | evals/snapshots/results.json | 32 | "The main question is how many consumers should get each message.\n\n## Queue (point-to-point)\n**Each message is | CODE |
| MEDIUM | extension/popup.js | 22 | // ── pixel-flame logo (the CaveMark, 8×8) — white on onyx, no colour ───────── | COMMENT |
| MEDIUM | extension/popup.js | 44 | // ── settings wiring ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | proxy/providers/gemini/content_compress_test.go | 56 | // ── live-zone cost ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | proxy/providers/openai/content_compress_test.go | 185 | // ── live-zone cost ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_caveman_stats.js | 685 | // ── statusline: per-session badge ────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_caveman_stats.js | 827 | // ── No counterfactual from transcript usage ──────────────────────────── | COMMENT |
| MEDIUM | tests/test_caveman_stats.js | 896 | // ── Mid-session mode-change attribution (#601) ───────────────────────────── | COMMENT |
| MEDIUM | tests/test_caveman_stats.js | 896 | // ── Mid-session mode-change attribution (#601) ───────────────────────────── | COMMENT |
| MEDIUM | tests/test_caveman_stats.js | 1037 | // ── No net or overhead claims without a measured comparison ──────────── | COMMENT |
| MEDIUM | tests/test_mcp_shrink.js | 344 | // ── Packaging (#597) ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_mcp_shrink.js | 344 | // ── Packaging (#597) ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_mcp_shrink.js | 383 | // ── Teardown (shutdown.js) ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_hook_language_rule.js | 97 | // ── The two delivery paths ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_hook_language_rule.js | 155 | // ── The same example must not come back anywhere it is injected from ──────── | COMMENT |
| MEDIUM | tests/test_repo_local_config.js | 161 | // ── #634: optional startDir param (backward compatible) ──────────────────── | COMMENT |
| MEDIUM | tests/test_repo_local_config.js | 161 | // ── #634: optional startDir param (backward compatible) ──────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_mode_tracker.py | 96 | # ── #598: deactivation word orders ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_mode_tracker.py | 135 | # ── #598: activation guards ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_mode_tracker.py | 174 | # ── slash commands ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_mode_tracker.py | 289 | # ── #599: one-shot independent modes ──────────────────────────────── | COMMENT |
| MEDIUM | tests/test_mode_tracker.py | 58 | # ── hook budget: act on the first complete payload, not on EOF ────── | COMMENT |
| MEDIUM | tests/test_mode_tracker.py | 191 | # ── #856: read-only mode status ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_cavecrew_model_overrides.js | 30 | // ── patchFrontmatterModel ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_cavecrew_model_overrides.js | 155 | // ── resolvePluginRoot ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_cavecrew_model_overrides.js | 165 | // ── applyOverrides ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_cavecrew_model_overrides.js | 283 | // ── Summary ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_cavecrew_model_overrides.js | 286 | // ── source checkout guard ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | shared/platform/ssrf/ssrf_test.go | 35 | // ── Always-blocked IP literals ────────────────────────────────────────── | COMMENT |
| MEDIUM | shared/platform/ssrf/ssrf_test.go | 152 | // ── RFC1918 private — blocked in managed mode ──────────────────────────── | COMMENT |
| MEDIUM | shared/platform/ssrf/ssrf_test.go | 197 | // ── Scheme/credential/port checks ──────────────────────────────────────── | COMMENT |
| MEDIUM | shared/platform/ssrf/ssrf_test.go | 230 | // ── Localhost hostname ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | shared/platform/ssrf/ssrf_test.go | 245 | // ── Public addresses allowed ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/cli/src/index.ts | 10887 | // ── caveman sync ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 2394 | // ── caveman setup ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 2809 | // ── caveman update ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 3860 | // ── Wrap entitlement: an ACCOUNT fact, never a compression gate ────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 4281 | // ── entitlement handshake (called at login success) ───────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 4474 | // ── wrap-start + session-end lines (the §8 golden transcripts) ─────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 11684 | // ── caveman mcp install ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 14662 | // ── command-output auto-hook (the RTK-parity loadout layer) ────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 15726 | // ── opt-in auto-recall hook (cavemem) ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 15876 | // ── soft tier: instruction-note ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 16020 | // ── wrap directives (AUTOPILOT_SPEC §8.4/§7.3, slice D) ───────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 16072 | // ── hard tier: opencode plugin ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/index.ts | 16157 | // ── hard tier: Hermes plugin ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/sdk/python/tests/test_runtime_policy.py | 163 | # ─── signature cases ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/sdk/python/tests/test_runtime_policy.py | 430 | # ─── kill paths ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/sdk/python/tests/test_runtime_policy.py | 460 | # ─── refresh robustness ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 132 | # ─── fetch: the wire ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 382 | # ─── decision cases ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 580 | # ─── decide() is total ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 635 | # ─── fail-closed policy shapes ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 843 | # ─── guard cases (the shared fail-closed truth table) ─────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_runtime_policy.py | 923 | # ─── decision span ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_parity.py | 74 | # ─── Per-operation handlers (return the canonical, snake-keyed result) ────────── | COMMENT |
| MEDIUM | packages/sdk/python/tests/test_parity.py | 371 | # ─── Drive every fixture ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/caveman_cloud/core.py | 2280 | # ── lifecycle ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/sdk/python/caveman_cloud/core.py | 2311 | # ── refresh ────────────────────────────────────────────────────────────── | COMMENT |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | evals/measure.py | 42 | except Exception: | CODE |
| HIGH | evals/plot.py | 29 | except Exception: | CODE |
| HIGH | evals/score_fidelity.py | 32 | except Exception: | CODE |
| HIGH | evals/llm_run.py | 74 | except Exception: | CODE |
| HIGH | .blocks/release-smoke.py | 119 | except (OSError, ValueError): | CODE |
| HIGH | plugins/caveman/skills/caveman-compress/scripts/cli.py | 20 | except Exception: | CODE |
| HIGH | …ns/caveman/skills/caveman-compress/scripts/compress.py | 39 | except Exception: | CODE |
| HIGH | …ns/caveman/skills/caveman-compress/scripts/compress.py | 148 | except OSError: | CODE |
| HIGH | …ns/caveman/skills/caveman-compress/scripts/compress.py | 737 | except AnthropicSdkUnavailable: | CODE |
| HIGH | …ns/caveman/skills/caveman-compress/scripts/compress.py | 1002 | except OSError: | CODE |
| HIGH | …ns/caveman/skills/caveman-compress/scripts/compress.py | 297 | except OSError: | CODE |
| HIGH | tests/verify_repo.py | 25 | except Exception: | CODE |
| HIGH | tests/test_mode_tracker.py | 91 | except Exception: | CODE |
| HIGH | benchmarks/run.py | 21 | except Exception: | CODE |
| HIGH | …ckages/middleware/python/caveman_middleware/_httpx2.py | 42 | except http.RequestNotRead: | CODE |
| HIGH | packages/middleware/python/caveman_middleware/google.py | 381 | except (httpx.RequestNotRead, UnicodeError): | CODE |
| HIGH | packages/middleware/python/caveman_middleware/google.py | 418 | except (TypeError, ValueError): | CODE |
| HIGH | packages/middleware/python/caveman_middleware/google.py | 411 | except (TypeError, ValueError): | CODE |
| HIGH | packages/middleware/python/caveman_middleware/_usage.py | 67 | except (ValueError, TypeError): | CODE |
| HIGH | packages/sdk/python/tests/test_middleware_transport.py | 108 | except OSError: | CODE |
| HIGH | packages/sdk/python/tests/test_middleware_transport.py | 348 | except TimeoutError: | CODE |
| HIGH | packages/sdk/python/tests/test_middleware_transport.py | 268 | except OSError: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/core.py | 1178 | except BaseException: # noqa: BLE001 — telemetry must never replace a tool result/error. | CODE |
| HIGH | packages/sdk/python/caveman_cloud/core.py | 2174 | except Exception: # noqa: BLE001 — observability must never break a decision. | CODE |
| HIGH | packages/sdk/python/caveman_cloud/core.py | 2455 | except Exception: # noqa: BLE001 — observability never breaks a decision. | CODE |
| HIGH | …kages/sdk/python/caveman_cloud/middleware/transport.py | 42 | except ValueError: | CODE |
| HIGH | …kages/sdk/python/caveman_cloud/middleware/transport.py | 66 | except OSError: | CODE |
| HIGH | …kages/sdk/python/caveman_cloud/middleware/transport.py | 118 | except (OSError, ValueError): | CODE |
| HIGH | …kages/sdk/python/caveman_cloud/middleware/transport.py | 216 | except OSError: | CODE |
| HIGH | …ckages/sdk/python/caveman_cloud/middleware/protocol.py | 252 | except UnicodeEncodeError: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 163 | except Exception: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 557 | except Exception: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 769 | except Exception: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 431 | except Exception: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 709 | except Exception: | CODE |
| HIGH | packages/sdk/python/caveman_cloud/middleware/runtime.py | 714 | except Exception: | CODE |
| HIGH | …s/sdk/python/caveman_cloud/middleware/async_runtime.py | 142 | except MiddlewareError: | CODE |
| HIGH | skills/caveman-compress/scripts/cli.py | 20 | except Exception: | CODE |
| HIGH | skills/caveman-compress/scripts/compress.py | 39 | except Exception: | CODE |
| HIGH | skills/caveman-compress/scripts/compress.py | 148 | except OSError: | CODE |
| HIGH | skills/caveman-compress/scripts/compress.py | 737 | except AnthropicSdkUnavailable: | CODE |
| HIGH | skills/caveman-compress/scripts/compress.py | 1002 | except OSError: | CODE |
| HIGH | skills/caveman-compress/scripts/compress.py | 297 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | packages/cli/src/index.ts | 8362 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 8366 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 10871 | print({ logged_out: true, remote_session_revoked: true, external_token_cleared: false, external_token_source: "CAVE_T | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 10880 | print({ logged_out: true }); | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16212 | return False | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16223 | return False | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16229 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16232 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16234 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16236 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16245 | return None | CODE |
| HIGH⚡ | packages/cli/src/index.ts | 16248 | return None | CODE |
| HIGH | packages/cli/src/index.ts | 764 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 786 | print({ telemetry: "on", anonymous_id: anonymousId, note: "env override active (DO_NOT_TRACK/CAVEMAN_TELEMETRY) — no | CODE |
| HIGH | packages/cli/src/index.ts | 789 | print({ telemetry: "on", anonymous_id: anonymousId }); | CODE |
| HIGH | packages/cli/src/index.ts | 813 | print({ telemetry: "off", anonymous_id: "none", discarded_anonymous_id: prior.anonymousId, delete_sent_data: TELEMET | CODE |
| HIGH | packages/cli/src/index.ts | 816 | print({ telemetry: "off", anonymous_id: "none" }); | CODE |
| HIGH | packages/cli/src/index.ts | 2006 | print({ skills: AGENT_SKILL_METADATA, suites: AGENT_SKILL_SUITES }); | CODE |
| HIGH | packages/cli/src/index.ts | 2713 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 3363 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 8342 | return False | CODE |
| HIGH | packages/cli/src/index.ts | 8345 | return False | CODE |
| HIGH | packages/cli/src/index.ts | 9695 | print({ ...result, repair: result.components.shared_runtime ? "caveman start" : "caveman setup --install", trust: "n | CODE |
| HIGH | packages/cli/src/index.ts | 9717 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 10796 | print({ authenticated: true, baseURL, organization_id: organizationId ?? null, project_id: credentials.project_i | CODE |
| HIGH | packages/cli/src/index.ts | 10808 | print({ authenticated: true, baseURL, gateway_url: gateway || null, organization_id: organizationId ?? null, token | CODE |
| HIGH | packages/cli/src/index.ts | 15277 | print(receipt); | CODE |
| HIGH | packages/cli/src/index.ts | 15341 | print(explanation); | CODE |
| HIGH | packages/cli/src/index.ts | 18237 | print({ linked: "codex", source: "local_rate_limits", token_store: "none", refresh }); | CODE |
| HIGH | packages/cli/src/index.ts | 18265 | print({ linked: "claude", token_store: tokenStore, basis: "linked_api", refresh }); | CODE |
| HIGH | packages/cli/src/index.ts | 18897 | print({ ...view, native_integrations: integrations }); | CODE |
| HIGH | packages/cli/src/index.ts | 18920 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 18946 | print(body); | CODE |
| HIGH | packages/cli/src/index.ts | 18978 | print(await response.json()); | CODE |
| HIGH | packages/cli/src/index.ts | 19025 | print(body); | CODE |
| HIGH | packages/cli/src/index.ts | 19330 | print({ | CODE |
| HIGH | packages/cli/src/index.ts | 19369 | print({ exported: out, receipts: Array.isArray(bundle.receipts) ? bundle.receipts.length : 0 }); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | evals/measure.py | 42 | except Exception: | CODE |
| LOW | evals/plot.py | 29 | except Exception: | CODE |
| LOW | evals/score_fidelity.py | 32 | except Exception: | CODE |
| LOW | evals/llm_run.py | 74 | except Exception: | CODE |
| LOW | evals/llm_run.py | 170 | except Exception: | CODE |
| MEDIUM | evals/llm_run.py | 163 | def claude_version() -> str: | CODE |
| LOW | .blocks/release-smoke.py | 151 | except Exception as error: | CODE |
| LOW | plugins/caveman/skills/caveman-compress/scripts/cli.py | 20 | except Exception: | CODE |
| LOW | plugins/caveman/skills/caveman-compress/scripts/cli.py | 80 | except Exception as e: | CODE |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 39 | except Exception: | CODE |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 294 | except Exception: | CODE |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 358 | except Exception: | CODE |
| LOW | tests/verify_repo.py | 25 | except Exception: | CODE |
| LOW⚡ | tests/test_mode_tracker.py | 91 | except Exception: | CODE |
| LOW | tests/middleware-e2e/drive_py.py | 95 | except Exception: # report the failure as the JSON line the harness reads | CODE |
| LOW | benchmarks/run.py | 21 | except Exception: | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/strands.py | 60 | except Exception as error: # Decision 4: the native model still receives the caller's messages | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/strands.py | 57 | def _prepare(self, messages, *args, **kwargs): | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 479 | except Exception as error: # Decision 4: the provider still receives the caller's messages | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 485 | except Exception as error: | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 540 | except Exception: | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 813 | except Exception as error: # Decision 4: the synthesizer keeps the original nodes | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 827 | except Exception as error: | CODE |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 850 | except Exception: | CODE |
| MEDIUM | …es/middleware/python/caveman_middleware/llama_index.py | 476 | def _prepare(self, messages, tools, kwargs): | CODE |
| MEDIUM | …es/middleware/python/caveman_middleware/llama_index.py | 482 | def _aprepare(self, messages, tools, kwargs): | CODE |
| LOW | packages/middleware/python/caveman_middleware/crewai.py | 201 | except Exception as error: # Decision 4: the delegate still receives the executor's messages | CODE |
| MEDIUM | packages/middleware/python/caveman_middleware/crewai.py | 198 | def _guarded_options(self, messages, *args): | CODE |
| LOW | packages/middleware/python/caveman_middleware/asgi.py | 123 | except Exception as error: # Decision 4: the application still handles the request | CODE |
| LOW⚡ | packages/middleware/python/caveman_middleware/agno.py | 268 | except Exception as error: # Decision 4: invalid_scope was already warned; other failures pass through | CODE |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 370 | except Exception as error: | CODE |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 382 | except Exception as error: | CODE |
| MEDIUM | packages/middleware/python/caveman_middleware/agno.py | 373 | def _aproject(self, name, messages, args, kwargs, runtime): | CODE |
| LOW | packages/middleware/python/caveman_middleware/google.py | 84 | except Exception as error: # Decision 4 | CODE |
| LOW | packages/middleware/python/caveman_middleware/google.py | 507 | except Exception as error: # Decision 4 | CODE |
| LOW | packages/middleware/python/caveman_middleware/google.py | 546 | except Exception as error: # Decision 4 | CODE |
| MEDIUM | packages/middleware/python/caveman_middleware/google.py | 439 | def __iter__(self): | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/autogen.py | 229 | except Exception as error: # Decision 4: the model client still receives the caller's messages | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/autogen.py | 226 | def _prepare(self, messages, *args): | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 192 | except Exception as error: # Decision 4 | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 238 | except Exception as error: # Decision 4 | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 265 | except Exception as error: # LiteLLM would swallow it silently; report it instead | CODE |
| LOW⚡ | …ckages/middleware/python/caveman_middleware/litellm.py | 324 | except Exception as error: # accounting never replaces the provider's result | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 379 | except Exception as error: # Decision 4 | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/litellm.py | 313 | def _finish(self, data, response, event): | CODE |
| LOW | packages/middleware/python/caveman_middleware/openai.py | 168 | except Exception as error: # Decision 4 | CODE |
| LOW | packages/middleware/python/caveman_middleware/openai.py | 195 | except Exception as error: # accounting never replaces the provider's result | CODE |
| MEDIUM | packages/middleware/python/caveman_middleware/openai.py | 187 | def finish(result, attempt): | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 299 | except Exception: | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 352 | except Exception as error: # Decision 4: never break the native call | CODE |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 361 | except Exception as error: | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/_native.py | 296 | def registered(self): | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/_native.py | 347 | def prepare(self, body): | CODE |
| MEDIUM | …ckages/middleware/python/caveman_middleware/_native.py | 356 | def prepare_async(self, body): | CODE |
| LOW | packages/middleware/python/caveman_middleware/mcp.py | 102 | except Exception as error: # Decision 4: the host keeps the original result | CODE |
| LOW | …ages/middleware/python/caveman_middleware/anthropic.py | 67 | except Exception: | CODE |
| LOW | …ages/middleware/python/caveman_middleware/anthropic.py | 90 | except Exception as error: # Decision 4 | CODE |
| LOW | …ages/middleware/python/caveman_middleware/anthropic.py | 97 | except Exception as error: | CODE |
| MEDIUM | …ages/middleware/python/caveman_middleware/anthropic.py | 85 | def _passive(self, request): | CODE |
| MEDIUM | …ages/middleware/python/caveman_middleware/anthropic.py | 93 | def _observe(self, result, attempt): | CODE |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | evals/measure.py | 25 | CODE | |
| LOW | evals/plot.py | 12 | CODE | |
| LOW | evals/snapshot_contract.py | 3 | CODE | |
| LOW | evals/reminder_run.py | 32 | CODE | |
| LOW | evals/score_fidelity.py | 20 | CODE | |
| LOW | evals/llm_run.py | 55 | CODE | |
| LOW | tests/test_eval_fidelity.py | 4 | CODE | |
| LOW | tests/test_eval_llm_run.py | 3 | CODE | |
| LOW | tests/verify_repo.py | 4 | CODE | |
| LOW | tests/verify_repo.py | 548 | CODE | |
| LOW | tests/verify_repo.py | 550 | CODE | |
| LOW | tests/test_eval_snapshot_contract.py | 1 | CODE | |
| LOW | tests/test_eval_measure.py | 4 | CODE | |
| LOW | shared/provider-catalog/validate_catalog.py | 2 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/strands.py | 2 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 2 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 12 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/_httpx2.py | 8 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/crewai.py | 6 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/asgi.py | 7 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 2 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 12 | CODE | |
| LOW | …kages/middleware/python/caveman_middleware/__init__.py | 3 | CODE | |
| LOW | …kages/middleware/python/caveman_middleware/__init__.py | 3 | CODE | |
| LOW | …kages/middleware/python/caveman_middleware/__init__.py | 3 | CODE | |
| LOW | …kages/middleware/python/caveman_middleware/__init__.py | 3 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/autogen.py | 7 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/autogen.py | 24 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 7 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/openai.py | 6 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 2 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/mcp.py | 11 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/mcp.py | 14 | CODE | |
| LOW | …ages/middleware/python/caveman_middleware/anthropic.py | 6 | CODE | |
| LOW | …ages/middleware/python/caveman_middleware/langchain.py | 2 | CODE | |
| LOW | …ages/middleware/python/caveman_middleware/langchain.py | 9 | CODE | |
| LOW | …ages/middleware/python/caveman_middleware/langchain.py | 18 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/pydantic_ai.py | 2 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/pydantic_ai.py | 11 | CODE | |
| LOW | packages/middleware/python/tests/test_fail_open.py | 7 | CODE | |
| LOW | packages/sdk/python/tests/test_trace_continuity.py | 3 | CODE | |
| LOW | packages/sdk/python/tests/test_context_pack.py | 1 | CODE | |
| LOW | packages/sdk/python/tests/test_exporter.py | 1 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_reports.py | 5 | CODE | |
| LOW | packages/sdk/python/tests/test_sdk.py | 1 | CODE | |
| LOW | packages/sdk/python/tests/test_shared_context.py | 3 | CODE | |
| LOW | packages/sdk/python/tests/test_runtime_policy.py | 16 | CODE | |
| LOW | packages/sdk/python/tests/test_runtime_policy.py | 23 | CODE | |
| LOW | packages/sdk/python/tests/test_parity.py | 12 | CODE | |
| LOW | packages/sdk/python/tests/test_tool_events.py | 3 | CODE | |
| LOW | packages/sdk/python/tests/test_task_profile.py | 1 | CODE | |
| LOW | packages/sdk/python/tests/test_assembly.py | 1 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_transport.py | 2 | CODE | |
| LOW | packages/sdk/python/tests/test_structural.py | 6 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 1 | CODE | |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | evals/snapshot_contract.py | 93 | CODE | |
| LOW | evals/llm_run.py | 174 | CODE | |
| LOW | .blocks/release-smoke.py | 33 | CODE | |
| LOW | …ns/caveman/skills/caveman-compress/scripts/validate.py | 121 | CODE | |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 153 | CODE | |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 801 | CODE | |
| LOW | …gins/caveman/skills/caveman-compress/scripts/detect.py | 61 | CODE | |
| LOW | tests/verify_repo.py | 87 | CODE | |
| LOW | tests/verify_repo.py | 557 | CODE | |
| LOW | tests/test_compress_concurrency.py | 64 | CODE | |
| LOW | tests/test_compress_concurrency.py | 111 | CODE | |
| LOW | tests/test_compress_concurrency.py | 131 | CODE | |
| LOW | tests/test_compress_concurrency.py | 147 | CODE | |
| LOW | tests/test_compress_concurrency.py | 162 | CODE | |
| LOW | tests/test_compress_concurrency.py | 188 | CODE | |
| LOW | tests/test_compress_concurrency.py | 200 | CODE | |
| LOW | tests/test_compress_concurrency.py | 212 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/strands.py | 65 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 242 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 579 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/llama_index.py | 614 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 442 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/agno.py | 476 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/google.py | 282 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/google.py | 356 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/google.py | 398 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/autogen.py | 330 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/litellm.py | 268 | CODE | |
| LOW | packages/middleware/python/caveman_middleware/_usage.py | 46 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 39 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 107 | CODE | |
| LOW | …ckages/middleware/python/caveman_middleware/_native.py | 51 | CODE | |
| LOW | …es/middleware/python/caveman_middleware/pydantic_ai.py | 73 | CODE | |
| LOW | packages/middleware/python/tests/test_contracts.py | 162 | CODE | |
| LOW | packages/middleware/python/tests/test_openai_native.py | 106 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_preflight.py | 62 | CODE | |
| LOW | packages/sdk/python/tests/test_exporter.py | 20 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 147 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 161 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 178 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 214 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 239 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 261 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_v1_1.py | 285 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_transport.py | 245 | CODE | |
| LOW | packages/sdk/python/tests/test_middleware_transport.py | 254 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/core.py | 425 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/core.py | 1778 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/core.py | 2340 | CODE | |
| LOW | …kages/sdk/python/caveman_cloud/middleware/transport.py | 168 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/middleware/runtime.py | 435 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/middleware/runtime.py | 592 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/middleware/runtime.py | 678 | CODE | |
| LOW | skills/caveman-compress/scripts/validate.py | 121 | CODE | |
| LOW | skills/caveman-compress/scripts/compress.py | 153 | CODE | |
| LOW | skills/caveman-compress/scripts/compress.py | 801 | CODE | |
| LOW | skills/caveman-compress/scripts/detect.py | 61 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | engine/compressors/testreport_test.go | 26 | at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) | CODE |
| CRITICAL⚡ | engine/compressors/testreport_test.go | 27 | at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) | CODE |
| CRITICAL⚡ | engine/compressors/testreport_test.go | 28 | at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | packages/cli/src/index.ts | 4086 | // - valid entitlement (now < expires_at): compression as requested, "entitled". | COMMENT |
| HIGH⚡ | packages/cli/src/index.ts | 4087 | // - lapsed ≤7 days: compression as requested, "grace" (caller kicks a refresh). | COMMENT |
| HIGH⚡ | packages/cli/src/index.ts | 4088 | // - no/expired/unreadable entitlement: compression as requested, "unentitled". | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/middleware-e2e/drive_py.py | 95 | except Exception: # report the failure as the JSON line the harness reads | CODE |
| MEDIUM | benchmarks/render_charts.py | 57 | # The current harness has three arms. Plot the skill's contribution | COMMENT |
| MEDIUM | benchmarks/run.py | 61 | # the eval harness uses (evals/llm_run.py TERSE_PREFIX) so the two agree. | COMMENT |
| MEDIUM | packages/cli/src/agent-skills.generated.ts | 20 | "megacave": "---\nname: megacave\ndescription: >\n Caveman in Classical Chinese: 文言文 register, far fewer characters, | CODE |
| MEDIUM | packages/cli/src/index.ts | 14718 | // CLI, robust to PATH: a resolved `caveman`/`cave`, else this very script's node. | COMMENT |
| MEDIUM | .github/workflows/engine-ci.yml | 236 | # and is excluded until its harness is ported, not because coverage is | COMMENT |
| MEDIUM | engine/compressors/json.go | 55 | anomalyZ float64 // robust |z| (MAD-based) at/above which an item is an anomaly | CODE |
| MEDIUM | engine/compressors/json.go | 175 | // Numeric anomalies (robust MAD-z per numeric leaf path + element length). | COMMENT |
| MEDIUM | engine/compressors/json.go | 330 | // computes a robust MAD-based z over the elements that have that path and flags | COMMENT |
| MEDIUM | engine/compressors/json.go | 410 | // medianAndScale returns the median and a robust scale (MAD) of xs, falling back | COMMENT |
| MEDIUM | engine/compressors/json.go | 597 | // and accepts it when the mean shift across k exceeds zThresh robust scales. | COMMENT |
| MEDIUM | src/hooks/caveman-mode-tracker.js | 434 | // Same failure, output side (#397): the harness can close its end of our | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | evals/snapshots/results.json | 32 | "The main question is how many consumers should get each message.\n\n## Queue (point-to-point)\n**Each message is | CODE |
| MEDIUM | proxy/providers/gemini/explicit_cache.go | 12 | // runtime scaffold. It is not a current policy flag or optimization label. | COMMENT |
| MEDIUM | proxy/providers/anthropic/cogs_bench_test.go | 7 | // body, which prices a million agentic requests at roughly EUR 0.13 of Scaleway | COMMENT |
| MEDIUM | proxy/providers/anthropic/cogs_bench_test.go | 43 | // message history — the shape an agentic caller actually sends. | COMMENT |
| MEDIUM | proxy/internal/gateway/proxy.go | 1743 | // The historical gemini-explicit-cache scaffold is permanently absent: it never | COMMENT |
| MEDIUM | shared/platform/optimizers/optimizers_test.go | 86 | // gemini-explicit-cache was a runtime-policy scaffold, never a money-bearing | COMMENT |
| MEDIUM | shared/platform/optimizers/optimizers.go | 27 | // telemetry join key. The old scaffold never created a cachedContents resource, | COMMENT |
| MEDIUM | packages/cli/src/agent-skills.generated.ts | 17 | "caveman-manage": "---\nname: caveman-manage\ndescription: >\n Inspect Caveman Cloud's experiment lifecycle and block | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | evals/llm_run.py | 51 | (unfinished cells null), leaves results.json alone and | STRING |
| HIGH⚡ | tests/test_eval_snapshot_contract.py | 127 | # Proves a failed (null) or negative usage cell is not evidence. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/caveman/skills/caveman-compress/scripts/cli.py | 56 | # Check if compressible | COMMENT |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 931 | # Check if backup already exists to prevent accidental overwriting | COMMENT |
| LOW | skills/caveman-compress/scripts/cli.py | 56 | # Check if compressible | COMMENT |
| LOW | skills/caveman-compress/scripts/compress.py | 931 | # Check if backup already exists to prevent accidental overwriting | COMMENT |
| LOW | src/hooks/install.sh | 77 | # Check if already installed (unless --force). Older installs only had two hook | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | proxy/internal/identity/identity_test.go | 142 | "mtls unknown kind": mapFile(entry("mtls:email:a@example.org", `["*"]`)), | CODE |
| LOW | tests/test_hooks.py | 330 | home = Path(tmp) / "Jane Doe" | CODE |
| LOW | packages/middleware/python/tests/test_behavior.py | 546 | @pytest.mark.parametrize("session", ["user@example.com", "user 42 / chat #7"]) | CODE |
| LOW⚡ | engine/compressors/testdata/axtree_cdp_local_page.json | 614 | "type": "placeholder", | CODE |
| LOW⚡ | engine/compressors/testdata/axtree_cdp_local_page.json | 615 | "attribute": "placeholder", | CODE |
| LOW⚡ | engine/compressors/testdata/axtree_cdp_local_page.json | 619 | "type": "placeholder", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 949 | # Step 1: Compress (body only, frontmatter excluded) | COMMENT |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 1005 | # Step 2: Validate + Retry. Each candidate is staged and validated next | COMMENT |
| LOW | skills/caveman-compress/scripts/compress.py | 949 | # Step 1: Compress (body only, frontmatter excluded) | COMMENT |
| LOW | skills/caveman-compress/scripts/compress.py | 1005 | # Step 2: Validate + Retry. Each candidate is staged and validated next | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 949 | # Step 1: Compress (body only, frontmatter excluded) | COMMENT |
| LOW | …ns/caveman/skills/caveman-compress/scripts/compress.py | 1005 | # Step 2: Validate + Retry. Each candidate is staged and validated next | COMMENT |
| LOW | skills/caveman-compress/scripts/compress.py | 949 | # Step 1: Compress (body only, frontmatter excluded) | COMMENT |
| LOW | skills/caveman-compress/scripts/compress.py | 1005 | # Step 2: Validate + Retry. Each candidate is staged and validated next | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ns/caveman/skills/caveman-compress/scripts/__init__.py | 7 | __all__ = ["cli", "compress", "detect", "validate"] | CODE |
| LOW | …kages/middleware/python/caveman_middleware/__init__.py | 5 | __all__ = ["COMPATIBILITY", "preflight", "ready"] | CODE |
| LOW | packages/sdk/python/caveman_cloud/__init__.py | 28 | __all__ = [ | CODE |
| LOW | …ckages/sdk/python/caveman_cloud/middleware/__init__.py | 18 | __all__ = [ | CODE |
| LOW | skills/caveman-compress/scripts/__init__.py | 7 | __all__ = ["cli", "compress", "detect", "validate"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | evals/snapshots/results.json | 32 | "The main question is how many consumers should get each message.\n\n## Queue (point-to-point)\n**Each message is | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/middleware/python/caveman_middleware/_httpx2.py | 58 | def handle_request(self, request): | CODE |
| LOW | packages/middleware/python/caveman_middleware/google.py | 497 | def handle_request(self, request): | CODE |
| LOW | packages/sdk/python/tests/test_transport.py | 29 | def handle_request(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/sdk/python/caveman_cloud/core.py | 1661 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/middleware/runtime.py | 206 | CODE | |
| LOW | packages/sdk/python/caveman_cloud/middleware/runtime.py | 435 | CODE |