-
Notifications
You must be signed in to change notification settings - Fork 324
Add /techdebt claude skill #10515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add /techdebt claude skill #10515
Conversation
.claude/skills/techdebt/SKILL.md
Outdated
| 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 62 metrics, 9 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.077 s) : 0, 1077336
Total [baseline] (10.912 s) : 0, 10912367
Agent [candidate] (1.066 s) : 0, 1065675
Total [candidate] (10.834 s) : 0, 10833631
section appsec
Agent [baseline] (1.247 s) : 0, 1247169
Total [baseline] (11.013 s) : 0, 11012806
Agent [candidate] (1.236 s) : 0, 1235883
Total [candidate] (10.988 s) : 0, 10987735
section iast
Agent [baseline] (1.235 s) : 0, 1234942
Total [baseline] (11.207 s) : 0, 11207102
Agent [candidate] (1.239 s) : 0, 1239446
Total [candidate] (11.307 s) : 0, 11307481
section profiling
Agent [baseline] (1.207 s) : 0, 1207104
Total [baseline] (11.076 s) : 0, 11075924
Agent [candidate] (1.191 s) : 0, 1191424
Total [candidate] (11.073 s) : 0, 11072903
gantt
title petclinic - break down per module: candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (636.792 ms) : 0, 636792
BytebuddyAgent [candidate] (628.121 ms) : 0, 628121
AgentMeter [baseline] (29.127 ms) : 0, 29127
AgentMeter [candidate] (28.82 ms) : 0, 28820
GlobalTracer [baseline] (259.864 ms) : 0, 259864
GlobalTracer [candidate] (257.863 ms) : 0, 257863
AppSec [baseline] (32.951 ms) : 0, 32951
AppSec [candidate] (32.819 ms) : 0, 32819
Debugger [baseline] (61.61 ms) : 0, 61610
Debugger [candidate] (60.775 ms) : 0, 60775
Remote Config [baseline] (625.526 µs) : 0, 626
Remote Config [candidate] (640.661 µs) : 0, 641
Telemetry [baseline] (13.254 ms) : 0, 13254
Telemetry [candidate] (14.724 ms) : 0, 14724
Flare Poller [baseline] (6.141 ms) : 0, 6141
Flare Poller [candidate] (5.387 ms) : 0, 5387
section appsec
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.177 ms) : 0, 1177
BytebuddyAgent [baseline] (663.316 ms) : 0, 663316
BytebuddyAgent [candidate] (656.95 ms) : 0, 656950
AgentMeter [baseline] (11.936 ms) : 0, 11936
AgentMeter [candidate] (11.841 ms) : 0, 11841
GlobalTracer [baseline] (260.274 ms) : 0, 260274
GlobalTracer [candidate] (257.86 ms) : 0, 257860
AppSec [baseline] (168.539 ms) : 0, 168539
AppSec [candidate] (167.524 ms) : 0, 167524
Debugger [baseline] (67.577 ms) : 0, 67577
Debugger [candidate] (66.801 ms) : 0, 66801
Remote Config [baseline] (687.654 µs) : 0, 688
Remote Config [candidate] (694.735 µs) : 0, 695
Telemetry [baseline] (9.064 ms) : 0, 9064
Telemetry [candidate] (8.992 ms) : 0, 8992
Flare Poller [baseline] (3.596 ms) : 0, 3596
Flare Poller [candidate] (3.53 ms) : 0, 3530
IAST [baseline] (25.472 ms) : 0, 25472
IAST [candidate] (25.242 ms) : 0, 25242
section iast
crashtracking [baseline] (1.198 ms) : 0, 1198
crashtracking [candidate] (1.206 ms) : 0, 1206
BytebuddyAgent [baseline] (797.875 ms) : 0, 797875
BytebuddyAgent [candidate] (801.709 ms) : 0, 801709
AgentMeter [baseline] (11.274 ms) : 0, 11274
AgentMeter [candidate] (11.486 ms) : 0, 11486
GlobalTracer [baseline] (248.743 ms) : 0, 248743
GlobalTracer [candidate] (248.947 ms) : 0, 248947
AppSec [baseline] (33.074 ms) : 0, 33074
AppSec [candidate] (33.77 ms) : 0, 33770
Debugger [baseline] (67.752 ms) : 0, 67752
Debugger [candidate] (67.135 ms) : 0, 67135
Remote Config [baseline] (549.508 µs) : 0, 550
Remote Config [candidate] (539.289 µs) : 0, 539
Telemetry [baseline] (8.72 ms) : 0, 8720
Telemetry [candidate] (8.711 ms) : 0, 8711
Flare Poller [baseline] (3.47 ms) : 0, 3470
Flare Poller [candidate] (3.514 ms) : 0, 3514
IAST [baseline] (26.967 ms) : 0, 26967
IAST [candidate] (27.017 ms) : 0, 27017
section profiling
ProfilingAgent [baseline] (99.565 ms) : 0, 99565
ProfilingAgent [candidate] (99.51 ms) : 0, 99510
crashtracking [baseline] (1.22 ms) : 0, 1220
crashtracking [candidate] (1.226 ms) : 0, 1226
BytebuddyAgent [baseline] (692.991 ms) : 0, 692991
BytebuddyAgent [candidate] (682.505 ms) : 0, 682505
AgentMeter [baseline] (8.89 ms) : 0, 8890
AgentMeter [candidate] (8.778 ms) : 0, 8778
GlobalTracer [baseline] (218.982 ms) : 0, 218982
GlobalTracer [candidate] (216.228 ms) : 0, 216228
AppSec [baseline] (33.203 ms) : 0, 33203
AppSec [candidate] (32.468 ms) : 0, 32468
Debugger [baseline] (68.326 ms) : 0, 68326
Debugger [candidate] (67.724 ms) : 0, 67724
Remote Config [baseline] (617.597 µs) : 0, 618
Remote Config [candidate] (598.261 µs) : 0, 598
Telemetry [baseline] (8.946 ms) : 0, 8946
Telemetry [candidate] (8.898 ms) : 0, 8898
Flare Poller [baseline] (3.857 ms) : 0, 3857
Flare Poller [candidate] (3.803 ms) : 0, 3803
Profiling [baseline] (100.131 ms) : 0, 100131
Profiling [candidate] (100.088 ms) : 0, 100088
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.065 s) : 0, 1064689
Total [baseline] (8.776 s) : 0, 8776465
Agent [candidate] (1.078 s) : 0, 1077714
Total [candidate] (8.829 s) : 0, 8828691
section iast
Agent [baseline] (1.231 s) : 0, 1231004
Total [baseline] (9.373 s) : 0, 9372976
Agent [candidate] (1.229 s) : 0, 1229405
Total [candidate] (9.388 s) : 0, 9388344
gantt
title insecure-bank - break down per module: candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.185 ms) : 0, 1185
crashtracking [candidate] (1.208 ms) : 0, 1208
BytebuddyAgent [baseline] (628.865 ms) : 0, 628865
BytebuddyAgent [candidate] (637.198 ms) : 0, 637198
AgentMeter [baseline] (28.922 ms) : 0, 28922
AgentMeter [candidate] (29.277 ms) : 0, 29277
GlobalTracer [baseline] (257.856 ms) : 0, 257856
GlobalTracer [candidate] (260.39 ms) : 0, 260390
AppSec [baseline] (32.676 ms) : 0, 32676
AppSec [candidate] (33.33 ms) : 0, 33330
Debugger [baseline] (60.385 ms) : 0, 60385
Debugger [candidate] (62.642 ms) : 0, 62642
Remote Config [baseline] (631.035 µs) : 0, 631
Remote Config [candidate] (629.236 µs) : 0, 629
Telemetry [baseline] (12.437 ms) : 0, 12437
Telemetry [candidate] (12.588 ms) : 0, 12588
Flare Poller [baseline] (6.218 ms) : 0, 6218
Flare Poller [candidate] (4.697 ms) : 0, 4697
section iast
crashtracking [baseline] (1.193 ms) : 0, 1193
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (796.288 ms) : 0, 796288
BytebuddyAgent [candidate] (795.007 ms) : 0, 795007
AgentMeter [baseline] (11.281 ms) : 0, 11281
AgentMeter [candidate] (11.265 ms) : 0, 11265
GlobalTracer [baseline] (248.228 ms) : 0, 248228
GlobalTracer [candidate] (247.47 ms) : 0, 247470
IAST [baseline] (27.059 ms) : 0, 27059
IAST [candidate] (26.929 ms) : 0, 26929
AppSec [baseline] (33.768 ms) : 0, 33768
AppSec [candidate] (32.217 ms) : 0, 32217
Debugger [baseline] (65.205 ms) : 0, 65205
Debugger [candidate] (67.44 ms) : 0, 67440
Remote Config [baseline] (549.446 µs) : 0, 549
Remote Config [candidate] (551.638 µs) : 0, 552
Telemetry [baseline] (8.683 ms) : 0, 8683
Telemetry [candidate] (8.628 ms) : 0, 8628
Flare Poller [baseline] (3.495 ms) : 0, 3495
Flare Poller [candidate] (3.478 ms) : 0, 3478
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 20 metrics, 16 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section baseline
no_agent (19.581 ms) : 19380, 19782
. : milestone, 19581,
appsec (18.992 ms) : 18801, 19183
. : milestone, 18992,
code_origins (17.69 ms) : 17515, 17866
. : milestone, 17690,
iast (17.772 ms) : 17593, 17951
. : milestone, 17772,
profiling (18.742 ms) : 18557, 18927
. : milestone, 18742,
tracing (17.827 ms) : 17647, 18006
. : milestone, 17827,
section candidate
no_agent (19.351 ms) : 19156, 19545
. : milestone, 19351,
appsec (18.784 ms) : 18593, 18974
. : milestone, 18784,
code_origins (17.524 ms) : 17349, 17699
. : milestone, 17524,
iast (17.708 ms) : 17533, 17884
. : milestone, 17708,
profiling (18.72 ms) : 18532, 18907
. : milestone, 18720,
tracing (17.874 ms) : 17696, 18051
. : milestone, 17874,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section baseline
no_agent (1.169 ms) : 1157, 1180
. : milestone, 1169,
iast (3.197 ms) : 3153, 3240
. : milestone, 3197,
iast_FULL (5.78 ms) : 5722, 5838
. : milestone, 5780,
iast_GLOBAL (3.573 ms) : 3516, 3629
. : milestone, 3573,
profiling (1.947 ms) : 1931, 1963
. : milestone, 1947,
tracing (1.823 ms) : 1808, 1838
. : milestone, 1823,
section candidate
no_agent (1.18 ms) : 1168, 1191
. : milestone, 1180,
iast (3.153 ms) : 3108, 3198
. : milestone, 3153,
iast_FULL (5.707 ms) : 5651, 5763
. : milestone, 5707,
iast_GLOBAL (3.609 ms) : 3554, 3664
. : milestone, 3609,
profiling (2.191 ms) : 2170, 2211
. : milestone, 2191,
tracing (1.829 ms) : 1812, 1845
. : milestone, 1829,
DacapoParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section baseline
no_agent (1.467 ms) : 1455, 1478
. : milestone, 1467,
appsec (3.734 ms) : 3515, 3954
. : milestone, 3734,
iast (2.25 ms) : 2181, 2320
. : milestone, 2250,
iast_GLOBAL (2.286 ms) : 2217, 2356
. : milestone, 2286,
profiling (2.091 ms) : 2035, 2148
. : milestone, 2091,
tracing (2.05 ms) : 1996, 2104
. : milestone, 2050,
section candidate
no_agent (1.466 ms) : 1455, 1478
. : milestone, 1466,
appsec (2.539 ms) : 2481, 2597
. : milestone, 2539,
iast (2.243 ms) : 2174, 2312
. : milestone, 2243,
iast_GLOBAL (2.286 ms) : 2217, 2356
. : milestone, 2286,
profiling (2.077 ms) : 2022, 2132
. : milestone, 2077,
tracing (2.068 ms) : 2014, 2122
. : milestone, 2068,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~cadbd32cdb, baseline=1.60.0-SNAPSHOT~13d10a0e40
dateFormat X
axisFormat %s
section baseline
no_agent (14.831 s) : 14831000, 14831000
. : milestone, 14831000,
appsec (14.731 s) : 14731000, 14731000
. : milestone, 14731000,
iast (18.302 s) : 18302000, 18302000
. : milestone, 18302000,
iast_GLOBAL (17.773 s) : 17773000, 17773000
. : milestone, 17773000,
profiling (14.893 s) : 14893000, 14893000
. : milestone, 14893000,
tracing (14.692 s) : 14692000, 14692000
. : milestone, 14692000,
section candidate
no_agent (15.481 s) : 15481000, 15481000
. : milestone, 15481000,
appsec (14.731 s) : 14731000, 14731000
. : milestone, 14731000,
iast (18.046 s) : 18046000, 18046000
. : milestone, 18046000,
iast_GLOBAL (17.974 s) : 17974000, 17974000
. : milestone, 17974000,
profiling (15.015 s) : 15015000, 15015000
. : milestone, 15015000,
tracing (14.921 s) : 14921000, 14921000
. : milestone, 14921000,
|
8ee4d79 to
09a089b
Compare
e74cb86 to
cadbd32
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