https://github.com/cainesventures/Common_Ground
· scanned 2026-06-17 01:45 UTC (1 month, 1 week ago)
131 raw signals (0 security + 131 graph)
Last scanned 1 month, 1 week ago · v2 · last Δ -20.3 (diff) · 117 actionable findings from 1 signal source. 14 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1187 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 |
|---|---|---|---|
_validate_startup |
software | healthy | main.py:29 |
log_requests |
software | healthy | main.py:62 |
root |
software | healthy | main.py:96 |
health |
software | healthy | main.py:107 |
health_db |
software | healthy | main.py:113 |
health_ai |
software | healthy | main.py:124 |
_priority_weight |
software | healthy | workers/bluesky_bot.py:53 |
http_post |
software | healthy | workers/bluesky_bot.py:65 |
http_get |
software | healthy | workers/bluesky_bot.py:72 |
bsky_login |
software | healthy | workers/bluesky_bot.py:86 |
bsky_post |
software | healthy | workers/bluesky_bot.py:94 |
record_post |
software | healthy | workers/bluesky_bot.py:132 |
fetch_recent_post_urls |
software | healthy | workers/bluesky_bot.py:153 |
_current_term_start_year |
software | healthy | workers/bluesky_bot.py:176 |
_in_current_term |
software | healthy | workers/bluesky_bot.py:182 |
fetch_spotlight_bill |
software | healthy | workers/bluesky_bot.py:191 |
eligible |
software | healthy | workers/bluesky_bot.py:204 |
post_daily_spotlight |
software | healthy | workers/bluesky_bot.py:238 |
post_weekly_roundup |
software | healthy | workers/bluesky_bot.py:311 |
check_api_health |
software | healthy | workers/bluesky_bot.py:348 |
main |
software | healthy | workers/bluesky_bot.py:362 |
http_get |
software | healthy | workers/bluesky_engagement.py:25 |
http_post |
software | healthy | workers/bluesky_engagement.py:40 |
chunked |
software | healthy | workers/bluesky_engagement.py:52 |
main |
software | healthy | workers/bluesky_engagement.py:57 |
validate_production_secrets |
software | healthy | app/config.py:93 |
get_settings |
software | healthy | app/config.py:105 |
create_access_token |
software | healthy | app/auth.py:26 |
_decode_token |
software | healthy | app/auth.py:36 |
get_current_user |
software | dead | app/auth.py:52 |
require_paid_tier |
software | dead | app/auth.py:75 |
_is_admin_email |
software | healthy | app/auth.py:85 |
require_dev_tier |
software | dead | app/auth.py:96 |
require_bot_token |
software | dead | app/auth.py:106 |
get_optional_user |
software | dead | app/auth.py:126 |
get_office_description |
software | healthy | app/api/election_routes.py:43 |
list_candidates |
software | healthy | app/api/election_routes.py:109 |
create_candidate |
software | healthy | app/api/election_routes.py:127 |
update_candidate |
software | healthy | app/api/election_routes.py:143 |
delete_candidate |
software | healthy | app/api/election_routes.py:161 |
get_predictions |
software | healthy | app/api/election_routes.py:177 |
scrape_candidates |
software | healthy | app/api/election_routes.py:230 |
clear_predictions |
software | healthy | app/api/election_routes.py:291 |
_serialize |
software | healthy | app/api/election_routes.py:310 |
get_config |
software | healthy | app/api/donation_routes.py:26 |
create_checkout |
software | healthy | app/api/donation_routes.py:35 |
get_session |
software | healthy | app/api/donation_routes.py:76 |
stripe_webhook |
software | healthy | app/api/donation_routes.py:95 |
_next_election_year |
software | healthy | app/api/councilmember_routes.py:39 |
get_districts_geojson |
software | healthy | app/api/councilmember_routes.py:52 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
ARCHITECTURE.md |
software | healthy | ARCHITECTURE.md |
litestream.backup-users.yml |
software | healthy | litestream.backup-users.yml |
GETTING_STARTED.md |
software | healthy | GETTING_STARTED.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
fly.toml |
software | healthy | fly.toml |
requirements.txt |
software | healthy | requirements.txt |
README.md |
software | healthy | README.md |
litestream.railway.yml |
software | healthy | litestream.railway.yml |
railway.toml |
software | healthy | railway.toml |
SECURITY.md |
software | healthy | SECURITY.md |
litestream.yml |
software | healthy | litestream.yml |
LICENSE |
software | healthy | LICENSE |
main.py |
software | healthy | main.py |
LOCAL_AI_SETUP.md |
software | healthy | LOCAL_AI_SETUP.md |
Dockerfile |
software | healthy | Dockerfile |
bluesky_bot.py |
software | healthy | workers/bluesky_bot.py |
bluesky_engagement.py |
software | healthy | workers/bluesky_engagement.py |
__init__.py |
software | healthy | app/__init__.py |
config.py |
software | healthy | app/config.py |
rate_limit.py |
software | healthy | app/rate_limit.py |
auth.py |
software | healthy | app/auth.py |
election_routes.py |
software | healthy | app/api/election_routes.py |
donation_routes.py |
software | healthy | app/api/donation_routes.py |
councilmember_routes.py |
software | healthy | app/api/councilmember_routes.py |
hearings_routes.py |
software | healthy | app/api/hearings_routes.py |
legislation_routes.py |
software | healthy | app/api/legislation_routes.py |
user_routes.py |
software | healthy | app/api/user_routes.py |
insights_routes.py |
software | healthy | app/api/insights_routes.py |
__init__.py |
software | healthy | app/api/__init__.py |
metrics_routes.py |
software | healthy | app/api/metrics_routes.py |
auth_routes.py |
software | healthy | app/api/auth_routes.py |
admin_routes.py |
software | healthy | app/api/admin_routes.py |
legistar.py |
software | healthy | app/integrations/legistar.py |
__init__.py |
software | healthy | app/integrations/__init__.py |
open_states.py |
software | healthy | app/integrations/open_states.py |
congress_gov.py |
software | healthy | app/integrations/congress_gov.py |
legistar_scraper.py |
software | healthy | app/integrations/legistar_scraper.py |
__init__.py |
software | healthy | app/models/__init__.py |
database.py |
software | healthy | app/models/database.py |
hearing_service.py |
software | healthy | app/services/hearing_service.py |
name_matching.py |
software | healthy | app/services/name_matching.py |
email_service.py |
software | healthy | app/services/email_service.py |
news_service.py |
software | healthy | app/services/news_service.py |
candidate_scraper.py |
software | healthy | app/services/candidate_scraper.py |
__init__.py |
software | healthy | app/services/__init__.py |
legislation_service.py |
software | healthy | app/services/legislation_service.py |
opendataphilly_service.py |
software | healthy | app/services/opendataphilly_service.py |
election_service.py |
software | healthy | app/services/election_service.py |
bill_research_service.py |
software | healthy | app/services/bill_research_service.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | main.py |
GET /health |
api | healthy | main.py |
GET /health/db |
api | healthy | main.py |
GET /health/ai |
api | healthy | main.py |
GET /office-description |
api | healthy | app/api/election_routes.py |
GET /candidates |
api | healthy | app/api/election_routes.py |
POST /candidates |
api | healthy | app/api/election_routes.py |
PATCH /candidates/{candidate_id} |
api | healthy | app/api/election_routes.py |
DELETE /candidates/{candidate_id} |
api | healthy | app/api/election_routes.py |
GET /predictions |
api | healthy | app/api/election_routes.py |
POST /candidates/scrape |
api | healthy | app/api/election_routes.py |
DELETE /predictions |
api | healthy | app/api/election_routes.py |
GET /config |
api | healthy | app/api/donation_routes.py |
POST /checkout |
api | healthy | app/api/donation_routes.py |
GET /session/{session_id} |
api | healthy | app/api/donation_routes.py |
POST /webhook |
api | healthy | app/api/donation_routes.py |
GET /districts-geojson |
api | healthy | app/api/councilmember_routes.py |
POST /backfill-emails |
api | healthy | app/api/councilmember_routes.py |
POST /scrape |
api | healthy | app/api/councilmember_routes.py |
GET /{member_id} |
api | healthy | app/api/councilmember_routes.py |
GET /{member_id}/legislative-profile |
api | healthy | app/api/councilmember_routes.py |
GET /{member_id}/votes |
api | healthy | app/api/councilmember_routes.py |
POST /{member_id}/vote |
api | healthy | app/api/councilmember_routes.py |
GET /{member_id}/vote-history |
api | healthy | app/api/councilmember_routes.py |
POST /refresh |
api | healthy | app/api/hearings_routes.py |
GET /stream/refresh |
api | healthy | app/api/hearings_routes.py |
GET /upcoming |
api | healthy | app/api/hearings_routes.py |
POST /ingest/federal |
api | healthy | app/api/legislation_routes.py |
POST /ingest/state/{state} |
api | healthy | app/api/legislation_routes.py |
POST /ingest/local/{city} |
api | healthy | app/api/legislation_routes.py |
GET /list |
api | healthy | app/api/legislation_routes.py |
GET /tag-counts |
api | healthy | app/api/legislation_routes.py |
GET /facets |
api | healthy | app/api/legislation_routes.py |
GET /year-counts |
api | healthy | app/api/legislation_routes.py |
GET /month-counts |
api | healthy | app/api/legislation_routes.py |
GET /count |
api | healthy | app/api/legislation_routes.py |
GET /export |
api | healthy | app/api/legislation_routes.py |
GET /sitemap-ids |
api | healthy | app/api/legislation_routes.py |
GET /search |
api | healthy | app/api/legislation_routes.py |
GET /spotlight |
api | healthy | app/api/legislation_routes.py |
GET /pipeline-stats |
api | healthy | app/api/legislation_routes.py |
POST /plain-titles |
api | healthy | app/api/legislation_routes.py |
POST /sync-statuses |
api | healthy | app/api/legislation_routes.py |
POST /tag-all |
api | healthy | app/api/legislation_routes.py |
POST /bluesky/record-post |
api | healthy | app/api/legislation_routes.py |
GET /bluesky/posts-to-track |
api | healthy | app/api/legislation_routes.py |
POST /bluesky/update-engagement |
api | healthy | app/api/legislation_routes.py |
POST /generate-ledes |
api | healthy | app/api/legislation_routes.py |
POST /generate-headlines |
api | healthy | app/api/legislation_routes.py |
POST /fetch-news-all |
api | healthy | app/api/legislation_routes.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
workers |
software | healthy | workers |
app |
software | healthy | app |
api |
software | healthy | app/api |
integrations |
software | healthy | app/integrations |
models |
software | healthy | app/models |
services |
software | healthy | app/services |
tests |
software | healthy | tests |
scripts |
software | healthy | scripts |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
alembic |
software | healthy | alembic |
versions |
software | healthy | alembic/versions |
frontend |
software | healthy | frontend |
app |
software | healthy | frontend/app |
legal |
software | healthy | frontend/app/legal |
about |
software | healthy | frontend/app/about |
dashboard |
software | healthy | frontend/app/dashboard |
[city] |
software | healthy | frontend/app/[city] |
my-bills |
software | healthy | frontend/app/[city]/my-bills |
insights |
software | healthy | frontend/app/[city]/insights |
[year] |
software | healthy | frontend/app/[city]/insights/[year] |
councilmembers |
software | healthy | frontend/app/[city]/councilmembers |
[id] |
software | healthy | frontend/app/[city]/councilmembers/[id] |
legislation |
software | healthy | frontend/app/[city]/legislation |
[id] |
software | healthy | frontend/app/[city]/legislation/[id] |
login |
software | healthy | frontend/app/login |
contexts |
software | healthy | frontend/app/contexts |
admin |
software | healthy | frontend/app/admin |
profile |
software | healthy | frontend/app/profile |
donate |
software | healthy | frontend/app/donate |
success |
software | healthy | frontend/app/donate/success |
auth |
software | healthy | frontend/app/auth |
callback |
software | healthy | frontend/app/auth/callback |
elections |
software | healthy | frontend/app/elections |
pricing |
software | healthy | frontend/app/pricing |
components |
software | healthy | frontend/components |
insights |
software | healthy | frontend/components/insights |
ui |
software | healthy | frontend/components/ui |
lib |
software | healthy | frontend/lib |
.claude |
software | healthy | .claude |
commands |
software | healthy | .claude/commands |
| Label | Layer | Status | Path |
|---|---|---|---|
Settings |
software | healthy | app/config.py:8 |
Config |
software | healthy | app/config.py:98 |
CandidateCreate |
software | healthy | app/api/election_routes.py:27 |
CheckoutRequest |
software | healthy | app/api/donation_routes.py:21 |
CouncilmemberVoteRequest |
software | healthy | app/api/councilmember_routes.py:207 |
BlueskyPostRecord |
software | healthy | app/api/legislation_routes.py:939 |
EngagementUpdate |
software | healthy | app/api/legislation_routes.py:946 |
VoteRequest |
software | healthy | app/api/legislation_routes.py:1719 |
PreferencesUpdate |
software | healthy | app/api/user_routes.py:177 |
LegistarClient |
software | healthy | app/integrations/legistar.py:38 |
OpenStatesIntegration |
software | healthy | app/integrations/open_states.py:13 |
CongressGovIntegration |
software | healthy | app/integrations/congress_gov.py:15 |
PhilaLegistarScraper |
software | healthy | app/integrations/legistar_scraper.py:58 |
_TableParser |
software | healthy | app/integrations/legistar_scraper.py:157 |
_SponsorParser |
software | healthy | app/integrations/legistar_scraper.py:558 |
AgendaParser |
software | healthy | app/integrations/legistar_scraper.py:606 |
LegislationSource |
software | healthy | app/models/__init__.py:48 |
LegislationStatus |
software | healthy | app/models/__init__.py:54 |
Legislation |
software | healthy | app/models/__init__.py:70 |
BillPerspective |
software | healthy | app/models/__init__.py:144 |
Councilmember |
software | healthy | app/models/__init__.py:164 |
AggregatedDataCache |
software | healthy | app/models/__init__.py:187 |
Candidate |
software | healthy | app/models/__init__.py:200 |
CandidateVotePrediction |
software | healthy | app/models/__init__.py:221 |
BillVoteRecord |
software | healthy | app/models/__init__.py:240 |
User |
software | healthy | app/models/__init__.py:272 |
BillTracking |
software | healthy | app/models/__init__.py:293 |
LegislationVote |
software | healthy | app/models/__init__.py:311 |
CouncilmemberVote |
software | healthy | app/models/__init__.py:336 |
BlueskyPost |
software | healthy | app/models/__init__.py:357 |
Donation |
software | healthy | app/models/__init__.py:387 |
LegislationIngestionService |
software | healthy | app/services/legislation_service.py:179 |
AIProvider |
software | healthy | app/services/ai_provider.py:20 |
OllamaProvider |
software | healthy | app/services/ai_provider.py:26 |
ClaudeProvider |
software | healthy | app/services/ai_provider.py:93 |
OpenAIProvider |
software | healthy | app/services/ai_provider.py:110 |
| Label | Layer | Status | Path |
|---|---|---|---|
NotFound |
frontend | healthy | frontend/app/not-found.tsx |
Error |
frontend | healthy | frontend/app/error.tsx |
RootLayout |
frontend | healthy | frontend/app/layout.tsx |
RootPage |
frontend | healthy | frontend/app/page.tsx |
LegalPage |
frontend | healthy | frontend/app/legal/page.tsx |
AboutPage |
frontend | healthy | frontend/app/about/page.tsx |
DashboardPage |
frontend | healthy | frontend/app/dashboard/page.tsx |
LandingPage |
frontend | healthy | frontend/app/[city]/page.tsx |
MyBillsPage |
frontend | healthy | frontend/app/[city]/my-bills/page.tsx |
InsightsPage |
frontend | healthy | frontend/app/[city]/insights/page.tsx |
CouncilmembersPage |
frontend | healthy | frontend/app/[city]/councilmembers/page.tsx |
CouncilmemberDetailClient |
frontend | healthy | frontend/app/[city]/councilmembers/[id]/CouncilmemberDetail… |
CouncilmemberPage |
frontend | healthy | frontend/app/[city]/councilmembers/[id]/page.tsx |
LegislationPage |
frontend | healthy | frontend/app/[city]/legislation/page.tsx |
BillDetailLoading |
frontend | healthy | frontend/app/[city]/legislation/[id]/loading.tsx |
BillDetailClient |
frontend | healthy | frontend/app/[city]/legislation/[id]/BillDetailClient.tsx |
BillDetailPage |
frontend | healthy | frontend/app/[city]/legislation/[id]/page.tsx |
LoginPage |
frontend | healthy | frontend/app/login/page.tsx |
AdminPage |
frontend | healthy | frontend/app/admin/page.tsx |
ProfilePage |
frontend | healthy | frontend/app/profile/page.tsx |
DonatePage |
frontend | healthy | frontend/app/donate/page.tsx |
DonateSuccessPage |
frontend | healthy | frontend/app/donate/success/page.tsx |
AuthCallbackPage |
frontend | healthy | frontend/app/auth/callback/page.tsx |
ElectionsPage |
frontend | healthy | frontend/app/elections/page.tsx |
PricingPage |
frontend | healthy | frontend/app/pricing/page.tsx |
ContestedVotesSection |
frontend | healthy | frontend/components/insights/ContestedVotesSection.tsx |
DrillDownPanel |
frontend | healthy | frontend/components/insights/DrillDownPanel.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | frontend/app/page.tsx |
/legal |
frontend | healthy | frontend/app/legal/page.tsx |
/about |
frontend | healthy | frontend/app/about/page.tsx |
/dashboard |
frontend | healthy | frontend/app/dashboard/page.tsx |
/[city] |
frontend | healthy | frontend/app/[city]/page.tsx |
/[city]/my-bills |
frontend | healthy | frontend/app/[city]/my-bills/page.tsx |
/[city]/insights |
frontend | healthy | frontend/app/[city]/insights/page.tsx |
/[city]/insights/[year] |
frontend | healthy | frontend/app/[city]/insights/[year]/page.tsx |
/[city]/councilmembers |
frontend | healthy | frontend/app/[city]/councilmembers/page.tsx |
/[city]/councilmembers/[id] |
frontend | healthy | frontend/app/[city]/councilmembers/[id]/page.tsx |
/[city]/legislation |
frontend | healthy | frontend/app/[city]/legislation/page.tsx |
/[city]/legislation/[id] |
frontend | healthy | frontend/app/[city]/legislation/[id]/page.tsx |
/login |
frontend | healthy | frontend/app/login/page.tsx |
/admin |
frontend | healthy | frontend/app/admin/page.tsx |
/profile |
frontend | healthy | frontend/app/profile/page.tsx |
/donate |
frontend | healthy | frontend/app/donate/page.tsx |
/donate/success |
frontend | healthy | frontend/app/donate/success/page.tsx |
/auth/callback |
frontend | healthy | frontend/app/auth/callback/page.tsx |
/elections |
frontend | healthy | frontend/app/elections/page.tsx |
/pricing |
frontend | healthy | frontend/app/pricing/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
legislation_votes_new |
data | healthy | alembic/versions/e861ec7b1a2a_drop_debate_engine_tables.py |
legislation |
data | healthy | app/models/__init__.py |
bill_perspectives |
data | healthy | app/models/__init__.py |
councilmembers |
data | healthy | app/models/__init__.py |
aggregated_data_cache |
data | healthy | app/models/__init__.py |
candidates |
data | healthy | app/models/__init__.py |
candidate_vote_predictions |
data | healthy | app/models/__init__.py |
bill_vote_records |
data | healthy | app/models/__init__.py |
users |
data | healthy | app/models/__init__.py |
bill_tracking |
data | healthy | app/models/__init__.py |
legislation_votes |
data | healthy | app/models/__init__.py |
councilmember_votes |
data | healthy | app/models/__init__.py |
bluesky_posts |
data | healthy | app/models/__init__.py |
donations |
data | healthy | app/models/__init__.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | .env.example |
11.385.6.113 |
network | healthy | frontend/app/about/page.tsx |
3.495.998.108 |
network | healthy | frontend/app/about/page.tsx |
3.176.765.84 |
network | healthy | frontend/app/about/page.tsx |
5.92.42.36 |
network | healthy | frontend/app/about/page.tsx |
315.21.69.825 |
network | healthy | frontend/app/about/page.tsx |
2.37.996.608 |
network | healthy | frontend/app/[city]/legislation/[id]/BillDetailClient.tsx |
14.017.279.036 |
network | healthy | frontend/app/donate/success/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::app/config.py |
security | healthy | app/config.py |
auth::frontend/README.md |
security | healthy | frontend/README.md |
auth::.env.example |
security | healthy | .env.example |
auth::frontend/lib/auth.ts |
security | healthy | frontend/lib/auth.ts |
auth::app/auth.py |
security | healthy | app/auth.py |
auth::README.md |
security | healthy | README.md |
auth::app/api/auth_routes.py |
security | healthy | app/api/auth_routes.py |
auth::app/models/__init__.py |
security | healthy | app/models/__init__.py |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | .env.example |
postgresql |
data | healthy | .env.example |
redis |
data | healthy | .env.example |
postgres |
data | healthy | app/models/database.py |
mongodb |
data | healthy | frontend/package-lock.json |
mysql |
data | healthy | frontend/package-lock.json |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::bluesky-engagement |
cicd | healthy | .github/workflows/bluesky-engagement.yml |
gha::backup-users-db |
cicd | healthy | .github/workflows/backup-users-db.yml |
gha::bluesky-bot |
cicd | healthy | .github/workflows/bluesky-bot.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
track |
cicd | healthy | .github/workflows/bluesky-engagement.yml |
backup |
cicd | healthy | .github/workflows/backup-users-db.yml |
post |
cicd | healthy | .github/workflows/bluesky-bot.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
BLUESKY_APP_PASSWORD |
cicd | healthy | — |
BOT_API_TOKEN |
cicd | healthy | — |
BLUESKY_HANDLE |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | .env.example |
port:8080 |
network | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
cainesventures__Common_Ground |
software | healthy | /data/fable5_failed_archive/cainesventures__Common_Ground |
| Label | Layer | Status | Path |
|---|---|---|---|
celery |
data | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | app/config.py |
This page is publicly accessible at:
https://repobility.com/scan/83e82d9c-4075-4385-8180-df96ac353e44/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/83e82d9c-4075-4385-8180-df96ac353e44/
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.