AI Slop Code RIsk Monitor

GothenburgBitFactory/taskwarrior

Taskwarrior - Command line Task Management

15.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for GothenburgBitFactory/taskwarrior, a C++ project with 6,109 GitHub stars. SynthScan examined 74,030 lines of code across 470 source files, recording 1090 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 15.7 (Elevated 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.

15.7
Adjusted Signal
15.7
Raw Pattern Score
100%
Time Factor
2026-10-08
Last Push
6.1K
Stars
C++
Language
74.0K
Lines of Code
470
Files
1.1K
Pattern Hits
2026-10-12
Scan Date
0.01
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 53.0/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 1065 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

Are imports declared and package/API names verified? 19 finding(s).

Agent Over-Engineering Ratio 27.9/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 435 finding(s).

PR Review Velocity Impact 53.4/100 · HIGH

Which changes need focused human review? 1090 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

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.

CRITICAL 0HIGH 3MEDIUM 13LOW 1074

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1090 distinct pattern matches across 11 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.

Over-Commented Block620 hits · 617 pts
SeverityFileLineSnippetContext
LOWtest/stats.test.py1#!/usr/bin/env python3COMMENT
LOWtest/tempdir.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/import-v2.test.py1#!/usr/bin/env python3COMMENT
LOWtest/undo.test.py1#!/usr/bin/env python3COMMENT
LOWtest/debug.test.py1#!/usr/bin/env python3COMMENT
LOWtest/tc_cpp_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/tc_cpp_test.cpp21// SOFTWARE.COMMENT
LOWtest/tw-1999.test.py1#!/usr/bin/env python3COMMENT
LOWtest/eval_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/eval_test.cpp21// SOFTWARE.COMMENT
LOWtest/overdue.test.py1#!/usr/bin/env python3COMMENT
LOWtest/special.test.py1#!/usr/bin/env python3COMMENT
LOWtest/project.test.py1#!/usr/bin/env python3COMMENT
LOWtest/variant_inequal_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/variant_inequal_test.cpp21// SOFTWARE.COMMENT
LOWtest/timesheet.test.py1#!/usr/bin/env python3COMMENT
LOWtest/timesheet.test.py41 @classmethodCOMMENT
LOWtest/summary.test.py1#!/usr/bin/env python3COMMENT
LOWtest/hooks.on-modify.test.py1#!/usr/bin/env python3COMMENT
LOWtest/tw-20.test.py1#!/usr/bin/env python3COMMENT
LOWtest/make_tc_task.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/make_tc_task.cpp21// SOFTWARE.COMMENT
LOWtest/delete.test.py1#!/usr/bin/env python3COMMENT
LOWtest/unique.test.py1#!/usr/bin/env python3COMMENT
LOWtest/math.test.py1#!/usr/bin/env python3COMMENT
LOWtest/denotate.test.py1#!/usr/bin/env python3COMMENT
LOWtest/tw_2689_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/tw_2689_test.cpp21// SOFTWARE.COMMENT
LOWtest/hooks.on-exit.test.py1#!/usr/bin/env python3COMMENT
LOWtest/bash_tap_tw.sh1#!/usr/bin/env bashCOMMENT
LOWtest/wait.test.py1#!/usr/bin/env python3COMMENT
LOWtest/color.rules.test.py1#!/usr/bin/env python3COMMENT
LOWtest/gc.test.py1#!/usr/bin/env python3COMMENT
LOWtest/uda_report.test.py1#!/usr/bin/env python3COMMENT
LOWtest/uda_sort.test.py1#!/usr/bin/env python3COMMENT
LOWtest/unicode.test.py1#!/usr/bin/env python3COMMENT
LOWtest/bulk.test.py1#!/usr/bin/env python3COMMENT
LOWtest/variant_not_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/variant_not_test.cpp21// SOFTWARE.COMMENT
LOWtest/append.test.py1#!/usr/bin/env python3COMMENT
LOWtest/show.test.py1#!/usr/bin/env python3COMMENT
LOWtest/dependencies.test.py1#!/usr/bin/env python3COMMENT
LOWtest/feature.559.test.py1#!/usr/bin/env python3COMMENT
LOWtest/datetime-negative.test.py1#!/usr/bin/env python3COMMENT
LOWtest/datetime-negative.test.py401 # datetime-negative.t tests.COMMENT
LOWtest/datetime-negative.test.py421 # 12:12-24:00COMMENT
LOWtest/helpers.test.py1#!/usr/bin/env python3COMMENT
LOWtest/variant_or_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/variant_or_test.cpp21// SOFTWARE.COMMENT
LOWtest/count.test.py1#!/usr/bin/env python3COMMENT
LOWtest/uda.test.py1#!/usr/bin/env python3COMMENT
LOWtest/export.test.py1#!/usr/bin/env python3COMMENT
LOWtest/test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/test.cpp21// SOFTWARE.COMMENT
LOWtest/news.test.py1#!/usr/bin/env python3COMMENT
LOWtest/recurrence.test.py1#!/usr/bin/env python3COMMENT
LOWtest/variant_lte_test.cpp1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/variant_lte_test.cpp21// SOFTWARE.COMMENT
LOWtest/test.h1////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtest/import.test.py1#!/usr/bin/env python3COMMENT
560 more matches not shown…
Hyper-Verbose Identifiers429 hits · 461 pts
SeverityFileLineSnippetContext
LOWtest/undo.test.py65 def test_modify_multiple_tasks(self):CODE
LOWtest/undo.test.py110 def test_undo_no_confirmation(self):CODE
LOWtest/debug.test.py66 def test_debug_parser_eval_output(self):CODE
LOWtest/project.test.py47 def test_project_summary_count(self):CODE
LOWtest/project.test.py96 def test_project_someday_filter(self):CODE
LOWtest/project.test.py152 def test_project_indentation_in_summary(self):CODE
LOWtest/project.test.py231 def test_project_exclusion_isnt(self):CODE
LOWtest/project.test.py246 def test_project_exclusion_hasnt(self):CODE
LOWtest/project.test.py266 def test_log_with_project_segfault(self):CODE
LOWtest/project.test.py282 def test_delete_task_for_empty_project(self):CODE
LOWtest/project.test.py302 def test_project_hierarchy_filter(self):CODE
LOWtest/project.test.py317 def test_project_hierarchy_filter(self):CODE
LOWtest/project.test.py351 def test_project_hierarchy_filter(self):CODE
LOWtest/project.test.py376 def test_project_hierarchy_filter(self):CODE
LOWtest/project.test.py392 def test_project_hierarchy_filter(self):CODE
LOWtest/project.test.py429 def test_add_task_no_project_with_default(self):CODE
LOWtest/project.test.py436 def test_add_task_no_project_with_default_rcfile(self):CODE
LOWtest/project.test.py449 def test_project_names_with_dots(self):CODE
LOWtest/project.test.py455 def test_project_names_with_slashes(self):CODE
LOWtest/hooks.on-modify.test.py44 def test_onmodify_builtin_accept(self):CODE
LOWtest/hooks.on-modify.test.py63 def test_onmodify_builtin_reject(self):CODE
LOWtest/hooks.on-modify.test.py161 def test_onmodify_revert_changes(self):CODE
LOWtest/hooks.on-modify.test.py179 def test_onmodify_escaped_backslash(self):CODE
LOWtest/tw-20.test.py51 def test_annotate_edit_does_not_delete(self):CODE
LOWtest/delete.test.py89 def test_delete_single_prompt_loop(self):CODE
LOWtest/delete.test.py102 def test_delete_multiple_prompt_loop(self):CODE
LOWtest/delete.test.py111 def test_delete_bulk_prompt_loop(self):CODE
LOWtest/math.test.py62 def test_compact_value_quoted(self):CODE
LOWtest/math.test.py82 def test_sparse_arg_quoted_literal(self):CODE
LOWtest/math.test.py99 def test_attribute_before_with_math(self):CODE
LOWtest/math.test.py105 def test_attribute_after_with_math(self):CODE
LOWtest/hooks.on-exit.test.py59 def test_onexit_builtin_good_gets_changed_tasks(self):CODE
LOW⚡test/bulk.test.py49 def test_bulk_confirmations_single_confirmation_off(self):CODE
LOW⚡test/bulk.test.py58 def test_bulk_confirmations_single_confirmation_on(self):CODE
LOW⚡test/bulk.test.py67 def test_bulk_confirmations_double_confirmation_off(self):CODE
LOW⚡test/bulk.test.py77 def test_bulk_confirmations_double_confirmation_on(self):CODE
LOW⚡test/bulk.test.py87 def test_bulk_confirmations_bulk_confirmation_off(self):CODE
LOWtest/bulk.test.py112 def test_bulk_confirmations_bulk_confirmation_on(self):CODE
LOWtest/bulk.test.py123 def test_bulk_delete_no_tests(self):CODE
LOWtest/bulk.test.py152 def test_bulk_delete_all_tests(self):CODE
LOWtest/bulk.test.py163 def test_bulk_delete_quit_tests(self):CODE
LOWtest/append.test.py56 def test_append_error_on_empty(self):CODE
LOWtest/append.test.py73 def test_subst_and_append_at_once(self):CODE
LOW⚡test/show.test.py63 def test_show_error_on_multi_args(self):CODE
LOW⚡test/show.test.py68 def test_show_no_unrecognized(self):CODE
LOW⚡test/show.test.py76 def test_show_uda_urgency_for_non_uda(self):CODE
LOWtest/show.test.py87 def test_show_uda_urgency_for_uda(self):CODE
LOWtest/dependencies.test.py46 def test_removing_missing_dep(self):CODE
LOWtest/dependencies.test.py56 def test_add_dep_to_missing_task(self):CODE
LOWtest/dependencies.test.py99 def test_completed_not_circular(self):CODE
LOWtest/dependencies.test.py109 def test_circular_with_visited_sibling(self):CODE
LOWtest/dependencies.test.py121 def test_dependency_modify_with_cold_pending_cache(self):CODE
LOWtest/dependencies.test.py175 def test_dependency_bulk_removal(self):CODE
LOWtest/dependencies.test.py263 def test_blocking_to_recurring(self):CODE
LOWtest/dependencies.test.py314 def test_dependency_contains_not_matches_other(self):CODE
LOWtest/dependencies.test.py369 def test_set_dependency_on_first_completed_task(self):CODE
LOWtest/dependencies.test.py379 def test_set_dependency_on_second_completed_task(self):CODE
LOWtest/dependencies.test.py394 def test_set_dependency_on_two_completed_tasks(self):CODE
LOW⚡test/datetime-negative.test.py123 def test_set_incorrect_datetime_hour_overflow_in_hh_mm(self):CODE
LOW⚡test/datetime-negative.test.py126 def test_set_incorrect_datetime_huge_hour_overflow_in_hh_mm(self):CODE
369 more matches not shown…
Self-Referential Comments8 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUMtest/hooks.on-modify.test.py181 # Create a task with a slash-escaped tab in it, avoiding TaskWarrior to ensureCOMMENT
MEDIUMtest/bash_tap_tw.sh56 # This function is called by bash_tap.sh before running tests, or beforeCOMMENT
MEDIUMtest/uda.test.py75 # Create a task with a UDA.COMMENT
MEDIUMtest/tw-2550.test.sh8# Create a task outside of the contextCOMMENT
MEDIUMtest/custom.test.py88 # Create a task directly with TC, avoiding TaskWarrior's creation of the deprecatedCOMMENT
MEDIUM⚡test/info.test.py130 # Create a task directly with TC, avoiding TaskWarrior's creation of the deprecatedCOMMENT
MEDIUMtest/basetest/task.py173 # Create a copy of the commandCOMMENT
MEDIUMtest/basetest/task.py206 # Create a copy of the commandCOMMENT
Unused Imports18 hits · 18 pts
SeverityFileLineSnippetContext
LOWtest/import-v2.test.py31CODE
LOWtest/import-v2.test.py37CODE
LOWtest/undo.test.py30CODE
LOWtest/version.test.py38CODE
LOWtest/color.cmd.test.py31CODE
LOWtest/tw-2575.test.py6CODE
LOWtest/tw-3527.test.py6CODE
LOWtest/unusual_task.test.py30CODE
LOWtest/purge.test.py37CODE
LOWtest/verbose.test.py32CODE
LOWtest/read-only.test.py30CODE
LOWtest/basetest/hooks.py1CODE
LOWtest/basetest/__init__.py1CODE
LOWtest/basetest/__init__.py2CODE
LOWtest/basetest/utils.py1CODE
LOWtest/basetest/utils.py5CODE
LOWtest/basetest/meta.py1CODE
LOWtest/basetest/meta.py1CODE
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtest/basetest/hooks.py210except AttributeError:CODE
HIGHtest/basetest/hooks.py219except AttributeError:CODE
HIGHtest/basetest/utils.py389except OSError:CODE
Decorative Section Separators3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMtest/limit.test.py96 # ------------COMMENT
MEDIUM.devcontainer/reinstall-cmake.sh2#-------------------------------------------------------------------------------------------------------------COMMENT
MEDIUM.devcontainer/reinstall-cmake.sh5#-------------------------------------------------------------------------------------------------------------COMMENT
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtest/dependencies.test.py307 # NOTE: A more robust test is needed as alternative to thisCOMMENT
LOWtest/basetest/utils.py348 # what file suffixes are executable, so just pass on cmd as-is.COMMENT
MEDIUMsrc/sort.cpp115// Essentially a static implementation of a dynamic operator<.COMMENT
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtest/basetest/hooks.py383CODE
LOWtest/basetest/utils.py300CODE
LOWtest/simpletap/__init__.py123CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtest/basetest/hooks.py51 # Check if the hooks dir already existsCOMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/enpassant.test.py99 def perform_action(self, action):CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWdoc/devel/rfcs/client.md58Example 'John Doe'.CODE