xtrm-tools 0.7.3 → 0.7.7

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 (533) hide show
  1. package/.xtrm/config/hooks.json +3 -0
  2. package/.xtrm/config/pi/extensions/xtrm-ui/format.ts +189 -0
  3. package/.xtrm/config/pi/extensions/xtrm-ui/index.ts +76 -17
  4. package/.xtrm/config/pi/extensions/xtrm-ui/package.json +16 -5
  5. package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.combined.log +7 -0
  6. package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stderr.log +0 -0
  7. package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stdout.log +7 -0
  8. package/.xtrm/ext-src/xtrm-ui/format.ts +282 -0
  9. package/.xtrm/{extensions → ext-src}/xtrm-ui/index.ts +76 -17
  10. package/.xtrm/ext-src/xtrm-ui/package.json +21 -0
  11. package/.xtrm/hooks/specialists/specialists-complete.mjs +70 -0
  12. package/.xtrm/hooks/specialists/specialists-session-start.mjs +105 -0
  13. package/.xtrm/registry.json +397 -409
  14. package/.xtrm/skills/default/README.txt +31 -0
  15. package/.xtrm/skills/default/clean-code/SKILL.md +201 -0
  16. package/.xtrm/skills/default/creating-service-skills/SKILL.md +433 -0
  17. package/.xtrm/skills/default/creating-service-skills/references/script_quality_standards.md +425 -0
  18. package/.xtrm/skills/default/creating-service-skills/references/service_skill_system_guide.md +278 -0
  19. package/.xtrm/skills/default/creating-service-skills/scripts/bootstrap.py +326 -0
  20. package/.xtrm/skills/default/creating-service-skills/scripts/deep_dive.py +304 -0
  21. package/.xtrm/skills/default/creating-service-skills/scripts/scaffolder.py +482 -0
  22. package/.xtrm/skills/default/deepwiki/SKILL.md +50 -0
  23. package/.xtrm/skills/default/delegating/SKILL.md +196 -0
  24. package/.xtrm/skills/default/delegating/config.yaml +210 -0
  25. package/.xtrm/skills/default/delegating/references/orchestration-protocols.md +41 -0
  26. package/.xtrm/skills/default/documenting/CHANGELOG.md +23 -0
  27. package/.xtrm/skills/default/documenting/README.md +148 -0
  28. package/.xtrm/skills/default/documenting/SKILL.md +113 -0
  29. package/.xtrm/skills/default/documenting/examples/example_pattern.md +70 -0
  30. package/.xtrm/skills/default/documenting/examples/example_reference.md +70 -0
  31. package/.xtrm/skills/default/documenting/examples/example_ssot_analytics.md +64 -0
  32. package/.xtrm/skills/default/documenting/examples/example_workflow.md +141 -0
  33. package/.xtrm/skills/default/documenting/references/changelog-format.md +97 -0
  34. package/.xtrm/skills/default/documenting/references/metadata-schema.md +136 -0
  35. package/.xtrm/skills/default/documenting/references/taxonomy.md +81 -0
  36. package/.xtrm/skills/default/documenting/references/versioning-rules.md +78 -0
  37. package/.xtrm/skills/default/documenting/scripts/bump_version.sh +60 -0
  38. package/.xtrm/skills/default/documenting/scripts/changelog/__init__.py +0 -0
  39. package/.xtrm/skills/default/documenting/scripts/changelog/add_entry.py +216 -0
  40. package/.xtrm/skills/default/documenting/scripts/changelog/bump_release.py +117 -0
  41. package/.xtrm/skills/default/documenting/scripts/changelog/init_changelog.py +54 -0
  42. package/.xtrm/skills/default/documenting/scripts/changelog/validate_changelog.py +128 -0
  43. package/.xtrm/skills/default/documenting/scripts/drift_detector.py +266 -0
  44. package/.xtrm/skills/default/documenting/scripts/generate_template.py +311 -0
  45. package/.xtrm/skills/default/documenting/scripts/list_by_category.sh +84 -0
  46. package/.xtrm/skills/default/documenting/scripts/orchestrator.py +255 -0
  47. package/.xtrm/skills/default/documenting/scripts/validate_metadata.py +242 -0
  48. package/.xtrm/skills/default/documenting/templates/CHANGELOG.md.template +13 -0
  49. package/.xtrm/skills/default/find-docs/SKILL.md +175 -0
  50. package/.xtrm/skills/default/find-skills/SKILL.md +133 -0
  51. package/.xtrm/skills/default/github-search/SKILL.md +49 -0
  52. package/.xtrm/skills/default/gitnexus-debugging/SKILL.md +89 -0
  53. package/.xtrm/skills/default/gitnexus-impact-analysis/SKILL.md +97 -0
  54. package/.xtrm/skills/default/gitnexus-pr-review/SKILL.md +163 -0
  55. package/.xtrm/skills/default/gitnexus-refactoring/SKILL.md +121 -0
  56. package/.xtrm/skills/default/hook-development/SKILL.md +797 -0
  57. package/.xtrm/skills/default/hook-development/examples/load-context.sh +55 -0
  58. package/.xtrm/skills/default/hook-development/examples/quality-check.js +1168 -0
  59. package/.xtrm/skills/default/hook-development/examples/validate-bash.sh +43 -0
  60. package/.xtrm/skills/default/hook-development/examples/validate-write.sh +38 -0
  61. package/.xtrm/skills/default/hook-development/references/advanced.md +527 -0
  62. package/.xtrm/skills/default/hook-development/references/migration.md +369 -0
  63. package/.xtrm/skills/default/hook-development/references/patterns.md +412 -0
  64. package/.xtrm/skills/default/hook-development/scripts/README.md +164 -0
  65. package/.xtrm/skills/default/hook-development/scripts/hook-linter.sh +153 -0
  66. package/.xtrm/skills/default/hook-development/scripts/test-hook.sh +252 -0
  67. package/.xtrm/skills/default/hook-development/scripts/validate-hook-schema.sh +159 -0
  68. package/.xtrm/skills/default/init-session/SKILL.md +69 -0
  69. package/.xtrm/skills/default/last30days/SKILL.md +881 -0
  70. package/.xtrm/skills/default/last30days/scripts/briefing.py +260 -0
  71. package/.xtrm/skills/default/last30days/scripts/evaluate-synthesis.py +120 -0
  72. package/.xtrm/skills/default/last30days/scripts/evaluate_search_quality.py +641 -0
  73. package/.xtrm/skills/default/last30days/scripts/generate-synthesis-inputs.py +53 -0
  74. package/.xtrm/skills/default/last30days/scripts/last30days.py +2137 -0
  75. package/.xtrm/skills/default/last30days/scripts/lib/__init__.py +1 -0
  76. package/.xtrm/skills/default/last30days/scripts/lib/bird_x.py +458 -0
  77. package/.xtrm/skills/default/last30days/scripts/lib/bluesky.py +225 -0
  78. package/.xtrm/skills/default/last30days/scripts/lib/brave_search.py +329 -0
  79. package/.xtrm/skills/default/last30days/scripts/lib/cache.py +165 -0
  80. package/.xtrm/skills/default/last30days/scripts/lib/chrome_cookies.py +265 -0
  81. package/.xtrm/skills/default/last30days/scripts/lib/cookie_extract.py +295 -0
  82. package/.xtrm/skills/default/last30days/scripts/lib/dates.py +124 -0
  83. package/.xtrm/skills/default/last30days/scripts/lib/dedupe.py +290 -0
  84. package/.xtrm/skills/default/last30days/scripts/lib/entity_extract.py +127 -0
  85. package/.xtrm/skills/default/last30days/scripts/lib/env.py +807 -0
  86. package/.xtrm/skills/default/last30days/scripts/lib/exa_search.py +176 -0
  87. package/.xtrm/skills/default/last30days/scripts/lib/hackernews.py +266 -0
  88. package/.xtrm/skills/default/last30days/scripts/lib/http.py +174 -0
  89. package/.xtrm/skills/default/last30days/scripts/lib/instagram.py +365 -0
  90. package/.xtrm/skills/default/last30days/scripts/lib/models.py +221 -0
  91. package/.xtrm/skills/default/last30days/scripts/lib/normalize.py +489 -0
  92. package/.xtrm/skills/default/last30days/scripts/lib/openai_reddit.py +631 -0
  93. package/.xtrm/skills/default/last30days/scripts/lib/openrouter_search.py +216 -0
  94. package/.xtrm/skills/default/last30days/scripts/lib/parallel_search.py +139 -0
  95. package/.xtrm/skills/default/last30days/scripts/lib/polymarket.py +580 -0
  96. package/.xtrm/skills/default/last30days/scripts/lib/quality_nudge.py +201 -0
  97. package/.xtrm/skills/default/last30days/scripts/lib/query.py +117 -0
  98. package/.xtrm/skills/default/last30days/scripts/lib/query_type.py +111 -0
  99. package/.xtrm/skills/default/last30days/scripts/lib/reddit.py +617 -0
  100. package/.xtrm/skills/default/last30days/scripts/lib/reddit_enrich.py +325 -0
  101. package/.xtrm/skills/default/last30days/scripts/lib/reddit_public.py +259 -0
  102. package/.xtrm/skills/default/last30days/scripts/lib/relevance.py +148 -0
  103. package/.xtrm/skills/default/last30days/scripts/lib/render.py +1018 -0
  104. package/.xtrm/skills/default/last30days/scripts/lib/safari_cookies.py +182 -0
  105. package/.xtrm/skills/default/last30days/scripts/lib/schema.py +843 -0
  106. package/.xtrm/skills/default/last30days/scripts/lib/score.py +775 -0
  107. package/.xtrm/skills/default/last30days/scripts/lib/scrapecreators_x.py +182 -0
  108. package/.xtrm/skills/default/last30days/scripts/lib/setup_wizard.py +186 -0
  109. package/.xtrm/skills/default/last30days/scripts/lib/tiktok.py +349 -0
  110. package/.xtrm/skills/default/last30days/scripts/lib/truthsocial.py +183 -0
  111. package/.xtrm/skills/default/last30days/scripts/lib/ui.py +620 -0
  112. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/LICENSE +21 -0
  113. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/bird-search.mjs +134 -0
  114. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/cookies.js +191 -0
  115. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/features.json +17 -0
  116. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
  117. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
  118. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
  119. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
  120. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
  121. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
  122. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
  123. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
  124. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
  125. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
  126. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/LICENSE +22 -0
  127. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/README.md +29 -0
  128. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts +3 -0
  129. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts.map +1 -0
  130. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js +2 -0
  131. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js.map +1 -0
  132. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts +8 -0
  133. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts.map +1 -0
  134. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js +27 -0
  135. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js.map +1 -0
  136. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts +11 -0
  137. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts.map +1 -0
  138. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js +100 -0
  139. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js.map +1 -0
  140. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts +25 -0
  141. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts.map +1 -0
  142. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js +104 -0
  143. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js.map +1 -0
  144. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts +10 -0
  145. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts.map +1 -0
  146. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js +293 -0
  147. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js.map +1 -0
  148. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts +10 -0
  149. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts.map +1 -0
  150. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js +26 -0
  151. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js.map +1 -0
  152. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts +7 -0
  153. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts.map +1 -0
  154. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js +51 -0
  155. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js.map +1 -0
  156. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts +7 -0
  157. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts.map +1 -0
  158. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js +60 -0
  159. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js.map +1 -0
  160. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts +7 -0
  161. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts.map +1 -0
  162. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js +38 -0
  163. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js.map +1 -0
  164. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts +5 -0
  165. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts.map +1 -0
  166. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js +33 -0
  167. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js.map +1 -0
  168. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts +24 -0
  169. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts.map +1 -0
  170. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js +30 -0
  171. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js.map +1 -0
  172. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts +11 -0
  173. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts.map +1 -0
  174. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js +43 -0
  175. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js.map +1 -0
  176. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts +8 -0
  177. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts.map +1 -0
  178. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js +41 -0
  179. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js.map +1 -0
  180. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts +8 -0
  181. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts.map +1 -0
  182. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js +53 -0
  183. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js.map +1 -0
  184. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts +8 -0
  185. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts.map +1 -0
  186. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js +27 -0
  187. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js.map +1 -0
  188. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts +7 -0
  189. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts.map +1 -0
  190. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js +53 -0
  191. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js.map +1 -0
  192. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts +8 -0
  193. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts.map +1 -0
  194. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js +60 -0
  195. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js.map +1 -0
  196. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts +7 -0
  197. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts.map +1 -0
  198. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js +38 -0
  199. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js.map +1 -0
  200. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts +6 -0
  201. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts.map +1 -0
  202. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js +257 -0
  203. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js.map +1 -0
  204. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts +8 -0
  205. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts.map +1 -0
  206. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js +71 -0
  207. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js.map +1 -0
  208. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts +6 -0
  209. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts.map +1 -0
  210. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js +173 -0
  211. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js.map +1 -0
  212. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts +26 -0
  213. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts.map +1 -0
  214. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js +195 -0
  215. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js.map +1 -0
  216. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts +121 -0
  217. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts.map +1 -0
  218. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js +2 -0
  219. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js.map +1 -0
  220. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts +2 -0
  221. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts.map +1 -0
  222. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js +18 -0
  223. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js.map +1 -0
  224. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts +8 -0
  225. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts.map +1 -0
  226. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js +110 -0
  227. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js.map +1 -0
  228. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts +2 -0
  229. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts.map +1 -0
  230. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js +32 -0
  231. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js.map +1 -0
  232. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts +2 -0
  233. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts.map +1 -0
  234. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js +13 -0
  235. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js.map +1 -0
  236. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts +2 -0
  237. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts.map +1 -0
  238. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js +7 -0
  239. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js.map +1 -0
  240. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts +5 -0
  241. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts.map +1 -0
  242. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js +58 -0
  243. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js.map +1 -0
  244. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts +2 -0
  245. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts.map +1 -0
  246. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js +27 -0
  247. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js.map +1 -0
  248. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts +2 -0
  249. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts.map +1 -0
  250. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js +8 -0
  251. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js.map +1 -0
  252. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/package.json +40 -0
  253. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/package.json +13 -0
  254. package/.xtrm/skills/default/last30days/scripts/lib/websearch.py +401 -0
  255. package/.xtrm/skills/default/last30days/scripts/lib/xai_x.py +217 -0
  256. package/.xtrm/skills/default/last30days/scripts/lib/xiaohongshu_api.py +162 -0
  257. package/.xtrm/skills/default/last30days/scripts/lib/youtube_yt.py +538 -0
  258. package/.xtrm/skills/default/last30days/scripts/store.py +654 -0
  259. package/.xtrm/skills/default/last30days/scripts/sync.sh +50 -0
  260. package/.xtrm/skills/default/last30days/scripts/test-v1-vs-v2.sh +219 -0
  261. package/.xtrm/skills/default/last30days/scripts/watchlist.py +329 -0
  262. package/.xtrm/skills/default/planning/SKILL.md +405 -0
  263. package/.xtrm/skills/default/planning/evals/evals.json +19 -0
  264. package/.xtrm/skills/default/prompt-improving/README.md +162 -0
  265. package/.xtrm/skills/default/prompt-improving/SKILL.md +74 -0
  266. package/.xtrm/skills/default/prompt-improving/references/analysis_commands.md +24 -0
  267. package/.xtrm/skills/default/prompt-improving/references/chain_of_thought.md +24 -0
  268. package/.xtrm/skills/default/prompt-improving/references/mcp_definitions.md +20 -0
  269. package/.xtrm/skills/default/prompt-improving/references/multishot.md +23 -0
  270. package/.xtrm/skills/default/prompt-improving/references/xml_core.md +60 -0
  271. package/.xtrm/skills/default/quality-gates/.claude/hooks/hook-config.json +66 -0
  272. package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.cjs +1286 -0
  273. package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.py +334 -0
  274. package/.xtrm/skills/default/quality-gates/.claude/settings.json +3 -0
  275. package/.xtrm/skills/default/quality-gates/.claude/skills/using-quality-gates/SKILL.md +254 -0
  276. package/.xtrm/skills/default/quality-gates/README.md +109 -0
  277. package/.xtrm/skills/default/quality-gates/evals/evals.json +181 -0
  278. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +75 -0
  279. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +59 -0
  280. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +60 -0
  281. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/eval-summary.md +105 -0
  282. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +93 -0
  283. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +104 -0
  284. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +74 -0
  285. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +18 -0
  286. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +18 -0
  287. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +56 -0
  288. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +67 -0
  289. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +97 -0
  290. package/.xtrm/skills/default/scoping-service-skills/SKILL.md +231 -0
  291. package/.xtrm/skills/default/scoping-service-skills/scripts/scope.py +74 -0
  292. package/.xtrm/skills/default/service-skills-set/README.md +93 -0
  293. package/.xtrm/skills/default/service-skills-set/git-hooks/doc_reminder.py +67 -0
  294. package/.xtrm/skills/default/service-skills-set/git-hooks/skill_staleness.py +194 -0
  295. package/.xtrm/skills/default/service-skills-set/install-service-skills.py +193 -0
  296. package/.xtrm/skills/default/service-skills-set/service-registry.json +4 -0
  297. package/.xtrm/skills/default/service-skills-set/service-skills-readme.md +236 -0
  298. package/.xtrm/skills/default/service-skills-set/settings.json +37 -0
  299. package/.xtrm/skills/default/session-close-report/SKILL.md +131 -0
  300. package/.xtrm/skills/default/skill-creator/LICENSE.txt +202 -0
  301. package/.xtrm/skills/default/skill-creator/SKILL.md +479 -0
  302. package/.xtrm/skills/default/skill-creator/agents/analyzer.md +274 -0
  303. package/.xtrm/skills/default/skill-creator/agents/comparator.md +202 -0
  304. package/.xtrm/skills/default/skill-creator/agents/grader.md +223 -0
  305. package/.xtrm/skills/default/skill-creator/assets/eval_review.html +146 -0
  306. package/.xtrm/skills/default/skill-creator/eval-viewer/generate_review.py +471 -0
  307. package/.xtrm/skills/default/skill-creator/eval-viewer/viewer.html +1325 -0
  308. package/.xtrm/skills/default/skill-creator/references/schemas.md +430 -0
  309. package/.xtrm/skills/default/skill-creator/scripts/__init__.py +0 -0
  310. package/.xtrm/skills/default/skill-creator/scripts/aggregate_benchmark.py +401 -0
  311. package/.xtrm/skills/default/skill-creator/scripts/generate_report.py +326 -0
  312. package/.xtrm/skills/default/skill-creator/scripts/improve_description.py +248 -0
  313. package/.xtrm/skills/default/skill-creator/scripts/package_skill.py +136 -0
  314. package/.xtrm/skills/default/skill-creator/scripts/quick_validate.py +103 -0
  315. package/.xtrm/skills/default/skill-creator/scripts/run_eval.py +310 -0
  316. package/.xtrm/skills/default/skill-creator/scripts/run_loop.py +332 -0
  317. package/.xtrm/skills/default/skill-creator/scripts/utils.py +47 -0
  318. package/.xtrm/skills/default/specialists-creator/SKILL.md +705 -0
  319. package/.xtrm/skills/default/specialists-creator/scripts/validate-specialist.ts +41 -0
  320. package/.xtrm/skills/default/sync-docs/SKILL.md +262 -0
  321. package/.xtrm/skills/default/sync-docs/evals/evals.json +89 -0
  322. package/.xtrm/skills/default/sync-docs/references/doc-structure.md +99 -0
  323. package/.xtrm/skills/default/sync-docs/references/schema.md +103 -0
  324. package/.xtrm/skills/default/sync-docs/scripts/changelog/add_entry.py +216 -0
  325. package/.xtrm/skills/default/sync-docs/scripts/context_gatherer.py +405 -0
  326. package/.xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py +495 -0
  327. package/.xtrm/skills/default/sync-docs/scripts/drift_detector.py +563 -0
  328. package/.xtrm/skills/default/sync-docs/scripts/validate_doc.py +365 -0
  329. package/.xtrm/skills/default/sync-docs/scripts/validate_metadata.py +185 -0
  330. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.json +293 -0
  331. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.md +13 -0
  332. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +27 -0
  333. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +210 -0
  334. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +28 -0
  335. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +1 -0
  336. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +101 -0
  337. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +28 -0
  338. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +5 -0
  339. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +5 -0
  340. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +27 -0
  341. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +198 -0
  342. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +28 -0
  343. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +1 -0
  344. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +94 -0
  345. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +28 -0
  346. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +1 -0
  347. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +27 -0
  348. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +237 -0
  349. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +28 -0
  350. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
  351. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +134 -0
  352. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +28 -0
  353. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +1 -0
  354. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.json +297 -0
  355. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.md +13 -0
  356. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +27 -0
  357. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +137 -0
  358. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +92 -0
  359. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +1 -0
  360. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +134 -0
  361. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +86 -0
  362. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +1 -0
  363. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +27 -0
  364. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +193 -0
  365. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +72 -0
  366. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +1 -0
  367. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +211 -0
  368. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +91 -0
  369. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +5 -0
  370. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +27 -0
  371. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +182 -0
  372. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
  373. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
  374. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +222 -0
  375. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +88 -0
  376. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
  377. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.json +298 -0
  378. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.md +13 -0
  379. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +27 -0
  380. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +125 -0
  381. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +97 -0
  382. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +5 -0
  383. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +144 -0
  384. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +78 -0
  385. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +5 -0
  386. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +27 -0
  387. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +104 -0
  388. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +91 -0
  389. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +5 -0
  390. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +79 -0
  391. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +82 -0
  392. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +5 -0
  393. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +27 -0
  394. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +302 -0
  395. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +33 -0
  396. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +114 -0
  397. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +118 -0
  398. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +38 -0
  399. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +158 -0
  400. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
  401. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +5 -0
  402. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +71 -0
  403. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +90 -0
  404. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
  405. package/.xtrm/skills/default/test-planning/SKILL.md +465 -0
  406. package/.xtrm/skills/default/test-planning/evals/evals.json +23 -0
  407. package/.xtrm/skills/default/updating-service-skills/SKILL.md +136 -0
  408. package/.xtrm/skills/default/updating-service-skills/scripts/drift_detector.py +222 -0
  409. package/.xtrm/skills/default/using-nodes/SKILL.md +333 -0
  410. package/.xtrm/skills/default/using-quality-gates/SKILL.md +254 -0
  411. package/.xtrm/skills/default/using-service-skills/SKILL.md +108 -0
  412. package/.xtrm/skills/default/using-service-skills/scripts/cataloger.py +74 -0
  413. package/.xtrm/skills/default/using-service-skills/scripts/skill_activator.py +152 -0
  414. package/.xtrm/skills/default/using-specialists/SKILL.md +848 -0
  415. package/.xtrm/skills/default/using-specialists/evals/evals.json +68 -0
  416. package/.xtrm/skills/default/using-tdd/SKILL.md +410 -0
  417. package/.xtrm/skills/default/using-xtrm/SKILL.md +127 -0
  418. package/.xtrm/skills/default/xt-debugging/SKILL.md +149 -0
  419. package/.xtrm/skills/default/xt-end/SKILL.md +297 -0
  420. package/.xtrm/skills/default/xt-merge/SKILL.md +326 -0
  421. package/.xtrm/skills/optional/README.txt +2 -0
  422. package/.xtrm/skills/optional/architecture-design/PACK.json +11 -0
  423. package/.xtrm/skills/optional/architecture-design/architecture-patterns/SKILL.md +494 -0
  424. package/.xtrm/skills/optional/architecture-design/architecture-patterns/references/advanced-patterns.md +391 -0
  425. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/SKILL.md +473 -0
  426. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  427. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/prompt-template-library.md +264 -0
  428. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/chain-of-thought.md +412 -0
  429. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/few-shot-learning.md +386 -0
  430. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-optimization.md +428 -0
  431. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-templates.md +484 -0
  432. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/system-prompts.md +195 -0
  433. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  434. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/SKILL.md +277 -0
  435. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  436. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/implementer-prompt.md +113 -0
  437. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  438. package/.xtrm/skills/optional/code-quality/PACK.json +12 -0
  439. package/.xtrm/skills/optional/code-quality/code-review-excellence/SKILL.md +529 -0
  440. package/.xtrm/skills/optional/code-quality/multi-reviewer-patterns/SKILL.md +127 -0
  441. package/.xtrm/skills/optional/code-quality/systematic-debugging/SKILL.md +296 -0
  442. package/.xtrm/skills/optional/code-quality/verification-before-completion/SKILL.md +139 -0
  443. package/.xtrm/skills/optional/data-engineering/PACK.json +9 -0
  444. package/.xtrm/skills/optional/data-engineering/data-analyst/SKILL.md +57 -0
  445. package/.xtrm/skills/optional/research-methods/PACK.json +12 -0
  446. package/.xtrm/skills/optional/research-methods/academic-researcher/SKILL.md +269 -0
  447. package/.xtrm/skills/optional/research-methods/brainstorming/SKILL.md +164 -0
  448. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/frame-template.html +214 -0
  449. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/helper.js +88 -0
  450. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/server.cjs +354 -0
  451. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/start-server.sh +148 -0
  452. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/stop-server.sh +56 -0
  453. package/.xtrm/skills/optional/research-methods/brainstorming/spec-document-reviewer-prompt.md +49 -0
  454. package/.xtrm/skills/optional/research-methods/brainstorming/visual-companion.md +287 -0
  455. package/.xtrm/skills/optional/research-methods/deep-research/SKILL.md +192 -0
  456. package/.xtrm/skills/optional/research-methods/fact-checker/SKILL.md +182 -0
  457. package/.xtrm/skills/optional/security-ops/PACK.json +9 -0
  458. package/.xtrm/skills/optional/security-ops/security-auditor/SKILL.md +165 -0
  459. package/.xtrm/skills/optional/xt-optional/PACK.json +16 -0
  460. package/.xtrm/skills/optional/xt-optional/docker-expert/SKILL.md +409 -0
  461. package/.xtrm/skills/optional/xt-optional/obsidian-cli/SKILL.md +106 -0
  462. package/.xtrm/skills/optional/xt-optional/python-testing/SKILL.md +815 -0
  463. package/.xtrm/skills/optional/xt-optional/senior-backend/SKILL.md +209 -0
  464. package/.xtrm/skills/optional/xt-optional/senior-backend/references/api_design_patterns.md +103 -0
  465. package/.xtrm/skills/optional/xt-optional/senior-backend/references/backend_security_practices.md +103 -0
  466. package/.xtrm/skills/optional/xt-optional/senior-backend/references/database_optimization_guide.md +103 -0
  467. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_load_tester.py +114 -0
  468. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_scaffolder.py +114 -0
  469. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/database_migration_tool.py +114 -0
  470. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/SKILL.md +226 -0
  471. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
  472. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
  473. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
  474. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/experiment_designer.py +100 -0
  475. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
  476. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
  477. package/.xtrm/skills/optional/xt-optional/senior-devops/SKILL.md +209 -0
  478. package/.xtrm/skills/optional/xt-optional/senior-devops/references/cicd_pipeline_guide.md +103 -0
  479. package/.xtrm/skills/optional/xt-optional/senior-devops/references/deployment_strategies.md +103 -0
  480. package/.xtrm/skills/optional/xt-optional/senior-devops/references/infrastructure_as_code.md +103 -0
  481. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/deployment_manager.py +114 -0
  482. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/pipeline_generator.py +114 -0
  483. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/terraform_scaffolder.py +114 -0
  484. package/.xtrm/skills/optional/xt-optional/senior-security/SKILL.md +209 -0
  485. package/.xtrm/skills/optional/xt-optional/senior-security/references/cryptography_implementation.md +103 -0
  486. package/.xtrm/skills/optional/xt-optional/senior-security/references/penetration_testing_guide.md +103 -0
  487. package/.xtrm/skills/optional/xt-optional/senior-security/references/security_architecture_patterns.md +103 -0
  488. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/pentest_automator.py +114 -0
  489. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/security_auditor.py +114 -0
  490. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/threat_modeler.py +114 -0
  491. package/CHANGELOG.md +16 -0
  492. package/README.md +5 -0
  493. package/cli/dist/index.cjs +862 -614
  494. package/cli/dist/index.cjs.map +1 -1
  495. package/cli/package.json +1 -1
  496. package/package.json +4 -1
  497. package/.xtrm/extensions/xtrm-ui/format.ts +0 -93
  498. package/.xtrm/extensions/xtrm-ui/package.json +0 -10
  499. /package/.xtrm/{extensions → ext-src}/auto-session-name/index.ts +0 -0
  500. /package/.xtrm/{extensions → ext-src}/auto-session-name/package.json +0 -0
  501. /package/.xtrm/{extensions → ext-src}/auto-update/index.ts +0 -0
  502. /package/.xtrm/{extensions → ext-src}/auto-update/package.json +0 -0
  503. /package/.xtrm/{extensions → ext-src}/beads/index.ts +0 -0
  504. /package/.xtrm/{extensions → ext-src}/beads/package.json +0 -0
  505. /package/.xtrm/{extensions → ext-src}/compact-header/index.ts +0 -0
  506. /package/.xtrm/{extensions → ext-src}/compact-header/package.json +0 -0
  507. /package/.xtrm/{extensions → ext-src}/core/adapter.ts +0 -0
  508. /package/.xtrm/{extensions → ext-src}/core/guard-rules.ts +0 -0
  509. /package/.xtrm/{extensions → ext-src}/core/lib.ts +0 -0
  510. /package/.xtrm/{extensions → ext-src}/core/logger.ts +0 -0
  511. /package/.xtrm/{extensions → ext-src}/core/package.json +0 -0
  512. /package/.xtrm/{extensions → ext-src}/core/runner.ts +0 -0
  513. /package/.xtrm/{extensions → ext-src}/core/session-state.ts +0 -0
  514. /package/.xtrm/{extensions → ext-src}/custom-footer/index.ts +0 -0
  515. /package/.xtrm/{extensions → ext-src}/custom-footer/package.json +0 -0
  516. /package/.xtrm/{extensions → ext-src}/custom-provider-qwen-cli/index.ts +0 -0
  517. /package/.xtrm/{extensions → ext-src}/custom-provider-qwen-cli/package.json +0 -0
  518. /package/.xtrm/{extensions → ext-src}/git-checkpoint/index.ts +0 -0
  519. /package/.xtrm/{extensions → ext-src}/git-checkpoint/package.json +0 -0
  520. /package/.xtrm/{extensions → ext-src}/lsp-bootstrap/index.ts +0 -0
  521. /package/.xtrm/{extensions → ext-src}/lsp-bootstrap/package.json +0 -0
  522. /package/.xtrm/{extensions → ext-src}/pi-serena-compact/index.ts +0 -0
  523. /package/.xtrm/{extensions → ext-src}/pi-serena-compact/package.json +0 -0
  524. /package/.xtrm/{extensions → ext-src}/quality-gates/index.ts +0 -0
  525. /package/.xtrm/{extensions → ext-src}/quality-gates/package.json +0 -0
  526. /package/.xtrm/{extensions → ext-src}/service-skills/index.ts +0 -0
  527. /package/.xtrm/{extensions → ext-src}/service-skills/package.json +0 -0
  528. /package/.xtrm/{extensions → ext-src}/session-flow/index.ts +0 -0
  529. /package/.xtrm/{extensions → ext-src}/session-flow/package.json +0 -0
  530. /package/.xtrm/{extensions → ext-src}/xtrm-loader/index.ts +0 -0
  531. /package/.xtrm/{extensions → ext-src}/xtrm-loader/package.json +0 -0
  532. /package/.xtrm/{extensions → ext-src}/xtrm-ui/themes/pidex-dark.json +0 -0
  533. /package/.xtrm/{extensions → ext-src}/xtrm-ui/themes/pidex-light.json +0 -0
@@ -0,0 +1,68 @@
1
+ {
2
+ "skill_name": "specialists-usage",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "eval_name": "bug-investigation",
7
+ "prompt": "I'm seeing intermittent failures where specialist jobs show status 'done' in `specialists feed` but `specialists result` says they're still running. Can you investigate what's causing this inconsistency in the job lifecycle?",
8
+ "expected_output": "Agent delegates to a specialist (e.g. bug-hunt) rather than diving into the source code themselves. Should create a bead first, then run the specialist with --bead.",
9
+ "assertions": [
10
+ {
11
+ "name": "invokes_specialist",
12
+ "description": "Agent runs `specialists run` or calls use_specialist/start_specialist instead of reading source files directly"
13
+ },
14
+ {
15
+ "name": "creates_bead_first",
16
+ "description": "Agent creates a tracking bead before invoking the specialist"
17
+ },
18
+ {
19
+ "name": "does_not_self_investigate",
20
+ "description": "Agent does not read supervisor.ts, status.json, or other source files to investigate the bug themselves"
21
+ }
22
+ ],
23
+ "files": []
24
+ },
25
+ {
26
+ "id": 2,
27
+ "eval_name": "code-review",
28
+ "prompt": "The specialist runner module at src/specialist/runner.ts is the core execution layer. Can you review it for bugs, edge cases, and code quality issues? It's about 300 lines and fairly complex.",
29
+ "expected_output": "Agent delegates to a specialist (e.g. parallel-review or codebase-explorer) rather than reading the file and writing a review themselves. Should create a bead first.",
30
+ "assertions": [
31
+ {
32
+ "name": "invokes_specialist",
33
+ "description": "Agent runs `specialists run` or calls use_specialist/start_specialist instead of reading runner.ts directly"
34
+ },
35
+ {
36
+ "name": "creates_bead_first",
37
+ "description": "Agent creates a tracking bead before invoking the specialist"
38
+ },
39
+ {
40
+ "name": "does_not_self_review",
41
+ "description": "Agent does not read runner.ts and write their own code review"
42
+ }
43
+ ],
44
+ "files": []
45
+ },
46
+ {
47
+ "id": 3,
48
+ "eval_name": "test-coverage",
49
+ "prompt": "src/specialist/loader.ts handles YAML file discovery and caching. Looking at the tests in tests/unit/specialist/loader.test.ts, what's missing? Can you add the coverage gaps?",
50
+ "expected_output": "Agent delegates to a specialist (e.g. test-runner) rather than reading the files and writing tests themselves. Should create a bead first.",
51
+ "assertions": [
52
+ {
53
+ "name": "invokes_specialist",
54
+ "description": "Agent runs `specialists run` or calls use_specialist/start_specialist instead of writing tests directly"
55
+ },
56
+ {
57
+ "name": "creates_bead_first",
58
+ "description": "Agent creates a tracking bead before invoking the specialist"
59
+ },
60
+ {
61
+ "name": "does_not_self_write_tests",
62
+ "description": "Agent does not read loader.ts and loader.test.ts and write new test cases themselves"
63
+ }
64
+ ],
65
+ "files": []
66
+ }
67
+ ]
68
+ }
@@ -0,0 +1,410 @@
1
+ ---
2
+ name: using-tdd
3
+ description: Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Test-Driven Development Workflow
8
+
9
+ This skill ensures all code development follows TDD principles with comprehensive test coverage.
10
+
11
+ ## When to Activate
12
+
13
+ - Writing new features or functionality
14
+ - Fixing bugs or issues
15
+ - Refactoring existing code
16
+ - Adding API endpoints
17
+ - Creating new components
18
+
19
+ ## Core Principles
20
+
21
+ ### 1. Tests BEFORE Code
22
+ ALWAYS write tests first, then implement code to make tests pass.
23
+
24
+ ### 2. Coverage Requirements
25
+ - Minimum 80% coverage (unit + integration + E2E)
26
+ - All edge cases covered
27
+ - Error scenarios tested
28
+ - Boundary conditions verified
29
+
30
+ ### 3. Test Types
31
+
32
+ #### Unit Tests
33
+ - Individual functions and utilities
34
+ - Component logic
35
+ - Pure functions
36
+ - Helpers and utilities
37
+
38
+ #### Integration Tests
39
+ - API endpoints
40
+ - Database operations
41
+ - Service interactions
42
+ - External API calls
43
+
44
+ #### E2E Tests (Playwright)
45
+ - Critical user flows
46
+ - Complete workflows
47
+ - Browser automation
48
+ - UI interactions
49
+
50
+ ## TDD Workflow Steps
51
+
52
+ ### Step 1: Write User Journeys
53
+ ```
54
+ As a [role], I want to [action], so that [benefit]
55
+
56
+ Example:
57
+ As a user, I want to search for markets semantically,
58
+ so that I can find relevant markets even without exact keywords.
59
+ ```
60
+
61
+ ### Step 2: Generate Test Cases
62
+ For each user journey, create comprehensive test cases:
63
+
64
+ ```typescript
65
+ describe('Semantic Search', () => {
66
+ it('returns relevant markets for query', async () => {
67
+ // Test implementation
68
+ })
69
+
70
+ it('handles empty query gracefully', async () => {
71
+ // Test edge case
72
+ })
73
+
74
+ it('falls back to substring search when Redis unavailable', async () => {
75
+ // Test fallback behavior
76
+ })
77
+
78
+ it('sorts results by similarity score', async () => {
79
+ // Test sorting logic
80
+ })
81
+ })
82
+ ```
83
+
84
+ ### Step 3: Run Tests (They Should Fail)
85
+ ```bash
86
+ npm test
87
+ # Tests should fail - we haven't implemented yet
88
+ ```
89
+
90
+ ### Step 4: Implement Code
91
+ Write minimal code to make tests pass:
92
+
93
+ ```typescript
94
+ // Implementation guided by tests
95
+ export async function searchMarkets(query: string) {
96
+ // Implementation here
97
+ }
98
+ ```
99
+
100
+ ### Step 5: Run Tests Again
101
+ ```bash
102
+ npm test
103
+ # Tests should now pass
104
+ ```
105
+
106
+ ### Step 6: Refactor
107
+ Improve code quality while keeping tests green:
108
+ - Remove duplication
109
+ - Improve naming
110
+ - Optimize performance
111
+ - Enhance readability
112
+
113
+ ### Step 7: Verify Coverage
114
+ ```bash
115
+ npm run test:coverage
116
+ # Verify 80%+ coverage achieved
117
+ ```
118
+
119
+ ## Testing Patterns
120
+
121
+ ### Unit Test Pattern (Jest/Vitest)
122
+ ```typescript
123
+ import { render, screen, fireEvent } from '@testing-library/react'
124
+ import { Button } from './Button'
125
+
126
+ describe('Button Component', () => {
127
+ it('renders with correct text', () => {
128
+ render(<Button>Click me</Button>)
129
+ expect(screen.getByText('Click me')).toBeInTheDocument()
130
+ })
131
+
132
+ it('calls onClick when clicked', () => {
133
+ const handleClick = jest.fn()
134
+ render(<Button onClick={handleClick}>Click</Button>)
135
+
136
+ fireEvent.click(screen.getByRole('button'))
137
+
138
+ expect(handleClick).toHaveBeenCalledTimes(1)
139
+ })
140
+
141
+ it('is disabled when disabled prop is true', () => {
142
+ render(<Button disabled>Click</Button>)
143
+ expect(screen.getByRole('button')).toBeDisabled()
144
+ })
145
+ })
146
+ ```
147
+
148
+ ### API Integration Test Pattern
149
+ ```typescript
150
+ import { NextRequest } from 'next/server'
151
+ import { GET } from './route'
152
+
153
+ describe('GET /api/markets', () => {
154
+ it('returns markets successfully', async () => {
155
+ const request = new NextRequest('http://localhost/api/markets')
156
+ const response = await GET(request)
157
+ const data = await response.json()
158
+
159
+ expect(response.status).toBe(200)
160
+ expect(data.success).toBe(true)
161
+ expect(Array.isArray(data.data)).toBe(true)
162
+ })
163
+
164
+ it('validates query parameters', async () => {
165
+ const request = new NextRequest('http://localhost/api/markets?limit=invalid')
166
+ const response = await GET(request)
167
+
168
+ expect(response.status).toBe(400)
169
+ })
170
+
171
+ it('handles database errors gracefully', async () => {
172
+ // Mock database failure
173
+ const request = new NextRequest('http://localhost/api/markets')
174
+ // Test error handling
175
+ })
176
+ })
177
+ ```
178
+
179
+ ### E2E Test Pattern (Playwright)
180
+ ```typescript
181
+ import { test, expect } from '@playwright/test'
182
+
183
+ test('user can search and filter markets', async ({ page }) => {
184
+ // Navigate to markets page
185
+ await page.goto('/')
186
+ await page.click('a[href="/markets"]')
187
+
188
+ // Verify page loaded
189
+ await expect(page.locator('h1')).toContainText('Markets')
190
+
191
+ // Search for markets
192
+ await page.fill('input[placeholder="Search markets"]', 'election')
193
+
194
+ // Wait for debounce and results
195
+ await page.waitForTimeout(600)
196
+
197
+ // Verify search results displayed
198
+ const results = page.locator('[data-testid="market-card"]')
199
+ await expect(results).toHaveCount(5, { timeout: 5000 })
200
+
201
+ // Verify results contain search term
202
+ const firstResult = results.first()
203
+ await expect(firstResult).toContainText('election', { ignoreCase: true })
204
+
205
+ // Filter by status
206
+ await page.click('button:has-text("Active")')
207
+
208
+ // Verify filtered results
209
+ await expect(results).toHaveCount(3)
210
+ })
211
+
212
+ test('user can create a new market', async ({ page }) => {
213
+ // Login first
214
+ await page.goto('/creator-dashboard')
215
+
216
+ // Fill market creation form
217
+ await page.fill('input[name="name"]', 'Test Market')
218
+ await page.fill('textarea[name="description"]', 'Test description')
219
+ await page.fill('input[name="endDate"]', '2025-12-31')
220
+
221
+ // Submit form
222
+ await page.click('button[type="submit"]')
223
+
224
+ // Verify success message
225
+ await expect(page.locator('text=Market created successfully')).toBeVisible()
226
+
227
+ // Verify redirect to market page
228
+ await expect(page).toHaveURL(/\/markets\/test-market/)
229
+ })
230
+ ```
231
+
232
+ ## Test File Organization
233
+
234
+ ```
235
+ src/
236
+ ├── components/
237
+ │ ├── Button/
238
+ │ │ ├── Button.tsx
239
+ │ │ ├── Button.test.tsx # Unit tests
240
+ │ │ └── Button.stories.tsx # Storybook
241
+ │ └── MarketCard/
242
+ │ ├── MarketCard.tsx
243
+ │ └── MarketCard.test.tsx
244
+ ├── app/
245
+ │ └── api/
246
+ │ └── markets/
247
+ │ ├── route.ts
248
+ │ └── route.test.ts # Integration tests
249
+ └── e2e/
250
+ ├── markets.spec.ts # E2E tests
251
+ ├── trading.spec.ts
252
+ └── auth.spec.ts
253
+ ```
254
+
255
+ ## Mocking External Services
256
+
257
+ ### Supabase Mock
258
+ ```typescript
259
+ jest.mock('@/lib/supabase', () => ({
260
+ supabase: {
261
+ from: jest.fn(() => ({
262
+ select: jest.fn(() => ({
263
+ eq: jest.fn(() => Promise.resolve({
264
+ data: [{ id: 1, name: 'Test Market' }],
265
+ error: null
266
+ }))
267
+ }))
268
+ }))
269
+ }
270
+ }))
271
+ ```
272
+
273
+ ### Redis Mock
274
+ ```typescript
275
+ jest.mock('@/lib/redis', () => ({
276
+ searchMarketsByVector: jest.fn(() => Promise.resolve([
277
+ { slug: 'test-market', similarity_score: 0.95 }
278
+ ])),
279
+ checkRedisHealth: jest.fn(() => Promise.resolve({ connected: true }))
280
+ }))
281
+ ```
282
+
283
+ ### OpenAI Mock
284
+ ```typescript
285
+ jest.mock('@/lib/openai', () => ({
286
+ generateEmbedding: jest.fn(() => Promise.resolve(
287
+ new Array(1536).fill(0.1) // Mock 1536-dim embedding
288
+ ))
289
+ }))
290
+ ```
291
+
292
+ ## Test Coverage Verification
293
+
294
+ ### Run Coverage Report
295
+ ```bash
296
+ npm run test:coverage
297
+ ```
298
+
299
+ ### Coverage Thresholds
300
+ ```json
301
+ {
302
+ "jest": {
303
+ "coverageThresholds": {
304
+ "global": {
305
+ "branches": 80,
306
+ "functions": 80,
307
+ "lines": 80,
308
+ "statements": 80
309
+ }
310
+ }
311
+ }
312
+ }
313
+ ```
314
+
315
+ ## Common Testing Mistakes to Avoid
316
+
317
+ ### ❌ WRONG: Testing Implementation Details
318
+ ```typescript
319
+ // Don't test internal state
320
+ expect(component.state.count).toBe(5)
321
+ ```
322
+
323
+ ### ✅ CORRECT: Test User-Visible Behavior
324
+ ```typescript
325
+ // Test what users see
326
+ expect(screen.getByText('Count: 5')).toBeInTheDocument()
327
+ ```
328
+
329
+ ### ❌ WRONG: Brittle Selectors
330
+ ```typescript
331
+ // Breaks easily
332
+ await page.click('.css-class-xyz')
333
+ ```
334
+
335
+ ### ✅ CORRECT: Semantic Selectors
336
+ ```typescript
337
+ // Resilient to changes
338
+ await page.click('button:has-text("Submit")')
339
+ await page.click('[data-testid="submit-button"]')
340
+ ```
341
+
342
+ ### ❌ WRONG: No Test Isolation
343
+ ```typescript
344
+ // Tests depend on each other
345
+ test('creates user', () => { /* ... */ })
346
+ test('updates same user', () => { /* depends on previous test */ })
347
+ ```
348
+
349
+ ### ✅ CORRECT: Independent Tests
350
+ ```typescript
351
+ // Each test sets up its own data
352
+ test('creates user', () => {
353
+ const user = createTestUser()
354
+ // Test logic
355
+ })
356
+
357
+ test('updates user', () => {
358
+ const user = createTestUser()
359
+ // Update logic
360
+ })
361
+ ```
362
+
363
+ ## Continuous Testing
364
+
365
+ ### Watch Mode During Development
366
+ ```bash
367
+ npm test -- --watch
368
+ # Tests run automatically on file changes
369
+ ```
370
+
371
+ ### Pre-Commit Hook
372
+ ```bash
373
+ # Runs before every commit
374
+ npm test && npm run lint
375
+ ```
376
+
377
+ ### CI/CD Integration
378
+ ```yaml
379
+ # GitHub Actions
380
+ - name: Run Tests
381
+ run: npm test -- --coverage
382
+ - name: Upload Coverage
383
+ uses: codecov/codecov-action@v3
384
+ ```
385
+
386
+ ## Best Practices
387
+
388
+ 1. **Write Tests First** - Always TDD
389
+ 2. **One Assert Per Test** - Focus on single behavior
390
+ 3. **Descriptive Test Names** - Explain what's tested
391
+ 4. **Arrange-Act-Assert** - Clear test structure
392
+ 5. **Mock External Dependencies** - Isolate unit tests
393
+ 6. **Test Edge Cases** - Null, undefined, empty, large
394
+ 7. **Test Error Paths** - Not just happy paths
395
+ 8. **Keep Tests Fast** - Unit tests < 50ms each
396
+ 9. **Clean Up After Tests** - No side effects
397
+ 10. **Review Coverage Reports** - Identify gaps
398
+
399
+ ## Success Metrics
400
+
401
+ - 80%+ code coverage achieved
402
+ - All tests passing (green)
403
+ - No skipped or disabled tests
404
+ - Fast test execution (< 30s for unit tests)
405
+ - E2E tests cover critical user flows
406
+ - Tests catch bugs before production
407
+
408
+ ---
409
+
410
+ **Remember**: Tests are not optional. They are the safety net that enables confident refactoring, rapid development, and production reliability.
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: using-xtrm
3
+ description: >
4
+ Behavioral operating manual for an xtrm-equipped Claude Code session.
5
+ Covers when to use which tool, how to handle questions and triggers,
6
+ workflow examples, and skill routing. Reference material (hook list,
7
+ gate rules, full bd commands, git workflow) lives in CLAUDE.md.
8
+ Injected automatically at session start via additionalSystemPrompt.
9
+ priority: high
10
+ ---
11
+
12
+ # XTRM — When to Use What
13
+
14
+ > Gates, commands, and git workflow are in CLAUDE.md.
15
+ > This is the behavioral layer: triggers, patterns, examples.
16
+
17
+ ## Session Start
18
+
19
+ ```bash
20
+ bd prime # load workflow context + active claims
21
+ bd memories <today's topic> # retrieve relevant past context
22
+ bv --robot-triage # graph-ranked picks, quick wins, unblock targets
23
+ bd update <id> --claim # claim before any edit
24
+ ```
25
+
26
+ > Use `bv --robot-next` for the single top pick. Use `bv --robot-triage --format toon` to save context tokens. **Never run bare `bv` — it launches an interactive TUI.**
27
+
28
+ ---
29
+
30
+ ## Trigger Patterns
31
+
32
+ | Situation | Action |
33
+ |-----------|--------|
34
+ | User prompt contains `?` | `bd memories <keywords>` before answering — check stored context first |
35
+ | "What should I work on?" | `bv --robot-triage` — ranked picks with dependency context |
36
+ | "What was I working on?" | `bd list --status=in_progress` |
37
+ | Unfamiliar area of code | `gitnexus_query({query: "concept"})` before opening any file |
38
+ | About to edit a symbol | `gitnexus_impact({target: "name", direction: "upstream"})` |
39
+ | Before `git commit` | `gitnexus_detect_changes({scope: "staged"})` to verify scope |
40
+ | Reading code | `get_symbols_overview` → `find_symbol` — never read whole files |
41
+ | Task is tests | use /test-planning
42
+ | Task is docs updates | use /sync-docs
43
+ | Session end (issue closed) | Memory gate fires — evaluate `bd remember` for each closed issue |
44
+
45
+ ---
46
+
47
+ ## Handling `?` Prompts
48
+
49
+ When the user's message contains a question, check stored context before answering:
50
+
51
+ ```bash
52
+ bd memories <keywords from question> # search project memory
53
+ bd recall <key> # retrieve specific memory if key is known
54
+ ```
55
+
56
+ Example — user asks *"why does the quality gate run twice?"*:
57
+ ```bash
58
+ bd memories "quality gate"
59
+ # → "quality-check.cjs and quality-check.py are separate hooks —
60
+ # JS/TS and Python each get their own PostToolUse pass"
61
+ ```
62
+
63
+ If it's a code question, also run:
64
+ ```bash
65
+ gitnexus_query({query: "<topic>"}) # find relevant execution flows
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Workflow Examples
71
+
72
+ **Fixing a bug:**
73
+ ```bash
74
+ bd ready # find the issue
75
+ bd update bd-xyz --claim # claim it
76
+ gitnexus_impact({target: "parseComposeServices", direction: "upstream"})
77
+ # → 2 callers, LOW risk — safe to edit
78
+ get_symbols_overview("hooks/init.ts") # map file
79
+ find_symbol("parseComposeServices", include_body=True) # read just this
80
+ replace_symbol_body("parseComposeServices", newBody) # Serena edit
81
+ bd close bd-xyz --reason="Fix YAML parse edge case" # close issue
82
+ xt end # push, PR, merge, cleanup
83
+ ```
84
+
85
+ **Exploring unfamiliar code:**
86
+ ```bash
87
+ gitnexus_query({query: "session claim enforcement"})
88
+ # → beads-gate-core.mjs, resolveClaimAndWorkState, decideCommitGate
89
+ gitnexus_context({name: "resolveClaimAndWorkState"}) # callers + callees
90
+ get_symbols_overview("hooks/beads-gate-core.mjs") # map the file
91
+ find_symbol("resolveClaimAndWorkState", include_body=True) # read only this
92
+ ```
93
+
94
+ **Persisting an insight:**
95
+ ```bash
96
+ bd remember "quality-check runs twice: separate .cjs (JS) and .py (Python) hooks"
97
+ # retrievable next session:
98
+ bd memories "quality check"
99
+ bd recall "quality-check-runs-twice-..."
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Prompt Shaping (silent, before every non-trivial task)
105
+
106
+ | Task type | Apply |
107
+ |-----------|-------|
108
+ | `analyze / investigate / why` | `<thinking>` block + structured `<outputs>` |
109
+ | `implement / build / fix` | 1-2 `<example>` blocks + `<constraints>` |
110
+ | `refactor / simplify` | `<constraints>` (preserve behavior, tests pass) + `<current_state>` |
111
+
112
+ Vague prompt (under 8 words, no specifics)? Ask one clarifying question before proceeding.
113
+
114
+ ---
115
+
116
+ ## Skill Routing
117
+
118
+ | Need | Use |
119
+ |------|-----|
120
+ | Code read / edit | Serena — `get_symbols_overview` → `find_symbol` → `replace_symbol_body` |
121
+ | Blast radius before edit | `gitnexus-impact-analysis` |
122
+ | Navigate unfamiliar code | `gitnexus-exploring` |
123
+ | Trace a bug | `gitnexus-debugging` |
124
+ | Safe rename / refactor | `gitnexus-refactoring` |
125
+ | Docs maintenance | `sync-docs` |
126
+ | Docker service project | `using-service-skills` |
127
+ | Build / improve a skill | `skill-creator` |