Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

151henry151/romp-crm

https://github.com/151henry151/romp-crm/ · scanned 2026-05-17 22:07 UTC (2 weeks, 4 days ago) · 10 languages

46 findings (36 legacy + 10 scanner) 8/10 scanners ran Scanner says 90 (lower by 18)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 weeks, 4 days ago · v2 · 36 findings from 1 source. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.

JSON
Score breakdown â 2026-05-18-v5 calibration-aware
Component Sub-score Weight Contribution
structure_score 65.0 0.15 9.75
security_score 83.9 0.25 20.98
testing_score 85.0 0.20 17.00
documentation_score 70.0 0.15 10.50
practices_score 42.0 0.15 6.30
code_quality 80.0 0.10 8.00
Overall 1.00 72.5
Calibrated penalty buckets (security_score): authz: 13.0 · journey: 3.1
security_score may be inflated — optional security scanners were skipped on this fast scan
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Scan summary Repository scanned at 90.5/100 with 66.7% coverage. It contains 19 nodes across 0 cross-layer flows, written primarily in mixed languages. Engine surfaced 0 findings. Risk profile is low: 0 critical, 0 high, 0 medium. Recommended next step: open the software layer findings first — that's where the highest-impact wins live.

Showing 34 of 36 findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Legacy security auth conf 0.78 Consent is collected in UI without visible backend audit persistence
Persist consent as a backend record with subject, actor, purpose, scope, legal text version, timestamp, IP address, user agent, and revocation state.
deploy/legal/privacy-policy.html:69 authlegacy
medium Legacy security auth conf 0.92 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
Add .repobility/access.yml mapping routes to anonymous, authenticated, owner, admin, and super_admin. Keep business-specific rules in the repo so CI can enforce them.
authlegacy
high Legacy security auth conf 0.66 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: GET /users/settings.
Define whether this endpoint is admin-only or super_admin-only, then enforce that distinction in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:123 authlegacy
high Legacy security auth conf 0.66 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: GET /users/settings/confirm-email/:token.
Define whether this endpoint is admin-only or super_admin-only, then enforce that distinction in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:125 authlegacy
high Legacy security auth conf 0.66 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: POST /gift/redeem/:token.
Define whether this endpoint is admin-only or super_admin-only, then enforce that distinction in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:104 authlegacy
high Legacy security auth conf 0.66 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: PUT /users/settings.
Define whether this endpoint is admin-only or super_admin-only, then enforce that distinction in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:124 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /gift/claim/:token.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:91 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /gift/redeem/:token.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:90 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /invitations/:token.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:93 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /subscribe.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:85 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /subscribe/paypal/cancel.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:88 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /subscribe/paypal/return.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:87 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /users/log-in.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:95 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: GET /users/log-in/:token.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:96 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: POST /subscribe/resume.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:86 authlegacy
high Legacy security auth conf 0.68 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: POST /users/log-in.
Require an explicit admin, maintainer, super_admin, or scoped service role in code and .repobility/access.yml.
lib/romp_crm_web/router.ex:97 authlegacy
low Legacy security auth conf 0.76 [AUC005] No authorization-focused tests detected: No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
Add regression tests for anonymous denial, cross-user object denial, admin role limits, and super_admin-only behavior.
authlegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm_web/live/time_log_live.ex:35 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm_web/live/my_timeclock_live.ex:122 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/time_tracking/time_entry.ex:46 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/reminder_scheduler.ex:8 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/businesses/notifier.ex:6 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_unified_inbound_extractor/deterministic_stub.ex:215 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_unified_inbound_extractor/anthropic.ex:77 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_unified_inbound_extractor/anthropic.ex:56 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_unified_inbound_extractor/anthropic.ex:55 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_time_extractor/deterministic_stub.ex:36 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_time_extractor/anthropic.ex:23 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_time_extractor.ex:98 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_time_extractor.ex:35 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_job_extractor/anthropic.ex:21 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/romp_crm/ai/sms_job_extractor.ex:72 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
lib/mix/tasks/twilio.configure_voice.ex:55 qualitylegacy
low Legacy quality quality conf 0.74 robots.txt does not advertise a sitemap
Add `Sitemap: https://your-domain.example/sitemap.xml` to robots.txt.
priv/static/robots-9e2c81b0855bbff2baa8371bc4a78186.txt qualitylegacy
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/7c7c145b-47a4-485b-b4b5-e7ae91f6aa71/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/7c7c145b-47a4-485b-b4b5-e7ae91f6aa71/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.