Lista de eventos tech que acontecem no Brasil
This report summarizes scanner evidence for agenda-tech-brasil/agenda-tech-brasil, a Python project with 5,837 GitHub stars. SynthScan examined 14,615 lines of code across 39 source files, recording 76 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 6.9 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 73 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 72 finding(s).
Which changes need focused human review? 76 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 76 distinct pattern matches across 4 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⚡ | src/tests/test_generate_page.py | 9 | def test_format_date_list_multiple_dates(): | CODE |
| LOW⚡ | src/tests/test_generate_page.py | 13 | def test_format_date_list_single_date(): | CODE |
| LOW⚡ | src/tests/test_generate_page.py | 17 | def test_get_available_months_filters_archived_months(): | CODE |
| LOW | src/tests/test_generate_page.py | 34 | def test_get_available_months_returns_empty_when_year_missing(): | CODE |
| LOW | src/tests/test_generate_page.py | 38 | def test_generate_readme_renders_output(tmp_path): | CODE |
| LOW | src/tests/test_generate_page.py | 91 | def test_generate_readme_renders_two_events(tmp_path): | CODE |
| LOW | src/tests/test_generate_page.py | 153 | def test_main_calls_generate_readme_with_expected_paths(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 44 | def test_validate_event_valid_presencial_returns_no_errors(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 49 | def test_validate_event_valid_online_returns_no_errors(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 54 | def test_validate_event_empty_nome(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 61 | def test_validate_event_invalid_data_not_numeric(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 68 | def test_validate_event_data_out_of_range(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 75 | def test_validate_event_data_without_zero_pad(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 82 | def test_validate_event_invalid_url(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 89 | def test_validate_event_invalid_tipo(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 96 | def test_validate_event_online_with_cidade(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 103 | def test_validate_event_presencial_without_cidade(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 110 | def test_validate_event_invalid_uf(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 117 | def test_validate_month_valid_returns_no_errors(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 126 | def test_validate_month_invalid_name(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 135 | def test_validate_month_empty_eventos(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 144 | def test_validate_year_valid_returns_no_errors(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 156 | def test_validate_year_invalid_ano(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 165 | def test_validate_event_empty_data(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 172 | def test_validate_event_online_with_uf(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 179 | def test_validate_event_presencial_without_uf(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 186 | def test_validate_year_empty_meses(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 195 | def test_validate_year_months_out_of_order(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 423 | def test_validate_event_with_valid_image(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 432 | def test_validate_event_with_invalid_image_not_string(): | CODE |
| LOW⚡ | src/tests/test_validate_database.py | 440 | def test_validate_event_with_invalid_image_scheme(): | CODE |
| LOW | src/tests/test_validate_database.py | 207 | def test_validate_tba_valid_returns_no_errors(): | CODE |
| LOW | src/tests/test_validate_database.py | 221 | def test_validate_tba_detects_duplicates(): | CODE |
| LOW | src/tests/test_validate_database.py | 242 | def test_validate_database_valid_db(tmp_path): | CODE |
| LOW | src/tests/test_validate_database.py | 274 | def test_validate_database_catches_nested_errors(tmp_path): | CODE |
| LOW | src/tests/test_validate_database.py | 307 | def test_validate_database_years_out_of_order(tmp_path): | CODE |
| LOW | src/tests/test_validate_database.py | 332 | def test_validate_database_duplicate_years(tmp_path): | CODE |
| LOW | src/tests/test_validate_database.py | 357 | def test_main_returns_zero_on_valid_db(tmp_path): | CODE |
| LOW | src/tests/test_validate_database.py | 390 | def test_main_returns_one_on_invalid_db(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 33 | def test_load_database_creates_nonexistent_file(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 42 | def test_load_database_handles_invalid_json(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 51 | def test_archive_month_marks_only_target_month(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 64 | def test_archive_year_marks_year_as_archived(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 74 | def test_archive_month_not_found_keeps_data(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 84 | def test_archive_month_year_not_found_keeps_data(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 94 | def test_archive_year_year_not_found_keeps_data(tmp_path): | CODE |
| LOW⚡ | src/tests/test_archive.py | 104 | def test_main_calls_archive_year_when_month_empty(): | CODE |
| LOW | src/tests/test_export_archive.py | 16 | def test_get_archived_years_returns_only_archived(): | CODE |
| LOW | src/tests/test_export_archive.py | 33 | def test_get_archived_years_returns_empty_when_none_archived(): | CODE |
| LOW | src/tests/test_export_archive.py | 46 | def test_render_archive_produces_markdown(tmp_path): | CODE |
| LOW | src/tests/test_export_archive.py | 103 | def test_export_archives_creates_year_files(tmp_path): | CODE |
| LOW | src/tests/test_export_archive.py | 175 | def test_export_archives_skips_archived_year_without_meses(tmp_path): | CODE |
| LOW | src/tests/test_export_archive.py | 196 | def test_main_calls_export_archives_with_expected_paths(): | CODE |
| LOW | src/tests/test_remove_event.py | 52 | def test_remove_event_deletes_month_and_year_when_empty(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 74 | def test_remove_event_keeps_file_when_not_found(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 97 | def test_remove_event_year_not_found_keeps_file(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 118 | def test_remove_event_month_not_found_keeps_file(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 139 | def test_remove_tba_removes_matching_event(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 158 | def test_remove_tba_keeps_file_when_not_found(tmp_path): | CODE |
| LOW | src/tests/test_remove_event.py | 176 | def test_get_event_from_env_normalizes_fields(monkeypatch): | CODE |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/remove_event.py | 0 | recebe informações do evento de variáveis de ambiente configuradas no github actions. | STRING |
| HIGH | src/add_event.py | 0 | recebe informações do evento de variáveis de ambiente configuradas no github actions. | STRING |
| HIGH | src/archive.py | 0 | recebe informações do evento de variáveis de ambiente configuradas no github actions. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | arquivo/2025.md | 129 | - 21: [Desenvolvimento de Agentes Inteligentes com AI, C#, RAG, Devprime e Azure OpenAI](https://www.meetup.com/microsof | CODE |
| MEDIUM | src/db/database.json | 6143 | "nome": "Desenvolvimento de Agentes Inteligentes com AI, C#, RAG, Devprime e Azure OpenAI", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/archive.py | 6 | CODE | |
| LOW | src/validate_database.py | 20 | CODE |