opencode-skills-collection 4.0.43 → 4.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +47 -1
  2. package/bundled-skills/api-rate-limit-handler/SKILL.md +282 -0
  3. package/bundled-skills/api-security/SKILL.md +205 -0
  4. package/bundled-skills/api-security/references/jwt-oauth-testing.md +123 -0
  5. package/bundled-skills/api-security/references/rest-graphql-testing.md +137 -0
  6. package/bundled-skills/apk-reverse/SKILL.md +438 -0
  7. package/bundled-skills/apk-reverse/references/android-advanced.md +365 -0
  8. package/bundled-skills/apk-reverse/references/apk-security-checklist.md +230 -0
  9. package/bundled-skills/apk-reverse/references/frida-bypass-kit.md +70 -0
  10. package/bundled-skills/apk-reverse/references/frida-cookbook.md +472 -0
  11. package/bundled-skills/attack-chain/SKILL.md +185 -0
  12. package/bundled-skills/attack-chain/references/attack-playbooks.md +126 -0
  13. package/bundled-skills/attack-chain/references/evasion-cheatsheet.md +133 -0
  14. package/bundled-skills/attack-chain/references/lifecycle-checklist.md +37 -0
  15. package/bundled-skills/attack-chain/references/phases.md +490 -0
  16. package/bundled-skills/binary-diff/SKILL.md +320 -0
  17. package/bundled-skills/binary-diff/references/prompt-template.md +173 -0
  18. package/bundled-skills/browser-extension-reverse/SKILL.md +99 -0
  19. package/bundled-skills/browser-extension-reverse/references/extension-analysis.md +10 -0
  20. package/bundled-skills/case-review/SKILL.md +167 -0
  21. package/bundled-skills/cloud-k8s/SKILL.md +124 -0
  22. package/bundled-skills/cloud-k8s/references/k8s-cloud-checklist.md +16 -0
  23. package/bundled-skills/code-audit/SKILL.md +92 -0
  24. package/bundled-skills/code-audit/references/sast-review-checklist.md +10 -0
  25. package/bundled-skills/database-security/SKILL.md +81 -0
  26. package/bundled-skills/database-security/references/db-misconfig-checklist.md +9 -0
  27. package/bundled-skills/diagram-generator/SKILL.md +199 -0
  28. package/bundled-skills/diagram-generator/references/README.md +3 -0
  29. package/bundled-skills/diagram-generator/references/diagram-patterns.md +254 -0
  30. package/bundled-skills/digital-forensics/SKILL.md +93 -0
  31. package/bundled-skills/digital-forensics/references/forensics-triage.md +10 -0
  32. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  33. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  34. package/bundled-skills/docs/maintainers/repo-growth-seo.md +1 -1
  35. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  36. package/bundled-skills/docs/sources/sources.md +9 -0
  37. package/bundled-skills/docs/users/aas-core.md +1 -1
  38. package/bundled-skills/docs/users/bundles.md +1 -1
  39. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  40. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  41. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  42. package/bundled-skills/docs/users/usage.md +3 -3
  43. package/bundled-skills/docs/users/visual-guide.md +4 -4
  44. package/bundled-skills/docs-generator/SKILL.md +197 -0
  45. package/bundled-skills/docs-generator/references/security-report-templates.md +348 -0
  46. package/bundled-skills/docs-generator/references/templates.md +102 -0
  47. package/bundled-skills/docs-generator/references/vendor-report-rules.md +263 -0
  48. package/bundled-skills/dotnet-reverse/SKILL.md +197 -0
  49. package/bundled-skills/dotnet-reverse/references/common-workflow.md +171 -0
  50. package/bundled-skills/dotnet-reverse/references/obfuscators.md +145 -0
  51. package/bundled-skills/dotnet-reverse/references/sharp-tools.md +164 -0
  52. package/bundled-skills/edr-bypass-re/SKILL.md +248 -0
  53. package/bundled-skills/edr-bypass-re/references/hook-survey.md +226 -0
  54. package/bundled-skills/edr-bypass-re/references/telemetry-blinding.md +346 -0
  55. package/bundled-skills/edr-bypass-re/references/unhook-techniques.md +338 -0
  56. package/bundled-skills/email-security/SKILL.md +81 -0
  57. package/bundled-skills/email-security/references/email-auth-checklist.md +8 -0
  58. package/bundled-skills/firmware-pentest/SKILL.md +381 -0
  59. package/bundled-skills/firmware-pentest/references/emba-automated-analysis.md +192 -0
  60. package/bundled-skills/firmware-pentest/references/emulation-and-fuzz.md +337 -0
  61. package/bundled-skills/firmware-pentest/references/extraction-methodology.md +285 -0
  62. package/bundled-skills/ghidra-reverse/SKILL.md +98 -0
  63. package/bundled-skills/ghidra-reverse/references/ghidra-cheatsheet.md +12 -0
  64. package/bundled-skills/go-rust-reverse/SKILL.md +82 -0
  65. package/bundled-skills/go-rust-reverse/references/go-rust-notes.md +5 -0
  66. package/bundled-skills/hardware-security/SKILL.md +80 -0
  67. package/bundled-skills/hardware-security/references/debug-interface-triage.md +7 -0
  68. package/bundled-skills/ida-reverse/SKILL.md +401 -0
  69. package/bundled-skills/ida-reverse/references/LOCAL-SETUP.md +66 -0
  70. package/bundled-skills/ida-reverse/references/ida-mcp-cheatsheet.md +515 -0
  71. package/bundled-skills/identity-federation/SKILL.md +81 -0
  72. package/bundled-skills/identity-federation/references/sso-flow-checklist.md +9 -0
  73. package/bundled-skills/instructree/SKILL.md +94 -0
  74. package/bundled-skills/js-reverse/SKILL.md +239 -0
  75. package/bundled-skills/js-reverse/references/ast-deobfuscation.md +3 -0
  76. package/bundled-skills/js-reverse/references/automation-entry.md +12 -0
  77. package/bundled-skills/js-reverse/references/env-patching.md +6 -0
  78. package/bundled-skills/js-reverse/references/fallbacks.md +8 -0
  79. package/bundled-skills/js-reverse/references/instrumentation.md +9 -0
  80. package/bundled-skills/js-reverse/references/local-rebuild.md +11 -0
  81. package/bundled-skills/js-reverse/references/mcp-task-template.md +30 -0
  82. package/bundled-skills/js-reverse/references/node-env-rebuild.md +9 -0
  83. package/bundled-skills/js-reverse/references/output-contract.md +9 -0
  84. package/bundled-skills/js-reverse/references/task-artifacts.md +11 -0
  85. package/bundled-skills/js-reverse/references/task-input-template.md +11 -0
  86. package/bundled-skills/js-reverse/references/tool-defaults.md +7 -0
  87. package/bundled-skills/llm-security/SKILL.md +160 -0
  88. package/bundled-skills/llm-security/references/agent-obedience-engineering.md +243 -0
  89. package/bundled-skills/llm-security/references/agent-security-testing.md +116 -0
  90. package/bundled-skills/llm-security/references/owasp-llm-top10.md +48 -0
  91. package/bundled-skills/llm-security/references/prompt-injection-methodology.md +107 -0
  92. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
  93. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
  94. package/bundled-skills/macos-reverse/SKILL.md +85 -0
  95. package/bundled-skills/macos-reverse/references/macho-triage.md +10 -0
  96. package/bundled-skills/malware-analysis/SKILL.md +311 -0
  97. package/bundled-skills/malware-analysis/references/anti-analysis-techniques.md +205 -0
  98. package/bundled-skills/malware-analysis/references/sandbox-orchestration.md +204 -0
  99. package/bundled-skills/malware-analysis/references/yara-sigma-rules.md +232 -0
  100. package/bundled-skills/mobile-reverse/SKILL.md +222 -0
  101. package/bundled-skills/mobile-reverse/references/anti-detection-bypass.md +182 -0
  102. package/bundled-skills/mobile-reverse/references/frida-objection-deep.md +218 -0
  103. package/bundled-skills/mobile-reverse/references/ios-reverse-guide.md +177 -0
  104. package/bundled-skills/muapi-media/SKILL.md +311 -0
  105. package/bundled-skills/ot-ics/SKILL.md +117 -0
  106. package/bundled-skills/ot-ics/references/ot-safe-assessment.md +10 -0
  107. package/bundled-skills/patch-diff-exploit/SKILL.md +278 -0
  108. package/bundled-skills/patch-diff-exploit/references/diff-tools-comparison.md +271 -0
  109. package/bundled-skills/patch-diff-exploit/references/patch-tuesday-workflow.md +253 -0
  110. package/bundled-skills/patch-diff-exploit/references/root-cause-and-poc.md +198 -0
  111. package/bundled-skills/pentest-tools/SKILL.md +346 -0
  112. package/bundled-skills/pentest-tools/references/ai-pentest-agents.md +148 -0
  113. package/bundled-skills/pentest-tools/references/ai-pentesting-landscape-2026.md +73 -0
  114. package/bundled-skills/pentest-tools/references/automation-loop-pattern.md +153 -0
  115. package/bundled-skills/pentest-tools/references/awesome-pentest-digest.md +175 -0
  116. package/bundled-skills/pentest-tools/references/burpsuite-mcp-guide.md +769 -0
  117. package/bundled-skills/pentest-tools/references/client-side-lab-playbook.md +155 -0
  118. package/bundled-skills/pentest-tools/references/kali-mcp-ecosystem.md +119 -0
  119. package/bundled-skills/pentest-tools/references/msf-protocol.md +169 -0
  120. package/bundled-skills/pentest-tools/references/network-attack-defense.md +350 -0
  121. package/bundled-skills/pentest-tools/references/nuclei-guide-2026.md +157 -0
  122. package/bundled-skills/pentest-tools/references/payloads.md +32 -0
  123. package/bundled-skills/pentest-tools/references/pentest-ai-agents-matrix.md +117 -0
  124. package/bundled-skills/pentest-tools/references/pentest-loop.md +270 -0
  125. package/bundled-skills/pentest-tools/references/recon-pipeline.md +154 -0
  126. package/bundled-skills/pentest-tools/references/templates/findings.md +21 -0
  127. package/bundled-skills/pentest-tools/references/templates/progress.md +17 -0
  128. package/bundled-skills/pentest-tools/references/templates/rules.md +35 -0
  129. package/bundled-skills/pentest-tools/references/templates/scope.md +29 -0
  130. package/bundled-skills/pentest-tools/references/templates/task_plan.md +27 -0
  131. package/bundled-skills/pentest-tools/references/web-attack-cheatsheet.md +387 -0
  132. package/bundled-skills/pentest-tools/src-hunter/SKILL.md +243 -0
  133. package/bundled-skills/pentest-tools/src-hunter/references/README.en.md +115 -0
  134. package/bundled-skills/pentest-tools/src-hunter/references/README.md +148 -0
  135. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/00-index.md +44 -0
  136. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/chinese-srcfingerprints.md +515 -0
  137. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/default-credentials-cn.md +274 -0
  138. package/bundled-skills/pentest-tools/src-hunter/references/industry/00-index.md +66 -0
  139. package/bundled-skills/pentest-tools/src-hunter/references/industry/banking-finance.md +338 -0
  140. package/bundled-skills/pentest-tools/src-hunter/references/industry/telecom-isp.md +315 -0
  141. package/bundled-skills/pentest-tools/src-hunter/references/methodology/00-index.md +68 -0
  142. package/bundled-skills/pentest-tools/src-hunter/references/methodology/01-attack-priority.md +143 -0
  143. package/bundled-skills/pentest-tools/src-hunter/references/methodology/02-bypass-toolkit.md +357 -0
  144. package/bundled-skills/pentest-tools/src-hunter/references/methodology/03-evidence-discipline.md +205 -0
  145. package/bundled-skills/pentest-tools/src-hunter/references/methodology/04-control-gap-hunting.md +238 -0
  146. package/bundled-skills/pentest-tools/src-hunter/references/methodology/05-srctimebox-priority.md +161 -0
  147. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/adcs/346/224/273/345/207/273.md +254 -0
  148. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/exchange/346/224/273/345/207/273.md +254 -0
  149. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/sharepoint/346/224/273/345/207/273.md +113 -0
  150. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//344/277/241/346/201/257/346/224/266/351/233/206.md +947 -0
  151. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/205/215/346/235/200/344/270/216/350/247/204/351/201/277.md +780 -0
  152. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/207/255/350/257/201/347/252/203/345/217/226.md +1259 -0
  153. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/237/237/346/270/227/351/200/217/346/224/273/345/207/273.md +753 -0
  154. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/346/217/220/345/215/207.md +819 -0
  155. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/347/273/264/346/214/201.md +577 -0
  156. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/250/252/345/220/221/347/247/273/345/212/250.md +838 -0
  157. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//351/232/247/351/201/223/344/273/243/347/220/206.md +604 -0
  158. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ai/345/256/211/345/205/250.md +698 -0
  159. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/api/345/256/211/345/205/250.md +1935 -0
  160. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/csrf/350/267/250/347/253/231/350/257/267/346/261/202/344/274/252/351/200/240.md +952 -0
  161. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/jwt/345/256/211/345/205/250.md +496 -0
  162. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/lfi-rfi/346/226/207/344/273/266/345/214/205/345/220/253.md +1365 -0
  163. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/rce/350/277/234/347/250/213/344/273/243/347/240/201/346/211/247/350/241/214.md +1329 -0
  164. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/sql-nosql/346/263/250/345/205/245.md +1924 -0
  165. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssrf/346/234/215/345/212/241/347/253/257/350/257/267/346/261/202/344/274/252/351/200/240.md +1256 -0
  166. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssti/346/250/241/346/235/277/346/263/250/345/205/245.md +1151 -0
  167. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/websocket/345/256/211/345/205/250.md +487 -0
  168. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xss/350/267/250/347/253/231/350/204/232/346/234/254.md +1465 -0
  169. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xxe/345/256/236/344/275/223/346/263/250/345/205/245.md +815 -0
  170. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/270/232/345/212/241/351/200/273/350/276/221/346/274/217/346/264/236.md +594 -0
  171. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/272/221/345/256/211/345/205/250/346/274/217/346/264/236.md +561 -0
  172. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/276/233/345/272/224/351/223/276/346/224/273/345/207/273.md +399 -0
  173. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/216/237/345/236/213/351/223/276/346/261/241/346/237/223.md +401 -0
  174. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/274/200/346/224/276/351/207/215/345/256/232/345/220/221.md +396 -0
  175. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/226/207/344/273/266/346/274/217/346/264/236.md +0 -0
  176. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/241/206/346/236/266/346/274/217/346/264/236.md +2304 -0
  177. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/202/271/345/207/273/345/212/253/346/214/201.md +339 -0
  178. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/274/223/345/255/230/344/270/216cdn/345/256/211/345/205/250.md +497 -0
  179. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/256/244/350/257/201/346/274/217/346/264/236.md +1778 -0
  180. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/257/267/346/261/202/350/265/260/347/247/201.md +854 -0
  181. package/bundled-skills/pentest-tools/src-hunter/references/payloader/index.md +69 -0
  182. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/web/346/270/227/351/200/217.md +662 -0
  183. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/windows/346/270/227/351/200/217.md +100 -0
  184. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//344/277/241/346/201/257/346/224/266/351/233/206.md +852 -0
  185. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/206/205/347/275/221/346/270/227/351/200/217.md +873 -0
  186. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/207/255/350/257/201/347/252/203/345/217/226.md +186 -0
  187. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/237/237/346/270/227/351/200/217.md +50 -0
  188. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/257/206/347/240/201/346/224/273/345/207/273.md +462 -0
  189. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/235/203/351/231/220/346/217/220/345/215/207.md +168 -0
  190. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/274/217/346/264/236/345/210/251/347/224/250.md +445 -0
  191. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/263/273/347/273/237/345/221/275/344/273/244.md +410 -0
  192. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/272/242/351/230/237/345/267/245/345/205/267.md +64 -0
  193. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/274/226/347/240/201/350/247/243/347/240/201.md +226 -0
  194. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//351/232/247/351/201/223/344/273/243/347/220/206.md +84 -0
  195. package/bundled-skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md +6504 -0
  196. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/00-index.md +57 -0
  197. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/api-rest.md +2050 -0
  198. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/arbitrary-x-authz.md +481 -0
  199. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/dos.md +615 -0
  200. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/file-upload.md +1365 -0
  201. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/graphql.md +253 -0
  202. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md +924 -0
  203. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/info-disclosure.md +432 -0
  204. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/intranet-postexp.md +4845 -0
  205. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/llm-prompt-injection.md +1394 -0
  206. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/logic-flaws.md +1796 -0
  207. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/mobile.md +397 -0
  208. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/oauth-saml-jwt.md +2504 -0
  209. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/path-traversal.md +1297 -0
  210. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/race-conditions.md +207 -0
  211. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/rce.md +4829 -0
  212. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/sqli.md +1620 -0
  213. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/ssrf-cache-host.md +2098 -0
  214. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/unauth-access.md +330 -0
  215. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/xss.md +1159 -0
  216. package/bundled-skills/pentest-tools/src-hunter/references/templates/report-submission.md +346 -0
  217. package/bundled-skills/pentest-tools/src-hunter/references/tools/mcp-jshook.md +174 -0
  218. package/bundled-skills/protocol-reverse/SKILL.md +108 -0
  219. package/bundled-skills/protocol-reverse/references/protocol-workflow.md +29 -0
  220. package/bundled-skills/pwn-chain/SKILL.md +209 -0
  221. package/bundled-skills/pwn-chain/references/heap-pwn.md +283 -0
  222. package/bundled-skills/pwn-chain/references/kernel-pwn.md +370 -0
  223. package/bundled-skills/pwn-chain/references/stack-pwn.md +312 -0
  224. package/bundled-skills/radare2/SKILL.md +460 -0
  225. package/bundled-skills/radare2/references/cheatsheet.md +129 -0
  226. package/bundled-skills/radio-sdr/SKILL.md +77 -0
  227. package/bundled-skills/radio-sdr/references/sdr-lab-rules.md +6 -0
  228. package/bundled-skills/reverse-browser-automation/SKILL.md +249 -0
  229. package/bundled-skills/reverse-browser-automation/references/playwright-cheatsheet.md +425 -0
  230. package/bundled-skills/reverse-engineering/SKILL.md +213 -0
  231. package/bundled-skills/reverse-engineering/dsl-vm-reverse/SKILL.md +388 -0
  232. package/bundled-skills/reverse-engineering/references/ai-assisted-re.md +149 -0
  233. package/bundled-skills/reverse-engineering/references/anti-analysis.md +836 -0
  234. package/bundled-skills/reverse-engineering/references/awesome-re-resources.md +135 -0
  235. package/bundled-skills/reverse-engineering/references/crypto-decode-tools.md +220 -0
  236. package/bundled-skills/reverse-engineering/references/elf-analysis.md +296 -0
  237. package/bundled-skills/reverse-engineering/references/field-notes.md +540 -0
  238. package/bundled-skills/reverse-engineering/references/go-reverse.md +240 -0
  239. package/bundled-skills/reverse-engineering/references/kernel-driver-reverse.md +298 -0
  240. package/bundled-skills/reverse-engineering/references/languages-compiled.md +587 -0
  241. package/bundled-skills/reverse-engineering/references/languages-platforms.md +486 -0
  242. package/bundled-skills/reverse-engineering/references/languages.md +499 -0
  243. package/bundled-skills/reverse-engineering/references/nonpe-format-cookbook.md +301 -0
  244. package/bundled-skills/reverse-engineering/references/ollvm-deobfuscation.md +501 -0
  245. package/bundled-skills/reverse-engineering/references/patterns-ctf-2.md +397 -0
  246. package/bundled-skills/reverse-engineering/references/patterns-ctf-3.md +719 -0
  247. package/bundled-skills/reverse-engineering/references/patterns-ctf.md +532 -0
  248. package/bundled-skills/reverse-engineering/references/patterns.md +801 -0
  249. package/bundled-skills/reverse-engineering/references/platforms-hardware.md +304 -0
  250. package/bundled-skills/reverse-engineering/references/platforms.md +442 -0
  251. package/bundled-skills/reverse-engineering/references/re-agent-workflow.md +240 -0
  252. package/bundled-skills/reverse-engineering/references/tools-advanced.md +822 -0
  253. package/bundled-skills/reverse-engineering/references/tools-dynamic.md +846 -0
  254. package/bundled-skills/reverse-engineering/references/tools.md +546 -0
  255. package/bundled-skills/supply-chain-security/SKILL.md +180 -0
  256. package/bundled-skills/supply-chain-security/references/cicd-pipeline-security.md +137 -0
  257. package/bundled-skills/supply-chain-security/references/sbom-sca-methodology.md +74 -0
  258. package/bundled-skills/thick-client/SKILL.md +104 -0
  259. package/bundled-skills/thick-client/references/thick-client-checklist.md +9 -0
  260. package/bundled-skills/threat-hunting/SKILL.md +94 -0
  261. package/bundled-skills/threat-hunting/references/hunting-loop.md +5 -0
  262. package/bundled-skills/threat-intelligence/SKILL.md +176 -0
  263. package/bundled-skills/threat-intelligence/references/x-public-intelligence.md +93 -0
  264. package/bundled-skills/tree-ring-memory/SKILL.md +29 -9
  265. package/bundled-skills/wifi-wireless/SKILL.md +80 -0
  266. package/bundled-skills/wifi-wireless/references/wireless-lab-rules.md +6 -0
  267. package/bundled-skills/windows-ad/SKILL.md +109 -0
  268. package/bundled-skills/windows-ad/references/ad-attack-paths.md +12 -0
  269. package/package.json +1 -1
  270. package/skills_index.json +1214 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-08-26T00:34:21.858Z",
3
+ "updatedAt": "2026-08-28T07:24:03.715Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -127,7 +127,9 @@
127
127
  "api-integration",
128
128
  "api-onboarding",
129
129
  "api-patterns",
130
+ "api-rate-limit-handler",
130
131
  "api-sdk-generator",
132
+ "api-security",
131
133
  "api-security-best-practices",
132
134
  "api-security-testing",
133
135
  "api-testing-observability-api-mock",
@@ -143,6 +145,7 @@
143
145
  "apify-market-research",
144
146
  "apify-trend-analysis",
145
147
  "apify-ultimate-scraper",
148
+ "apk-reverse",
146
149
  "app-builder",
147
150
  "app-builder/templates",
148
151
  "app-store-changelog",
@@ -170,6 +173,7 @@
170
173
  "atlas-cloud-media",
171
174
  "atlas-contract",
172
175
  "atlas-ledger",
176
+ "attack-chain",
173
177
  "attack-tree-construction",
174
178
  "audio-transcriber",
175
179
  "audit-agent-run-evidence",
@@ -345,6 +349,7 @@
345
349
  "bill-gates",
346
350
  "billing-automation",
347
351
  "binary-analysis-patterns",
352
+ "binary-diff",
348
353
  "biopython",
349
354
  "bitbucket-automation",
350
355
  "blockchain-developer",
@@ -373,6 +378,7 @@
373
378
  "browser-act",
374
379
  "browser-automation",
375
380
  "browser-extension-builder",
381
+ "browser-extension-reverse",
376
382
  "browser-harness",
377
383
  "browser-testing-with-devtools",
378
384
  "bug-hunt-swarm",
@@ -400,6 +406,7 @@
400
406
  "canva-automation",
401
407
  "canvas-design",
402
408
  "carrier-relationship-management",
409
+ "case-review",
403
410
  "cc-skill-backend-patterns",
404
411
  "cc-skill-clickhouse-io",
405
412
  "cc-skill-coding-standards",
@@ -442,6 +449,7 @@
442
449
  "closed-loop-delivery",
443
450
  "cloud-architect",
444
451
  "cloud-devops",
452
+ "cloud-k8s",
445
453
  "cloud-penetration-testing",
446
454
  "cloudflare-security-audit",
447
455
  "cloudflare-workers-expert",
@@ -449,6 +457,7 @@
449
457
  "cmux",
450
458
  "co-marketing",
451
459
  "coda-automation",
460
+ "code-audit",
452
461
  "code-documentation-code-explain",
453
462
  "code-documentation-doc-generate",
454
463
  "code-polish",
@@ -583,6 +592,7 @@
583
592
  "database-migrations-migration-observability",
584
593
  "database-migrations-sql-migrations",
585
594
  "database-optimizer",
595
+ "database-security",
586
596
  "datadog-automation",
587
597
  "dbos-golang",
588
598
  "dbos-python",
@@ -688,8 +698,10 @@
688
698
  "devrel-content",
689
699
  "diagnose-android-overheating",
690
700
  "diagnosing-bugs",
701
+ "diagram-generator",
691
702
  "diary",
692
703
  "differential-review",
704
+ "digital-forensics",
693
705
  "discord-automation",
694
706
  "discord-bot-architect",
695
707
  "dispatch",
@@ -707,6 +719,7 @@
707
719
  "docs",
708
720
  "docs-architect",
709
721
  "docs-as-marketing",
722
+ "docs-generator",
710
723
  "docs-guard",
711
724
  "documentation",
712
725
  "documentation-and-adrs",
@@ -720,6 +733,7 @@
720
733
  "dotnet-architect",
721
734
  "dotnet-backend",
722
735
  "dotnet-backend-patterns",
736
+ "dotnet-reverse",
723
737
  "doubt-driven-development",
724
738
  "drizzle-migration-conflict",
725
739
  "drizzle-orm-expert",
@@ -732,12 +746,14 @@
732
746
  "earllm-build",
733
747
  "eas-update-insights",
734
748
  "ecl-harness-engineer",
749
+ "edr-bypass-re",
735
750
  "effective-agent-skills",
736
751
  "efficient-web-research",
737
752
  "ejentum-reasoning-harness",
738
753
  "electron-development",
739
754
  "elixir-pro",
740
755
  "elon-musk",
756
+ "email-security",
741
757
  "email-sequence",
742
758
  "email-systems",
743
759
  "embedding-strategies",
@@ -815,6 +831,7 @@
815
831
  "firebase",
816
832
  "firecrawl-scraper",
817
833
  "firmware-analyst",
834
+ "firmware-pentest",
818
835
  "fitness-analyzer",
819
836
  "fix-review",
820
837
  "fixing-accessibility",
@@ -897,6 +914,7 @@
897
914
  "gh-image",
898
915
  "gh-review-requests",
899
916
  "gha-security-review",
917
+ "ghidra-reverse",
900
918
  "git-advanced-workflows",
901
919
  "git-hooks-automation",
902
920
  "git-pr-review",
@@ -922,6 +940,7 @@
922
940
  "go-in-depth",
923
941
  "go-playwright",
924
942
  "go-rod-master",
943
+ "go-rust-reverse",
925
944
  "goal-analyzer",
926
945
  "goal-loop",
927
946
  "godot-4-migration",
@@ -946,6 +965,7 @@
946
965
  "growth-engine",
947
966
  "grpc-golang",
948
967
  "handoff",
968
+ "hardware-security",
949
969
  "hasdata",
950
970
  "hasdata-cli",
951
971
  "haskell-pro",
@@ -1007,10 +1027,12 @@
1007
1027
  "hyperexecute-skill",
1008
1028
  "i18n-localization",
1009
1029
  "iconsax-library",
1030
+ "ida-reverse",
1010
1031
  "idea-autopsy",
1011
1032
  "idea-darwin",
1012
1033
  "idea-os",
1013
1034
  "idea-refine",
1035
+ "identity-federation",
1014
1036
  "identity-mirror",
1015
1037
  "idor-testing",
1016
1038
  "ii-commons",
@@ -1033,6 +1055,7 @@
1033
1055
  "inngest",
1034
1056
  "instagram",
1035
1057
  "instagram-automation",
1058
+ "instructree",
1036
1059
  "interactive-portfolio",
1037
1060
  "intercom-automation",
1038
1061
  "internal-comms",
@@ -1060,6 +1083,7 @@
1060
1083
  "jobgpt",
1061
1084
  "jobs-to-be-done-analyst",
1062
1085
  "jq",
1086
+ "js-reverse",
1063
1087
  "json-canvas",
1064
1088
  "julia-pro",
1065
1089
  "junit-5-skill",
@@ -1129,6 +1153,7 @@
1129
1153
  "llm-evaluation",
1130
1154
  "llm-ops",
1131
1155
  "llm-prompt-optimizer",
1156
+ "llm-security",
1132
1157
  "llm-structured-output",
1133
1158
  "local-legal-seo-audit",
1134
1159
  "local-llm-expert",
@@ -1156,6 +1181,7 @@
1156
1181
  "m365-agents-ts",
1157
1182
  "machine-learning-ops-ml-pipeline",
1158
1183
  "macos-menubar-tuist-app",
1184
+ "macos-reverse",
1159
1185
  "macos-screen-recorder",
1160
1186
  "macos-spm-app-packaging",
1161
1187
  "magic-animator",
@@ -1180,6 +1206,7 @@
1180
1206
  "makepad-skills",
1181
1207
  "makepad-splash",
1182
1208
  "makepad-widgets",
1209
+ "malware-analysis",
1183
1210
  "malware-analyst",
1184
1211
  "manage-skills",
1185
1212
  "manifest",
@@ -1231,6 +1258,7 @@
1231
1258
  "moatmri",
1232
1259
  "mobile-design",
1233
1260
  "mobile-developer",
1261
+ "mobile-reverse",
1234
1262
  "mobile-security-coder",
1235
1263
  "mock-hunter",
1236
1264
  "modellix",
@@ -1258,6 +1286,7 @@
1258
1286
  "moodle-external-api-development",
1259
1287
  "moyu",
1260
1288
  "mtls-configuration",
1289
+ "muapi-media",
1261
1290
  "multi-advisor",
1262
1291
  "multi-agent-architect",
1263
1292
  "multi-agent-brainstorming",
@@ -1368,6 +1397,7 @@
1368
1397
  "os-scripting",
1369
1398
  "oss-hunter",
1370
1399
  "osterwalder-canvas-architect",
1400
+ "ot-ics",
1371
1401
  "outlook-automation",
1372
1402
  "outlook-calendar-automation",
1373
1403
  "outreachagent",
@@ -1378,6 +1408,7 @@
1378
1408
  "pakistan-payments-stack",
1379
1409
  "papers-skill",
1380
1410
  "parallel-agents",
1411
+ "patch-diff-exploit",
1381
1412
  "payment-integration",
1382
1413
  "paypal-integration",
1383
1414
  "paywall-upgrade-cro",
@@ -1386,6 +1417,8 @@
1386
1417
  "pdf-official",
1387
1418
  "pentest-checklist",
1388
1419
  "pentest-commands",
1420
+ "pentest-tools",
1421
+ "pentest-tools/src-hunter",
1389
1422
  "people-data",
1390
1423
  "performance-engineer",
1391
1424
  "performance-optimization",
@@ -1470,6 +1503,7 @@
1470
1503
  "prompt-engineering-patterns",
1471
1504
  "prompt-library",
1472
1505
  "protect-mcp-governance",
1506
+ "protocol-reverse",
1473
1507
  "protocol-reverse-engineering",
1474
1508
  "prototype",
1475
1509
  "public-relations",
@@ -1477,6 +1511,7 @@
1477
1511
  "puppeteer-skill",
1478
1512
  "push-skill-to-github",
1479
1513
  "puzzle-activity-planner",
1514
+ "pwn-chain",
1480
1515
  "pydantic-ai",
1481
1516
  "pydantic-models-py",
1482
1517
  "pypict-skill",
@@ -1494,6 +1529,8 @@
1494
1529
  "quality-nonconformance",
1495
1530
  "quant-analyst",
1496
1531
  "quit-sponsor",
1532
+ "radare2",
1533
+ "radio-sdr",
1497
1534
  "radix-ui-design-system",
1498
1535
  "rag-engineer",
1499
1536
  "rag-implementation",
@@ -1535,7 +1572,10 @@
1535
1572
  "research-prompt",
1536
1573
  "resolving-merge-conflicts",
1537
1574
  "returns-reverse-logistics",
1575
+ "reverse-browser-automation",
1538
1576
  "reverse-engineer",
1577
+ "reverse-engineering",
1578
+ "reverse-engineering/dsl-vm-reverse",
1539
1579
  "review-and-simplify-changes",
1540
1580
  "review-animations",
1541
1581
  "review-multi-agent-orchestration",
@@ -1767,6 +1807,7 @@
1767
1807
  "super-code/typescript",
1768
1808
  "superpowers-lab",
1769
1809
  "supply-chain-risk-auditor",
1810
+ "supply-chain-security",
1770
1811
  "survey-generator",
1771
1812
  "sveltekit",
1772
1813
  "swift-concurrency-expert",
@@ -1823,6 +1864,9 @@
1823
1864
  "testng-skill",
1824
1865
  "the-honoured-one",
1825
1866
  "theme-factory",
1867
+ "thick-client",
1868
+ "threat-hunting",
1869
+ "threat-intelligence",
1826
1870
  "threat-mitigation-mapping",
1827
1871
  "threat-modeling-expert",
1828
1872
  "threejs-animation",
@@ -1973,6 +2017,7 @@
1973
2017
  "wgm",
1974
2018
  "whatsapp-automation",
1975
2019
  "whatsapp-cloud-api",
2020
+ "wifi-wireless",
1976
2021
  "wiki-architect",
1977
2022
  "wiki-builder",
1978
2023
  "wiki-changelog",
@@ -1981,6 +2026,7 @@
1981
2026
  "wiki-qa",
1982
2027
  "wiki-researcher",
1983
2028
  "wiki-vitepress",
2029
+ "windows-ad",
1984
2030
  "windows-privilege-escalation",
1985
2031
  "windows-shell-reliability",
1986
2032
  "wireshark-analysis",
@@ -0,0 +1,282 @@
1
+ ---
2
+ name: api-rate-limit-handler
3
+ description: "Implement bounded, idempotency-aware API throttling, backoff, and retry handling for 429 and transient 5xx responses."
4
+ category: development
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-08-26"
9
+ author: Prajeeth-12
10
+ tags: [rate-limiting, retry, backoff, api, resilience, throttle, 429]
11
+ tools: [claude, cursor, codex, gemini]
12
+ license: "MIT"
13
+ ---
14
+
15
+ # API Rate Limit Handler
16
+
17
+ ## Overview
18
+
19
+ A skill for implementing production-grade rate limiting, exponential backoff, and retry strategies when integrating with external APIs. Prevents cascading failures, respects upstream quotas, and keeps your application resilient under load.
20
+
21
+ ## When to Use This Skill
22
+
23
+ - Use when calling external APIs that enforce rate limits (OpenAI, Stripe, GitHub, etc.)
24
+ - Use when you receive 429 Too Many Requests or 5xx errors and need graceful recovery
25
+ - Use when building a client that must respect `Retry-After` headers
26
+ - Use when designing a system that fans out to multiple API providers
27
+ - Use when the user says "handle rate limits", "add retry logic", "backoff strategy", or "don't get throttled"
28
+
29
+ ## How It Works
30
+
31
+ ### Step 1: Classify the response
32
+
33
+ Determine whether a failed request is retryable or terminal.
34
+
35
+ | Status | Classification | Action |
36
+ |--------|---------------|--------|
37
+ | 200-299 | Success | Return response |
38
+ | 400, 401, 403, 404 | Terminal client error | Do not retry — fix the request |
39
+ | 408, 429 | Retryable (rate limit / timeout) | Retry with backoff |
40
+ | 500, 502, 503, 504 | Retryable (server error) | Retry with backoff |
41
+
42
+ ### Step 2: Parse rate limit headers
43
+
44
+ Always check upstream hints before computing your own delay.
45
+
46
+ ```typescript
47
+ function getRetryDelay(
48
+ response: Response,
49
+ attempt: number,
50
+ maxDelayMs = 60_000
51
+ ): number {
52
+ // Prefer upstream hints
53
+ const retryAfter = response.headers.get("Retry-After");
54
+ if (retryAfter) {
55
+ const seconds = Number(retryAfter);
56
+ if (Number.isFinite(seconds) && seconds >= 0) {
57
+ return Math.min(seconds * 1000, maxDelayMs);
58
+ }
59
+ // HTTP-date format
60
+ const date = new Date(retryAfter).getTime();
61
+ if (Number.isFinite(date)) {
62
+ return Math.min(Math.max(0, date - Date.now()), maxDelayMs);
63
+ }
64
+ }
65
+
66
+ // GitHub documents x-ratelimit-reset as Unix epoch seconds.
67
+ const githubReset = Number(response.headers.get("x-ratelimit-reset"));
68
+ if (Number.isFinite(githubReset)) {
69
+ return Math.min(
70
+ Math.max(0, githubReset * 1000 - Date.now()),
71
+ maxDelayMs
72
+ );
73
+ }
74
+
75
+ // Fallback: capped exponential backoff with full jitter.
76
+ const cap = Math.min(1000 * 2 ** attempt, maxDelayMs);
77
+ return Math.floor(Math.random() * cap);
78
+ }
79
+ ```
80
+
81
+ Provider-specific reset headers do not share one unit or format. For example,
82
+ some APIs return durations while GitHub returns epoch seconds. Parse an
83
+ additional header only after checking that provider's current documentation.
84
+
85
+ ### Step 3: Implement the retry loop
86
+
87
+ ```typescript
88
+ async function fetchWithRetry(
89
+ url: string,
90
+ options: RequestInit,
91
+ maxRetries = 3,
92
+ maxElapsedMs = 120_000,
93
+ retryNonIdempotent = false
94
+ ): Promise<Response> {
95
+ const startedAt = Date.now();
96
+ const method = (options.method ?? "GET").toUpperCase();
97
+ const replaySafe = ["GET", "HEAD", "OPTIONS", "PUT", "DELETE"].includes(method)
98
+ || retryNonIdempotent;
99
+
100
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
101
+ const response = await fetch(url, options);
102
+
103
+ if (response.ok) return response;
104
+
105
+ // Terminal errors — do not retry
106
+ if ([400, 401, 403, 404, 422].includes(response.status)) {
107
+ throw new Error(`Terminal error ${response.status}: ${response.statusText}`);
108
+ }
109
+
110
+ if (!replaySafe) {
111
+ throw new Error(
112
+ `${method} was not retried because replay safety was not explicitly established`
113
+ );
114
+ }
115
+
116
+ // Retryable — but exhausted attempts
117
+ if (attempt === maxRetries) {
118
+ throw new Error(`Failed after ${maxRetries} retries: ${response.status}`);
119
+ }
120
+
121
+ const remaining = maxElapsedMs - (Date.now() - startedAt);
122
+ const delay = Math.min(getRetryDelay(response, attempt), remaining);
123
+ if (delay <= 0) {
124
+ throw new Error(`Retry deadline exceeded after ${maxElapsedMs}ms`);
125
+ }
126
+
127
+ // Release the connection before waiting when the body is not needed.
128
+ await response.body?.cancel();
129
+ console.warn(
130
+ `Request failed (${response.status}), retrying in ${Math.round(delay)}ms (attempt ${attempt + 1}/${maxRetries})`
131
+ );
132
+ await new Promise(resolve => setTimeout(resolve, delay));
133
+ }
134
+
135
+ throw new Error("Unreachable");
136
+ }
137
+ ```
138
+
139
+ ### Step 4: Add a client-side rate limiter (proactive)
140
+
141
+ Prevent hitting upstream limits in the first place with a token bucket or sliding window.
142
+
143
+ ```typescript
144
+ class TokenBucket {
145
+ private tokens: number;
146
+ private lastRefill: number;
147
+ private queue: Promise<void> = Promise.resolve();
148
+
149
+ constructor(
150
+ private maxTokens: number,
151
+ private refillRate: number // tokens per second
152
+ ) {
153
+ this.tokens = maxTokens;
154
+ this.lastRefill = Date.now();
155
+ }
156
+
157
+ async acquire(): Promise<void> {
158
+ const ticket = this.queue.then(() => this.acquireOnce());
159
+ this.queue = ticket.catch(() => undefined);
160
+ return ticket;
161
+ }
162
+
163
+ private async acquireOnce(): Promise<void> {
164
+ this.refill();
165
+ if (this.tokens < 1) {
166
+ const waitMs = ((1 - this.tokens) / this.refillRate) * 1000;
167
+ await new Promise(resolve => setTimeout(resolve, waitMs));
168
+ this.refill();
169
+ }
170
+ this.tokens -= 1;
171
+ }
172
+
173
+ private refill(): void {
174
+ const now = Date.now();
175
+ const elapsed = (now - this.lastRefill) / 1000;
176
+ this.tokens = Math.min(this.maxTokens, this.tokens + elapsed * this.refillRate);
177
+ this.lastRefill = now;
178
+ }
179
+ }
180
+
181
+ // Usage: limit to 60 requests/minute
182
+ const limiter = new TokenBucket(60, 1);
183
+
184
+ async function rateLimitedFetch(url: string, options: RequestInit) {
185
+ await limiter.acquire();
186
+ return fetchWithRetry(url, options);
187
+ }
188
+ ```
189
+
190
+ ## Examples
191
+
192
+ ### Example 1: Idempotent API read with retry
193
+
194
+ ```typescript
195
+ const response = await fetchWithRetry(
196
+ "https://api.github.com/repos/OWNER/REPO",
197
+ {
198
+ method: "GET",
199
+ headers: {
200
+ "Accept": "application/vnd.github+json",
201
+ "Authorization": `Bearer ${githubToken}`,
202
+ },
203
+ },
204
+ 3
205
+ );
206
+ ```
207
+
208
+ For a POST or another operation with side effects, leave
209
+ `retryNonIdempotent` false unless the provider documents an idempotency
210
+ mechanism and the same stable idempotency key is reused for every attempt.
211
+
212
+ ### Example 2: Python implementation
213
+
214
+ ```python
215
+ import time
216
+ import random
217
+ import httpx
218
+
219
+ def fetch_with_retry(url: str, max_retries: int = 3, **kwargs) -> httpx.Response:
220
+ for attempt in range(max_retries + 1):
221
+ response = httpx.request("GET", url, **kwargs)
222
+
223
+ if response.is_success:
224
+ return response
225
+
226
+ if response.status_code in (400, 401, 403, 404, 422):
227
+ response.raise_for_status()
228
+
229
+ if attempt == max_retries:
230
+ response.raise_for_status()
231
+
232
+ # Parse Retry-After or compute backoff
233
+ retry_after = response.headers.get("retry-after")
234
+ if retry_after and retry_after.isdigit():
235
+ delay = int(retry_after)
236
+ else:
237
+ delay = min(2 ** attempt + random.uniform(0, 1), 60)
238
+
239
+ print(f"Retrying in {delay:.1f}s (attempt {attempt + 1}/{max_retries})")
240
+ time.sleep(delay)
241
+
242
+ raise RuntimeError("Unreachable")
243
+ ```
244
+
245
+ ## Best Practices
246
+
247
+ - ✅ Always respect `Retry-After` headers — they come from the provider who knows their limits
248
+ - ✅ Add jitter to backoff to prevent thundering herd when multiple clients retry simultaneously
249
+ - ✅ Log every retry with status code, delay, and attempt number for debugging
250
+ - ✅ Set a maximum total timeout to avoid hanging indefinitely
251
+ - ✅ Use a client-side rate limiter proactively rather than only reacting to 429s
252
+ - ✅ Retry state-changing requests only with a provider-documented idempotency mechanism and a stable key
253
+ - ❌ Don't retry 4xx client errors (except 408 and 429) — fix the request instead
254
+ - ❌ Don't use fixed delays — exponential backoff distributes load more evenly
255
+ - ❌ Don't retry without a cap — unbounded retries can amplify outages
256
+ - ❌ Don't ignore per-endpoint limits — some APIs have different quotas per route
257
+
258
+ ## Limitations
259
+
260
+ - This skill does not replace environment-specific validation, testing, or expert review.
261
+ - Token bucket is approximate for distributed systems — use Redis-backed rate limiting for multi-instance deployments.
262
+ - Some APIs use non-standard rate limit headers; check provider documentation.
263
+ - The elapsed-time cap shown here bounds retry waits, not a single hung network call; combine it with an `AbortSignal` or client timeout.
264
+
265
+ ## Common Pitfalls
266
+
267
+ - **Problem:** Retrying too aggressively during an outage amplifies the problem.
268
+ **Solution:** Use exponential backoff with jitter and a circuit breaker for sustained failures.
269
+
270
+ - **Problem:** Multiple instances of your app all retry at the same time (thundering herd).
271
+ **Solution:** Add randomized jitter (`Math.random() * 0.3 * delay`) to decorrelate retries.
272
+
273
+ - **Problem:** Retry-After header contains an HTTP-date instead of seconds.
274
+ **Solution:** Parse both formats — check if the value is numeric first, then try Date parsing.
275
+
276
+ - **Problem:** Client-side limiter doesn't account for concurrent requests already in-flight.
277
+ **Solution:** Serialize acquisition within one process, decrement before send, and use a shared distributed limiter across instances.
278
+
279
+ ## Related Skills
280
+
281
+ - `@poka-yoke` - Mistake-proofing APIs so invalid requests never reach the retry path
282
+ - `@circuit-breaker` - When to stop retrying entirely and fail fast