https://github.com/cjjutba/soloist
· scanned 2026-06-17 01:49 UTC (1 month, 1 week ago)
90 raw signals (0 security + 90 graph)
Last scanned 1 month, 1 week ago · v2 · last Δ -0.3 (diff) · 90 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1598 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 |
|---|---|---|---|
sentry.edge.config.ts |
software | healthy | sentry.edge.config.ts |
.env.example |
software | healthy | .env.example |
vitest.config.ts |
software | healthy | vitest.config.ts |
sentry.server.config.ts |
software | healthy | sentry.server.config.ts |
vercel.json |
software | healthy | vercel.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
package-lock.json |
software | healthy | package-lock.json |
drizzle.config.ts |
software | healthy | drizzle.config.ts |
README.md |
software | healthy | README.md |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
instrumentation.ts |
software | healthy | instrumentation.ts |
instrumentation-client.ts |
software | healthy | instrumentation-client.ts |
docker-compose.yml |
software | healthy | docker-compose.yml |
package.json |
software | healthy | package.json |
next.config.ts |
software | healthy | next.config.ts |
components.json |
software | healthy | components.json |
next-env.d.ts |
software | healthy | next-env.d.ts |
tsconfig.json |
software | healthy | tsconfig.json |
config.user.toml |
software | healthy | _bmad/config.user.toml |
config.toml |
software | healthy | _bmad/config.toml |
manifest.yaml |
software | healthy | _bmad/_config/manifest.yaml |
config.toml |
software | healthy | _bmad/custom/config.toml |
resolve_config.py |
software | healthy | _bmad/scripts/resolve_config.py |
resolve_customization.py |
software | healthy | _bmad/scripts/resolve_customization.py |
test_resolve_customization.py |
software | healthy | _bmad/scripts/tests/test_resolve_customization.py |
config.yaml |
software | healthy | _bmad/bmm/config.yaml |
config.yaml |
software | healthy | _bmad/core/config.yaml |
ci.yml |
software | healthy | .github/workflows/ci.yml |
env.ts |
software | healthy | src/env.ts |
not-found.tsx |
software | healthy | src/app/not-found.tsx |
global-error.tsx |
software | healthy | src/app/global-error.tsx |
globals.css |
software | healthy | src/app/globals.css |
providers.tsx |
software | healthy | src/app/providers.tsx |
layout.tsx |
software | healthy | src/app/layout.tsx |
page.tsx |
software | healthy | src/app/page.tsx |
layout.tsx |
software | healthy | src/app/app/layout.tsx |
logout-button.tsx |
software | healthy | src/app/app/logout-button.tsx |
page.tsx |
software | healthy | src/app/app/page.tsx |
settings-nav.tsx |
software | healthy | src/app/app/settings/settings-nav.tsx |
layout.tsx |
software | healthy | src/app/app/settings/layout.tsx |
page.tsx |
software | healthy | src/app/app/settings/account/page.tsx |
account-form.tsx |
software | healthy | src/app/app/settings/account/account-form.tsx |
branding-form.tsx |
software | healthy | src/app/app/settings/branding/branding-form.tsx |
page.tsx |
software | healthy | src/app/app/settings/branding/page.tsx |
page.tsx |
software | healthy | src/app/app/settings/github/setup/page.tsx |
archive-button.tsx |
software | healthy | src/app/app/engagements/archive-button.tsx |
engagement-form.tsx |
software | healthy | src/app/app/engagements/engagement-form.tsx |
keyboard.ts |
software | healthy | src/app/app/engagements/[id]/(detail)/keyboard.ts |
curation-queue.tsx |
software | healthy | src/app/app/engagements/[id]/(detail)/curation-queue.tsx |
cockpit-realtime.tsx |
software | healthy | src/app/app/engagements/[id]/(detail)/cockpit-realtime.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
register |
software | healthy | instrumentation.ts:register |
load_toml |
software | healthy | _bmad/scripts/resolve_config.py:45 |
_detect_keyed_merge_field |
software | healthy | _bmad/scripts/resolve_config.py:71 |
_merge_by_key |
software | healthy | _bmad/scripts/resolve_config.py:80 |
_merge_arrays |
software | healthy | _bmad/scripts/resolve_config.py:103 |
deep_merge |
software | healthy | _bmad/scripts/resolve_config.py:112 |
extract_key |
software | healthy | _bmad/scripts/resolve_config.py:126 |
main |
software | healthy | _bmad/scripts/resolve_config.py:137 |
find_project_root |
software | healthy | _bmad/scripts/resolve_customization.py:56 |
load_toml |
software | healthy | _bmad/scripts/resolve_customization.py:67 |
_detect_keyed_merge_field |
software | healthy | _bmad/scripts/resolve_customization.py:96 |
_merge_by_key |
software | healthy | _bmad/scripts/resolve_customization.py:113 |
_merge_arrays |
software | healthy | _bmad/scripts/resolve_customization.py:139 |
deep_merge |
software | healthy | _bmad/scripts/resolve_customization.py:150 |
extract_key |
software | healthy | _bmad/scripts/resolve_customization.py:169 |
write_json_stdout |
software | healthy | _bmad/scripts/resolve_customization.py:180 |
main |
software | healthy | _bmad/scripts/resolve_customization.py:188 |
test_writes_emoji_json_when_stdout_encoding_is_cp1252 |
software | healthy | _bmad/scripts/tests/test_resolve_customization.py:14 |
NotFound |
software | healthy | src/app/not-found.tsx:NotFound |
GlobalError |
software | healthy | src/app/global-error.tsx:GlobalError |
Providers |
software | healthy | src/app/providers.tsx:Providers |
RootLayout |
software | healthy | src/app/layout.tsx:RootLayout |
LandingPage |
software | healthy | src/app/page.tsx:LandingPage |
AppLayout |
software | healthy | src/app/app/layout.tsx:AppLayout |
LogoutButton |
software | healthy | src/app/app/logout-button.tsx:LogoutButton |
onLogout |
software | healthy | src/app/app/logout-button.tsx:onLogout |
CockpitPage |
software | healthy | src/app/app/page.tsx:CockpitPage |
SettingsNav |
software | healthy | src/app/app/settings/settings-nav.tsx:SettingsNav |
SettingsLayout |
software | healthy | src/app/app/settings/layout.tsx:SettingsLayout |
AccountSettingsPage |
software | healthy | src/app/app/settings/account/page.tsx:AccountSettingsPage |
AccountForm |
software | healthy | src/app/app/settings/account/account-form.tsx:AccountForm |
NameForm |
software | healthy | src/app/app/settings/account/account-form.tsx:NameForm |
onSubmit |
software | healthy | src/app/app/settings/account/account-form.tsx:onSubmit |
EmailForm |
software | healthy | src/app/app/settings/account/account-form.tsx:EmailForm |
PasswordForm |
software | healthy | src/app/app/settings/account/account-form.tsx:PasswordForm |
BrandingForm |
software | healthy | src/app/app/settings/branding/branding-form.tsx:BrandingForm |
onSaveAccent |
software | healthy | src/app/app/settings/branding/branding-form.tsx:onSaveAccent |
onUploadLogo |
software | healthy | src/app/app/settings/branding/branding-form.tsx:onUploadLogo |
BrandingSettingsPage |
software | healthy | src/app/app/settings/branding/page.tsx:BrandingSettingsPage |
GithubSetupPage |
software | healthy | src/app/app/settings/github/setup/page.tsx:GithubSetupPage |
fail |
software | healthy | src/app/app/settings/github/setup/page.tsx:fail |
ArchiveButton |
software | healthy | src/app/app/engagements/archive-button.tsx:ArchiveButton |
onArchive |
software | healthy | src/app/app/engagements/archive-button.tsx:onArchive |
EngagementForm |
software | healthy | src/app/app/engagements/engagement-form.tsx:EngagementForm |
onSubmit |
software | healthy | src/app/app/engagements/engagement-form.tsx:onSubmit |
isEditableTarget |
software | healthy | src/app/app/engagements/[id]/(detail)/keyboard.ts:isEditabl… |
t |
software | healthy | src/app/app/engagements/[id]/(detail)/keyboard.ts:t |
nextIndex |
software | healthy | src/app/app/engagements/[id]/(detail)/keyboard.ts:nextIndex |
CurationQueue |
software | healthy | src/app/app/engagements/[id]/(detail)/curation-queue.tsx:Cu… |
onKey |
software | healthy | src/app/app/engagements/[id]/(detail)/curation-queue.tsx:on… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_bmad |
software | healthy | _bmad |
_config |
software | healthy | _bmad/_config |
custom |
software | healthy | _bmad/custom |
scripts |
software | healthy | _bmad/scripts |
tests |
software | healthy | _bmad/scripts/tests |
bmm |
software | healthy | _bmad/bmm |
core |
software | healthy | _bmad/core |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
app |
software | healthy | src/app |
app |
software | healthy | src/app/app |
settings |
software | healthy | src/app/app/settings |
account |
software | healthy | src/app/app/settings/account |
branding |
software | healthy | src/app/app/settings/branding |
github |
software | healthy | src/app/app/settings/github |
setup |
software | healthy | src/app/app/settings/github/setup |
engagements |
software | healthy | src/app/app/engagements |
[id] |
software | healthy | src/app/app/engagements/[id] |
(detail) |
software | healthy | src/app/app/engagements/[id]/(detail) |
messages |
software | healthy | src/app/app/engagements/[id]/(detail)/messages |
client |
software | healthy | src/app/app/engagements/[id]/(detail)/client |
repos |
software | healthy | src/app/app/engagements/[id]/(detail)/repos |
__tests__ |
software | healthy | src/app/app/engagements/[id]/(detail)/__tests__ |
documents |
software | healthy | src/app/app/engagements/[id]/(detail)/documents |
[invoiceId] |
software | healthy | src/app/app/engagements/[id]/(detail)/documents/[invoiceId] |
edit |
software | healthy | src/app/app/engagements/[id]/edit |
new |
software | healthy | src/app/app/engagements/new |
api |
software | healthy | src/app/api |
inngest |
software | healthy | src/app/api/inngest |
chat |
software | healthy | src/app/api/chat |
[engagementId] |
software | healthy | src/app/api/chat/[engagementId] |
__tests__ |
software | healthy | src/app/api/chat/[engagementId]/__tests__ |
auth |
software | healthy | src/app/api/auth |
[...all] |
software | healthy | src/app/api/auth/[...all] |
feed |
software | healthy | src/app/api/feed |
[engagementId] |
software | healthy | src/app/api/feed/[engagementId] |
__tests__ |
software | healthy | src/app/api/feed/[engagementId]/__tests__ |
webhooks |
software | healthy | src/app/api/webhooks |
github |
software | healthy | src/app/api/webhooks/github |
__tests__ |
software | healthy | src/app/api/webhooks/github/__tests__ |
notifications |
software | healthy | src/app/api/notifications |
__tests__ |
software | healthy | src/app/api/notifications/__tests__ |
realtime |
software | healthy | src/app/api/realtime |
token |
software | healthy | src/app/api/realtime/token |
__tests__ |
software | healthy | src/app/api/realtime/token/__tests__ |
invoices |
software | healthy | src/app/api/invoices |
[invoiceId] |
software | healthy | src/app/api/invoices/[invoiceId] |
pdf |
software | healthy | src/app/api/invoices/[invoiceId]/pdf |
__tests__ |
software | healthy | src/app/api/invoices/[invoiceId]/pdf/__tests__ |
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 |
/app |
frontend | healthy | src/app/app/page.tsx |
/app/settings/account |
frontend | healthy | src/app/app/settings/account/page.tsx |
/app/settings/branding |
frontend | healthy | src/app/app/settings/branding/page.tsx |
/app/settings/github/setup |
frontend | healthy | src/app/app/settings/github/setup/page.tsx |
/app/engagements/[id]/(detail) |
frontend | healthy | src/app/app/engagements/[id]/(detail)/page.tsx |
/app/engagements/[id]/(detail)/messages |
frontend | healthy | src/app/app/engagements/[id]/(detail)/messages/page.tsx |
/app/engagements/[id]/(detail)/client |
frontend | healthy | src/app/app/engagements/[id]/(detail)/client/page.tsx |
/app/engagements/[id]/(detail)/repos |
frontend | healthy | src/app/app/engagements/[id]/(detail)/repos/page.tsx |
/app/engagements/[id]/(detail)/documents |
frontend | healthy | src/app/app/engagements/[id]/(detail)/documents/page.tsx |
/app/engagements/[id]/(detail)/documents/[invoiceId] |
frontend | healthy | src/app/app/engagements/[id]/(detail)/documents/[invoiceId]… |
/app/engagements/[id]/edit |
frontend | healthy | src/app/app/engagements/[id]/edit/page.tsx |
/app/engagements/new |
frontend | healthy | src/app/app/engagements/new/page.tsx |
/invite/[token] |
frontend | healthy | src/app/invite/[token]/page.tsx |
/portal/(shell) |
frontend | healthy | src/app/portal/(shell)/page.tsx |
/portal/(shell)/messages |
frontend | healthy | src/app/portal/(shell)/messages/page.tsx |
/portal/(shell)/settings |
frontend | healthy | src/app/portal/(shell)/settings/page.tsx |
/portal/(shell)/notifications |
frontend | healthy | src/app/portal/(shell)/notifications/page.tsx |
/portal/(shell)/documents |
frontend | healthy | src/app/portal/(shell)/documents/page.tsx |
/portal/(shell)/documents/[invoiceId] |
frontend | healthy | src/app/portal/(shell)/documents/[invoiceId]/page.tsx |
/portal/onboarding |
frontend | healthy | src/app/portal/onboarding/page.tsx |
/(auth)/login |
frontend | healthy | src/app/(auth)/login/page.tsx |
/(auth)/signup |
frontend | healthy | src/app/(auth)/signup/page.tsx |
/(auth)/reset-password |
frontend | healthy | src/app/(auth)/reset-password/page.tsx |
/(auth)/forgot-password |
frontend | healthy | src/app/(auth)/forgot-password/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
messages |
data | healthy | drizzle/0018_marvelous_hydra.sql |
branding |
data | healthy | drizzle/0000_clean_hellcat.sql |
tenants |
data | healthy | drizzle/0000_clean_hellcat.sql |
notifications |
data | healthy | drizzle/0012_awesome_skreet.sql |
invoices |
data | healthy | drizzle/0014_wise_goliath.sql |
invitations |
data | healthy | drizzle/0005_heavy_red_skull.sql |
client_access |
data | healthy | drizzle/0006_famous_reptil.sql |
repo_connections |
data | healthy | drizzle/0009_ancient_maggott.sql |
github_installations |
data | healthy | drizzle/0010_modern_chimera.sql |
account |
data | healthy | drizzle/0003_clumsy_tombstone.sql |
session |
data | healthy | drizzle/0003_clumsy_tombstone.sql |
user |
data | healthy | drizzle/0003_clumsy_tombstone.sql |
verification |
data | healthy | drizzle/0003_clumsy_tombstone.sql |
ship_updates |
data | healthy | drizzle/0008_clean_albert_cleary.sql |
webhook_events |
data | healthy | drizzle/0008_clean_albert_cleary.sql |
engagements |
data | healthy | drizzle/0004_youthful_ben_urich.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
NotFound |
frontend | healthy | src/app/not-found.tsx |
GlobalError |
frontend | healthy | src/app/global-error.tsx |
RootLayout |
frontend | healthy | src/app/layout.tsx |
SettingsLayout |
frontend | healthy | src/app/app/settings/layout.tsx |
AuthLayout |
frontend | healthy | src/app/(auth)/layout.tsx |
LoginPage |
frontend | healthy | src/app/(auth)/login/page.tsx |
SignUpPage |
frontend | healthy | src/app/(auth)/signup/page.tsx |
ForgotPasswordPage |
frontend | healthy | src/app/(auth)/forgot-password/page.tsx |
ShipPublishedEmail |
frontend | healthy | src/emails/ship-published-email.tsx |
VerifyEmail |
frontend | healthy | src/emails/verify-email.tsx |
InvoiceSentEmail |
frontend | healthy | src/emails/invoice-sent-email.tsx |
ResetPasswordEmail |
frontend | healthy | src/emails/reset-password-email.tsx |
InviteEmail |
frontend | healthy | src/emails/invite-email.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/accept-invite.t… |
security | healthy | src/server/auth/__tests__/accept-invite.test.ts |
password_literal::src/server/auth/__tests__/sign-up.test.ts |
security | healthy | src/server/auth/__tests__/sign-up.test.ts |
password_literal::src/server/auth/__tests__/sign-up.test.ts |
security | healthy | src/server/auth/__tests__/sign-up.test.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8027 |
network | healthy | docker-compose.yml |
port:8025 |
network | healthy | docker-compose.yml |
port:1027 |
network | healthy | docker-compose.yml |
port:1025 |
network | healthy | docker-compose.yml |
port:04 |
network | healthy | _bmad/_config/manifest.yaml |
port:29 |
network | healthy | _bmad/_config/manifest.yaml |
port:2525 |
network | healthy | src/server/email/__tests__/mailer.test.ts |
port:21 |
network | healthy | .claude/skills/bmad-sprint-planning/sprint-status-template.… |
port:30 |
network | healthy | .claude/skills/bmad-sprint-planning/sprint-status-template.… |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/app/app/settings/github/setup/page.tsx |
security | healthy | src/app/app/settings/github/setup/page.tsx |
auth::src/server/db/repositories/github-installations.repos… |
security | healthy | src/server/db/repositories/github-installations.repository.… |
auth::.claude/skills/bmad-quick-dev/SKILL.md |
security | healthy | .claude/skills/bmad-quick-dev/SKILL.md |
auth::src/env.ts |
security | healthy | src/env.ts |
auth::src/server/github/install-url.ts |
security | healthy | src/server/github/install-url.ts |
auth::src/server/repo-connections/repo-connections.actions.… |
security | healthy | src/server/repo-connections/repo-connections.actions.ts |
auth::src/server/github/__tests__/app.test.ts |
security | healthy | src/server/github/__tests__/app.test.ts |
auth::src/server/github/app.ts |
security | healthy | src/server/github/app.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
ResolveCustomizationStdoutTests |
software | healthy | _bmad/scripts/tests/test_resolve_customization.py:13 |
SlugTakenError |
software | healthy | src/server/auth/__tests__/sign-up.test.ts:SlugTakenError |
AlreadyProvisionedError |
software | healthy | src/server/auth/__tests__/sign-up.test.ts:AlreadyProvisione… |
InvitationAlreadyAcceptedError |
software | healthy | src/server/db/repositories/client-access.repository.ts:Invi… |
SlugTakenError |
software | healthy | src/server/db/repositories/tenants.repository.ts:SlugTakenE… |
AlreadyProvisionedError |
software | healthy | src/server/db/repositories/tenants.repository.ts:AlreadyPro… |
ScannerTest |
software | healthy | .claude/skills/bmad-customize/scripts/tests/test_list_custo… |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | .env.example |
postgresql |
data | healthy | .env.example |
sqlite |
data | healthy | next.config.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | .env.example |
vps::gcp |
hardware | healthy | .claude/skills/bmad-agent-ux-designer/customize.toml |
vps::azure |
hardware | healthy | .claude/skills/bmad-agent-ux-designer/customize.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
cjjutba__soloist |
software | healthy | /data/fable5_failed_archive/cjjutba__soloist |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | src/server/auth/trusted-origins.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
mailpit |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
verify |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/d9b9aec8-9f6d-4c8d-a1b9-83926e0efa7b/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/d9b9aec8-9f6d-4c8d-a1b9-83926e0efa7b/
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.