https://github.com/anthr0pix/concrete-crm
· scanned 2026-06-17 01:33 UTC (1 month, 2 weeks ago)
41 raw signals (0 security + 41 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ +2.2 (diff) · 41 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 939 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
middleware |
software | healthy | src/middleware.ts:middleware |
NotFoundPage |
software | healthy | src/app/not-found.tsx:NotFoundPage |
ErrorPage |
software | healthy | src/app/error.tsx:ErrorPage |
RootLayout |
software | healthy | src/app/layout.tsx:RootLayout |
Home |
software | healthy | src/app/page.tsx:Home |
DashboardLoading |
software | healthy | src/app/dashboard/loading.tsx:DashboardLoading |
getGreeting |
software | healthy | src/app/dashboard/page.tsx:getGreeting |
DashboardPage |
software | healthy | src/app/dashboard/page.tsx:DashboardPage |
activeJobs |
software | healthy | src/app/dashboard/page.tsx:activeJobs |
fmt |
software | healthy | src/app/dashboard/page.tsx:fmt |
LoginPage |
software | healthy | src/app/login/page.tsx:LoginPage |
onSubmit |
software | healthy | src/app/login/page.tsx:onSubmit |
getMonthRange |
software | healthy | src/app/api/dashboard/profitability/route.ts:getMonthRange |
getMonthData |
software | healthy | src/app/api/dashboard/profitability/route.ts:getMonthData |
GET |
software | healthy | src/app/api/dashboard/profitability/route.ts:GET |
POST |
software | healthy | src/app/api/square/deposit/route.ts:POST |
POST |
software | healthy | src/app/api/square/checkout/route.ts:POST |
verifySquareWebhook |
software | healthy | src/app/api/square/webhook/route.ts:verifySquareWebhook |
POST |
software | healthy | src/app/api/square/webhook/route.ts:POST |
sendPaymentConfirmationEmail |
software | healthy | src/app/api/square/webhook/route.ts:sendPaymentConfirmation… |
sendDepositConfirmationEmail |
software | healthy | src/app/api/square/webhook/route.ts:sendDepositConfirmation… |
GET |
software | healthy | src/app/api/cron/quote-followup/route.ts:GET |
followUpDays |
software | healthy | src/app/api/cron/quote-followup/route.ts:followUpDays |
GET |
software | healthy | src/app/api/cron/review-requests/route.ts:GET |
GET |
software | healthy | src/app/api/cron/reseal-reminders/route.ts:GET |
GET |
software | healthy | src/app/api/jobs/route.ts:GET |
POST |
software | healthy | src/app/api/jobs/route.ts:POST |
GET |
software | healthy | src/app/api/jobs/[id]/route.ts:GET |
PATCH |
software | healthy | src/app/api/jobs/[id]/route.ts:PATCH |
DELETE |
software | healthy | src/app/api/jobs/[id]/route.ts:DELETE |
POST |
software | healthy | src/app/api/jobs/[id]/photos/route.ts:POST |
DELETE |
software | healthy | src/app/api/jobs/[id]/photos/route.ts:DELETE |
PATCH |
software | healthy | src/app/api/jobs/[id]/reschedule/route.ts:PATCH |
GET |
software | healthy | src/app/api/expenses/route.ts:GET |
POST |
software | healthy | src/app/api/expenses/route.ts:POST |
GET |
software | healthy | src/app/api/expenses/[id]/route.ts:GET |
PATCH |
software | healthy | src/app/api/expenses/[id]/route.ts:PATCH |
DELETE |
software | healthy | src/app/api/expenses/[id]/route.ts:DELETE |
GET |
software | healthy | src/app/api/outreach/route.ts:GET |
POST |
software | healthy | src/app/api/outreach/route.ts:POST |
GET |
software | healthy | src/app/api/outreach/[id]/route.ts:GET |
PATCH |
software | healthy | src/app/api/outreach/[id]/route.ts:PATCH |
DELETE |
software | healthy | src/app/api/outreach/[id]/route.ts:DELETE |
GET |
software | healthy | src/app/api/outreach/[id]/notes/route.ts:GET |
POST |
software | healthy | src/app/api/outreach/[id]/notes/route.ts:POST |
POST |
software | healthy | src/app/api/outreach/import/route.ts:POST |
escapeCSV |
software | healthy | src/app/api/reports/export/route.ts:escapeCSV |
toCSV |
software | healthy | src/app/api/reports/export/route.ts:toCSV |
GET |
software | healthy | src/app/api/reports/export/route.ts:GET |
GET |
software | healthy | src/app/api/reports/profit-loss/route.ts:GET |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
prisma.config.ts |
software | healthy | prisma.config.ts |
CLAUDE.md |
software | healthy | CLAUDE.md |
vercel.json |
software | healthy | vercel.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
package-lock.json |
software | healthy | package-lock.json |
README.md |
software | healthy | README.md |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
package.json |
software | healthy | package.json |
next.config.ts |
software | healthy | next.config.ts |
components.json |
software | healthy | components.json |
tsconfig.json |
software | healthy | tsconfig.json |
middleware.ts |
software | healthy | src/middleware.ts |
not-found.tsx |
software | healthy | src/app/not-found.tsx |
error.tsx |
software | healthy | src/app/error.tsx |
globals.css |
software | healthy | src/app/globals.css |
layout.tsx |
software | healthy | src/app/layout.tsx |
page.tsx |
software | healthy | src/app/page.tsx |
loading.tsx |
software | healthy | src/app/dashboard/loading.tsx |
page.tsx |
software | healthy | src/app/dashboard/page.tsx |
page.tsx |
software | healthy | src/app/login/page.tsx |
route.ts |
software | healthy | src/app/api/dashboard/profitability/route.ts |
route.ts |
software | healthy | src/app/api/square/deposit/route.ts |
route.ts |
software | healthy | src/app/api/square/checkout/route.ts |
route.ts |
software | healthy | src/app/api/square/webhook/route.ts |
route.ts |
software | healthy | src/app/api/cron/quote-followup/route.ts |
route.ts |
software | healthy | src/app/api/cron/review-requests/route.ts |
route.ts |
software | healthy | src/app/api/cron/reseal-reminders/route.ts |
route.ts |
software | healthy | src/app/api/jobs/route.ts |
route.ts |
software | healthy | src/app/api/jobs/[id]/route.ts |
route.ts |
software | healthy | src/app/api/jobs/[id]/photos/route.ts |
route.ts |
software | healthy | src/app/api/jobs/[id]/reschedule/route.ts |
route.ts |
software | healthy | src/app/api/expenses/route.ts |
route.ts |
software | healthy | src/app/api/expenses/[id]/route.ts |
route.ts |
software | healthy | src/app/api/outreach/route.ts |
route.ts |
software | healthy | src/app/api/outreach/[id]/route.ts |
route.ts |
software | healthy | src/app/api/outreach/[id]/notes/route.ts |
route.ts |
software | healthy | src/app/api/outreach/import/route.ts |
route.ts |
software | healthy | src/app/api/reports/export/route.ts |
route.ts |
software | healthy | src/app/api/reports/profit-loss/route.ts |
route.ts |
software | healthy | src/app/api/reports/ar-aging/route.ts |
route.ts |
software | healthy | src/app/api/reports/revenue-by-service/route.ts |
route.ts |
software | healthy | src/app/api/reports/tax-summary/route.ts |
route.ts |
software | healthy | src/app/api/auth/login/route.ts |
route.ts |
software | healthy | src/app/api/auth/logout/route.ts |
route.ts |
software | healthy | src/app/api/customers/route.ts |
route.ts |
software | healthy | src/app/api/customers/[id]/route.ts |
route.ts |
software | healthy | src/app/api/search/route.ts |
route.ts |
software | healthy | src/app/api/settings/route.ts |
route.ts |
software | healthy | src/app/api/portal/[token]/deposit/route.ts |
route.ts |
software | healthy | src/app/api/portal/[token]/decline/route.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
src |
software | healthy | src |
app |
software | healthy | src/app |
dashboard |
software | healthy | src/app/dashboard |
login |
software | healthy | src/app/login |
api |
software | healthy | src/app/api |
dashboard |
software | healthy | src/app/api/dashboard |
profitability |
software | healthy | src/app/api/dashboard/profitability |
square |
software | healthy | src/app/api/square |
deposit |
software | healthy | src/app/api/square/deposit |
checkout |
software | healthy | src/app/api/square/checkout |
webhook |
software | healthy | src/app/api/square/webhook |
cron |
software | healthy | src/app/api/cron |
quote-followup |
software | healthy | src/app/api/cron/quote-followup |
review-requests |
software | healthy | src/app/api/cron/review-requests |
reseal-reminders |
software | healthy | src/app/api/cron/reseal-reminders |
jobs |
software | healthy | src/app/api/jobs |
[id] |
software | healthy | src/app/api/jobs/[id] |
photos |
software | healthy | src/app/api/jobs/[id]/photos |
reschedule |
software | healthy | src/app/api/jobs/[id]/reschedule |
expenses |
software | healthy | src/app/api/expenses |
[id] |
software | healthy | src/app/api/expenses/[id] |
outreach |
software | healthy | src/app/api/outreach |
[id] |
software | healthy | src/app/api/outreach/[id] |
notes |
software | healthy | src/app/api/outreach/[id]/notes |
import |
software | healthy | src/app/api/outreach/import |
reports |
software | healthy | src/app/api/reports |
export |
software | healthy | src/app/api/reports/export |
profit-loss |
software | healthy | src/app/api/reports/profit-loss |
ar-aging |
software | healthy | src/app/api/reports/ar-aging |
revenue-by-service |
software | healthy | src/app/api/reports/revenue-by-service |
tax-summary |
software | healthy | src/app/api/reports/tax-summary |
auth |
software | healthy | src/app/api/auth |
login |
software | healthy | src/app/api/auth/login |
logout |
software | healthy | src/app/api/auth/logout |
customers |
software | healthy | src/app/api/customers |
[id] |
software | healthy | src/app/api/customers/[id] |
search |
software | healthy | src/app/api/search |
settings |
software | healthy | src/app/api/settings |
portal |
software | healthy | src/app/api/portal |
[token] |
software | healthy | src/app/api/portal/[token] |
deposit |
software | healthy | src/app/api/portal/[token]/deposit |
decline |
software | healthy | src/app/api/portal/[token]/decline |
approve |
software | healthy | src/app/api/portal/[token]/approve |
pay |
software | healthy | src/app/api/portal/[token]/pay |
request-changes |
software | healthy | src/app/api/portal/[token]/request-changes |
quotes |
software | healthy | src/app/api/quotes |
[id] |
software | healthy | src/app/api/quotes/[id] |
pdf |
software | healthy | src/app/api/quotes/[id]/pdf |
send |
software | healthy | src/app/api/quotes/[id]/send |
duplicate |
software | healthy | src/app/api/quotes/[id]/duplicate |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
NotFoundPage |
frontend | healthy | src/app/not-found.tsx |
ErrorPage |
frontend | healthy | src/app/error.tsx |
RootLayout |
frontend | healthy | src/app/layout.tsx |
Home |
frontend | healthy | src/app/page.tsx |
DashboardLoading |
frontend | healthy | src/app/dashboard/loading.tsx |
LoginPage |
frontend | healthy | src/app/login/page.tsx |
JobsLoading |
frontend | healthy | src/app/jobs/loading.tsx |
JobDetailLoading |
frontend | healthy | src/app/jobs/[id]/loading.tsx |
ExpensesLoading |
frontend | healthy | src/app/expenses/loading.tsx |
OutreachLoading |
frontend | healthy | src/app/outreach/loading.tsx |
NewOutreachPage |
frontend | healthy | src/app/outreach/new/page.tsx |
ReportsLoading |
frontend | healthy | src/app/reports/loading.tsx |
CustomersLoading |
frontend | healthy | src/app/customers/loading.tsx |
CustomerDetailLoading |
frontend | healthy | src/app/customers/[id]/loading.tsx |
NewCustomerPage |
frontend | healthy | src/app/customers/new/page.tsx |
PipelineLoading |
frontend | healthy | src/app/pipeline/loading.tsx |
SettingsLoading |
frontend | healthy | src/app/settings/loading.tsx |
DeclineQuoteButton |
frontend | healthy | src/app/portal/[token]/DeclineQuoteButton.tsx |
RequestChangesButton |
frontend | healthy | src/app/portal/[token]/RequestChangesButton.tsx |
ApproveQuoteButton |
frontend | healthy | src/app/portal/[token]/ApproveQuoteButton.tsx |
QuotesLoading |
frontend | healthy | src/app/quotes/loading.tsx |
QuoteDetailLoading |
frontend | healthy | src/app/quotes/[id]/loading.tsx |
ScheduleLoading |
frontend | healthy | src/app/schedule/loading.tsx |
InvoicesLoading |
frontend | healthy | src/app/invoices/loading.tsx |
InvoiceDetailLoading |
frontend | healthy | src/app/invoices/[id]/loading.tsx |
CommandPalette |
frontend | healthy | src/components/CommandPalette.tsx |
JobForm |
frontend | healthy | src/components/jobs/JobForm.tsx |
JobStatusSelect |
frontend | healthy | src/components/jobs/JobStatusSelect.tsx |
MarkCompleteButton |
frontend | healthy | src/components/jobs/MarkCompleteButton.tsx |
PhotoUpload |
frontend | healthy | src/components/jobs/PhotoUpload.tsx |
DeleteJobButton |
frontend | healthy | src/components/jobs/DeleteJobButton.tsx |
JobDetailActions |
frontend | healthy | src/components/jobs/JobDetailActions.tsx |
JobProgressBar |
frontend | healthy | src/components/jobs/JobProgressBar.tsx |
JobCostingSection |
frontend | healthy | src/components/jobs/JobCostingSection.tsx |
ExpenseTable |
frontend | healthy | src/components/expenses/ExpenseTable.tsx |
ExpenseForm |
frontend | healthy | src/components/expenses/ExpenseForm.tsx |
AppShell |
frontend | healthy | src/components/layout/AppShell.tsx |
Breadcrumbs |
frontend | healthy | src/components/layout/Breadcrumbs.tsx |
Sidebar |
frontend | healthy | src/components/layout/Sidebar.tsx |
MobileBottomNav |
frontend | healthy | src/components/layout/MobileBottomNav.tsx |
OutreachFollowUp |
frontend | healthy | src/components/outreach/OutreachFollowUp.tsx |
OutreachQuickActions |
frontend | healthy | src/components/outreach/OutreachQuickActions.tsx |
ImportCSVButton |
frontend | healthy | src/components/outreach/ImportCSVButton.tsx |
OutreachColumn |
frontend | healthy | src/components/outreach/OutreachColumn.tsx |
OutreachStatusActions |
frontend | healthy | src/components/outreach/OutreachStatusActions.tsx |
OutreachCard |
frontend | healthy | src/components/outreach/OutreachCard.tsx |
OutreachTimeline |
frontend | healthy | src/components/outreach/OutreachTimeline.tsx |
OutreachBoard |
frontend | healthy | src/components/outreach/OutreachBoard.tsx |
OutreachForm |
frontend | healthy | src/components/outreach/OutreachForm.tsx |
OutreachProfileClient |
frontend | healthy | src/components/outreach/OutreachProfileClient.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | src/app/page.tsx |
/dashboard |
frontend | healthy | src/app/dashboard/page.tsx |
/login |
frontend | healthy | src/app/login/page.tsx |
/jobs |
frontend | healthy | src/app/jobs/page.tsx |
/jobs/[id] |
frontend | healthy | src/app/jobs/[id]/page.tsx |
/jobs/[id]/edit |
frontend | healthy | src/app/jobs/[id]/edit/page.tsx |
/jobs/new |
frontend | healthy | src/app/jobs/new/page.tsx |
/expenses |
frontend | healthy | src/app/expenses/page.tsx |
/expenses/new |
frontend | healthy | src/app/expenses/new/page.tsx |
/outreach |
frontend | healthy | src/app/outreach/page.tsx |
/outreach/[id] |
frontend | healthy | src/app/outreach/[id]/page.tsx |
/outreach/[id]/edit |
frontend | healthy | src/app/outreach/[id]/edit/page.tsx |
/outreach/new |
frontend | healthy | src/app/outreach/new/page.tsx |
/reports |
frontend | healthy | src/app/reports/page.tsx |
/customers |
frontend | healthy | src/app/customers/page.tsx |
/customers/[id] |
frontend | healthy | src/app/customers/[id]/page.tsx |
/customers/[id]/edit |
frontend | healthy | src/app/customers/[id]/edit/page.tsx |
/customers/new |
frontend | healthy | src/app/customers/new/page.tsx |
/pipeline |
frontend | healthy | src/app/pipeline/page.tsx |
/settings |
frontend | healthy | src/app/settings/page.tsx |
/portal/[token] |
frontend | healthy | src/app/portal/[token]/page.tsx |
/portal/[token]/payment-cancel |
frontend | healthy | src/app/portal/[token]/payment-cancel/page.tsx |
/portal/[token]/payment-success |
frontend | healthy | src/app/portal/[token]/payment-success/page.tsx |
/quotes |
frontend | healthy | src/app/quotes/page.tsx |
/quotes/[id] |
frontend | healthy | src/app/quotes/[id]/page.tsx |
/quotes/[id]/edit |
frontend | healthy | src/app/quotes/[id]/edit/page.tsx |
/quotes/new |
frontend | healthy | src/app/quotes/new/page.tsx |
/schedule |
frontend | healthy | src/app/schedule/page.tsx |
/invoices |
frontend | healthy | src/app/invoices/page.tsx |
/invoices/[id] |
frontend | healthy | src/app/invoices/[id]/page.tsx |
/invoices/new |
frontend | healthy | src/app/invoices/new/page.tsx |
/crew |
frontend | healthy | src/app/crew/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
Activity |
data | healthy | prisma/migrations/20260327234122_add_activity_log/migration… |
OutreachNote |
data | healthy | prisma/migrations/20260328181514_add_outreach_notes/migrati… |
Customer |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
Job |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
JobPhoto |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
Quote |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
QuoteLineItem |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
Invoice |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
InvoiceLineItem |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
PropertyManager |
data | healthy | prisma/migrations/20260327185154_add_outreach_pipeline/migr… |
PaymentEvent |
data | healthy | prisma/migrations/20260224175408_add_phases_1_to_4/migratio… |
AppSettings |
data | healthy | prisma/migrations/20260224175408_add_phases_1_to_4/migratio… |
Expense |
data | healthy | prisma/migrations/20260224175408_add_phases_1_to_4/migratio… |
| Label | Layer | Status | Path |
|---|---|---|---|
migration.sql |
data | healthy | prisma/migrations/20260327225800_add_contacted_job_status/m… |
migration.sql |
data | healthy | prisma/migrations/20260327234122_add_activity_log/migration… |
migration.sql |
data | healthy | prisma/migrations/20260328181514_add_outreach_notes/migrati… |
migration.sql |
data | healthy | prisma/migrations/20260222061940_init/migration.sql |
migration.sql |
data | healthy | prisma/migrations/20260328204032_add_job_property_manager_l… |
migration.sql |
data | healthy | prisma/migrations/20260417051432_add_quote_service_type/mig… |
migration.sql |
data | healthy | prisma/migrations/20260327185154_add_outreach_pipeline/migr… |
migration.sql |
data | healthy | prisma/migrations/20260307231907_remove_pipeline_stage/migr… |
migration.sql |
data | healthy | prisma/migrations/20260327221757_add_address_to_property_ma… |
migration.sql |
data | healthy | prisma/migrations/20260224175408_add_phases_1_to_4/migratio… |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | CLAUDE.md |
postgresql |
data | healthy | prisma/migrations/migration_lock.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::README.md |
security | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
anthr0pix__concrete-crm |
software | healthy | /data/fable5_failed_archive/anthr0pix__concrete-crm |
| Label | Layer | Status | Path |
|---|---|---|---|
QuoteAlreadyLinkedError |
software | healthy | src/lib/quote-to-job.ts:QuoteAlreadyLinkedError |
This page is publicly accessible at:
https://repobility.com/scan/d14c7874-0c5c-43fb-9052-9827eb661e2e/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/d14c7874-0c5c-43fb-9052-9827eb661e2e/
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.