Agenticly track ccf-ranked & worldwide conference deadlines (Website, Python Cli, Wechat Applet)
This report summarizes scanner evidence for ccfddl/ccf-deadlines, a Rust project with 9,498 GitHub stars. SynthScan examined 69,624 lines of code across 831 source files, recording 206 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 3.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 161 finding(s).
Are imports declared and package/API names verified? 40 finding(s).
Are wrappers, guards, and repeated structures necessary? 149 finding(s).
Which changes need focused human review? 206 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 206 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 53 | def test_overlapping_editions_and_new_deadline_fields(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 62 | def test_quiet_cache_force_and_local_invalidation(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 77 | def test_near_milestone_overrides_old_backoff(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 85 | def test_source_error_backoff_and_partial_round_records(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 98 | def test_other_page_cannot_hide_earlier_retry(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 109 | def test_gates_unknown_leads_and_explicit_force(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 118 | def test_local_revision_reopens_a_previously_checked_early_candidate(self): | CODE |
| LOW | …ddl-conference-update/scripts/test_daily_candidates.py | 132 | def test_bounded_batch_keeps_old_work_in_rotation(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 49 | def test_complete_sparse_zeros_and_failure_are_distinct(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 59 | def test_snapshot_provenance_freshness_integrity_and_schema(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 153 | def test_category_and_explicit_include(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 159 | def test_default_scope_includes_ccf_a_and_b_not_c(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 164 | def test_commitment_is_not_a_submission_or_extra_round(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 235 | def test_skip_expired_far_tbd_and_unclear(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 241 | def test_overflow_preserves_a_and_b_representatives(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 249 | def test_all_six_fit_without_rank_displacement(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 253 | def test_default_tweet_has_at_most_three_rows(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 260 | def test_exact_user_plain_text_format(self): | CODE |
| LOW⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 268 | def test_tweet_countdowns_omit_left_only_in_text(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 36 | def test_most_starred_selected_only_without_reordering(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 104 | def test_reject_unknown_and_incomplete(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 112 | def test_countdown_boundaries(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 125 | def test_detail_url_and_whole_path_weight(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 201 | def test_title_collisions_not_merged(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 206 | def test_repository_deadline_ignores_legacy_official_override(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 223 | def test_repository_mlsys_ignores_legacy_external_quarantine(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 283 | def test_tweet_header_uses_los_angeles_publication_date(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 298 | def test_explicit_multiple_stages(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 310 | def test_ai_category_header_without_colon(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 315 | def test_abstract_display_ignores_registration_alias(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 326 | def test_unknown_selection_mode_rejected(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 330 | def test_long_text_is_advisory_not_a_hard_cap(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 348 | def test_build_featured_count_provenance_and_missing_snapshot_block(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 387 | def test_both_categories_six_without_inventing_rows(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 427 | def test_default_link_preview_preserves_long_digest_without_image(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 461 | def test_six_text_rows_with_three_card_rows_and_ellipsis(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 480 | def test_public_outputs_omit_internal_closure_flag(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 496 | def test_stale_and_partial_fail_closed(self): | CODE |
| LOW | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 514 | def test_ledger_uncertain_and_confirmed(self): | CODE |
| LOW⚡ | extensions/cli/ccfddl/fetch.py | 41 | def process_conference_deadlines( | CODE |
| LOW | extensions/cli/ccfddl/convert_to_ical.py | 260 | def write_deadline_events_index(calendar_path: str, output_path: str): | CODE |
| LOW | extensions/cli/ccfddl/tests/test_utils.py | 40 | def test_pt_without_date_defaults_to_standard(self): | CODE |
| LOW | extensions/cli/ccfddl/tests/test_utils.py | 55 | def test_invalid_format_no_sign(self): | CODE |
| LOW | extensions/cli/ccfddl/tests/test_utils.py | 61 | def test_load_mapping_file_not_found(self, tmp_path): | CODE |
| LOW | extensions/cli/ccfddl/tests/test_utils.py | 124 | def test_reverse_index_empty_files(self, tmp_path): | STRING |
| LOW | extensions/cli/ccfddl/tests/test_models.py | 181 | def test_get_category_by_sub_invalid(self): | CODE |
| LOW | extensions/cli/ccfddl/tests/test_main.py | 60 | def test_list_categories_flag(self): | CODE |
| LOW | extensions/chrome/chrome/popup.js | 394 | function parseDeadlineWithTimezone(deadline, timezone) { | CODE |
| LOW | extensions/chrome/chrome/popup.js | 790 | function shouldIgnoreStartupInteraction() { | CODE |
| LOW | scripts/test_build_data.py | 24 | def test_preserves_all_editions_and_source_structure(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 36 | def test_keeps_upcoming_decisions_from_an_older_edition(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 45 | def test_keeps_upcoming_opening_after_submission_dates_have_passed(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 54 | def test_keeps_previous_edition_across_year_gaps_for_estimates(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 61 | def test_keeps_only_latest_finished_edition_when_no_dates_are_upcoming(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 68 | def test_keeps_tbd_current_edition_even_if_next_year_is_already_announced(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 74 | def test_bucket_is_stable_for_ascii_and_unicode(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 81 | def test_same_title_conferences_retain_distinct_source_keys_and_years(self): | CODE |
| LOW | scripts/test_build_data.py | 93 | def test_unambiguous_eusipco_legacy_path_preserves_every_historical_row(self): | CODE |
| LOW | scripts/test_build_data.py | 106 | def test_exact_key_survives_title_rename_and_uses_current_title_bucket(self): | CODE |
| LOW⚡ | scripts/test_build_data.py | 119 | def test_ambiguous_or_unknown_legacy_paths_fail_closed(self): | CODE |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 63 | response.write_text('{"user":null,"counts":{"cvpr27":216},"starred":[]}') | CODE |
| HIGH⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 78 | for payload in ('{}', '{"user":null,"starred":[]}', | CODE |
| HIGH⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 79 | '{"user":null,"counts":null,"starred":[]}', | CODE |
| HIGH⚡ | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 80 | '{"user":null,"counts":{"a":1.5},"starred":[]}', | CODE |
| HIGH | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 29 | raw.write_text('{"user":null,"counts":{},"starred":[]}') | CODE |
| HIGH | .agents/skills/ccfddl-x-posts/scripts/test_countdown.py | 362 | response.write_text('{"user":null,"counts":{"event227":216,"event627":999},"starred":[]}') | CODE |
| HIGH | scripts/generate_seo_pages.py | 191 | try { return localStorage.getItem(key); } catch (error) { return null; } | CODE |
| HIGH | scripts/generate_seo_pages.py | 218 | if (next.size && next.size !== links.length) params.set('categories', [...next].sort().join(',')); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/ccfddl-x-posts/scripts/countdown.py | 5 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 6 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 6 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 6 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 6 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 6 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 7 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 19 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 19 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 19 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 19 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 20 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 20 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 20 | CODE | |
| LOW | extensions/cli/ccfddl/__init__.py | 20 | CODE | |
| LOW | extensions/cli/ccfddl/tests/test_utils.py | 2 | CODE | |
| LOW | extensions/cli/ccfddl/tests/test_models.py | 1 | CODE | |
| LOW | scripts/merge.py | 8 | CODE | |
| LOW | scripts/validate.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/ccfddl-conference-update/scripts/daily_candidates.py | 76 | CODE | |
| LOW | .agents/skills/ccfddl-x-posts/scripts/countdown.py | 164 | CODE | |
| LOW | .agents/skills/ccfddl-x-posts/scripts/countdown.py | 515 | CODE | |
| LOW | extensions/cli/ccfddl/fetch.py | 41 | CODE | |
| LOW | extensions/cli/ccfddl/convert_to_ical.py | 77 | CODE | |
| LOW | extensions/cli/ccfddl/convert_to_ical.py | 292 | CODE | |
| LOW | extensions/cli/ccfddl/convert_to_rss.py | 14 | CODE | |
| LOW | extensions/cli/ccfddl/utils.py | 131 | CODE | |
| LOW | scripts/merge.py | 38 | CODE | |
| LOW | scripts/test_rss_dates.py | 71 | CODE | |
| LOW | scripts/test_rss_dates.py | 98 | CODE | |
| LOW | scripts/test_generate_seo_pages.py | 199 | CODE | |
| LOW | scripts/validate.py | 35 | CODE | |
| LOW | scripts/conference_dates.py | 19 | CODE | |
| LOW | scripts/generate_seo_pages.py | 125 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | extensions/cli/ccfddl/utils.py | 47 | Convert timezone string to datetime.timezone object. Supported formats: - 'AoE' (Anywhere on Earth, UTC-12) | STRING |
| HIGH | extensions/cli/ccfddl/utils.py | 85 | Parse datetime string with timezone. Args: dt_str: Datetime string (e.g., '2025-01-15 23:59:59') tz | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | extensions/cli/ccfddl/fetch.py | 34 | print(f"Error fetching data: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | extensions/cli/ccfddl/fetch.py | 37 | print(f"Error parsing YAML: {e}", file=sys.stderr) | CODE |
| LOW | scripts/merge.py | 106 | except Exception as e: | CODE |
| LOW | scripts/validate.py | 50 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | extensions/chrome/chrome/popup.js | 143 | el.setAttribute("placeholder", t(key, el.getAttribute("placeholder") || "")); | CODE |
| LOW | worker/test/session_renewal.test.js | 41 | .run(42, "reader@example.org", "Asia/Shanghai", "zh", 1, NOW, NOW); | CODE |
| LOW | worker/test/session_renewal.test.js | 72 | SESSION_SECRET: "s".repeat(32), RESEND_API_KEY: "test-sender", EMAIL_FROM: "reminders@example.org", | CODE |
| LOW | worker/test/session_renewal.test.js | 99 | available: true, enabled: true, email: "reader@example.org", timezone: "Asia/Shanghai", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | extensions/cli/ccfddl/__init__.py | 22 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/generate_seo_pages.py | 259 | CODE |