Add /techdebt claude skill#10515
Conversation
| UPSTREAM=$(git remote -v | grep -E 'DataDog/[^/]+(.git)?\s' | head -1 | awk '{print $1}') | ||
| if [ -z "$UPSTREAM" ]; then | ||
| echo "No DataDog upstream found, using origin" | ||
| UPSTREAM="origin" | ||
| fi | ||
| echo "Comparing against: $UPSTREAM/master" |
There was a problem hiding this comment.
I added some tweaks to make sure it use the right reference in case of:
- multiple remote
- outdated (local) master branch
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 60 metrics, 11 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.066 s) : 0, 1065779
Total [baseline] (10.88 s) : 0, 10880156
Agent [candidate] (1.067 s) : 0, 1066504
Total [candidate] (10.873 s) : 0, 10873304
section appsec
Agent [baseline] (1.239 s) : 0, 1239024
Total [baseline] (11.099 s) : 0, 11099173
Agent [candidate] (1.249 s) : 0, 1248806
Total [candidate] (11.111 s) : 0, 11111179
section iast
Agent [baseline] (1.245 s) : 0, 1244705
Total [baseline] (11.292 s) : 0, 11291991
Agent [candidate] (1.247 s) : 0, 1247381
Total [candidate] (10.075 s) : 0, 10074668
section profiling
Agent [baseline] (1.191 s) : 0, 1190771
Total [baseline] (11.015 s) : 0, 11014969
Agent [candidate] (1.206 s) : 0, 1206351
Total [candidate] (10.974 s) : 0, 10974350
gantt
title petclinic - break down per module: candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.183 ms) : 0, 1183
crashtracking [candidate] (1.186 ms) : 0, 1186
BytebuddyAgent [baseline] (629.022 ms) : 0, 629022
BytebuddyAgent [candidate] (629.655 ms) : 0, 629655
AgentMeter [baseline] (28.853 ms) : 0, 28853
AgentMeter [candidate] (28.87 ms) : 0, 28870
GlobalTracer [baseline] (257.995 ms) : 0, 257995
GlobalTracer [candidate] (258.584 ms) : 0, 258584
AppSec [baseline] (32.81 ms) : 0, 32810
AppSec [candidate] (32.831 ms) : 0, 32831
Debugger [baseline] (62.09 ms) : 0, 62090
Debugger [candidate] (61.135 ms) : 0, 61135
Remote Config [baseline] (609.019 µs) : 0, 609
Remote Config [candidate] (602.213 µs) : 0, 602
Telemetry [baseline] (10.771 ms) : 0, 10771
Telemetry [candidate] (12.93 ms) : 0, 12930
Flare Poller [baseline] (6.945 ms) : 0, 6945
Flare Poller [candidate] (5.356 ms) : 0, 5356
section appsec
crashtracking [baseline] (1.188 ms) : 0, 1188
crashtracking [candidate] (1.203 ms) : 0, 1203
BytebuddyAgent [baseline] (658.318 ms) : 0, 658318
BytebuddyAgent [candidate] (663.483 ms) : 0, 663483
AgentMeter [baseline] (11.882 ms) : 0, 11882
AgentMeter [candidate] (11.97 ms) : 0, 11970
GlobalTracer [baseline] (258.245 ms) : 0, 258245
GlobalTracer [candidate] (260.464 ms) : 0, 260464
IAST [baseline] (25.169 ms) : 0, 25169
IAST [candidate] (25.691 ms) : 0, 25691
AppSec [baseline] (168.129 ms) : 0, 168129
AppSec [candidate] (169.056 ms) : 0, 169056
Debugger [baseline] (67.131 ms) : 0, 67131
Debugger [candidate] (67.811 ms) : 0, 67811
Remote Config [baseline] (701.764 µs) : 0, 702
Remote Config [candidate] (677.774 µs) : 0, 678
Telemetry [baseline] (9.164 ms) : 0, 9164
Telemetry [candidate] (9.225 ms) : 0, 9225
Flare Poller [baseline] (3.633 ms) : 0, 3633
Flare Poller [candidate] (3.676 ms) : 0, 3676
section iast
crashtracking [baseline] (1.212 ms) : 0, 1212
crashtracking [candidate] (1.204 ms) : 0, 1204
BytebuddyAgent [baseline] (805.298 ms) : 0, 805298
BytebuddyAgent [candidate] (808.312 ms) : 0, 808312
AgentMeter [baseline] (11.57 ms) : 0, 11570
AgentMeter [candidate] (11.742 ms) : 0, 11742
GlobalTracer [baseline] (249.949 ms) : 0, 249949
GlobalTracer [candidate] (250.564 ms) : 0, 250564
IAST [baseline] (27.18 ms) : 0, 27180
IAST [candidate] (27.337 ms) : 0, 27337
AppSec [baseline] (33.368 ms) : 0, 33368
AppSec [candidate] (34.146 ms) : 0, 34146
Debugger [baseline] (67.695 ms) : 0, 67695
Debugger [candidate] (65.759 ms) : 0, 65759
Remote Config [baseline] (551.211 µs) : 0, 551
Remote Config [candidate] (543.558 µs) : 0, 544
Telemetry [baseline] (8.773 ms) : 0, 8773
Telemetry [candidate] (8.639 ms) : 0, 8639
Flare Poller [baseline] (3.5 ms) : 0, 3500
Flare Poller [candidate] (3.454 ms) : 0, 3454
section profiling
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.227 ms) : 0, 1227
BytebuddyAgent [baseline] (681.744 ms) : 0, 681744
BytebuddyAgent [candidate] (692.528 ms) : 0, 692528
AgentMeter [baseline] (8.799 ms) : 0, 8799
AgentMeter [candidate] (8.913 ms) : 0, 8913
GlobalTracer [baseline] (216.202 ms) : 0, 216202
GlobalTracer [candidate] (218.907 ms) : 0, 218907
AppSec [baseline] (32.505 ms) : 0, 32505
AppSec [candidate] (32.991 ms) : 0, 32991
Debugger [baseline] (67.926 ms) : 0, 67926
Debugger [candidate] (68.31 ms) : 0, 68310
Remote Config [baseline] (602.099 µs) : 0, 602
Remote Config [candidate] (604.694 µs) : 0, 605
Telemetry [baseline] (8.878 ms) : 0, 8878
Telemetry [candidate] (8.847 ms) : 0, 8847
Flare Poller [baseline] (3.775 ms) : 0, 3775
Flare Poller [candidate] (3.757 ms) : 0, 3757
ProfilingAgent [baseline] (99.298 ms) : 0, 99298
ProfilingAgent [candidate] (99.553 ms) : 0, 99553
Profiling [baseline] (99.866 ms) : 0, 99866
Profiling [candidate] (100.127 ms) : 0, 100127
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.066 s) : 0, 1065515
Total [baseline] (8.744 s) : 0, 8744162
Agent [candidate] (1.068 s) : 0, 1067977
Total [candidate] (8.764 s) : 0, 8764211
section iast
Agent [baseline] (1.233 s) : 0, 1233261
Total [baseline] (9.353 s) : 0, 9352729
Agent [candidate] (1.238 s) : 0, 1238427
Total [candidate] (9.417 s) : 0, 9416628
gantt
title insecure-bank - break down per module: candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.181 ms) : 0, 1181
crashtracking [candidate] (1.199 ms) : 0, 1199
BytebuddyAgent [baseline] (627.284 ms) : 0, 627284
BytebuddyAgent [candidate] (631.317 ms) : 0, 631317
AgentMeter [baseline] (28.834 ms) : 0, 28834
AgentMeter [candidate] (29.011 ms) : 0, 29011
GlobalTracer [baseline] (259.224 ms) : 0, 259224
GlobalTracer [candidate] (258.644 ms) : 0, 258644
AppSec [baseline] (33.279 ms) : 0, 33279
AppSec [candidate] (32.985 ms) : 0, 32985
Debugger [baseline] (62.649 ms) : 0, 62649
Debugger [candidate] (59.526 ms) : 0, 59526
Remote Config [baseline] (624.793 µs) : 0, 625
Remote Config [candidate] (612.293 µs) : 0, 612
Telemetry [baseline] (11.537 ms) : 0, 11537
Telemetry [candidate] (12.995 ms) : 0, 12995
Flare Poller [baseline] (5.395 ms) : 0, 5395
Flare Poller [candidate] (6.223 ms) : 0, 6223
section iast
crashtracking [baseline] (1.189 ms) : 0, 1189
crashtracking [candidate] (1.184 ms) : 0, 1184
BytebuddyAgent [baseline] (797.578 ms) : 0, 797578
BytebuddyAgent [candidate] (799.764 ms) : 0, 799764
AgentMeter [baseline] (11.324 ms) : 0, 11324
AgentMeter [candidate] (11.405 ms) : 0, 11405
GlobalTracer [baseline] (248.27 ms) : 0, 248270
GlobalTracer [candidate] (249.911 ms) : 0, 249911
IAST [baseline] (27.01 ms) : 0, 27010
IAST [candidate] (27.2 ms) : 0, 27200
AppSec [baseline] (32.976 ms) : 0, 32976
AppSec [candidate] (32.631 ms) : 0, 32631
Debugger [baseline] (66.674 ms) : 0, 66674
Debugger [candidate] (68.04 ms) : 0, 68040
Remote Config [baseline] (550.995 µs) : 0, 551
Remote Config [candidate] (553.534 µs) : 0, 554
Telemetry [baseline] (8.762 ms) : 0, 8762
Telemetry [candidate] (8.852 ms) : 0, 8852
Flare Poller [baseline] (3.545 ms) : 0, 3545
Flare Poller [candidate] (3.529 ms) : 0, 3529
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 2 performance regressions! Performance is the same for 18 metrics, 16 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section baseline
no_agent (1.186 ms) : 1174, 1198
. : milestone, 1186,
iast (3.212 ms) : 3165, 3258
. : milestone, 3212,
iast_FULL (5.82 ms) : 5762, 5879
. : milestone, 5820,
iast_GLOBAL (3.59 ms) : 3537, 3642
. : milestone, 3590,
profiling (2.188 ms) : 2167, 2209
. : milestone, 2188,
tracing (1.765 ms) : 1750, 1779
. : milestone, 1765,
section candidate
no_agent (1.189 ms) : 1177, 1201
. : milestone, 1189,
iast (3.124 ms) : 3080, 3167
. : milestone, 3124,
iast_FULL (5.884 ms) : 5825, 5943
. : milestone, 5884,
iast_GLOBAL (3.721 ms) : 3657, 3785
. : milestone, 3721,
profiling (2.055 ms) : 2037, 2073
. : milestone, 2055,
tracing (1.747 ms) : 1733, 1760
. : milestone, 1747,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section baseline
no_agent (18.414 ms) : 18226, 18602
. : milestone, 18414,
appsec (18.501 ms) : 18316, 18685
. : milestone, 18501,
code_origins (17.579 ms) : 17402, 17757
. : milestone, 17579,
iast (17.796 ms) : 17619, 17973
. : milestone, 17796,
profiling (19.746 ms) : 19543, 19949
. : milestone, 19746,
tracing (17.625 ms) : 17449, 17801
. : milestone, 17625,
section candidate
no_agent (19.641 ms) : 19435, 19847
. : milestone, 19641,
appsec (18.626 ms) : 18432, 18819
. : milestone, 18626,
code_origins (18.7 ms) : 18513, 18887
. : milestone, 18700,
iast (17.902 ms) : 17723, 18082
. : milestone, 17902,
profiling (19.73 ms) : 19527, 19932
. : milestone, 19730,
tracing (17.517 ms) : 17342, 17692
. : milestone, 17517,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section baseline
no_agent (15.55 s) : 15550000, 15550000
. : milestone, 15550000,
appsec (14.823 s) : 14823000, 14823000
. : milestone, 14823000,
iast (18.066 s) : 18066000, 18066000
. : milestone, 18066000,
iast_GLOBAL (17.919 s) : 17919000, 17919000
. : milestone, 17919000,
profiling (14.81 s) : 14810000, 14810000
. : milestone, 14810000,
tracing (14.602 s) : 14602000, 14602000
. : milestone, 14602000,
section candidate
no_agent (15.246 s) : 15246000, 15246000
. : milestone, 15246000,
appsec (15.08 s) : 15080000, 15080000
. : milestone, 15080000,
iast (18.214 s) : 18214000, 18214000
. : milestone, 18214000,
iast_GLOBAL (17.697 s) : 17697000, 17697000
. : milestone, 17697000,
profiling (14.852 s) : 14852000, 14852000
. : milestone, 14852000,
tracing (14.665 s) : 14665000, 14665000
. : milestone, 14665000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~bd198f8fbc0, baseline=1.60.0-SNAPSHOT~9c3d035f5f
dateFormat X
axisFormat %s
section baseline
no_agent (1.472 ms) : 1461, 1484
. : milestone, 1472,
appsec (3.748 ms) : 3529, 3968
. : milestone, 3748,
iast (2.249 ms) : 2180, 2318
. : milestone, 2249,
iast_GLOBAL (2.292 ms) : 2223, 2362
. : milestone, 2292,
profiling (2.102 ms) : 2045, 2158
. : milestone, 2102,
tracing (2.046 ms) : 1992, 2099
. : milestone, 2046,
section candidate
no_agent (1.468 ms) : 1456, 1479
. : milestone, 1468,
appsec (3.733 ms) : 3513, 3953
. : milestone, 3733,
iast (2.247 ms) : 2178, 2317
. : milestone, 2247,
iast_GLOBAL (2.29 ms) : 2220, 2359
. : milestone, 2290,
profiling (2.074 ms) : 2020, 2129
. : milestone, 2074,
tracing (2.057 ms) : 2003, 2110
. : milestone, 2057,
|
8ee4d79 to
09a089b
Compare
e74cb86 to
cadbd32
Compare
cadbd32 to
bd198f8
Compare
What Does This Do
This PR introduces a
/techdebtskill to try limit the techdebt introduced by LLM and gen AI.The code tends to duplicate patterns and usually benefits from a refactoring or a complete redo once the working solution is found. The
/techdebtasks the tool to review the changes from the branch in order limit this behavior once the changes are ready.Usage
It's a Claude skill to clean up your branch before committing the PR.
From Claude code, type
/techdebt. It will fetch the changes from the branch, and look for the LLM anti-patterns.If it finds some, it propose to fix them.
You can add some context or ask him to focus on something specific using:
/techdebt <custom request here>.The skill is using a subagent, so it should not pollute your context reviewing the changes.
Once it fixes the issues it found, don't hesitate to run multiple time until it founds nothing to clean up.
Here is an output example:
Motivation
Inspired from Boris Cherny’s thread.
Additional Notes
This skill was defined by Claude itself as recommended. Not sure why the claude code product is not able to apply this recommendation by itself then 🤷
Contributor Checklist
type:and (comp:orinst:) labels in addition to any useful labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: APMSP-2343