The #1 AI Harness for Building Resumes, PDFs, Cover Letters & more, locally with 100+ LLMs support.
This report summarizes scanner evidence for srbhr/Resume-Matcher, a Python project with 28,625 GitHub stars. SynthScan examined 125,337 lines of code across 473 source files, recording 1510 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 14.4 (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? 1107 finding(s).
Are imports declared and package/API names verified? 211 finding(s).
Are wrappers, guards, and repeated structures necessary? 1216 finding(s).
Which changes need focused human review? 1510 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 1510 distinct pattern matches across 20 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 | docs/agent/architecture/prompt-workflow-design.md | 211 | def _check_personal_info_leak(improved: dict[str, Any]) -> list[str]: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 75 | def test_scrub_text_redacts_sk_keys() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 81 | def test_scrub_text_redacts_long_hex_and_jwt() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 87 | def test_scrub_config_redacts_key_fields_keeps_provider() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 438 | def test_check_pdf_bytes_accepts_real_pdf() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 445 | def test_check_pdf_bytes_rejects_empty() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 451 | def test_check_pdf_bytes_rejects_non_pdf() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 554 | def test_score_tailoring_clean_pass() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 769 | def test_diff_clean_when_within_tolerance() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 776 | def test_diff_flags_floor_breach() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 784 | def test_diff_flags_drop_beyond_tolerance_even_above_floor() -> None: | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 791 | def test_summary_to_baseline_roundtrips_shape() -> None: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 284 | def test_bundle_creates_layout(tmp_path: Path) -> None: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 294 | def test_build_manifest_records_provider_and_scrubs_secrets() -> None: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 568 | def test_score_tailoring_flags_fabrication_and_identity_change() -> None: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 662 | def test_build_flow_trace_counts_and_orders() -> None: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 670 | def test_build_summary_rolls_up_scores_and_flow() -> None: | CODE |
| LOW | …superpowers/plans/2026-04-17-dev-issues-754-751-749.md | 701 | def validate_prompt_placeholders(prompt: str) -> list[str]: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 66 | def test_initial_state_defaults_to_intro() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 76 | def test_turn_request_requires_answer_for_answer_action() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 81 | def test_turn_request_skip_needs_no_answer() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 87 | def test_question_rejects_unknown_section() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 92 | def test_finalize_requires_non_empty_name() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 255 | def test_build_initial_state_has_intro_question() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 262 | def test_extract_intro_name_from_conversational_answer() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 268 | def test_merge_unique_skills_dedupes_case_insensitively_and_keeps_order() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 276 | def test_section_prompt_falls_back_for_unknown_section() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 281 | def test_compute_progress_grows_with_questions_and_caps() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 290 | def test_review_warnings_identify_thin_resume() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 201 | def _validate_ready_to_finalize(self) -> "ResumeWizardFinalizeRequest": | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 448 | def build_initial_wizard_state() -> ResumeWizardState: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 511 | def normalize_wizard_resume_data(data: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 607 | async def test_ai_turn_merges_only_target_section_and_advances() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 628 | async def test_ai_turn_does_not_let_other_sections_be_clobbered() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 663 | async def test_ai_turn_question_cap_forces_completion() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 678 | async def test_ai_turn_skip_does_not_modify_resume_data() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 700 | async def test_ai_turn_intro_uses_deterministic_name_fallback() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 718 | async def test_ai_turn_missing_next_question_falls_back_to_gap() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 737 | def test_apply_back_restores_previous_snapshot() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 761 | def test_apply_back_noop_without_history() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 768 | def test_apply_review_builds_warnings_without_llm() -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1031 | async def test_turn_answer_runs_ai_and_returns_next_question(isolated_db) -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1059 | async def test_turn_review_needs_no_llm(isolated_db) -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1088 | async def test_finalize_creates_ready_master_resume(isolated_db) -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1113 | async def test_finalize_rejects_when_master_exists(isolated_db, sample_resume) -> None: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1442 | export function createInitialResumeWizardState(): ResumeWizardState { | CODE |
| LOW | …powers/plans/2026-04-17-litellm-reasoning-hardening.md | 39 | def _configure_litellm_logging() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 411 | def test_reject_blocked_path_personal_info() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 427 | def test_reject_blocked_path_years() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 442 | def test_reject_blocked_path_company() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 457 | def test_reject_blocked_path_education() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 875 | def test_no_warnings_on_clean_result() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 884 | def test_warns_on_empty_changes() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 889 | def test_warns_on_section_count_mismatch() -> None: | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 896 | def test_warns_on_word_count_explosion() -> None: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 50 | def test_resume_change_replace_valid() -> None: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 62 | def test_resume_change_append_valid() -> None: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 74 | def test_resume_change_reorder_valid() -> None: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 85 | def test_improve_diff_result_valid() -> None: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 102 | def test_improve_diff_result_empty_changes() -> None: | CODE |
| 961 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/backend/app/llm.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/app/llm.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/app/llm.py | 743 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/app/llm.py | 745 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/app/routers/enrichment.py | 552 | # ============================================ | COMMENT |
| MEDIUM⚡ | apps/backend/app/routers/enrichment.py | 554 | # ============================================ | COMMENT |
| MEDIUM | apps/backend/app/schemas/enrichment.py | 94 | # ============================================ | COMMENT |
| MEDIUM | apps/backend/app/schemas/enrichment.py | 96 | # ============================================ | COMMENT |
| MEDIUM | apps/backend/app/prompts/enrichment.py | 128 | # ============================================ | COMMENT |
| MEDIUM | apps/backend/app/prompts/enrichment.py | 130 | # ============================================ | COMMENT |
| MEDIUM | apps/backend/app/services/improver.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/app/services/improver.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/conftest.py | 207 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/conftest.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 248 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 250 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 259 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/conftest.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/conftest.py | 301 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/conftest.py | 303 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 183 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 185 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 394 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 396 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 510 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 512 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 1003 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm.py | 1005 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_llm.py | 316 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_llm.py | 318 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_llm.py | 938 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_llm.py | 940 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 208 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/unit/test_llm_providers.py | 210 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/evals/golden/cases.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/evals/golden/cases.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/evals/golden/cases.py | 212 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/evals/golden/cases.py | 214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_config_api.py | 433 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_config_api.py | 435 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/integration/test_llm_contract.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/backend/tests/integration/test_llm_contract.py | 63 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 204 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 206 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 269 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/backend/tests/integration/test_llm_contract.py | 271 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check_locale_parity.py | 21 | CODE | |
| LOW | apps/backend/app/pdf.py | 3 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 4 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 5 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 6 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 7 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 8 | CODE | |
| LOW | apps/backend/app/routers/__init__.py | 9 | CODE | |
| LOW | apps/backend/app/schemas/models.py | 11 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 3 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| LOW | apps/backend/app/schemas/__init__.py | 15 | CODE | |
| 73 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/CLAUDE.md | 129 | except Exception as e: | CODE |
| LOW | docs/agent/llm-integration.md | 158 | except Exception as e: | CODE |
| LOW | docs/agent/coding-standards.md | 53 | except Exception as e: | CODE |
| LOW | docs/agent/architecture/backend-architecture.md | 214 | except Exception as e: | CODE |
| LOW | docs/agent/architecture/backend-guide.md | 154 | except Exception as e: | CODE |
| MEDIUM | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 1135 | def _git_sha() -> str: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 210 | except Exception: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 499 | except Exception: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 1138 | except Exception: | CODE |
| LOW | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 1197 | except Exception as exc: # noqa: BLE001 — capture, keep going | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1199 | except Exception as e: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1237 | except Exception as e: | CODE |
| LOW | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 1257 | except Exception as e: | CODE |
| LOW | …powers/plans/2026-04-17-litellm-reasoning-hardening.md | 571 | except Exception as e: | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 1241 | except Exception as e: | CODE |
| LOW | apps/backend/CLAUDE.md | 112 | except Exception as e: | CODE |
| LOW | apps/backend/app/llm.py | 657 | except Exception as e: | CODE |
| LOW | apps/backend/app/llm.py | 947 | except Exception as e: | CODE |
| LOW | apps/backend/app/llm.py | 1029 | except Exception as e: | CODE |
| LOW | apps/backend/app/llm.py | 1060 | except Exception: | CODE |
| LOW | apps/backend/app/llm.py | 1139 | except Exception: | CODE |
| LOW | apps/backend/app/llm.py | 1253 | except Exception: | CODE |
| LOW | apps/backend/app/llm.py | 1708 | except Exception: | CODE |
| LOW | apps/backend/app/pdf.py | 168 | except Exception: | CODE |
| LOW | apps/backend/app/pdf.py | 717 | except Exception: | CODE |
| LOW | apps/backend/app/pdf.py | 730 | except Exception: | CODE |
| LOW | apps/backend/app/pdf.py | 808 | except Exception: | CODE |
| LOW⚡ | apps/backend/app/main.py | 68 | except Exception: | CODE |
| LOW⚡ | apps/backend/app/main.py | 73 | except Exception as e: | CODE |
| LOW⚡ | apps/backend/app/main.py | 78 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 239 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 326 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 413 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 539 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 986 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resume_wizard.py | 98 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resume_wizard.py | 148 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 156 | except Exception as e: # noqa: BLE001 - tracker is non-critical | CODE |
| LOW | apps/backend/app/routers/resumes.py | 598 | except Exception: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 623 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 913 | except Exception: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 940 | except Exception: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 984 | except Exception: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1050 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1249 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1297 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1358 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1468 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1729 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1735 | except Exception: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1875 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 1997 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 2208 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 2371 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 2446 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 2520 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/resumes.py | 2588 | except Exception as e: | CODE |
| LOW | apps/backend/app/routers/config.py | 107 | except Exception: | CODE |
| LOW | apps/backend/app/routers/health.py | 53 | except Exception: | CODE |
| LOW | apps/backend/app/routers/health.py | 59 | except Exception: | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/agent/architecture/prompt-workflow-design.md | 369 | - Changed workExperience[0] company from 'Acme Corp' to 'ACME Corporation'. Never change company names. | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 548 | "personalInfo": {"name": "Jane Doe", "email": "jane@x.dev"}, | CODE |
| LOW⚡ | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 556 | "personalInfo": {"name": "Jane Doe", "email": "jane@x.dev"}, | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 416 | original="Jane Doe", | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 424 | assert result["personalInfo"]["name"] == "Jane Doe" | CODE |
| LOW⚡ | …superpowers/plans/2026-03-23-diff-based-improvement.md | 447 | original="Acme Corp", | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 300 | "personalInfo": {"name": "Jane Doe", "email": "jane@example.com", "title": "Engineer", "phone": "", "location": ""}, | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 306 | "company": "Acme Corp", | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 561 | original="Jane Doe", | CODE |
| LOW | …superpowers/plans/2026-03-23-diff-based-improvement.md | 577 | assert result["personalInfo"]["name"] == "Jane Doe" | CODE |
| LOW | apps/frontend/messages/zh.json | 264 | "placeholder": "示例:添加更多量化指标、强调领导能力、使用更多行动动词...", | CODE |
| LOW | apps/frontend/messages/zh.json | 903 | "placeholder": "启用求职信生成并完成一次简历定制后,求职信内容会显示在这里...", | CODE |
| LOW | apps/frontend/messages/zh.json | 923 | "placeholder": "启用外联消息生成并完成一次简历定制后,外联消息会显示在这里...", | CODE |
| LOW | apps/frontend/messages/ja.json | 264 | "placeholder": "例:より定量的な指標を追加する、リーダーシップを強調する、行動動詞を増やす…", | CODE |
| LOW | apps/frontend/messages/ja.json | 902 | "placeholder": "設定でカバーレター生成を有効にして履歴書をカスタマイズすると、ここに表示されます...", | CODE |
| LOW | apps/frontend/messages/ja.json | 923 | "placeholder": "設定で外連絡メッセージ生成を有効にして履歴書をカスタマイズすると、ここに表示されます...", | CODE |
| LOW | apps/frontend/messages/en.json | 264 | "placeholder": "Example: Add more quantifiable metrics, emphasize leadership skills, use more action verbs...", | CODE |
| LOW | apps/frontend/messages/en.json | 477 | "name": "John Doe", | CODE |
| LOW | apps/frontend/messages/en.json | 903 | "placeholder": "Your cover letter will appear here after tailoring your resume with cover letter generation enable | CODE |
| LOW | apps/frontend/messages/en.json | 923 | "placeholder": "Your cold outreach message will appear here after tailoring your resume with outreach message gene | CODE |
| LOW | apps/frontend/messages/fr.json | 264 | "placeholder": "Exemple : Ajoutez plus de métriques quantifiables, mettez en avant les compétences en leadership | CODE |
| LOW | apps/frontend/messages/fr.json | 903 | "placeholder": "Votre lettre de motivation apparaîtra ici après la personnalisation de votre CV avec la génération | CODE |
| LOW | apps/frontend/messages/fr.json | 923 | "placeholder": "Votre message de prospection à froid apparaîtra ici après la personnalisation de votre CV avec la | CODE |
| LOW | apps/frontend/messages/pt-BR.json | 264 | "placeholder": "Exemplo: Adicione mais métricas quantificáveis, enfatize liderança, use mais verbos de ação...", | CODE |
| LOW | apps/frontend/messages/pt-BR.json | 903 | "placeholder": "Sua carta de apresentação aparecerá aqui após personalizar seu currículo com a geração de carta ha | CODE |
| LOW | apps/frontend/messages/pt-BR.json | 923 | "placeholder": "Sua mensagem de contato frio aparecerá aqui após personalizar seu currículo com a geração de mensa | CODE |
| LOW | apps/frontend/messages/ko.json | 242 | "placeholder": "예: 정량적 지표 추가, 리더십 역량 강조, 더 많은 행동 동사 사용...", | CODE |
| LOW | apps/frontend/messages/ko.json | 903 | "placeholder": "자기소개서 생성을 활성화한 상태로 이력서를 맞춤화하면 여기에 자기소개서가 표시됩니다...", | CODE |
| LOW | apps/frontend/messages/ko.json | 923 | "placeholder": "아웃리치 메시지 생성을 활성화한 상태로 이력서를 맞춤화하면 여기에 콜드 아웃리치 메시지가 표시됩니다...", | CODE |
| LOW | apps/frontend/messages/es.json | 264 | "placeholder": "Ejemplo: Añade más métricas cuantificables, enfatiza habilidades de liderazgo, usa más verbos de | CODE |
| LOW | apps/frontend/messages/es.json | 902 | "placeholder": "Tu carta de presentación aparecerá aquí después de adaptar tu currículum con la generación de cart | CODE |
| LOW | apps/frontend/messages/es.json | 923 | "placeholder": "Tu mensaje de contacto en frío aparecerá aquí después de adaptar tu currículum con la generación d | CODE |
| LOW | apps/frontend/tests/additional-info-newlines.test.tsx | 47 | personalInfo: { name: 'Jane Doe' }, | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 214 | placeholder=q.get("placeholder", ""), | CODE |
| LOW⚡ | apps/backend/app/prompts/enrichment.py | 48 | "placeholder": "e.g., Reduced API response time by 40%, saved $50K annually" | CODE |
| LOW⚡ | apps/backend/app/prompts/enrichment.py | 54 | "placeholder": "e.g., Python, FastAPI, PostgreSQL, Redis, AWS Lambda" | CODE |
| LOW⚡ | apps/backend/app/prompts/enrichment.py | 60 | "placeholder": "e.g., Team of 5, serving 100K users, processing 1M requests/day" | CODE |
| LOW⚡ | apps/backend/app/prompts/enrichment.py | 66 | "placeholder": "e.g., Designed the architecture, led the implementation, mentored 2 junior devs" | CODE |
| LOW | apps/backend/app/prompts/templates.py | 23 | "name": "John Doe", | CODE |
| LOW | apps/backend/app/prompts/templates.py | 192 | "company": "Acme Corp", | CODE |
| LOW⚡ | apps/backend/tests/conftest.py | 127 | "name": "Jane Doe", | CODE |
| LOW | apps/backend/tests/conftest.py | 141 | "company": "Acme Corp", | CODE |
| LOW⚡ | apps/backend/tests/unit/test_parser.py | 243 | await parse_resume_to_json("Jane Doe") | CODE |
| LOW⚡ | apps/backend/tests/unit/test_parser.py | 250 | await parse_resume_to_json("Jane Doe") | CODE |
| LOW⚡ | apps/backend/tests/unit/test_apply_diffs.py | 363 | original="Acme Corp", | CODE |
| LOW | apps/backend/tests/unit/test_apply_diffs.py | 327 | ("personalInfo.name", "Jane Doe"), | CODE |
| LOW | apps/backend/tests/unit/test_apply_diffs.py | 510 | original="Jane Doe", | CODE |
| LOW | apps/backend/tests/unit/test_apply_diffs.py | 526 | assert result["personalInfo"]["name"] == "Jane Doe" # Unchanged | CODE |
| LOW | apps/backend/tests/unit/test_database.py | 280 | "company": "Acme Corp", | CODE |
| LOW | apps/backend/tests/unit/test_database.py | 292 | assert fetched["company"] == "Acme Corp" | CODE |
| LOW⚡ | apps/backend/tests/unit/test_e2e_monitor_scores.py | 8 | "personalInfo": {"name": "Jane Doe", "email": "jane@x.dev"}, | CODE |
| LOW⚡ | apps/backend/tests/unit/test_e2e_monitor_scores.py | 18 | "personalInfo": {"name": "Jane Doe", "email": "jane@x.dev"}, | CODE |
| LOW | apps/backend/tests/unit/test_interview_prep_service.py | 10 | "personalInfo": {"name": "Jane Doe"}, | CODE |
| LOW | apps/backend/tests/unit/test_improve_confirm_hash.py | 28 | "personalInfo": {"name": "Jane Doe", "email": "jane@x.dev"}, | CODE |
| LOW⚡ | apps/backend/tests/evals/golden/cases.py | 38 | "name": "Jane Doe", | CODE |
| LOW | apps/backend/tests/evals/golden/cases.py | 55 | "company": "Acme Corp", | CODE |
| LOW | apps/backend/tests/evals/golden/cases.py | 141 | "company": "Acme Corp", | CODE |
| LOW | …ackend/tests/integration/test_bullet_selection_flow.py | 57 | "name": "Jane Doe", | CODE |
| LOW | …ackend/tests/integration/test_bullet_selection_flow.py | 66 | "company": "Acme Corp", | CODE |
| LOW | apps/backend/tests/integration/test_applications_api.py | 48 | return_value={"company": "Acme Corp", "role": "Staff Engineer"}, | CODE |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/backend/app/llm.py | 1139 | except Exception: | CODE |
| HIGH | apps/backend/app/crypto.py | 81 | except OSError: # pragma: no cover - platform dependent (e.g. Windows) | CODE |
| HIGH | apps/backend/app/services/resume_wizard.py | 243 | except ValueError: | CODE |
| HIGH | apps/backend/e2e_monitor/servers.py | 74 | except httpx.HTTPError: | CODE |
| HIGH | apps/backend/e2e_monitor/servers.py | 235 | except ProcessLookupError: | CODE |
| HIGH | apps/backend/e2e_monitor/servers.py | 257 | except ProcessLookupError: | CODE |
| HIGH | apps/backend/tests/unit/test_monitor_servers.py | 465 | except ProcessLookupError: | CODE |
| HIGH | …ps/backend/tests/integration/test_resume_wizard_api.py | 199 | except TimeoutError: | CODE |
| HIGH | …ps/backend/tests/integration/test_storage_atomicity.py | 160 | except TimeoutError: | CODE |
| HIGH | …ps/backend/tests/integration/test_storage_atomicity.py | 232 | except TimeoutError: | CODE |
| HIGH | …nd/tests/integration/test_confirmation_transactions.py | 256 | except TimeoutError: | CODE |
| HIGH | apps/backend/tests/integration/test_llm_contract.py | 57 | except Exception: # noqa: BLE001 - cache is best-effort; never fail setup on it | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/backend/app/config.py | 44 | CODE | |
| LOW | apps/backend/app/llm.py | 853 | CODE | |
| LOW | apps/backend/app/llm.py | 1378 | CODE | |
| LOW | apps/backend/app/llm.py | 1414 | CODE | |
| LOW | apps/backend/app/llm.py | 1508 | CODE | |
| LOW | apps/backend/app/pdf.py | 223 | CODE | |
| LOW | apps/backend/app/pdf.py | 621 | CODE | |
| LOW | apps/backend/app/pdf.py | 857 | CODE | |
| LOW | apps/backend/app/routers/enrichment.py | 444 | CODE | |
| LOW | apps/backend/app/routers/enrichment.py | 709 | CODE | |
| LOW | apps/backend/app/routers/resumes.py | 319 | CODE | |
| LOW | apps/backend/app/routers/resumes.py | 454 | CODE | |
| LOW | apps/backend/app/routers/resumes.py | 672 | CODE | |
| LOW | apps/backend/app/services/refiner.py | 102 | CODE | |
| LOW | apps/backend/app/services/refiner.py | 671 | CODE | |
| LOW | apps/backend/app/services/refiner.py | 768 | CODE | |
| LOW | apps/backend/app/services/resume_wizard.py | 192 | CODE | |
| LOW | apps/backend/app/services/resume_wizard.py | 280 | CODE | |
| LOW | apps/backend/app/services/resume_preservation.py | 366 | CODE | |
| LOW | apps/backend/app/services/resume_preservation.py | 445 | CODE | |
| LOW | apps/backend/app/services/resume_preservation.py | 610 | CODE | |
| LOW | apps/backend/app/services/resume_preservation.py | 723 | CODE | |
| LOW | apps/backend/app/services/improver.py | 78 | CODE | |
| LOW | apps/backend/app/services/improver.py | 308 | CODE | |
| LOW | apps/backend/app/services/improver.py | 515 | CODE | |
| LOW | apps/backend/app/services/improver.py | 532 | CODE | |
| LOW | apps/backend/app/services/improver.py | 715 | CODE | |
| LOW | apps/backend/app/services/improver.py | 844 | CODE | |
| LOW | apps/backend/app/services/improver.py | 1160 | CODE | |
| LOW | apps/backend/app/services/improver.py | 1215 | CODE | |
| LOW | apps/backend/app/services/bullet_selector.py | 166 | CODE | |
| LOW | apps/backend/app/services/ats.py | 33 | CODE | |
| LOW | apps/backend/app/services/ats.py | 37 | CODE | |
| LOW | apps/backend/app/services/parser.py | 231 | CODE | |
| LOW | apps/backend/app/services/parser.py | 317 | CODE | |
| LOW | apps/backend/app/services/parser.py | 354 | CODE | |
| LOW | apps/backend/app/services/parser.py | 497 | CODE | |
| LOW | apps/backend/app/services/parser.py | 728 | CODE | |
| LOW | apps/backend/app/services/parser.py | 550 | CODE | |
| LOW | apps/backend/e2e_monitor/servers.py | 230 | CODE | |
| LOW | apps/backend/e2e_monitor/__main__.py | 99 | CODE | |
| LOW | apps/backend/tests/evals/scorers.py | 70 | CODE | |
| LOW | …/backend/tests/integration/test_storage_busy_writes.py | 123 | CODE | |
| LOW | …/backend/tests/integration/test_storage_busy_writes.py | 136 | CODE | |
| LOW | …ps/backend/tests/integration/test_pdf_grid_geometry.py | 41 | CODE | |
| LOW | …ackend/tests/integration/test_pdf_multilingual_flow.py | 17 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/frontend/tests/browser/reliability_flow.py | 191 | "window.history.pushState(null, '', '/builder?id=b&tab=cover-letter')" | CODE |
| HIGH | apps/backend/app/prompts/templates.py | 622 | "original": null, | CODE |
| HIGH | apps/backend/app/prompts/templates.py | 629 | "original": null, | CODE |
| HIGH | …end/tests/integration/test_llm_contract_reliability.py | 193 | 'Here is the result: [null, {"changes": []}', | CODE |
| HIGH | …end/tests/integration/test_llm_contract_reliability.py | 195 | 'Result: [null, "note, {"changes": []}, {"changes": [2]}', | CODE |
| HIGH | apps/backend/tests/integration/test_pipeline_e2e.py | 304 | # --- Preview (no persistence; resume_id stays null) --- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/backend/app/db_engine.py | 18 | __all__ = ["Base", "make_async_engine", "make_sync_engine", "init_models_sync"] | CODE |
| LOW | apps/backend/app/config_cache.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/config.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/database.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/database.py | 1244 | def set_api_key_ciphertext(self, provider: str, ciphertext: str) -> None: | CODE |
| LOW | apps/backend/app/pdf.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/crypto.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/ai_budget.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/main.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/enrichment.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/resume_wizard.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/resumes.py | 118 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/health.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/applications.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/routers/__init__.py | 11 | __all__ = [ | CODE |
| LOW | apps/backend/app/routers/jobs.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/schemas/__init__.py | 79 | __all__ = [ | CODE |
| LOW | apps/backend/app/scripts/migrate_tinydb_to_sqlite.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/prompts/__init__.py | 45 | __all__ = [ | CODE |
| LOW | apps/backend/app/services/refiner.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/improver.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/bullet_selector.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/__init__.py | 7 | __all__ = [ | CODE |
| LOW | apps/backend/app/services/ats.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/parser.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/bullet_scoring.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/page_fit.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/backend/app/services/tailor_selection.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/backend/tests/integration/test_storage_busy_writes.py | 25 | def set_short_wait(connection: Any, record: Any, proxy: Any) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/frontend/hooks/use-file-upload.ts | 483 | // Duplicate check (more robust for multiple additions) | COMMENT |
| MEDIUM | apps/backend/app/models.py | 129 | # Condensed source used by harness bullet selection; NULL = full source. | COMMENT |
| MEDIUM | apps/backend/app/routers/resumes.py | 1393 | # An append refused on a harness-chosen bullet set is expected (and logged by | COMMENT |
| MEDIUM | apps/backend/app/routers/health.py | 36 | """Get comprehensive application status. | STRING |
| MEDIUM | apps/backend/app/prompts/templates.py | 492 | # Appended to the strategy rule when the harness already chose the bullets (bullet selection). | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_refiner.py | 221 | # "robust" is in the blacklist, but if it's in JD, it should be protected | COMMENT |
| MEDIUM | …ackend/tests/integration/test_bullet_selection_flow.py | 481 | # An expected harness refusal is logged server-side, not shown as a rejection. | COMMENT |
| MEDIUM | …ackend/tests/integration/test_bullet_selection_flow.py | 617 | # Every harness-chosen bullet keeps its own row; the split rewrite stays one row. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | SETUP.md | 127 | LLM_API_KEY=sk-your-api-key-here | CODE |
| HIGH | SETUP.es.md | 132 | LLM_API_KEY=sk-your-api-key-here | CODE |
| HIGH | SETUP.zh-CN.md | 132 | LLM_API_KEY=sk-your-api-key-here | CODE |
| HIGH | SETUP.ja.md | 132 | LLM_API_KEY=sk-your-api-key-here | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …superpowers/plans/2026-06-04-resume-wizard-redesign.md | 202 | if not self.state.resume_data.personalInfo.name.strip(): | CODE |
| CRITICAL | apps/backend/app/schemas/resume_wizard.py | 115 | if not self.state.resume_data.personalInfo.name.strip(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …cs/superpowers/plans/2026-06-01-agentic-e2e-monitor.md | 1093 | ## Task 8: CLI + `sweep` orchestration | COMMENT |
| MEDIUM | …wers/specs/2026-03-23-diff-based-improvement-design.md | 70 | ### 2.2 What each hallucination vector looks like after this change | COMMENT |
| MEDIUM | …wers/specs/2026-06-04-resume-wizard-redesign-design.md | 145 | ### Server-side guardrails (don't trust the model blindly) | COMMENT |
| MEDIUM | apps/backend/e2e_monitor/README.md | 1 | # e2e_monitor — agentic end-to-end monitor | COMMENT |
| MEDIUM | apps/backend/e2e_monitor/AGENT_PLAYBOOK.md | 6 | # monitor-e2e — agentic end-to-end monitor | COMMENT |
| MEDIUM | apps/backend/tests/unit/test_monitor_servers.py | 164 | # hashes, HTTP client, seed, sweep orchestration and teardown remain real. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/backend/app/schemas/enrichment.py | 22 | """A clarifying question generated by AI for an item.""" | STRING |
| HIGH | apps/backend/app/schemas/enrichment.py | 138 | diff_summary: str = "" # AI-generated summary of changes | CODE |
| HIGH | apps/backend/app/prompts/refinement.py | 3 | # AI Phrase Blacklist - Words and phrases that sound AI-generated | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …superpowers/plans/2026-03-23-diff-based-improvement.md | 0 | a single change the llm wants to make to the resume. | STRING |
| HIGH | apps/backend/app/schemas/models.py | 0 | a single change the llm wants to make to the resume. | STRING |
| HIGH | …wers/specs/2026-03-23-diff-based-improvement-design.md | 0 | a single change the llm wants to make to the resume. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | SETUP.md | 230 | #### Step 1: Install Ollama | COMMENT |
| LOW⚡ | SETUP.md | 234 | #### Step 2: Pull a model | COMMENT |
| LOW⚡ | SETUP.md | 242 | #### Step 3: Configure your `.env` | COMMENT |
| LOW⚡ | SETUP.md | 251 | #### Step 4: Make sure Ollama is running | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/backend/app/llm.py | 863 | # Check if API key is configured. Ollama and openai_compatible local | COMMENT |
| LOW | apps/backend/app/routers/resumes.py | 2402 | # Check if it's a tailored resume (has parent_id) | COMMENT |
| LOW | apps/backend/app/routers/resumes.py | 2476 | # Check if it's a tailored resume (has parent_id) | COMMENT |
| LOW | apps/backend/app/routers/resumes.py | 2618 | # Check if it's a tailored resume (has parent_id) | COMMENT |
| LOW | apps/backend/app/services/refiner.py | 403 | # Check if skill appears anywhere in master resume text | COMMENT |
| LOW | apps/backend/app/services/improver.py | 203 | # Check if the leaf field is blocked | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 21 | # LLM Configuration - configure via Settings UI or set env vars for explicit overrides | COMMENT |
| LOW | apps/frontend/app/layout.tsx | 21 | // want to ship a large font to users who never render CJK. Turbopack already | COMMENT |
| LOW | apps/backend/app/llm.py | 61 | # discovery API, so there is no way to ask an endpoint at runtime whether it | COMMENT |
| LOW | apps/backend/app/llm.py | 181 | COMMENT | |
| LOW | apps/backend/app/llm.py | 1261 | # Provider-specific restrictions not captured by the registry. | COMMENT |
| LOW | apps/backend/app/llm.py | 1561 | # LLM-002: Increase temperature on retry for variation | COMMENT |
| LOW | apps/backend/app/routers/config.py | 141 | still need to persist the configuration. Connectivity can be verified via | COMMENT |
| LOW | apps/backend/app/services/parser.py | 641 | "descriptionStyles", | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/backend/app/services/refiner.py | 762 | # Create a cache key from the data | COMMENT |
| MEDIUM | …ps/backend/tests/integration/test_storage_atomicity.py | 203 | await other.list_applications() # Initialize both instances before contention. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/backend/app/database.py | 254 | CODE | |
| LOW | apps/backend/app/database.py | 300 | CODE | |
| LOW | apps/backend/app/routers/resumes.py | 2065 | CODE |