xtrm-tools 0.7.16 → 0.7.18

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 (264) hide show
  1. package/.xtrm/config/hooks.json +2 -0
  2. package/.xtrm/config/instructions/agents-top.md +2 -1
  3. package/.xtrm/registry.json +432 -707
  4. package/.xtrm/skills/default/creating-service-skills/scripts/bootstrap.py +82 -156
  5. package/.xtrm/skills/default/creating-service-skills/scripts/scaffolder.py +73 -121
  6. package/.xtrm/skills/default/hook-development/references/patterns.md +1 -1
  7. package/.xtrm/skills/default/last30days/scripts/test-v1-vs-v2.sh +2 -2
  8. package/.xtrm/skills/default/planning/SKILL.md +75 -29
  9. package/.xtrm/skills/default/releasing/SKILL.md +163 -57
  10. package/.xtrm/skills/default/security-pipeline/SKILL.md +192 -0
  11. package/.xtrm/skills/default/security-pipeline/scripts/security-bootstrap.sh +294 -0
  12. package/.xtrm/skills/default/security-pipeline/templates/.githooks/pre-push.template +39 -0
  13. package/.xtrm/skills/default/security-pipeline/templates/.github/workflows/gitleaks.yml +33 -0
  14. package/.xtrm/skills/default/security-pipeline/templates/.github/workflows/osv-scanner.yml +33 -0
  15. package/.xtrm/skills/default/security-pipeline/templates/.github/workflows/semgrep.yml +41 -0
  16. package/.xtrm/skills/default/security-pipeline/templates/.gitleaks.toml +44 -0
  17. package/.xtrm/skills/default/security-pipeline/templates/.pre-commit-config.yaml +67 -0
  18. package/.xtrm/skills/default/security-pipeline/templates/.semgrepignore +46 -0
  19. package/.xtrm/skills/default/security-pipeline/templates/scripts/security-scan.sh +57 -0
  20. package/.xtrm/skills/default/security-pipeline/templates/scripts/semgrep-diff.sh +68 -0
  21. package/.xtrm/skills/default/session-close-report/SKILL.md +167 -6
  22. package/.xtrm/skills/default/sync-docs/SKILL.md +1 -1
  23. package/.xtrm/skills/default/update-specialists/SKILL.md +204 -77
  24. package/.xtrm/skills/default/update-xt/SKILL.md +270 -4
  25. package/.xtrm/skills/default/updating-service-skills/scripts/drift_detector.py +22 -0
  26. package/.xtrm/skills/default/using-kpi/SKILL.md +47 -5
  27. package/.xtrm/skills/default/using-script-specialists/SKILL.md +7 -5
  28. package/.xtrm/skills/default/using-specialists/SKILL.md +13 -12
  29. package/.xtrm/skills/default/using-specialists-auto/SKILL.md +137 -0
  30. package/.xtrm/skills/default/using-specialists-v2/SKILL.md +15 -22
  31. package/.xtrm/skills/default/using-specialists-v3/SKILL.md +1074 -0
  32. package/.xtrm/skills/default/vaultctl/SKILL.md +2 -2
  33. package/CHANGELOG.md +91 -3
  34. package/cli/dist/index.cjs +12425 -3770
  35. package/cli/dist/index.cjs.map +1 -1
  36. package/cli/package.json +9 -3
  37. package/package.json +27 -7
  38. package/packages/pi-extensions/extensions/xtrm-ui/index.ts +76 -1
  39. package/packages/pi-extensions/package.json +1 -1
  40. package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.combined.log +0 -7
  41. package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stderr.log +0 -0
  42. package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stdout.log +0 -7
  43. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/LICENSE +0 -22
  44. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/README.md +0 -29
  45. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts +0 -3
  46. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts.map +0 -1
  47. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js +0 -2
  48. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js.map +0 -1
  49. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts +0 -8
  50. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts.map +0 -1
  51. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js +0 -27
  52. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js.map +0 -1
  53. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts +0 -11
  54. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts.map +0 -1
  55. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js +0 -100
  56. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js.map +0 -1
  57. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts +0 -25
  58. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts.map +0 -1
  59. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js +0 -104
  60. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js.map +0 -1
  61. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts +0 -10
  62. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts.map +0 -1
  63. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js +0 -293
  64. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js.map +0 -1
  65. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts +0 -10
  66. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts.map +0 -1
  67. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js +0 -26
  68. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js.map +0 -1
  69. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts +0 -7
  70. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts.map +0 -1
  71. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js +0 -51
  72. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js.map +0 -1
  73. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts +0 -7
  74. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts.map +0 -1
  75. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js +0 -60
  76. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js.map +0 -1
  77. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts +0 -7
  78. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts.map +0 -1
  79. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js +0 -38
  80. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js.map +0 -1
  81. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts +0 -5
  82. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts.map +0 -1
  83. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js +0 -33
  84. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js.map +0 -1
  85. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts +0 -24
  86. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts.map +0 -1
  87. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js +0 -30
  88. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js.map +0 -1
  89. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts +0 -11
  90. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts.map +0 -1
  91. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js +0 -43
  92. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js.map +0 -1
  93. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts +0 -8
  94. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts.map +0 -1
  95. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js +0 -41
  96. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js.map +0 -1
  97. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts +0 -8
  98. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts.map +0 -1
  99. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js +0 -53
  100. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js.map +0 -1
  101. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts +0 -8
  102. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts.map +0 -1
  103. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js +0 -27
  104. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js.map +0 -1
  105. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts +0 -7
  106. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts.map +0 -1
  107. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js +0 -53
  108. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js.map +0 -1
  109. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts +0 -8
  110. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts.map +0 -1
  111. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js +0 -60
  112. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js.map +0 -1
  113. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts +0 -7
  114. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts.map +0 -1
  115. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js +0 -38
  116. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js.map +0 -1
  117. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts +0 -6
  118. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts.map +0 -1
  119. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js +0 -257
  120. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js.map +0 -1
  121. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts +0 -8
  122. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts.map +0 -1
  123. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js +0 -71
  124. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js.map +0 -1
  125. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts +0 -6
  126. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts.map +0 -1
  127. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js +0 -173
  128. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js.map +0 -1
  129. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts +0 -26
  130. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts.map +0 -1
  131. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js +0 -195
  132. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js.map +0 -1
  133. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts +0 -121
  134. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts.map +0 -1
  135. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js +0 -2
  136. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js.map +0 -1
  137. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts +0 -2
  138. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts.map +0 -1
  139. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js +0 -18
  140. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js.map +0 -1
  141. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts +0 -8
  142. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts.map +0 -1
  143. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js +0 -110
  144. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js.map +0 -1
  145. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts +0 -2
  146. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts.map +0 -1
  147. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js +0 -32
  148. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js.map +0 -1
  149. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts +0 -2
  150. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts.map +0 -1
  151. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js +0 -13
  152. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js.map +0 -1
  153. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts +0 -2
  154. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts.map +0 -1
  155. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js +0 -7
  156. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js.map +0 -1
  157. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts +0 -5
  158. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts.map +0 -1
  159. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js +0 -58
  160. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js.map +0 -1
  161. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts +0 -2
  162. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts.map +0 -1
  163. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js +0 -27
  164. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js.map +0 -1
  165. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts +0 -2
  166. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts.map +0 -1
  167. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js +0 -8
  168. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js.map +0 -1
  169. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/package.json +0 -40
  170. package/.xtrm/skills/default/planning/evals/evals.json +0 -19
  171. package/.xtrm/skills/default/quality-gates/evals/evals.json +0 -181
  172. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +0 -75
  173. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +0 -59
  174. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +0 -60
  175. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/eval-summary.md +0 -105
  176. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +0 -93
  177. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +0 -104
  178. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +0 -74
  179. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +0 -18
  180. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +0 -18
  181. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +0 -56
  182. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +0 -67
  183. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +0 -97
  184. package/.xtrm/skills/default/sync-docs/evals/evals.json +0 -89
  185. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.json +0 -293
  186. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.md +0 -13
  187. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
  188. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
  189. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
  190. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  191. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
  192. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
  193. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  194. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
  195. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
  196. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
  197. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
  198. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  199. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
  200. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
  201. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
  202. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
  203. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
  204. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
  205. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  206. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
  207. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
  208. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
  209. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.json +0 -297
  210. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.md +0 -13
  211. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
  212. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
  213. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
  214. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  215. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
  216. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
  217. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
  218. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
  219. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
  220. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
  221. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  222. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
  223. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
  224. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  225. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
  226. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
  227. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  228. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  229. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
  230. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
  231. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  232. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.json +0 -298
  233. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.md +0 -13
  234. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
  235. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
  236. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
  237. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
  238. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
  239. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
  240. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  241. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
  242. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
  243. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
  244. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
  245. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
  246. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
  247. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  248. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
  249. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
  250. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
  251. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
  252. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
  253. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
  254. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
  255. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  256. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
  257. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
  258. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
  259. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  260. package/.xtrm/skills/default/test-planning/evals/evals.json +0 -23
  261. package/.xtrm/skills/default/using-specialists/SKILL.safe.md +0 -1082
  262. package/.xtrm/skills/default/using-specialists/SKILL.ultra.md +0 -1082
  263. package/.xtrm/skills/default/using-specialists/evals/evals.json +0 -68
  264. package/packages/pi-extensions/.serena/project.yml +0 -130
@@ -1,58 +0,0 @@
1
- let cached = null;
2
- export function supportsReadBigInts() {
3
- const [majorRaw, minorRaw] = process.versions.node.split('.');
4
- const major = Number.parseInt(majorRaw ?? '', 10);
5
- const minor = Number.parseInt(minorRaw ?? '', 10);
6
- if (!Number.isFinite(major) || !Number.isFinite(minor))
7
- return false;
8
- if (major > 24)
9
- return true;
10
- if (major < 24)
11
- return false;
12
- return minor >= 4;
13
- }
14
- function shouldSuppressSqliteExperimentalWarning(warning, args) {
15
- const message = typeof warning === 'string'
16
- ? warning
17
- : warning instanceof Error
18
- ? warning.message
19
- : typeof warning?.message === 'string'
20
- ? warning.message
21
- : null;
22
- if (!message || !message.includes('SQLite is an experimental feature'))
23
- return false;
24
- // Best-effort: only swallow the one noisy warning that Node emits when loading `node:sqlite`.
25
- // We do *not* suppress arbitrary warnings, and we restore the original handler immediately.
26
- const firstArg = args[0];
27
- if (firstArg === 'ExperimentalWarning')
28
- return true;
29
- if (typeof firstArg === 'object' && firstArg) {
30
- const type = firstArg.type;
31
- if (type === 'ExperimentalWarning')
32
- return true;
33
- }
34
- if (warning instanceof Error && warning.name === 'ExperimentalWarning')
35
- return true;
36
- return false;
37
- }
38
- export async function importNodeSqlite() {
39
- if (cached)
40
- return cached;
41
- // Node currently emits an ExperimentalWarning when importing `node:sqlite`.
42
- // This is harmless noise for consumers of this library, so we silence only that specific warning.
43
- const originalEmitWarning = process.emitWarning.bind(process);
44
- process.emitWarning = ((warning, ...args) => {
45
- if (shouldSuppressSqliteExperimentalWarning(warning, args))
46
- return;
47
- // @ts-expect-error - Node's overloads are awkward; preserve runtime behavior.
48
- return originalEmitWarning(warning, ...args);
49
- });
50
- try {
51
- cached = await import('node:sqlite');
52
- return cached;
53
- }
54
- finally {
55
- process.emitWarning = originalEmitWarning;
56
- }
57
- }
58
- //# sourceMappingURL=nodeSqlite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeSqlite.js","sourceRoot":"","sources":["../../src/util/nodeSqlite.ts"],"names":[],"mappings":"AAEA,IAAI,MAAM,GAA4B,IAAI,CAAC;AAE3C,MAAM,UAAU,mBAAmB;IAClC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,uCAAuC,CAAC,OAAgB,EAAE,IAAe;IACjF,MAAM,OAAO,GACZ,OAAO,OAAO,KAAK,QAAQ;QAC1B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO,YAAY,KAAK;YACzB,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,OAAQ,OAAwC,EAAE,OAAO,KAAK,QAAQ;gBACvE,CAAC,CAAE,OAA+B,CAAC,OAAO;gBAC1C,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAAE,OAAO,KAAK,CAAC;IAErF,8FAA8F;IAC9F,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,QAAQ,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAI,QAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,YAAY,KAAK,IAAK,OAA8B,CAAC,IAAI,KAAK,qBAAqB;QAC7F,OAAO,IAAI,CAAC;IAEb,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACrC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,4EAA4E;IAC5E,kGAAkG;IAClG,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9D,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,OAAgB,EAAE,GAAG,IAAe,EAAE,EAAE;QAC/D,IAAI,uCAAuC,CAAC,OAAO,EAAE,IAAI,CAAC;YAAE,OAAO;QACnE,8EAA8E;QAC9E,OAAO,mBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC,CAA+B,CAAC;IAEjC,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IACf,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAC3C,CAAC;AACF,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function normalizeOrigins(url: string, extraOrigins?: string[]): string[];
2
- //# sourceMappingURL=origins.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"origins.d.ts","sourceRoot":"","sources":["../../src/util/origins.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB/E"}
@@ -1,27 +0,0 @@
1
- export function normalizeOrigins(url, extraOrigins) {
2
- const origins = [];
3
- try {
4
- const parsed = new URL(url);
5
- origins.push(ensureTrailingSlash(parsed.origin));
6
- }
7
- catch {
8
- // ignore
9
- }
10
- for (const raw of extraOrigins ?? []) {
11
- const trimmed = raw.trim();
12
- if (!trimmed)
13
- continue;
14
- try {
15
- const parsed = new URL(trimmed);
16
- origins.push(ensureTrailingSlash(parsed.origin));
17
- }
18
- catch {
19
- // ignore malformed extras
20
- }
21
- }
22
- return Array.from(new Set(origins));
23
- }
24
- function ensureTrailingSlash(origin) {
25
- return origin.endsWith('/') ? origin : `${origin}/`;
26
- }
27
- //# sourceMappingURL=origins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"origins.js","sourceRoot":"","sources":["../../src/util/origins.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,YAAuB;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACR,SAAS;IACV,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACR,0BAA0B;QAC3B,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AACrD,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function isBunRuntime(): boolean;
2
- //# sourceMappingURL=runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/util/runtime.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAKtC"}
@@ -1,8 +0,0 @@
1
- export function isBunRuntime() {
2
- // Bun: https://bun.sh/docs/runtime/environment-variables#bun-specific
3
- if (typeof process === 'undefined')
4
- return false;
5
- const bunVersion = process.versions.bun;
6
- return Boolean(typeof process.versions === 'object' && typeof bunVersion === 'string');
7
- }
8
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/util/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC3B,sEAAsE;IACtE,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,UAAU,GAAI,OAAO,CAAC,QAAyC,CAAC,GAAG,CAAC;IAC1E,OAAO,OAAO,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC;AACxF,CAAC"}
@@ -1,40 +0,0 @@
1
- {
2
- "name": "@steipete/sweet-cookie",
3
- "version": "0.1.0",
4
- "description": "Inline-first browser cookie extraction for local tooling (no native addons).",
5
- "license": "MIT",
6
- "author": "Peter Steinberger",
7
- "type": "module",
8
- "main": "dist/index.js",
9
- "types": "dist/index.d.ts",
10
- "files": [
11
- "dist",
12
- "README.md",
13
- "LICENSE"
14
- ],
15
- "repository": {
16
- "type": "git",
17
- "url": "git+https://github.com/steipete/sweet-cookie.git",
18
- "directory": "packages/core"
19
- },
20
- "bugs": {
21
- "url": "https://github.com/steipete/sweet-cookie/issues"
22
- },
23
- "homepage": "https://github.com/steipete/sweet-cookie#readme",
24
- "exports": {
25
- ".": {
26
- "types": "./dist/index.d.ts",
27
- "import": "./dist/index.js"
28
- }
29
- },
30
- "publishConfig": {
31
- "access": "public"
32
- },
33
- "scripts": {
34
- "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json",
35
- "typecheck": "tsc -p tsconfig.json --noEmit"
36
- },
37
- "engines": {
38
- "node": ">=22"
39
- }
40
- }
@@ -1,19 +0,0 @@
1
- {
2
- "skill_name": "planning",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "eval_name": "docs-list-command",
7
- "prompt": "Plan the implementation of the `xtrm docs list` command (xtrm-vwp0). The command should list all project docs with metadata, support filtering, table output, and JSON mode. It needs to be a subcommand of the existing `xtrm docs` CLI group in cli/src/. There's already a partially-implemented docs.ts somewhere. Break this into a proper phased issue board.",
8
- "expected_output": "An epic with phased child tasks (scaffold/core/integration), each with rich descriptions containing context, what to build, AC, and approach notes. test-planning invoked after issue board created. Dependencies wired between phases.",
9
- "files": []
10
- },
11
- {
12
- "id": 2,
13
- "eval_name": "docs-crosscheck-command",
14
- "prompt": "Plan the implementation of the `xtrm docs cross-check` command (xtrm-uc0e). This validates docs against PRs and bd issues — detects stale docs, coverage gaps, open issue references. Uses gh CLI for GitHub data. Needs to be a subcommand of `xtrm docs`. Break this into a well-structured bd issue board with proper phasing.",
15
- "expected_output": "An epic with phased child tasks covering: GitHub data fetching (boundary layer), cross-check logic (core layer), CLI command wiring (shell layer). test-planning invoked. High-quality issue descriptions that another agent could work from independently.",
16
- "files": []
17
- }
18
- ]
19
- }
@@ -1,181 +0,0 @@
1
- {
2
- "skill_name": "using-quality-gates",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "name": "typescript-feature-with-tests",
7
- "prompt": "Add a new authentication middleware to src/auth.ts that validates JWT tokens. The middleware should check the Authorization header, verify the token, and attach the user to the request object.",
8
- "expected_output": "Skill explains TDD workflow: write failing test first, then implement. References tdd-guard-vitest or tdd-guard-jest setup. After implementation, mentions TS quality gate will run ESLint/Prettier checks.",
9
- "expectations": [
10
- "Mentions writing a failing test before implementation",
11
- "References TDD Guard blocking mechanism",
12
- "Mentions TypeScript quality gate runs after edit",
13
- "Provides actionable next steps"
14
- ]
15
- },
16
- {
17
- "id": 2,
18
- "name": "python-refactor-request",
19
- "prompt": "Refactor the database connection pooling in db/connection.py to use async/await. Current implementation is blocking and causing performance issues.",
20
- "expected_output": "Skill explains TDD + Python quality workflow: write failing test for async behavior, implement, then ruff/mypy will validate. Mentions auto-fix capabilities.",
21
- "expectations": [
22
- "Mentions writing tests first (TDD Guard)",
23
- "References Python quality gate (ruff + mypy)",
24
- "Mentions auto-fix for linting issues",
25
- "Explains the post-edit validation flow"
26
- ]
27
- },
28
- {
29
- "id": 3,
30
- "name": "quality-gate-error-fix",
31
- "prompt": "I'm getting blocked by the quality gate with TypeScript errors. Here's the error: 'Type string is not assignable to type number'. How do I fix this?",
32
- "expected_output": "Skill explains quality gate error handling: read errors, apply auto-fix if available, manually fix type errors, gate re-runs automatically.",
33
- "expectations": [
34
- "Explains how to read quality gate errors",
35
- "Mentions auto-fix capability",
36
- "Explains manual fix process for type errors",
37
- "Notes gate re-runs on next edit"
38
- ]
39
- },
40
- {
41
- "id": 4,
42
- "name": "partial-install-python-only",
43
- "prompt": "I'm working on a Python-only project with pytest. What quality tools should I install?",
44
- "expected_output": "Skill recommends Python-specific setup: tdd-guard-pytest for TDD, ruff + mypy for quality gate. Explains partial install workflow.",
45
- "expectations": [
46
- "Recommends tdd-guard-pytest",
47
- "Recommends ruff and mypy",
48
- "Explains Python-only workflow",
49
- "Does not mention TypeScript tools"
50
- ]
51
- },
52
- {
53
- "id": 5,
54
- "name": "tdd-guard-blocking-confusion",
55
- "prompt": "Why am I getting 'No failing test found' when I try to edit src/service.ts? I just want to add a logging statement.",
56
- "expected_output": "Skill explains TDD Guard purpose: enforce test-first development. Even small changes require a failing test. Suggests writing a test that verifies the logging behavior.",
57
- "expectations": [
58
- "Explains TDD Guard blocks all implementation",
59
- "Clarifies test-first requirement",
60
- "Suggests writing appropriate test",
61
- "Does not suggest bypassing the guard"
62
- ]
63
- },
64
- {
65
- "id": 6,
66
- "name": "eslint-not-found-error",
67
- "prompt": "The quality gate says 'ESLint not found' but I'm editing a TypeScript file. What do I do?",
68
- "expected_output": "Skill explains ESLint is required for TS quality gate. Provides install command (npm install --save-dev eslint) or how to disable in hook-config.json.",
69
- "expectations": [
70
- "Explains ESLint is required dependency",
71
- "Provides npm install command",
72
- "Mentions hook-config.json disable option",
73
- "Clear troubleshooting steps"
74
- ]
75
- },
76
- {
77
- "id": 7,
78
- "name": "full-workflow-question",
79
- "prompt": "Walk me through the complete workflow for adding a new feature to this TypeScript project.",
80
- "expected_output": "Skill explains full pipeline: 1) Write failing test, 2) TDD Guard allows implementation, 3) Implement feature, 4) TS quality gate validates, 5) Fix any issues, 6) Commit.",
81
- "expectations": [
82
- "Lists all steps in order",
83
- "Explains TDD Guard role",
84
- "Explains quality gate role",
85
- "Mentions auto-fix capabilities",
86
- "Includes commit step"
87
- ]
88
- },
89
- {
90
- "id": 8,
91
- "name": "documentation-edit-exception",
92
- "prompt": "I need to update the README.md with new API documentation. Will the quality gates block me?",
93
- "expected_output": "Skill explains quality gates only apply to code files (.ts, .js, .py, etc.), not documentation. README edits proceed without TDD or linting checks.",
94
- "expectations": [
95
- "Clarifies documentation is exempt",
96
- "Lists code file extensions that trigger gates",
97
- "Explains why docs are exempt",
98
- "No TDD requirement for docs"
99
- ]
100
- },
101
- {
102
- "id": 9,
103
- "name": "mypy-type-errors",
104
- "prompt": "Mypy is reporting 15 type errors in my Python code. Should I fix all of them before continuing?",
105
- "expected_output": "Skill explains exit code 2 means blocking - all errors must be fixed. Suggests using mypy's output to prioritize, fix incrementally, gate re-runs on each edit.",
106
- "expectations": [
107
- "Confirms all blocking errors must be fixed",
108
- "Explains exit code 2 behavior",
109
- "Suggests incremental fix approach",
110
- "Notes gate re-runs automatically"
111
- ]
112
- },
113
- {
114
- "id": 10,
115
- "name": "vitest-reporter-setup",
116
- "prompt": "How do I set up the Vitest test reporter for TDD Guard?",
117
- "expected_output": "Skill explains tdd-guard-vitest installation and vitest.config.ts configuration with VitestReporter and project root path.",
118
- "expectations": [
119
- "Mentions tdd-guard-vitest package",
120
- "Shows vitest.config.ts configuration",
121
- "Explains project root path requirement",
122
- "Clear setup steps"
123
- ]
124
- },
125
- {
126
- "id": 11,
127
- "name": "should-not-trigger-general-chat",
128
- "prompt": "What's the weather like today?",
129
- "expected_output": "Skill should NOT trigger - this is general chat, not a code quality workflow question.",
130
- "expectations": [
131
- "Skill does not activate",
132
- "Standard Claude response"
133
- ]
134
- },
135
- {
136
- "id": 12,
137
- "name": "should-not-trigger-unrelated-coding",
138
- "prompt": "Write a Python script to scrape data from example.com and save it to CSV.",
139
- "expected_output": "Skill should NOT trigger strongly - this is a general coding task without quality gate context. May mention TDD as best practice but full skill not needed.",
140
- "expectations": [
141
- "Minimal or no skill activation",
142
- "Focus on task completion",
143
- "May mention testing as best practice"
144
- ]
145
- },
146
- {
147
- "id": 13,
148
- "name": "should-not-trigger-math-question",
149
- "prompt": "What's the time complexity of binary search?",
150
- "expected_output": "Skill should NOT trigger - this is a CS theory question, not about quality gates.",
151
- "expectations": [
152
- "Skill does not activate",
153
- "Standard Claude response"
154
- ]
155
- },
156
- {
157
- "id": 14,
158
- "name": "edge-case-mixed-language-project",
159
- "prompt": "I have a monorepo with both TypeScript backend and Python ML services. How do quality gates work?",
160
- "expected_output": "Skill explains both gates can coexist: TS quality gate for backend files, PY quality gate for ML services. TDD Guard works with both via appropriate reporters.",
161
- "expectations": [
162
- "Explains coexistence of both gates",
163
- "File-type-based routing",
164
- "TDD Guard works with both",
165
- "Separate reporters per language"
166
- ]
167
- },
168
- {
169
- "id": 15,
170
- "name": "edge-case-auto-fix-verification",
171
- "prompt": "The quality gate said it auto-fixed 3 issues but I still have 2 errors. What happened?",
172
- "expected_output": "Skill explains auto-fix handles fixable issues (formatting, simple lint), but type errors and complex issues require manual fixes. Shows how to identify remaining issues.",
173
- "expectations": [
174
- "Explains auto-fix limitations",
175
- "Distinguishes fixable vs manual issues",
176
- "Type errors require manual fix",
177
- "How to read remaining errors"
178
- ]
179
- }
180
- ]
181
- }
@@ -1,75 +0,0 @@
1
- # Using Quality Gates — Skill Creator Evals (Iteration 1) — COMPLETE
2
-
3
- ## All 10 Test Cases Evaluated
4
-
5
- ### Should-Trigger Eval Results
6
-
7
- | ID | Name | Expectations Met | Notes |
8
- |----|------|------------------|-------|
9
- | 1 | typescript-feature-with-tests | ✅ 4/4 | Full TDD + TS workflow |
10
- | 2 | python-refactor-request | ✅ 4/4 | Async refactor + PY gate |
11
- | 3 | quality-gate-error-fix | ✅ 4/4 | Error handling explained |
12
- | 4 | partial-install-python-only | ✅ 4/4 | Python-only, no TS mentions |
13
- | 5 | tdd-guard-blocking-confusion | ✅ 4/4 | TDD philosophy explained |
14
- | 14 | edge-case-mixed-language-project | ✅ 4/4 | Coexistence explained |
15
- | 15 | edge-case-auto-fix-verification | ✅ 4/4 | Auto-fix limits clarified |
16
-
17
- ### Should-NOT-Trigger Eval Results
18
-
19
- | ID | Name | Result | Notes |
20
- |----|------|--------|-------|
21
- | 11 | should-not-trigger-general-chat | ✅ Pass | Skill correctly silent |
22
- | 12 | should-not-trigger-unrelated-coding | ✅ Pass | Minimal mode applied |
23
- | 13 | should-not-trigger-math-question | ✅ Pass | Skill correctly silent |
24
-
25
- ---
26
-
27
- ## Overall Assessment
28
-
29
- ### Pass Rate: 10/10 (100%) ✅
30
-
31
- **Iteration 1 Fix Applied:**
32
- - Added "Response Modes" section to SKILL.md
33
- - Full Workflow Mode for feature/refactor work
34
- - Minimal Mode for general coding tasks
35
- - Eval 12 re-run verified fix works
36
-
37
- ---
38
-
39
- ## Skill Files Created
40
-
41
- ```
42
- project-skills/quality-gates/
43
- ├── README.md # User documentation
44
- ├── evals/
45
- │ └── evals.json # 15 test cases defined
46
- ├── .claude/
47
- │ └── skills/
48
- │ └── using-quality-gates/
49
- │ └── SKILL.md # Main skill file (with Response Modes)
50
- └── workspace/
51
- └── iteration-1/
52
- ├── [10 eval directories with outputs]
53
- └── FINAL-EVAL-SUMMARY.md
54
- ```
55
-
56
- ---
57
-
58
- ## Ready to Ship
59
-
60
- The skill is complete and passes all evals. Key features:
61
-
62
- 1. **Unified workflow** — TDD Guard + TS/PY Quality Gates in one skill
63
- 2. **Progressive disclosure** — Full vs Minimal mode based on context
64
- 3. **Language routing** — TypeScript vs Python handled correctly
65
- 4. **Partial install support** — Works with any combination of gates
66
- 5. **Troubleshooting** — Clear guidance for common errors
67
-
68
- ---
69
-
70
- ## Next Steps
71
-
72
- 1. ✅ Skill created and validated
73
- 2. ⏳ Test installation: `xtrm install project quality-gates`
74
- 3. ⏳ Update xtrm CLI to include quality-gates in project list
75
- 4. ⏳ Decide: Deprecate individual skills or keep as legacy options
@@ -1,59 +0,0 @@
1
- # Eval 15: edge-case-auto-fix-verification
2
-
3
- **Prompt:** The quality gate said it auto-fixed 3 issues but I still have 2 errors. What happened?
4
-
5
- **Skill Applied:** using-quality-gates
6
-
7
- ---
8
-
9
- ## Response (with skill active)
10
-
11
- This is expected behavior. Here's what happened:
12
-
13
- ### Auto-Fix Limitations
14
-
15
- **Auto-fix handles:**
16
- - ✅ Prettier formatting issues (indentation, quotes, semicolons)
17
- - ✅ ESLint stylistic rules (unused vars, prefer const, etc.)
18
- - ✅ Ruff linting issues (imports, style, simple fixes)
19
-
20
- **Auto-fix CANNOT handle:**
21
- - ❌ TypeScript type errors (wrong types, missing properties)
22
- - ❌ Mypy type errors (type mismatches)
23
- - ❌ Complex logic errors
24
- - ❌ Missing imports or undefined variables
25
-
26
- ### Reading the Output
27
-
28
- ```
29
- [WARN] Auto-fix applied: 3 issues fixed
30
- [ERROR] TypeScript compilation failed:
31
- src/user.ts:42:5 - error TS2322: Type 'string' is not assignable to type 'number'
32
- [ERROR] ESLint found 1 issue that could not be auto-fixed:
33
- src/user.ts:28:3 - Missing return type on function
34
- [BLOCK] 2 issues remain - fix before continuing
35
- ```
36
-
37
- ### How to Fix Remaining Issues
38
-
39
- 1. **Type errors** — Add proper types or convert values:
40
- ```typescript
41
- // Fix: convert string to number
42
- const userId: number = Number(inputId);
43
- ```
44
-
45
- 2. **Missing return types** — Add explicit type annotations:
46
- ```typescript
47
- // Fix: add return type
48
- function getUser(id: number): User { ... }
49
- ```
50
-
51
- 3. **Save the file** — Quality Gate re-runs automatically on next edit
52
-
53
- ### Why This Design?
54
-
55
- Auto-fix is conservative — it only applies fixes that are guaranteed safe. Type errors require human judgment to fix correctly.
56
-
57
- ---
58
-
59
- **Result:** ✅ Explains auto-fix limitations, distinguishes fixable vs manual issues
@@ -1,60 +0,0 @@
1
- # Eval 14: edge-case-mixed-language-project
2
-
3
- **Prompt:** I have a monorepo with both TypeScript backend and Python ML services. How do quality gates work?
4
-
5
- **Skill Applied:** using-quality-gates
6
-
7
- ---
8
-
9
- ## Response (with skill active)
10
-
11
- In a **mixed-language monorepo**, Quality Gates work independently per file type:
12
-
13
- ### File-Type Routing
14
-
15
- | File Extension | Active Gate |
16
- |----------------|-------------|
17
- | `.ts`, `.tsx`, `.js`, `.jsx` | TypeScript Quality Gate |
18
- | `.py` | Python Quality Gate |
19
- | `.go`, `.rs`, `.php` | TDD Guard only (no language-specific quality gate) |
20
- | `.md`, `.txt`, `.json` | No gate (documentation/config) |
21
-
22
- ### TDD Guard (All Code Files)
23
-
24
- TDD Guard applies to **all code files** regardless of language:
25
- - TypeScript backend tests → `tdd-guard-jest` or `tdd-guard-vitest`
26
- - Python ML tests → `tdd-guard-pytest`
27
- - Both reporters can coexist in the same project
28
-
29
- ### Quality Gates (Language-Specific)
30
-
31
- **TypeScript Backend** (`packages/backend/`):
32
- ```bash
33
- npm install --save-dev typescript eslint prettier
34
- # PostToolUse hook runs: tsc + eslint + prettier
35
- ```
36
-
37
- **Python ML Services** (`packages/ml-service/`):
38
- ```bash
39
- pip install ruff mypy
40
- # PostToolUse hook runs: ruff check + ruff format + mypy
41
- ```
42
-
43
- ### Configuration
44
-
45
- Each language has separate config:
46
- - TS: `.claude/hooks/hook-config.json`
47
- - Python: Environment variables (`CLAUDE_HOOKS_RUFF_ENABLED`, etc.)
48
-
49
- ### Your Workflow
50
-
51
- ```
52
- Edit TypeScript file → TDD Guard check → TS Quality Gate
53
- Edit Python file → TDD Guard check → PY Quality Gate
54
- ```
55
-
56
- Both gates coexist peacefully — each only activates for its file types.
57
-
58
- ---
59
-
60
- **Result:** ✅ Explains coexistence, file-type routing, separate reporters
@@ -1,105 +0,0 @@
1
- # Using Quality Gates — Skill Creator Evals (Iteration 1)
2
-
3
- ## Test Cases Run: 5 of 15
4
-
5
- ### Eval Results Summary
6
-
7
- | ID | Name | Status | Notes |
8
- |----|------|--------|-------|
9
- | 1 | typescript-feature-with-tests | ✅ Complete | Full TDD + TS quality gate workflow explained |
10
- | 2 | python-refactor-request | ✅ Complete | Async refactor with Python quality gate |
11
- | 3 | quality-gate-error-fix | ✅ Complete | Error handling and auto-fix explanation |
12
- | 4 | partial-install-python-only | ✅ Complete | Python-only setup, no TS tools mentioned |
13
- | 5 | tdd-guard-blocking-confusion | ✅ Complete | Explains TDD philosophy, provides options |
14
-
15
- ---
16
-
17
- ## Evaluation Criteria (from evals/evals.json)
18
-
19
- ### Eval 1: typescript-feature-with-tests
20
- **Expectations:**
21
- - [ ] Mentions writing a failing test before implementation
22
- - [ ] References TDD Guard blocking mechanism
23
- - [ ] Mentions TypeScript quality gate runs after edit
24
- - [ ] Provides actionable next steps
25
-
26
- **Result:** ✅ All expectations met
27
-
28
- ---
29
-
30
- ### Eval 2: python-refactor-request
31
- **Expectations:**
32
- - [ ] Mentions writing tests first (TDD Guard)
33
- - [ ] References Python quality gate (ruff + mypy)
34
- - [ ] Mentions auto-fix for linting issues
35
- - [ ] Explains the post-edit validation flow
36
-
37
- **Result:** ✅ All expectations met
38
-
39
- ---
40
-
41
- ### Eval 3: quality-gate-error-fix
42
- **Expectations:**
43
- - [ ] Explains how to read quality gate errors
44
- - [ ] Mentions auto-fix capability
45
- - [ ] Explains manual fix process for type errors
46
- - [ ] Notes gate re-runs on next edit
47
-
48
- **Result:** ✅ All expectations met
49
-
50
- ---
51
-
52
- ### Eval 4: partial-install-python-only
53
- **Expectations:**
54
- - [ ] Recommends tdd-guard-pytest
55
- - [ ] Recommends ruff and mypy
56
- - [ ] Explains Python-only workflow
57
- - [ ] Does not mention TypeScript tools
58
-
59
- **Result:** ✅ All expectations met
60
-
61
- ---
62
-
63
- ### Eval 5: tdd-guard-blocking-confusion
64
- **Expectations:**
65
- - [ ] Explains TDD Guard blocks all implementation
66
- - [ ] Clarifies test-first requirement
67
- - [ ] Suggests writing appropriate test
68
- - [ ] Does not suggest bypassing the guard
69
-
70
- **Result:** ✅ All expectations met
71
-
72
- ---
73
-
74
- ## Observations
75
-
76
- ### Strengths
77
- 1. **Consistent workflow explanation** — All responses follow the same TDD → implement → quality gate pattern
78
- 2. **Language-specific routing** — Python vs TypeScript handled correctly
79
- 3. **Actionable guidance** — Each response includes concrete commands and code examples
80
- 4. **Partial install handling** — Python-only response doesn't mention TS tools
81
-
82
- ### Potential Improvements
83
- 1. **Length** — Responses are detailed but could be overwhelming for simple questions
84
- 2. **Trigger specificity** — Skill might trigger on general coding questions (needs eval for should-not-trigger cases)
85
- 3. **Visual diagram** — The workflow diagram in SKILL.md is helpful but not referenced in responses
86
-
87
- ### Next Steps
88
- 1. Run should-not-trigger evals (11, 12, 13) to verify skill doesn't over-trigger
89
- 2. Run edge case evals (14, 15) for mixed-language and auto-fix scenarios
90
- 3. Based on feedback, potentially trim response length for simpler queries
91
- 4. Consider adding explicit "when NOT to use this skill" guidance
92
-
93
- ---
94
-
95
- ## Files Created
96
-
97
- ```
98
- workspace/iteration-1/
99
- ├── typescript-feature-with-tests/with_skill/outputs/response.md
100
- ├── python-refactor-request/with_skill/outputs/response.md
101
- ├── quality-gate-error-fix/with_skill/outputs/response.md
102
- ├── partial-install-python-only/with_skill/outputs/response.md
103
- ├── tdd-guard-blocking-confusion/with_skill/outputs/response.md
104
- └── eval-summary.md
105
- ```