@@ -10,71 +10,128 @@ TAGS "Report"
1010NODE ai_code_tracker_copy_totals
1111DESCRIPTION >
1212 Total commits per month - simple count, no string scanning
13+
1314SQL >
14- SELECT
15- toStartOfMonth(timestamp) AS monthStart,
16- '__total__' AS toolKey,
17- count() AS commitCount
15+ SELECT toStartOfMonth(timestamp) AS monthStart, '__total__' AS toolKey, count() AS commitCount
1816 FROM ai_code_tracker_commits_ds
1917 GROUP BY monthStart
2018
2119NODE ai_code_tracker_copy_prefilter
2220DESCRIPTION >
2321 Fast pre-filter: only keep commits containing ANY AI keyword.
2422 multiSearchAnyCaseInsensitive does a single pass instead of dozens of separate checks.
23+
2524SQL >
26- SELECT
27- toStartOfMonth(timestamp) AS monthStart,
28- title,
29- body,
30- attributes
25+ SELECT toStartOfMonth(timestamp) AS monthStart, title, body, attributes
3126 FROM ai_code_tracker_commits_ds
3227 WHERE
33- multiSearchAnyCaseInsensitive(title, ['copilot', 'chatgpt', 'claude', 'cursor', 'codewhisperer', 'gemini', 'codeium', 'aider', 'devin', 'tabnine', 'ai-generated', 'ai generated']) != 0
34- OR multiSearchAnyCaseInsensitive(body, ['copilot', 'chatgpt', 'claude', 'cursor', 'codewhisperer', 'gemini', 'codeium', 'aider', 'devin', 'tabnine', 'ai-generated', 'ai generated', 'co-authored-by']) != 0
28+ multiSearchAnyCaseInsensitive(
29+ title,
30+ [
31+ 'copilot',
32+ 'chatgpt',
33+ 'claude',
34+ 'cursor',
35+ 'codewhisperer',
36+ 'gemini',
37+ 'codeium',
38+ 'aider',
39+ 'devin',
40+ 'tabnine',
41+ 'ai-generated',
42+ 'ai generated'
43+ ]
44+ )
45+ != 0
46+ OR multiSearchAnyCaseInsensitive(
47+ body,
48+ [
49+ 'copilot',
50+ 'chatgpt',
51+ 'claude',
52+ 'cursor',
53+ 'codewhisperer',
54+ 'gemini',
55+ 'codeium',
56+ 'aider',
57+ 'devin',
58+ 'tabnine',
59+ 'ai-generated',
60+ 'ai generated',
61+ 'co-authored-by'
62+ ]
63+ )
64+ != 0
3565 OR multiSearchAnyCaseInsensitive(attributes, ['copilot', 'ai-generated']) != 0
3666
3767NODE ai_code_tracker_copy_classify
3868DESCRIPTION >
3969 Classify pre-filtered commits by AI tool
70+
4071SQL >
4172 SELECT
4273 monthStart,
4374 multiIf(
44- positionCaseInsensitive(title, 'github copilot') > 0 OR (positionCaseInsensitive(body, 'co-authored-by') > 0 AND positionCaseInsensitive(body, 'copilot') > 0) OR positionCaseInsensitive(attributes, 'copilot') > 0, 'github-copilot',
45- positionCaseInsensitive(title, 'cursor') > 0 OR positionCaseInsensitive(body, 'cursor') > 0, 'cursor',
46- positionCaseInsensitive(title, 'claude') > 0 OR positionCaseInsensitive(body, 'claude') > 0, 'claude',
47- positionCaseInsensitive(title, 'chatgpt') > 0 OR positionCaseInsensitive(body, 'chatgpt') > 0, 'chatgpt',
48- positionCaseInsensitive(title, 'codewhisperer') > 0 OR positionCaseInsensitive(body, 'codewhisperer') > 0, 'codewhisperer',
49- positionCaseInsensitive(title, 'gemini') > 0 OR positionCaseInsensitive(body, 'gemini') > 0, 'gemini',
50- positionCaseInsensitive(title, 'codeium') > 0 OR positionCaseInsensitive(body, 'codeium') > 0, 'codeium',
51- positionCaseInsensitive(title, 'copilot') > 0 OR positionCaseInsensitive(body, 'copilot') > 0, 'github-copilot',
52- positionCaseInsensitive(title, 'aider') > 0 OR positionCaseInsensitive(body, 'aider') > 0, 'aider',
53- positionCaseInsensitive(title, 'devin') > 0 OR positionCaseInsensitive(body, 'devin') > 0, 'devin',
54- positionCaseInsensitive(title, 'tabnine') > 0 OR positionCaseInsensitive(body, 'tabnine') > 0, 'tabnine',
55- positionCaseInsensitive(title, 'ai-generated') > 0 OR positionCaseInsensitive(title, 'ai generated') > 0
56- OR positionCaseInsensitive(body, 'ai-generated') > 0 OR positionCaseInsensitive(body, 'ai generated') > 0
57- OR positionCaseInsensitive(attributes, 'ai-generated') > 0
58- OR (positionCaseInsensitive(body, 'co-authored-by') > 0 AND positionCaseInsensitive(body, 'bot') > 0), 'other',
75+ positionCaseInsensitive(title, 'github copilot') > 0
76+ OR (
77+ positionCaseInsensitive(body, 'co-authored-by') > 0
78+ AND positionCaseInsensitive(body, 'copilot') > 0
79+ )
80+ OR positionCaseInsensitive(attributes, 'copilot') > 0,
81+ 'github-copilot',
82+ positionCaseInsensitive(title, 'cursor') > 0 OR positionCaseInsensitive(body, 'cursor') > 0,
83+ 'cursor',
84+ positionCaseInsensitive(title, 'claude') > 0 OR positionCaseInsensitive(body, 'claude') > 0,
85+ 'claude',
86+ positionCaseInsensitive(title, 'chatgpt') > 0
87+ OR positionCaseInsensitive(body, 'chatgpt') > 0,
88+ 'chatgpt',
89+ positionCaseInsensitive(title, 'codewhisperer') > 0
90+ OR positionCaseInsensitive(body, 'codewhisperer') > 0,
91+ 'codewhisperer',
92+ positionCaseInsensitive(title, 'gemini') > 0 OR positionCaseInsensitive(body, 'gemini') > 0,
93+ 'gemini',
94+ positionCaseInsensitive(title, 'codeium') > 0
95+ OR positionCaseInsensitive(body, 'codeium') > 0,
96+ 'codeium',
97+ positionCaseInsensitive(title, 'copilot') > 0
98+ OR positionCaseInsensitive(body, 'copilot') > 0,
99+ 'github-copilot',
100+ positionCaseInsensitive(title, 'aider') > 0 OR positionCaseInsensitive(body, 'aider') > 0,
101+ 'aider',
102+ positionCaseInsensitive(title, 'devin') > 0 OR positionCaseInsensitive(body, 'devin') > 0,
103+ 'devin',
104+ positionCaseInsensitive(title, 'tabnine') > 0
105+ OR positionCaseInsensitive(body, 'tabnine') > 0,
106+ 'tabnine',
107+ positionCaseInsensitive(title, 'ai-generated') > 0
108+ OR positionCaseInsensitive(title, 'ai generated') > 0
109+ OR positionCaseInsensitive(body, 'ai-generated') > 0
110+ OR positionCaseInsensitive(body, 'ai generated') > 0
111+ OR positionCaseInsensitive(attributes, 'ai-generated') > 0
112+ OR (
113+ positionCaseInsensitive(body, 'co-authored-by') > 0
114+ AND positionCaseInsensitive(body, 'bot') > 0
115+ ),
116+ 'other',
59117 '__none__'
60118 ) AS toolKey
61119 FROM ai_code_tracker_copy_prefilter
62120
63121NODE ai_code_tracker_copy_by_tool
64122DESCRIPTION >
65123 Aggregate AI commits by month and tool
124+
66125SQL >
67- SELECT
68- monthStart,
69- toolKey,
70- count() AS commitCount
126+ SELECT monthStart, toolKey, count() AS commitCount
71127 FROM ai_code_tracker_copy_classify
72128 WHERE toolKey != '__none__'
73129 GROUP BY monthStart, toolKey
74130
75131NODE ai_code_tracker_copy_result
76132DESCRIPTION >
77133 Union AI tool counts and total counts
134+
78135SQL >
79136 SELECT monthStart, toolKey, commitCount
80137 FROM ai_code_tracker_copy_by_tool
0 commit comments