Open-source AI job search agent and job finder: scan job boards, score each job 1-5 against your CV before you apply, tailor an ATS-friendly resume and cover letter, get interview prep and an application tracker. It helps you fill in each application; you press Submit. Runs locally in Codex, OpenCode and other AI CLIs, or as a Claude Code plugin.
This report summarizes scanner evidence for career-ops-hq/career-ops, a JavaScript project with 79,117 GitHub stars. SynthScan examined 148,234 lines of code across 875 source files, recording 369 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 3.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 304 finding(s).
Are imports declared and package/API names verified? 20 finding(s).
Are wrappers, guards, and repeated structures necessary? 49 finding(s).
Which changes need focused human review? 369 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 369 distinct pattern matches across 10 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 | README.hi.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.fr.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.es.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.ar.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.cn.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.tr.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.ua.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.ta.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.da.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.de.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.ja.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.pt-BR.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.zh-TW.md | 241 | claude # or codex / opencode / qwen / agy / grok | COMMENT |
| LOW | README.id.md | 241 | # "Change the archetypes to backend engineering roles" | COMMENT |
| LOW | README.vi.md | 241 | # Rồi nhờ CLI của bạn điều chỉnh hệ thống cho phù hợp với bạn: | COMMENT |
| LOW | README.pl.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.ru.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | README.ko-KR.md | 241 | # Then ask your CLI to adapt the system to you: | COMMENT |
| LOW | config/privacy.example.yml | 1 | # career-ops privacy guard — sample configuration | COMMENT |
| LOW | config/privacy.example.yml | 21 | COMMENT | |
| LOW | config/privacy.example.yml | 41 | # Personal profile URLs (linkedin.com/in/..., github.com/<user>, ...). | COMMENT |
| LOW | config/plugins.example.yml | 1 | # career-ops — Plugin activation (opt-in) | COMMENT |
| LOW | config/plugins.example.yml | 21 | enabled: false | COMMENT |
| LOW | config/local-paths.example.txt | 1 | # local-paths.txt — files this checkout owns, that upstream does not ship. | COMMENT |
| LOW | config/local-paths.example.txt | 21 | # The supported route is to stop ignoring it in your fork, then commit it: | COMMENT |
| LOW | config/local-paths.example.txt | 41 | COMMENT | |
| LOW | config/profile.example.yml | 1 | # Career-Ops Profile Configuration | COMMENT |
| LOW | config/profile.example.yml | 101 | COMMENT | |
| LOW | config/profile.example.yml | 121 | # Human-facing output language for reports, tracker notes, PDFs, cover | COMMENT |
| LOW | config/profile.example.yml | 141 | # The first LinkedIn outreach suggestion (`contacto`) stays on. | COMMENT |
| LOW | config/profile.example.yml | 161 | # Optional. Private repos the `expand` mode's GitHub evidence step | COMMENT |
| LOW | config/profile.example.yml | 181 | # cannot disagree. Absent means letter. An explicit --format flag or a payload | COMMENT |
| LOW | config/profile.example.yml | 201 | # # description can leave above its tech line, at the cost of a | COMMENT |
| LOW | config/profile.example.yml | 221 | # are placed into the slots they already occupy, in the order you list them; | COMMENT |
| LOW | config/profile.example.yml | 241 | # cv.md stays the source of truth: the section-order guard still compares the | COMMENT |
| LOW | config/profile.example.yml | 261 | # - "Practical interview processes (pair programming, system design); avoid multiple LeetCode rounds or unpaid take- | COMMENT |
| LOW | config/profile.example.yml | 281 | # Which cover-letter template to use by default. Kebab-case name of a file in | COMMENT |
| LOW | config/profile.example.yml | 301 | # Only trigger this entry when the JD location is in one of these countries. | COMMENT |
| LOW | config/profile.example.yml | 321 | # | COMMENT |
| LOW | config/profile.example.yml | 341 | COMMENT | |
| LOW | config/profile.example.yml | 361 | # `bash batch/batch-runner.sh`). | COMMENT |
| LOW | config/profile.example.yml | 381 | # Used by `/career-ops pipeline`. Before running the full A-G evaluation on | COMMENT |
| LOW | config/profile.example.yml | 401 | # Define cooldown windows for companies where you've recently applied. | COMMENT |
| LOW | plugins/_types.js | 1 | // Type catalog for the career-ops plugin contract. | COMMENT |
| LOW | web/src/proxy.ts | 1 | import { NextResponse } from "next/server"; | COMMENT |
| LOW | web/src/proxy.ts | 41 | // The Host header carries the attacker's domain there, so the guard refuses it — | COMMENT |
| LOW | web/src/app/api/cv-pdf/route.ts | 21 | COMMENT | |
| LOW | web/src/app/api/patterns/route.ts | 1 | import { execFile } from "node:child_process"; | COMMENT |
| LOW | web/src/app/api/status/route.ts | 1 | import fs from "node:fs"; | COMMENT |
| LOW | web/src/app/api/status/route.ts | 21 | // it holds the shared tracker lock across the whole read-modify-write, | COMMENT |
| LOW | web/src/app/api/run/route.ts | 181 | codeRoot, | COMMENT |
| LOW | web/src/app/api/run/route.ts | 201 | // envelope-parsing routes rely on. | COMMENT |
| LOW | web/src/app/api/run/route.ts | 241 | // are the CV now (#2185) — the agent's HTML flows through cvFilter to | COMMENT |
| LOW | web/src/app/api/run/route.ts | 281 | // outright is exactly the bug #1974 reported: "Authentication successful" | COMMENT |
| LOW | web/src/app/api/run/route.ts | 301 | // a Chromium PDF render normally takes low tens of seconds even with a | COMMENT |
| LOW | web/src/app/api/run/route.ts | 321 | controller.enqueue(enc.encode(JSON.stringify(obj) + "\n")); | COMMENT |
| LOW | web/src/app/api/run/route.ts | 361 | try { controller.close(); } catch { /* */ } | COMMENT |
| LOW | web/src/app/api/run/route.ts | 441 | // raw chunk both misses an error split across two of them and can match a | COMMENT |
| LOW | web/src/app/api/stats/route.ts | 1 | import { execFile } from "node:child_process"; | COMMENT |
| 201 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/privacy.example.yml | 12 | # -------------- | COMMENT |
| MEDIUM | config/privacy.example.yml | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config/privacy.example.yml | 47 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config/profile.example.yml | 251 | # ── Culture Screen ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 271 | # ── Cover Letter Settings ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 304 | # ── Contact Preferences ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 317 | # ── Outreach / greeting ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 328 | # ── Application Email Drafts ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 342 | # ── Scan / JD extractor ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 358 | # ── Auto-PDF threshold ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 379 | # ── Two-pass triage gate ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | config/profile.example.yml | 399 | # ── Re-apply Cooldown Windows ────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/app/actions/registry.ts | 101 | // ── helpers ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/app/actions/registry.ts | 123 | // ── actions ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/components/apply-view.tsx | 246 | // ── Leaving the page: back out, or record that you applied ───────────────── | COMMENT |
| MEDIUM | web/src/components/apply-view.tsx | 366 | // ── Watch the agent reach the form live (it navigates, never submits) ─────── | COMMENT |
| MEDIUM | web/src/components/apply-view.tsx | 414 | // ── Issues the interpreter surfaced — never fail mute ─────────────────────── | COMMENT |
| MEDIUM | web/src/components/apply-view.tsx | 444 | // ── Journey rail: Reading → Drafting → Review ─────────────────────────────── | COMMENT |
| MEDIUM | web/src/components/assistant-console.tsx | 27 | // inline next to text, both fed by the single JobsProvider store ────────────── | COMMENT |
| MEDIUM | web/src/components/assistant-console.tsx | 66 | // ── envelope parsing: act ONLY on complete <<act:ID {json}>> envelopes ──────── | COMMENT |
| MEDIUM | web/src/components/assistant-console.tsx | 138 | // ── persistence migration: old {role,content:string} → parts[] ──────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/drive.ts | 14 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/drive.ts | 29 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/diagnose.ts | 7 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/diagnose.ts | 13 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/agent-interpret.ts | 14 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/lib/apply/agent-interpret.ts | 21 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | templates/portals.example.yml | 3658 | # ── Swiss startup job boards ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | templates/portals.example.yml | 3667 | # ── CryptocurrencyJobs (Web3 / crypto) ───────────────────────────── | COMMENT |
| MEDIUM⚡ | templates/portals.example.yml | 3676 | # ── Python.org Jobs (Python / AI / Backend) ──────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 1214 | # ── Provider auto-detection ─────────────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 1322 | # ── Built-in provider examples ──────────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 2160 | # ── aggregator: true (optional, per entry) ──────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 2192 | # ── max_response_mb (optional, per entry) ───────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3046 | # ============================================================ | COMMENT |
| MEDIUM | templates/portals.example.yml | 3048 | # ============================================================ | COMMENT |
| MEDIUM | templates/portals.example.yml | 3070 | # ============================================================ | COMMENT |
| MEDIUM | templates/portals.example.yml | 3384 | # ── Job Boards ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3391 | # ── Telegram channels (public) ───────────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3418 | # ── SolidJobs (Polish market) ────────────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3470 | # ── JustJoin.it / NoFluffJobs / Bulldogjob (Polish tech market) ─────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3492 | # ── Jobs.cz / Prace.cz (Czech job portals) ───────────────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3552 | # ── HigherEdJobs (university / higher-ed RSS) ──────────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3563 | # ── Getro — VC portfolio "talent network" boards ─────────────────── | COMMENT |
| MEDIUM | templates/portals.example.yml | 3644 | # ── Consider (consider.com) — VC portfolio boards ────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | modes/batch.md | 76 | ### Manual multi-agent fan-out | COMMENT |
| MEDIUM | web/src/app/actions/registry.ts | 3 | // so the human UI and the agentic UI can never drift. Pure module (no React | COMMENT |
| MEDIUM | web/src/app/api/apply/drive/route.ts | 11 | // Streamed agentic drive over an OPEN session: the AI drives the headed page to | COMMENT |
| MEDIUM⚡ | web/src/app/api/apply/session/route.ts | 8 | export const maxDuration = 300; // the agentic drive + interpretation fallbacks spawn a planner | CODE |
| MEDIUM⚡ | web/src/app/api/apply/session/route.ts | 12 | // cliId enables the agentic fallback (the AI interprets the live form) when | COMMENT |
| MEDIUM⚡ | web/src/app/api/apply/session/route.ts | 22 | // already treats a missing CLI as "no agentic fallback". | COMMENT |
| MEDIUM | web/src/components/portals-view.tsx | 36 | // map the agentic "fix-portal" workers to the company they're repairing | COMMENT |
| MEDIUM | web/src/components/apply/apply-provider.tsx | 105 | // Stream the agentic drive (the AI reaching the form live) and finalize the | COMMENT |
| MEDIUM | web/src/components/jobs/worker-card.tsx | 63 | // Keeping it single is what guarantees the human UI and the agentic UI stay | COMMENT |
| MEDIUM | web/src/lib/apply/issue.ts | 8 | // One step of the agentic drive loop (the AI reaching/filling the form live). | COMMENT |
| MEDIUM | docs/SUPPORTED_JOB_BOARDS.md | 12 | | Agentic Engineering Jobs | API | Reads the site's public zero-auth REST API (`https://agentic-engineering-jobs.com/api | CODE |
| MEDIUM | .github/workflows/no-user-data.yml | 6 | # under examples/. Tracked scaffolding (.gitkeep keepers, dir READMEs) is exempt. | COMMENT |
| MEDIUM | templates/portals.example.yml | 2070 | # provider: agentic-jobs | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 228 | #### Step 0: Free Tier Check | COMMENT |
| LOW | AGENTS.md | 235 | #### Step 1: CV (required) | COMMENT |
| LOW | AGENTS.md | 246 | #### Step 2: Profile (required) | COMMENT |
| LOW | AGENTS.md | 265 | #### Step 3: Portals (recommended) | COMMENT |
| LOW | AGENTS.md | 313 | #### Step 4: Tracker | COMMENT |
| LOW | AGENTS.md | 322 | #### Step 5: Get to know the user (important for quality) | COMMENT |
| LOW | AGENTS.md | 338 | #### Step 6: Ready | COMMENT |
| LOW | modes/followup.md | 23 | ## Step 0: Check that follow-ups are on | COMMENT |
| LOW⚡ | modes/interview.md | 29 | ### Step 1: Target Roles & Ambitions | COMMENT |
| LOW⚡ | modes/interview.md | 37 | ### Step 2: Experience & Core Achievements | COMMENT |
| LOW⚡ | modes/interview.md | 44 | ### Step 3: Digging for Metrics (Business Impact) | COMMENT |
| LOW⚡ | modes/interview.md | 50 | ### Step 4: Uncovering Hidden Skills | COMMENT |
| LOW⚡ | docs/RUNNING_ON_A_BUDGET.md | 433 | ### Step 1: Scan for Job Offers (0 Tokens) | COMMENT |
| LOW⚡ | docs/RUNNING_ON_A_BUDGET.md | 441 | ### Step 2: Fetch the Job Description (0 Tokens) | COMMENT |
| LOW⚡ | docs/RUNNING_ON_A_BUDGET.md | 444 | ### Step 3: Evaluate the Offer (~4,500 Tokens) | COMMENT |
| LOW | docs/RUNNING_ON_A_BUDGET.md | 479 | ### Step 4: Tailor the CV HTML (~3,000 Tokens) | COMMENT |
| LOW | docs/RUNNING_ON_A_BUDGET.md | 494 | ### Step 5: Generate ATS-Optimized PDF (0 Tokens) | COMMENT |
| LOW | docs/BACKUP_STRATEGIES.md | 16 | ## Step 0: move your data into its own folder (data root) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | docs/RUNNING_ON_A_BUDGET.md | 213 | export MOONSHOT_API_KEY="your_api_key" | CODE |
| HIGH⚡ | docs/RUNNING_ON_A_BUDGET.md | 219 | $env:MOONSHOT_API_KEY="your_api_key" | CODE |
| HIGH⚡ | docs/RUNNING_ON_A_BUDGET.md | 225 | set MOONSHOT_API_KEY=your_api_key | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | modes/pdf.md | 62 | 16. Read `name` from `config/profile.yml` → normalize to kebab-case lowercase (e.g. "John Doe" → "john-doe") → `{candida | CODE |
| LOW | modes/tr/pdf.md | 21 | 15. `config/profile.yml` dosyasından `name` değerini ve JD'den şirket adını oku → kabuk komut enjeksiyonunu ve geçersiz | CODE |
| LOW | config/plugins.example.yml | 39 | # Check an employer: `node plugins/h1b-sponsor/check.mjs "Acme Corp"`. See plugins/h1b-sponsor/README.md. | COMMENT |
| LOW⚡ | plugins/h1b-sponsor/README.md | 71 | node plugins/h1b-sponsor/check.mjs "Acme Corp" | CODE |
| LOW⚡ | plugins/h1b-sponsor/README.md | 77 | node plugins/h1b-sponsor/check.mjs "Acme Corp" --json | CODE |
| LOW⚡ | plugins/h1b-sponsor/README.md | 83 | node plugins/h1b-sponsor/check.mjs "Acme Corp" --summary | CODE |
| LOW | plugins/h1b-sponsor/README.md | 104 | node plugins/h1b-sponsor/check.mjs "Acme Corp" --refresh | CODE |
| LOW | plugins/h1b-sponsor/README.md | 110 | node plugins/h1b-sponsor/check.mjs "Acme Corp" --cache-dir /tmp/h1b-cache | CODE |
| LOW | web/src/lib/apply/diagnose.ts | 247 | const ph = shell?.querySelector('.select__placeholder, [class*="placeholder" i]'); | CODE |
| LOW | docs/SCRIPTS.md | 565 | node contact-extract.mjs --file email.txt --company "Acme Inc" --tracker 42 | CODE |
| LOW | docs/KEEPING_PORTALS_LIVE.md | 52 | node discover-ats.mjs "Acme Corp" # preview — writes nothing | CODE |
| LOW | docs/KEEPING_PORTALS_LIVE.md | 53 | node discover-ats.mjs "Acme Corp" --write # append the resolved entries | CODE |
| LOW | dashboard/internal/ui/screens/pipeline_test.go | 150 | {Company: "Acme Corp", Role: "Senior PM, Voice AI", Status: "Evaluated", Score: 4.2, HasScore: true, Notes: "Series B | CODE |
| LOW | dashboard/internal/ui/screens/pipeline_test.go | 167 | if len(pm.filtered) != 1 || pm.filtered[0].Company != "Acme Corp" { | CODE |
| LOW | dashboard/internal/ui/screens/pipeline_test.go | 174 | if len(pm.filtered) != 1 || pm.filtered[0].Company != "Acme Corp" { | CODE |
| LOW | dashboard/internal/data/career_test.go | 968 | body := strings.Repeat("lorem ipsum dolor sit amet\n", 40_000) | CODE |
| LOW | dashboard/internal/data/career_test.go | 968 | body := strings.Repeat("lorem ipsum dolor sit amet\n", 40_000) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/src/components/cv/cv-ingest.tsx | 188 | // so the Explorer auto-fires the FREE scan itself (robust, no push/replaceState race). | COMMENT |
| MEDIUM | dashboard/internal/ui/screens/pipeline.go | 432 | // the current UI state so manual refresh feels seamless. | COMMENT |
| MEDIUM | .github/workflows/test.yml | 144 | fetch-depth: 0 # harness needs release tags | CODE |
| MEDIUM | .github/workflows/test.yml | 145 | persist-credentials: false # the harness only ever touches a local mirror | CODE |
| LOW | templates/portals.example.yml | 1256 | # same provider; just use whichever host the employer's careers link actually points at.) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | templates/jurisdiction-relocation-tax.yml | 8 | # This file is a DATA REFERENCE, not instruction logic: adding a new jurisdiction | COMMENT |
| MEDIUM | templates/panelist-roles.yml | 20 | # This file is system layer and is replaced on update. To change the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/components/page-loading-skeletons.tsx | 3 | export function FollowupsDueSectionSkeleton({ rows = 3 }: { rows?: number }) { | CODE |
| LOW | web/src/components/page-loading-skeletons.tsx | 33 | export function PipelineTableRowsSkeleton({ rows = 8, trackerColumn = false }: { rows?: number; trackerColumn?: boolean | CODE |
| LOW | web/src/components/page-loading-skeletons.tsx | 98 | export function FollowupsTableRowsSkeleton({ rows = 6 }: { rows?: number }) { | CODE |
| LOW | web/src/lib/analytics-data.ts | 95 | export function enrichAnalyticsApplication(app: Application, reportContent = ""): AnalyticsApplication { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | templates/portals.example.yml | 26 | # Set recheck_after_days to let previously added URLs become eligible again | COMMENT |