https://github.com/LearnPrompt/ai-news-radar
· scanned 2026-06-05 19:27 UTC (4 days, 16 hours ago)
· 10 languages
124 raw signals (58 security + 66 graph) 11/13 scanners ran 71st percentile · Python · small (2-20K LoC) System graph score 92 (lower by 15)
Last scanned 4 days, 16 hours ago · v2 · 37 actionable findings from 2 signal sources. 29 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
55.0 | 0.15 | 8.25 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
52.0 | 0.15 | 7.80 |
practices_score |
72.0 | 0.15 | 10.80 |
code_quality |
53.0 | 0.10 | 5.30 |
| Overall | 1.00 | 77.1 |
All 368 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 |
|---|---|---|---|
make_item |
software | healthy | tests/test_story_merge.py:11 |
test_url_params_are_ignored_for_canonical_merge |
software | healthy | tests/test_story_merge.py:26 |
test_similar_titles_within_window_merge |
software | healthy | tests/test_story_merge.py:40 |
test_different_model_vendor_events_do_not_merge |
software | healthy | tests/test_story_merge.py:54 |
test_parse_ym_heading |
software | healthy | tests/test_waytoagi_utils.py:16 |
test_parse_md_heading |
software | healthy | tests/test_waytoagi_utils.py:19 |
test_clean_update_title |
software | healthy | tests/test_waytoagi_utils.py:22 |
test_decode_escaped_json |
software | healthy | tests/test_waytoagi_utils.py:25 |
test_infer_shanghai_year_for_month_day |
software | healthy | tests/test_waytoagi_utils.py:30 |
test_extract_recent_updates_from_block_map |
software | healthy | tests/test_waytoagi_utils.py:35 |
test_scores_strong_ai_signal_with_reason |
software | healthy | tests/test_ai_relevance.py:7 |
test_rejects_broad_model_without_tech_context |
software | healthy | tests/test_ai_relevance.py:22 |
test_accepts_broad_ai_plus_tech_context |
software | healthy | tests/test_ai_relevance.py:35 |
test_accepts_agent_context_as_developer_tool |
software | healthy | tests/test_ai_relevance.py:49 |
test_trusted_ai_source_defaults_to_keep |
software | healthy | tests/test_ai_relevance.py:62 |
test_adds_public_debug_fields |
software | healthy | tests/test_ai_relevance.py:75 |
record |
software | healthy | tests/test_source_overlap.py:15 |
test_normalize_title_for_overlap_removes_noise_words_and_pu… |
software | healthy | tests/test_source_overlap.py:27 |
test_title_similarity_handles_reordered_tokens |
software | healthy | tests/test_source_overlap.py:32 |
test_classify_overlap_matches_exact_url_after_normalization |
software | healthy | tests/test_source_overlap.py:36 |
test_classify_overlap_matches_similar_titles_with_different… |
software | healthy | tests/test_source_overlap.py:48 |
test_evaluate_source_overlap_counts_duplicates_uniques_and_… |
software | healthy | tests/test_source_overlap.py:59 |
test_make_recommendation_thresholds_and_sample_guard |
software | healthy | tests/test_source_overlap.py:88 |
test_normalize_url_removes_tracking |
software | healthy | tests/test_utils.py:10 |
test_make_item_id_stable |
software | healthy | tests/test_utils.py:14 |
test_parse_relative_time_zh_minutes |
software | healthy | tests/test_utils.py:19 |
test_parse_date_any_english_rfc_not_misparsed_as_today |
software | healthy | tests/test_utils.py:24 |
test_parse_opml_subscriptions |
software | healthy | tests/test_utils.py:29 |
make_item |
software | healthy | tests/test_daily_brief.py:18 |
test_importance_score_favors_official_relevant_recent_items |
software | healthy | tests/test_daily_brief.py:40 |
test_daily_brief_respects_10_to_20_cap_when_enough_stories_… |
software | healthy | tests/test_daily_brief.py:50 |
test_daily_brief_record_supports_bole_output_contract |
software | healthy | tests/test_daily_brief.py:61 |
test_stories_and_merge_log_payload_shapes_are_explicit |
software | healthy | tests/test_daily_brief.py:88 |
test_accepts_ai_keyword |
software | healthy | tests/test_topic_filter.py:28 |
test_accepts_copilot_keyword |
software | healthy | tests/test_topic_filter.py:38 |
test_accepts_robotics_keyword |
software | healthy | tests/test_topic_filter.py:48 |
test_accepts_follow_builders_curated_feed |
software | healthy | tests/test_topic_filter.py:58 |
test_rejects_noise_topic |
software | healthy | tests/test_topic_filter.py:68 |
test_rejects_commerce_noise |
software | healthy | tests/test_topic_filter.py:78 |
test_zeli_only_24h_hot |
software | healthy | tests/test_topic_filter.py:88 |
test_buzzing_source_fallback_to_host |
software | healthy | tests/test_topic_filter.py:106 |
test_fix_mojibake |
software | healthy | tests/test_topic_filter.py:110 |
test_parse_feed_entries_via_xml |
software | healthy | tests/test_topic_filter.py:114 |
test_parse_atom_feed_entries_via_xml |
software | healthy | tests/test_topic_filter.py:123 |
test_parse_anthropic_news_items |
software | healthy | tests/test_topic_filter.py:133 |
test_parse_openai_codex_changelog_items |
software | healthy | tests/test_topic_filter.py:147 |
test_parse_ai_breakfast_items |
software | healthy | tests/test_topic_filter.py:162 |
test_parse_aihot_feed_items |
software | healthy | tests/test_topic_filter.py:173 |
test_fetch_aihot_uses_fallback_when_primary_has_no_items |
software | healthy | tests/test_topic_filter.py:190 |
__init__ |
software | healthy | tests/test_topic_filter.py:542 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
README.en.md |
software | healthy | README.en.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
index.html |
software | healthy | index.html |
requirements.txt |
software | healthy | requirements.txt |
AGENTS.md |
software | healthy | AGENTS.md |
test_story_merge.py |
software | healthy | tests/test_story_merge.py |
conftest.py |
software | warning | tests/conftest.py |
test_waytoagi_utils.py |
software | healthy | tests/test_waytoagi_utils.py |
test_ai_relevance.py |
software | healthy | tests/test_ai_relevance.py |
test_source_overlap.py |
software | healthy | tests/test_source_overlap.py |
test_utils.py |
software | healthy | tests/test_utils.py |
test_daily_brief.py |
software | healthy | tests/test_daily_brief.py |
test_topic_filter.py |
software | healthy | tests/test_topic_filter.py |
test_private_bridge_sources.py |
software | healthy | tests/test_private_bridge_sources.py |
GPT_HANDOFF.md |
software | healthy | docs/GPT_HANDOFF.md |
V2_PRODUCT_BRIEF.md |
software | healthy | docs/V2_PRODUCT_BRIEF.md |
ROADMAP.md |
software | healthy | docs/ROADMAP.md |
SOURCE_COVERAGE.md |
software | healthy | docs/SOURCE_COVERAGE.md |
v2-source-inventory-summary-2026-05-10.md |
software | healthy | docs/research/v2-source-inventory-summary-2026-05-10.md |
advanced-source-free-tier-budget-2026-05-10.md |
software | healthy | docs/research/advanced-source-free-tier-budget-2026-05-10.md |
source-intake-2026-05-10.md |
software | healthy | docs/research/source-intake-2026-05-10.md |
source-intake-decision-table-2026-05-10.md |
software | healthy | docs/research/source-intake-decision-table-2026-05-10.md |
bole-skill-wechat-final-2026-05-11.md |
software | healthy | docs/marketing/bole-skill-wechat-final-2026-05-11.md |
bole-skill-promo-draft-2026-05-11.md |
software | healthy | docs/marketing/bole-skill-promo-draft-2026-05-11.md |
bole-skill-wechat-final-reordered-2026-05-11.md |
software | healthy | docs/marketing/bole-skill-wechat-final-reordered-2026-05-11… |
2026-05-10-source-intake-research-plan.md |
software | healthy | docs/plans/2026-05-10-source-intake-research-plan.md |
x-api-demo-config.md |
software | healthy | docs/guides/x-api-demo-config.md |
rileybrown-alphasignal-demo.md |
software | healthy | docs/guides/rileybrown-alphasignal-demo.md |
__init__.py |
software | healthy | scripts/__init__.py |
evaluate_source_overlap.py |
software | healthy | scripts/evaluate_source_overlap.py |
audit_ai_relevance.py |
software | healthy | scripts/audit_ai_relevance.py |
ai_relevance.py |
software | healthy | scripts/ai_relevance.py |
update_news.py |
software | healthy | scripts/update_news.py |
styles.css |
software | healthy | assets/styles.css |
app.js |
software | healthy | assets/app.js |
motion.js |
software | warning | assets/motion.js |
v0.4.0-2026-05-12.md |
software | healthy | reports/ai-relevance-audit/v0.4.0-2026-05-12.md |
README.md |
software | healthy | skills/ai-news-radar/README.md |
SKILL.md |
software | healthy | skills/ai-news-radar/SKILL.md |
v2-method.md |
software | healthy | skills/ai-news-radar/references/v2-method.md |
source-intake.md |
software | healthy | skills/ai-news-radar/references/source-intake.md |
openai.yaml |
software | healthy | skills/ai-news-radar/agents/openai.yaml |
update-news.yml |
software | healthy | .github/workflows/update-news.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
docs |
software | healthy | docs |
research |
software | healthy | docs/research |
marketing |
software | healthy | docs/marketing |
plans |
software | healthy | docs/plans |
guides |
software | healthy | docs/guides |
scripts |
software | healthy | scripts |
assets |
software | healthy | assets |
reports |
software | healthy | reports |
ai-relevance-audit |
software | healthy | reports/ai-relevance-audit |
skills |
software | healthy | skills |
ai-news-radar |
software | healthy | skills/ai-news-radar |
references |
software | healthy | skills/ai-news-radar/references |
agents |
software | healthy | skills/ai-news-radar/agents |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
WaytoAgiUtilsTests |
software | healthy | tests/test_waytoagi_utils.py:15 |
AiRelevanceScoringTests |
software | healthy | tests/test_ai_relevance.py:6 |
UtilsTests |
software | healthy | tests/test_utils.py:9 |
TopicFilterTests |
software | healthy | tests/test_topic_filter.py:27 |
FakeResponse |
software | healthy | tests/test_topic_filter.py:522 |
FakeSession |
software | healthy | tests/test_topic_filter.py:541 |
NoNetworkSession |
software | healthy | tests/test_topic_filter.py:503 |
PrivateBridgeSourceTests |
software | healthy | tests/test_private_bridge_sources.py:12 |
RawItem |
software | healthy | scripts/update_news.py:138 |
| Label | Layer | Status | Path |
|---|---|---|---|
X_BEARER_TOKEN |
cicd | healthy | — |
X_API_ENABLED |
cicd | healthy | — |
EMAIL_DIGEST_ENABLED |
cicd | healthy | — |
AGENTMAIL_API_KEY |
cicd | healthy | — |
EMAIL_DIGEST_PUBLISH |
cicd | healthy | — |
AGENTMAIL_INBOX_ID |
cicd | healthy | — |
FOLLOW_OPML_B64 |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
122.0.0.0 |
network | healthy | scripts/update_news.py |
47.122.94.119 |
network | healthy | scripts/update_news.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-37vjzh_7 |
software | healthy | /tmp/repobility-clone-37vjzh_7 |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | tests/test_ai_relevance.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::update-news |
cicd | healthy | .github/workflows/update-news.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
update |
cicd | healthy | .github/workflows/update-news.yml |
This page is publicly accessible at:
https://repobility.com/scan/a145eeb9-9dd9-48d0-a95e-7d4271b27564/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/a145eeb9-9dd9-48d0-a95e-7d4271b27564/
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.