xtrm-tools 0.7.2 → 0.7.4

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 (529) hide show
  1. package/.xtrm/config/pi/extensions/xtrm-ui/format.ts +189 -0
  2. package/.xtrm/config/pi/extensions/xtrm-ui/index.ts +86 -18
  3. package/.xtrm/config/pi/extensions/xtrm-ui/package.json +16 -5
  4. package/.xtrm/config/pi/extensions/xtrm-ui/themes/pidex-dark.json +7 -3
  5. package/.xtrm/config/pi/extensions/xtrm-ui/themes/pidex-light.json +4 -0
  6. package/.xtrm/hooks/specialists/specialists-complete.mjs +70 -0
  7. package/.xtrm/hooks/specialists/specialists-session-start.mjs +105 -0
  8. package/.xtrm/registry.json +600 -344
  9. package/.xtrm/skills/default/README.txt +31 -0
  10. package/.xtrm/skills/default/clean-code/SKILL.md +201 -0
  11. package/.xtrm/skills/default/creating-service-skills/SKILL.md +433 -0
  12. package/.xtrm/skills/default/creating-service-skills/references/script_quality_standards.md +425 -0
  13. package/.xtrm/skills/default/creating-service-skills/references/service_skill_system_guide.md +278 -0
  14. package/.xtrm/skills/default/creating-service-skills/scripts/bootstrap.py +326 -0
  15. package/.xtrm/skills/default/creating-service-skills/scripts/deep_dive.py +304 -0
  16. package/.xtrm/skills/default/creating-service-skills/scripts/scaffolder.py +482 -0
  17. package/.xtrm/skills/default/deepwiki/SKILL.md +50 -0
  18. package/.xtrm/skills/default/delegating/SKILL.md +196 -0
  19. package/.xtrm/skills/default/delegating/config.yaml +210 -0
  20. package/.xtrm/skills/default/delegating/references/orchestration-protocols.md +41 -0
  21. package/.xtrm/skills/default/documenting/CHANGELOG.md +23 -0
  22. package/.xtrm/skills/default/documenting/README.md +148 -0
  23. package/.xtrm/skills/default/documenting/SKILL.md +113 -0
  24. package/.xtrm/skills/default/documenting/examples/example_pattern.md +70 -0
  25. package/.xtrm/skills/default/documenting/examples/example_reference.md +70 -0
  26. package/.xtrm/skills/default/documenting/examples/example_ssot_analytics.md +64 -0
  27. package/.xtrm/skills/default/documenting/examples/example_workflow.md +141 -0
  28. package/.xtrm/skills/default/documenting/references/changelog-format.md +97 -0
  29. package/.xtrm/skills/default/documenting/references/metadata-schema.md +136 -0
  30. package/.xtrm/skills/default/documenting/references/taxonomy.md +81 -0
  31. package/.xtrm/skills/default/documenting/references/versioning-rules.md +78 -0
  32. package/.xtrm/skills/default/documenting/scripts/bump_version.sh +60 -0
  33. package/.xtrm/skills/default/documenting/scripts/changelog/__init__.py +0 -0
  34. package/.xtrm/skills/default/documenting/scripts/changelog/add_entry.py +216 -0
  35. package/.xtrm/skills/default/documenting/scripts/changelog/bump_release.py +117 -0
  36. package/.xtrm/skills/default/documenting/scripts/changelog/init_changelog.py +54 -0
  37. package/.xtrm/skills/default/documenting/scripts/changelog/validate_changelog.py +128 -0
  38. package/.xtrm/skills/default/documenting/scripts/drift_detector.py +266 -0
  39. package/.xtrm/skills/default/documenting/scripts/generate_template.py +311 -0
  40. package/.xtrm/skills/default/documenting/scripts/list_by_category.sh +84 -0
  41. package/.xtrm/skills/default/documenting/scripts/orchestrator.py +255 -0
  42. package/.xtrm/skills/default/documenting/scripts/validate_metadata.py +242 -0
  43. package/.xtrm/skills/default/documenting/templates/CHANGELOG.md.template +13 -0
  44. package/.xtrm/skills/default/find-docs/SKILL.md +175 -0
  45. package/.xtrm/skills/default/find-skills/SKILL.md +133 -0
  46. package/.xtrm/skills/default/github-search/SKILL.md +49 -0
  47. package/.xtrm/skills/default/gitnexus-debugging/SKILL.md +89 -0
  48. package/.xtrm/skills/default/gitnexus-impact-analysis/SKILL.md +97 -0
  49. package/.xtrm/skills/default/gitnexus-pr-review/SKILL.md +163 -0
  50. package/.xtrm/skills/default/gitnexus-refactoring/SKILL.md +121 -0
  51. package/.xtrm/skills/default/hook-development/SKILL.md +797 -0
  52. package/.xtrm/skills/default/hook-development/examples/load-context.sh +55 -0
  53. package/.xtrm/skills/default/hook-development/examples/quality-check.js +1168 -0
  54. package/.xtrm/skills/default/hook-development/examples/validate-bash.sh +43 -0
  55. package/.xtrm/skills/default/hook-development/examples/validate-write.sh +38 -0
  56. package/.xtrm/skills/default/hook-development/references/advanced.md +527 -0
  57. package/.xtrm/skills/default/hook-development/references/migration.md +369 -0
  58. package/.xtrm/skills/default/hook-development/references/patterns.md +412 -0
  59. package/.xtrm/skills/default/hook-development/scripts/README.md +164 -0
  60. package/.xtrm/skills/default/hook-development/scripts/hook-linter.sh +153 -0
  61. package/.xtrm/skills/default/hook-development/scripts/test-hook.sh +252 -0
  62. package/.xtrm/skills/default/hook-development/scripts/validate-hook-schema.sh +159 -0
  63. package/.xtrm/skills/default/init-session/SKILL.md +69 -0
  64. package/.xtrm/skills/default/last30days/SKILL.md +881 -0
  65. package/.xtrm/skills/default/last30days/scripts/briefing.py +260 -0
  66. package/.xtrm/skills/default/last30days/scripts/evaluate-synthesis.py +120 -0
  67. package/.xtrm/skills/default/last30days/scripts/evaluate_search_quality.py +641 -0
  68. package/.xtrm/skills/default/last30days/scripts/generate-synthesis-inputs.py +53 -0
  69. package/.xtrm/skills/default/last30days/scripts/last30days.py +2137 -0
  70. package/.xtrm/skills/default/last30days/scripts/lib/__init__.py +1 -0
  71. package/.xtrm/skills/default/last30days/scripts/lib/bird_x.py +458 -0
  72. package/.xtrm/skills/default/last30days/scripts/lib/bluesky.py +225 -0
  73. package/.xtrm/skills/default/last30days/scripts/lib/brave_search.py +329 -0
  74. package/.xtrm/skills/default/last30days/scripts/lib/cache.py +165 -0
  75. package/.xtrm/skills/default/last30days/scripts/lib/chrome_cookies.py +265 -0
  76. package/.xtrm/skills/default/last30days/scripts/lib/cookie_extract.py +295 -0
  77. package/.xtrm/skills/default/last30days/scripts/lib/dates.py +124 -0
  78. package/.xtrm/skills/default/last30days/scripts/lib/dedupe.py +290 -0
  79. package/.xtrm/skills/default/last30days/scripts/lib/entity_extract.py +127 -0
  80. package/.xtrm/skills/default/last30days/scripts/lib/env.py +807 -0
  81. package/.xtrm/skills/default/last30days/scripts/lib/exa_search.py +176 -0
  82. package/.xtrm/skills/default/last30days/scripts/lib/hackernews.py +266 -0
  83. package/.xtrm/skills/default/last30days/scripts/lib/http.py +174 -0
  84. package/.xtrm/skills/default/last30days/scripts/lib/instagram.py +365 -0
  85. package/.xtrm/skills/default/last30days/scripts/lib/models.py +221 -0
  86. package/.xtrm/skills/default/last30days/scripts/lib/normalize.py +489 -0
  87. package/.xtrm/skills/default/last30days/scripts/lib/openai_reddit.py +631 -0
  88. package/.xtrm/skills/default/last30days/scripts/lib/openrouter_search.py +216 -0
  89. package/.xtrm/skills/default/last30days/scripts/lib/parallel_search.py +139 -0
  90. package/.xtrm/skills/default/last30days/scripts/lib/polymarket.py +580 -0
  91. package/.xtrm/skills/default/last30days/scripts/lib/quality_nudge.py +201 -0
  92. package/.xtrm/skills/default/last30days/scripts/lib/query.py +117 -0
  93. package/.xtrm/skills/default/last30days/scripts/lib/query_type.py +111 -0
  94. package/.xtrm/skills/default/last30days/scripts/lib/reddit.py +617 -0
  95. package/.xtrm/skills/default/last30days/scripts/lib/reddit_enrich.py +325 -0
  96. package/.xtrm/skills/default/last30days/scripts/lib/reddit_public.py +259 -0
  97. package/.xtrm/skills/default/last30days/scripts/lib/relevance.py +148 -0
  98. package/.xtrm/skills/default/last30days/scripts/lib/render.py +1018 -0
  99. package/.xtrm/skills/default/last30days/scripts/lib/safari_cookies.py +182 -0
  100. package/.xtrm/skills/default/last30days/scripts/lib/schema.py +843 -0
  101. package/.xtrm/skills/default/last30days/scripts/lib/score.py +775 -0
  102. package/.xtrm/skills/default/last30days/scripts/lib/scrapecreators_x.py +182 -0
  103. package/.xtrm/skills/default/last30days/scripts/lib/setup_wizard.py +186 -0
  104. package/.xtrm/skills/default/last30days/scripts/lib/tiktok.py +349 -0
  105. package/.xtrm/skills/default/last30days/scripts/lib/truthsocial.py +183 -0
  106. package/.xtrm/skills/default/last30days/scripts/lib/ui.py +620 -0
  107. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/LICENSE +21 -0
  108. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/bird-search.mjs +134 -0
  109. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/cookies.js +191 -0
  110. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/features.json +17 -0
  111. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
  112. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
  113. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
  114. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
  115. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
  116. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
  117. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
  118. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
  119. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
  120. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
  121. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/LICENSE +22 -0
  122. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/README.md +29 -0
  123. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts +3 -0
  124. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts.map +1 -0
  125. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js +2 -0
  126. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js.map +1 -0
  127. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts +8 -0
  128. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts.map +1 -0
  129. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js +27 -0
  130. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js.map +1 -0
  131. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts +11 -0
  132. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts.map +1 -0
  133. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js +100 -0
  134. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js.map +1 -0
  135. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts +25 -0
  136. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts.map +1 -0
  137. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js +104 -0
  138. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js.map +1 -0
  139. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts +10 -0
  140. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts.map +1 -0
  141. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js +293 -0
  142. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js.map +1 -0
  143. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts +10 -0
  144. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts.map +1 -0
  145. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js +26 -0
  146. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js.map +1 -0
  147. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts +7 -0
  148. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts.map +1 -0
  149. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js +51 -0
  150. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js.map +1 -0
  151. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts +7 -0
  152. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts.map +1 -0
  153. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js +60 -0
  154. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js.map +1 -0
  155. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts +7 -0
  156. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts.map +1 -0
  157. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js +38 -0
  158. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js.map +1 -0
  159. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts +5 -0
  160. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts.map +1 -0
  161. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js +33 -0
  162. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js.map +1 -0
  163. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts +24 -0
  164. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts.map +1 -0
  165. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js +30 -0
  166. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js.map +1 -0
  167. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts +11 -0
  168. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts.map +1 -0
  169. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js +43 -0
  170. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js.map +1 -0
  171. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts +8 -0
  172. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts.map +1 -0
  173. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js +41 -0
  174. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js.map +1 -0
  175. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts +8 -0
  176. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts.map +1 -0
  177. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js +53 -0
  178. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js.map +1 -0
  179. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts +8 -0
  180. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts.map +1 -0
  181. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js +27 -0
  182. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js.map +1 -0
  183. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts +7 -0
  184. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts.map +1 -0
  185. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js +53 -0
  186. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js.map +1 -0
  187. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts +8 -0
  188. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts.map +1 -0
  189. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js +60 -0
  190. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js.map +1 -0
  191. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts +7 -0
  192. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts.map +1 -0
  193. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js +38 -0
  194. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js.map +1 -0
  195. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts +6 -0
  196. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts.map +1 -0
  197. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js +257 -0
  198. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js.map +1 -0
  199. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts +8 -0
  200. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts.map +1 -0
  201. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js +71 -0
  202. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js.map +1 -0
  203. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts +6 -0
  204. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts.map +1 -0
  205. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js +173 -0
  206. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js.map +1 -0
  207. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts +26 -0
  208. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts.map +1 -0
  209. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js +195 -0
  210. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js.map +1 -0
  211. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts +121 -0
  212. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts.map +1 -0
  213. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js +2 -0
  214. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js.map +1 -0
  215. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts +2 -0
  216. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts.map +1 -0
  217. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js +18 -0
  218. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js.map +1 -0
  219. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts +8 -0
  220. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts.map +1 -0
  221. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js +110 -0
  222. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js.map +1 -0
  223. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts +2 -0
  224. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts.map +1 -0
  225. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js +32 -0
  226. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js.map +1 -0
  227. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts +2 -0
  228. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts.map +1 -0
  229. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js +13 -0
  230. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js.map +1 -0
  231. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts +2 -0
  232. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts.map +1 -0
  233. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js +7 -0
  234. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js.map +1 -0
  235. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts +5 -0
  236. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts.map +1 -0
  237. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js +58 -0
  238. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js.map +1 -0
  239. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts +2 -0
  240. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts.map +1 -0
  241. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js +27 -0
  242. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js.map +1 -0
  243. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts +2 -0
  244. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts.map +1 -0
  245. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js +8 -0
  246. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js.map +1 -0
  247. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/package.json +40 -0
  248. package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/package.json +13 -0
  249. package/.xtrm/skills/default/last30days/scripts/lib/websearch.py +401 -0
  250. package/.xtrm/skills/default/last30days/scripts/lib/xai_x.py +217 -0
  251. package/.xtrm/skills/default/last30days/scripts/lib/xiaohongshu_api.py +162 -0
  252. package/.xtrm/skills/default/last30days/scripts/lib/youtube_yt.py +538 -0
  253. package/.xtrm/skills/default/last30days/scripts/store.py +654 -0
  254. package/.xtrm/skills/default/last30days/scripts/sync.sh +50 -0
  255. package/.xtrm/skills/default/last30days/scripts/test-v1-vs-v2.sh +219 -0
  256. package/.xtrm/skills/default/last30days/scripts/watchlist.py +329 -0
  257. package/.xtrm/skills/default/planning/SKILL.md +405 -0
  258. package/.xtrm/skills/default/planning/evals/evals.json +19 -0
  259. package/.xtrm/skills/default/prompt-improving/README.md +162 -0
  260. package/.xtrm/skills/default/prompt-improving/SKILL.md +74 -0
  261. package/.xtrm/skills/default/prompt-improving/references/analysis_commands.md +24 -0
  262. package/.xtrm/skills/default/prompt-improving/references/chain_of_thought.md +24 -0
  263. package/.xtrm/skills/default/prompt-improving/references/mcp_definitions.md +20 -0
  264. package/.xtrm/skills/default/prompt-improving/references/multishot.md +23 -0
  265. package/.xtrm/skills/default/prompt-improving/references/xml_core.md +60 -0
  266. package/.xtrm/skills/default/quality-gates/.claude/hooks/hook-config.json +66 -0
  267. package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.cjs +1286 -0
  268. package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.py +334 -0
  269. package/.xtrm/skills/default/quality-gates/.claude/settings.json +3 -0
  270. package/.xtrm/skills/default/quality-gates/.claude/skills/using-quality-gates/SKILL.md +254 -0
  271. package/.xtrm/skills/default/quality-gates/README.md +109 -0
  272. package/.xtrm/skills/default/quality-gates/evals/evals.json +181 -0
  273. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +75 -0
  274. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +59 -0
  275. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +60 -0
  276. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/eval-summary.md +105 -0
  277. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +93 -0
  278. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +104 -0
  279. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +74 -0
  280. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +18 -0
  281. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +18 -0
  282. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +56 -0
  283. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +67 -0
  284. package/.xtrm/skills/default/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +97 -0
  285. package/.xtrm/skills/default/scoping-service-skills/SKILL.md +231 -0
  286. package/.xtrm/skills/default/scoping-service-skills/scripts/scope.py +74 -0
  287. package/.xtrm/skills/default/service-skills-set/README.md +93 -0
  288. package/.xtrm/skills/default/service-skills-set/git-hooks/doc_reminder.py +67 -0
  289. package/.xtrm/skills/default/service-skills-set/git-hooks/skill_staleness.py +194 -0
  290. package/.xtrm/skills/default/service-skills-set/install-service-skills.py +193 -0
  291. package/.xtrm/skills/default/service-skills-set/service-registry.json +4 -0
  292. package/.xtrm/skills/default/service-skills-set/service-skills-readme.md +236 -0
  293. package/.xtrm/skills/default/service-skills-set/settings.json +37 -0
  294. package/.xtrm/skills/default/session-close-report/SKILL.md +131 -0
  295. package/.xtrm/skills/default/skill-creator/LICENSE.txt +202 -0
  296. package/.xtrm/skills/default/skill-creator/SKILL.md +479 -0
  297. package/.xtrm/skills/default/skill-creator/agents/analyzer.md +274 -0
  298. package/.xtrm/skills/default/skill-creator/agents/comparator.md +202 -0
  299. package/.xtrm/skills/default/skill-creator/agents/grader.md +223 -0
  300. package/.xtrm/skills/default/skill-creator/assets/eval_review.html +146 -0
  301. package/.xtrm/skills/default/skill-creator/eval-viewer/generate_review.py +471 -0
  302. package/.xtrm/skills/default/skill-creator/eval-viewer/viewer.html +1325 -0
  303. package/.xtrm/skills/default/skill-creator/references/schemas.md +430 -0
  304. package/.xtrm/skills/default/skill-creator/scripts/__init__.py +0 -0
  305. package/.xtrm/skills/default/skill-creator/scripts/aggregate_benchmark.py +401 -0
  306. package/.xtrm/skills/default/skill-creator/scripts/generate_report.py +326 -0
  307. package/.xtrm/skills/default/skill-creator/scripts/improve_description.py +248 -0
  308. package/.xtrm/skills/default/skill-creator/scripts/package_skill.py +136 -0
  309. package/.xtrm/skills/default/skill-creator/scripts/quick_validate.py +103 -0
  310. package/.xtrm/skills/default/skill-creator/scripts/run_eval.py +310 -0
  311. package/.xtrm/skills/default/skill-creator/scripts/run_loop.py +332 -0
  312. package/.xtrm/skills/default/skill-creator/scripts/utils.py +47 -0
  313. package/.xtrm/skills/default/specialists-creator/SKILL.md +705 -0
  314. package/.xtrm/skills/default/specialists-creator/scripts/validate-specialist.ts +41 -0
  315. package/.xtrm/skills/default/sync-docs/SKILL.md +262 -0
  316. package/.xtrm/skills/default/sync-docs/evals/evals.json +89 -0
  317. package/.xtrm/skills/default/sync-docs/references/doc-structure.md +99 -0
  318. package/.xtrm/skills/default/sync-docs/references/schema.md +103 -0
  319. package/.xtrm/skills/default/sync-docs/scripts/changelog/add_entry.py +216 -0
  320. package/.xtrm/skills/default/sync-docs/scripts/context_gatherer.py +405 -0
  321. package/.xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py +495 -0
  322. package/.xtrm/skills/default/sync-docs/scripts/drift_detector.py +563 -0
  323. package/.xtrm/skills/default/sync-docs/scripts/validate_doc.py +365 -0
  324. package/.xtrm/skills/default/sync-docs/scripts/validate_metadata.py +185 -0
  325. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.json +293 -0
  326. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.md +13 -0
  327. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +27 -0
  328. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +210 -0
  329. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +28 -0
  330. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +1 -0
  331. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +101 -0
  332. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +28 -0
  333. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +5 -0
  334. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +5 -0
  335. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +27 -0
  336. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +198 -0
  337. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +28 -0
  338. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +1 -0
  339. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +94 -0
  340. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +28 -0
  341. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +1 -0
  342. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +27 -0
  343. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +237 -0
  344. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +28 -0
  345. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
  346. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +134 -0
  347. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +28 -0
  348. package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +1 -0
  349. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.json +297 -0
  350. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.md +13 -0
  351. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +27 -0
  352. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +137 -0
  353. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +92 -0
  354. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +1 -0
  355. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +134 -0
  356. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +86 -0
  357. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +1 -0
  358. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +27 -0
  359. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +193 -0
  360. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +72 -0
  361. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +1 -0
  362. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +211 -0
  363. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +91 -0
  364. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +5 -0
  365. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +27 -0
  366. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +182 -0
  367. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
  368. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
  369. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +222 -0
  370. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +88 -0
  371. package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
  372. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.json +298 -0
  373. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.md +13 -0
  374. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +27 -0
  375. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +125 -0
  376. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +97 -0
  377. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +5 -0
  378. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +144 -0
  379. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +78 -0
  380. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +5 -0
  381. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +27 -0
  382. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +104 -0
  383. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +91 -0
  384. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +5 -0
  385. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +79 -0
  386. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +82 -0
  387. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +5 -0
  388. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +27 -0
  389. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +302 -0
  390. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +33 -0
  391. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +114 -0
  392. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +118 -0
  393. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +38 -0
  394. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +158 -0
  395. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
  396. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +5 -0
  397. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +71 -0
  398. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +90 -0
  399. package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
  400. package/.xtrm/skills/default/test-planning/SKILL.md +465 -0
  401. package/.xtrm/skills/default/test-planning/evals/evals.json +23 -0
  402. package/.xtrm/skills/default/updating-service-skills/SKILL.md +136 -0
  403. package/.xtrm/skills/default/updating-service-skills/scripts/drift_detector.py +222 -0
  404. package/.xtrm/skills/default/using-nodes/SKILL.md +333 -0
  405. package/.xtrm/skills/default/using-quality-gates/SKILL.md +254 -0
  406. package/.xtrm/skills/default/using-service-skills/SKILL.md +108 -0
  407. package/.xtrm/skills/default/using-service-skills/scripts/cataloger.py +74 -0
  408. package/.xtrm/skills/default/using-service-skills/scripts/skill_activator.py +152 -0
  409. package/.xtrm/skills/default/using-specialists/SKILL.md +848 -0
  410. package/.xtrm/skills/default/using-specialists/evals/evals.json +68 -0
  411. package/.xtrm/skills/default/using-tdd/SKILL.md +410 -0
  412. package/.xtrm/skills/default/using-xtrm/SKILL.md +127 -0
  413. package/.xtrm/skills/default/xt-debugging/SKILL.md +149 -0
  414. package/.xtrm/skills/default/xt-end/SKILL.md +297 -0
  415. package/.xtrm/skills/default/xt-merge/SKILL.md +326 -0
  416. package/.xtrm/skills/optional/README.txt +2 -0
  417. package/.xtrm/skills/optional/architecture-design/PACK.json +11 -0
  418. package/.xtrm/skills/optional/architecture-design/architecture-patterns/SKILL.md +494 -0
  419. package/.xtrm/skills/optional/architecture-design/architecture-patterns/references/advanced-patterns.md +391 -0
  420. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/SKILL.md +473 -0
  421. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  422. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/prompt-template-library.md +264 -0
  423. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/chain-of-thought.md +412 -0
  424. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/few-shot-learning.md +386 -0
  425. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-optimization.md +428 -0
  426. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-templates.md +484 -0
  427. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/system-prompts.md +195 -0
  428. package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  429. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/SKILL.md +277 -0
  430. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  431. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/implementer-prompt.md +113 -0
  432. package/.xtrm/skills/optional/architecture-design/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  433. package/.xtrm/skills/optional/code-quality/PACK.json +12 -0
  434. package/.xtrm/skills/optional/code-quality/code-review-excellence/SKILL.md +529 -0
  435. package/.xtrm/skills/optional/code-quality/multi-reviewer-patterns/SKILL.md +127 -0
  436. package/.xtrm/skills/optional/code-quality/systematic-debugging/SKILL.md +296 -0
  437. package/.xtrm/skills/optional/code-quality/verification-before-completion/SKILL.md +139 -0
  438. package/.xtrm/skills/optional/data-engineering/PACK.json +9 -0
  439. package/.xtrm/skills/optional/data-engineering/data-analyst/SKILL.md +57 -0
  440. package/.xtrm/skills/optional/research-methods/PACK.json +12 -0
  441. package/.xtrm/skills/optional/research-methods/academic-researcher/SKILL.md +269 -0
  442. package/.xtrm/skills/optional/research-methods/brainstorming/SKILL.md +164 -0
  443. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/frame-template.html +214 -0
  444. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/helper.js +88 -0
  445. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/server.cjs +354 -0
  446. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/start-server.sh +148 -0
  447. package/.xtrm/skills/optional/research-methods/brainstorming/scripts/stop-server.sh +56 -0
  448. package/.xtrm/skills/optional/research-methods/brainstorming/spec-document-reviewer-prompt.md +49 -0
  449. package/.xtrm/skills/optional/research-methods/brainstorming/visual-companion.md +287 -0
  450. package/.xtrm/skills/optional/research-methods/deep-research/SKILL.md +192 -0
  451. package/.xtrm/skills/optional/research-methods/fact-checker/SKILL.md +182 -0
  452. package/.xtrm/skills/optional/security-ops/PACK.json +9 -0
  453. package/.xtrm/skills/optional/security-ops/security-auditor/SKILL.md +165 -0
  454. package/.xtrm/skills/optional/xt-optional/PACK.json +16 -0
  455. package/.xtrm/skills/optional/xt-optional/docker-expert/SKILL.md +409 -0
  456. package/.xtrm/skills/optional/xt-optional/obsidian-cli/SKILL.md +106 -0
  457. package/.xtrm/skills/optional/xt-optional/python-testing/SKILL.md +815 -0
  458. package/.xtrm/skills/optional/xt-optional/senior-backend/SKILL.md +209 -0
  459. package/.xtrm/skills/optional/xt-optional/senior-backend/references/api_design_patterns.md +103 -0
  460. package/.xtrm/skills/optional/xt-optional/senior-backend/references/backend_security_practices.md +103 -0
  461. package/.xtrm/skills/optional/xt-optional/senior-backend/references/database_optimization_guide.md +103 -0
  462. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_load_tester.py +114 -0
  463. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_scaffolder.py +114 -0
  464. package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/database_migration_tool.py +114 -0
  465. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/SKILL.md +226 -0
  466. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
  467. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
  468. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
  469. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/experiment_designer.py +100 -0
  470. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
  471. package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
  472. package/.xtrm/skills/optional/xt-optional/senior-devops/SKILL.md +209 -0
  473. package/.xtrm/skills/optional/xt-optional/senior-devops/references/cicd_pipeline_guide.md +103 -0
  474. package/.xtrm/skills/optional/xt-optional/senior-devops/references/deployment_strategies.md +103 -0
  475. package/.xtrm/skills/optional/xt-optional/senior-devops/references/infrastructure_as_code.md +103 -0
  476. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/deployment_manager.py +114 -0
  477. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/pipeline_generator.py +114 -0
  478. package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/terraform_scaffolder.py +114 -0
  479. package/.xtrm/skills/optional/xt-optional/senior-security/SKILL.md +209 -0
  480. package/.xtrm/skills/optional/xt-optional/senior-security/references/cryptography_implementation.md +103 -0
  481. package/.xtrm/skills/optional/xt-optional/senior-security/references/penetration_testing_guide.md +103 -0
  482. package/.xtrm/skills/optional/xt-optional/senior-security/references/security_architecture_patterns.md +103 -0
  483. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/pentest_automator.py +114 -0
  484. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/security_auditor.py +114 -0
  485. package/.xtrm/skills/optional/xt-optional/senior-security/scripts/threat_modeler.py +114 -0
  486. package/CHANGELOG.md +16 -0
  487. package/README.md +5 -0
  488. package/cli/dist/index.cjs +833 -517
  489. package/cli/dist/index.cjs.map +1 -1
  490. package/cli/package.json +1 -1
  491. package/package.json +3 -1
  492. package/.xtrm/extensions/auto-session-name/index.ts +0 -29
  493. package/.xtrm/extensions/auto-session-name/package.json +0 -16
  494. package/.xtrm/extensions/auto-update/index.ts +0 -71
  495. package/.xtrm/extensions/auto-update/package.json +0 -16
  496. package/.xtrm/extensions/beads/index.ts +0 -232
  497. package/.xtrm/extensions/beads/package.json +0 -19
  498. package/.xtrm/extensions/compact-header/index.ts +0 -69
  499. package/.xtrm/extensions/compact-header/package.json +0 -16
  500. package/.xtrm/extensions/core/adapter.ts +0 -52
  501. package/.xtrm/extensions/core/guard-rules.ts +0 -100
  502. package/.xtrm/extensions/core/lib.ts +0 -3
  503. package/.xtrm/extensions/core/logger.ts +0 -45
  504. package/.xtrm/extensions/core/package.json +0 -18
  505. package/.xtrm/extensions/core/runner.ts +0 -71
  506. package/.xtrm/extensions/core/session-state.ts +0 -59
  507. package/.xtrm/extensions/custom-footer/index.ts +0 -398
  508. package/.xtrm/extensions/custom-footer/package.json +0 -19
  509. package/.xtrm/extensions/custom-provider-qwen-cli/index.ts +0 -363
  510. package/.xtrm/extensions/custom-provider-qwen-cli/package.json +0 -1
  511. package/.xtrm/extensions/git-checkpoint/index.ts +0 -53
  512. package/.xtrm/extensions/git-checkpoint/package.json +0 -16
  513. package/.xtrm/extensions/lsp-bootstrap/index.ts +0 -134
  514. package/.xtrm/extensions/lsp-bootstrap/package.json +0 -17
  515. package/.xtrm/extensions/pi-serena-compact/index.ts +0 -121
  516. package/.xtrm/extensions/pi-serena-compact/package.json +0 -16
  517. package/.xtrm/extensions/quality-gates/index.ts +0 -66
  518. package/.xtrm/extensions/quality-gates/package.json +0 -19
  519. package/.xtrm/extensions/service-skills/index.ts +0 -108
  520. package/.xtrm/extensions/service-skills/package.json +0 -19
  521. package/.xtrm/extensions/session-flow/index.ts +0 -96
  522. package/.xtrm/extensions/session-flow/package.json +0 -19
  523. package/.xtrm/extensions/xtrm-loader/index.ts +0 -152
  524. package/.xtrm/extensions/xtrm-loader/package.json +0 -19
  525. package/.xtrm/extensions/xtrm-ui/format.ts +0 -93
  526. package/.xtrm/extensions/xtrm-ui/index.ts +0 -1044
  527. package/.xtrm/extensions/xtrm-ui/package.json +0 -10
  528. package/.xtrm/extensions/xtrm-ui/themes/pidex-dark.json +0 -85
  529. package/.xtrm/extensions/xtrm-ui/themes/pidex-light.json +0 -85
@@ -0,0 +1,705 @@
1
+ ---
2
+ name: specialists-creator
3
+ description: >
4
+ Use this skill when creating or fixing a specialist definition. It guides the
5
+ agent through writing a valid `.specialist.json`, choosing supported models,
6
+ validating against the schema, and avoiding common specialist authoring
7
+ mistakes.
8
+ version: 1.1
9
+ synced_at: 236ca5e6
10
+ ---
11
+
12
+ # Specialist Author Guide
13
+
14
+ > Source of truth: `src/specialist/schema.ts` | Runtime: `src/specialist/runner.ts`
15
+
16
+ ---
17
+
18
+ ## ACTION REQUIRED BEFORE ANYTHING ELSE
19
+
20
+ Run these commands **right now**, before reading further, before writing any JSON, before doing anything else:
21
+
22
+ ```bash
23
+ pi --list-models
24
+ ```
25
+
26
+ Read the output. Pick one primary model and one fallback from **different providers**. Then ping both:
27
+
28
+ ```bash
29
+ pi --model <chosen-primary> --print "ping" # must print: pong
30
+ pi --model <chosen-fallback> --print "ping" # must print: pong
31
+ ```
32
+
33
+ If a ping fails, pick the next best model in that tier and ping again. **Do not proceed until both return "pong".**
34
+
35
+ Model tiers:
36
+ - **Heavy** (deep reasoning, multi-phase): Opus / Pro / GLM-5
37
+ - **Standard** (authoring, review, codegen): Sonnet / Flash-Pro
38
+ - **Light** (fast context, reports, tests): Haiku / Flash
39
+
40
+ Rules:
41
+ - Always pick the **highest version** in a family (`claude-sonnet-4-6` not `4-5`, `gemini-3.1-pro-preview` not `gemini-2.5-pro`)
42
+ - `model` and `fallback_model` must be **different providers**
43
+ - Never write a model string you have not pinged in this session
44
+
45
+ ---
46
+
47
+ ---
48
+
49
+ ## Model Setup (for a new specialist OR "setup my specialists models")
50
+
51
+ ### Quick Reference: Specialists CLI
52
+
53
+ ```bash
54
+ specialists list # all specialists + current model
55
+ specialists models # all pi models, flagged with thinking/images, shows current assignments
56
+ specialists edit <name> --model <value> # change primary model
57
+ specialists edit <name> --fallback-model <v> # change fallback model
58
+ specialists edit <name> --model <v> --dry-run # preview without writing
59
+ specialists edit <name> --permission HIGH # change permission level
60
+ specialists status # system health
61
+ specialists doctor # prereq + hook diagnostics
62
+ ```
63
+
64
+ ---
65
+
66
+ ### Scenario: "Setup my specialists models"
67
+
68
+ When a user asks to set up or re-balance specialist models, run this workflow:
69
+
70
+ #### Step 1 — Inventory
71
+
72
+ ```bash
73
+ specialists list # shows each specialist + its current model
74
+ specialists models # shows all available models on pi, with current assignments marked ←
75
+ ```
76
+
77
+ Read both outputs carefully:
78
+ - `specialists list` → what specialists exist and what they currently use
79
+ - `specialists models` → what models are available, and which specialists already use each one (the `←` markers show assignments)
80
+
81
+ #### Step 2 — Classify each specialist by tier
82
+
83
+ | Tier | Specialists (typical) | Recommended model class |
84
+ |------|-----------------------|------------------------|
85
+ | **Heavy** — deep reasoning, multi-phase, architecture | `overthinker`, `feature-design`, `bug-hunt`, `planner`, `parallel-review` | Opus / Pro / GLM-5 |
86
+ | **Standard** — code generation, review, authoring, docs | `codebase-explorer`, `specialist-author`, `sync-docs`, `xt-merge` | Sonnet / Flash-Pro |
87
+ | **Light** — fast context, reporting, test runs | `init-session`, `report-generator`, `test-runner` | Haiku / Flash |
88
+
89
+ Adjust tiers based on what the user actually has installed. Custom specialists: read their `description` and `permission_required` to infer tier.
90
+
91
+ #### Step 3 — Select models with provider diversity
92
+
93
+ Rules:
94
+ 1. **Pick the highest version in each family** — `glm-5` not `glm-4.7`, `claude-sonnet-4-6` not `4-5`, `gemini-3.1-pro-preview` not `gemini-2.5-pro`
95
+ 2. **`model` and `fallback_model` must be different providers** — never stack two anthropic models
96
+ 3. **Spread providers across tiers** — don't assign all specialists to anthropic; distribute across anthropic / google-gemini-cli / zai / openai-codex where available
97
+ 4. **Match thinking capability to tier** — heavy specialists benefit from `thinking: yes` models
98
+
99
+ Example distribution (based on current `specialists models` output):
100
+
101
+ | Tier | model | fallback_model |
102
+ |------|-------|----------------|
103
+ | Heavy | `anthropic/claude-opus-4-6` | `google-gemini-cli/gemini-3.1-pro-preview` |
104
+ | Standard | `anthropic/claude-sonnet-4-6` | `google-gemini-cli/gemini-3-flash-preview` |
105
+ | Light | `anthropic/claude-haiku-4-5` | `zai/glm-5-turbo` |
106
+
107
+ If anthropic is not available, use `zai/glm-5` (heavy), `google-gemini-cli/gemini-3.1-pro-preview` (standard), `google-gemini-cli/gemini-3-flash-preview` (light).
108
+
109
+ #### Step 4 — ⛔ Ping each chosen model before assigning
110
+
111
+ ```bash
112
+ # REQUIRED — do not skip, do not assume a model works without pinging
113
+ pi --model <provider>/<primary-model-id> --print "ping" # must return "pong"
114
+ pi --model <provider>/<fallback-model-id> --print "ping" # must return "pong"
115
+ ```
116
+
117
+ Ping **both** primary and fallback. If ping fails → pick next best in that tier and ping again. Do not assign a model that did not respond.
118
+
119
+ #### Step 5 — Apply with `specialists edit`
120
+
121
+ ```bash
122
+ # Example: upgrade heavy-tier specialists
123
+ specialists edit overthinker --model anthropic/claude-opus-4-6 --fallback-model google-gemini-cli/gemini-3.1-pro-preview
124
+ specialists edit feature-design --model anthropic/claude-opus-4-6 --fallback-model google-gemini-cli/gemini-3.1-pro-preview
125
+ specialists edit bug-hunt --model anthropic/claude-opus-4-6 --fallback-model google-gemini-cli/gemini-3.1-pro-preview
126
+
127
+ # Standard tier
128
+ specialists edit codebase-explorer --model anthropic/claude-sonnet-4-6 --fallback-model google-gemini-cli/gemini-3-flash-preview
129
+ specialists edit sync-docs --model anthropic/claude-sonnet-4-6 --fallback-model google-gemini-cli/gemini-3-flash-preview
130
+
131
+ # Light tier
132
+ specialists edit init-session --model anthropic/claude-haiku-4-5 --fallback-model zai/glm-5-turbo
133
+ specialists edit report-generator --model anthropic/claude-haiku-4-5 --fallback-model zai/glm-5-turbo
134
+ ```
135
+
136
+ Use `--dry-run` first to preview any change before writing.
137
+
138
+ #### Step 6 — Verify
139
+
140
+ ```bash
141
+ specialists list # confirm all models updated correctly
142
+ specialists models # confirm assignments look balanced
143
+ ```
144
+
145
+ ---
146
+
147
+ ### For a new specialist (single model selection)
148
+
149
+ > **See [⛔ MANDATORY FIRST STEP](#-mandatory-first-step--verify-models-before-writing-any-json) at the top of this skill.**
150
+ > Use `pi --list-models` (not `specialists models`) to discover models, ping both before mutating config.
151
+
152
+ ```bash
153
+ # 1. pi --list-models — see exactly what's available on pi right now
154
+ # 2. Pick tier + pick highest version in family
155
+ # 3. pi --model <primary> --print "ping" — must return "pong"
156
+ # 4. pi --model <fallback> --print "ping" — must return "pong"
157
+ # 5. Run scaffold-specialist.ts first (pre-script already wired in specialists-creator)
158
+ # 6. Use sp edit for field-by-field mutations
159
+ ```
160
+
161
+ **Rule:** Never hardcode a model without pinging it. If ping fails, try the next best in that tier.
162
+
163
+ ---
164
+
165
+ ## Quick Start: Scaffold + `sp edit`
166
+
167
+ ```bash
168
+ # 1. Create/normalize the specialist JSON with all schema sections present
169
+ node config/skills/specialists-creator/scripts/scaffold-specialist.ts config/specialists/my-specialist.specialist.json
170
+
171
+ # 2. Apply a preset for common model/thinking defaults (optional but preferred)
172
+ sp edit my-specialist --preset standard
173
+
174
+ # 3. Set individual fields via dot.path (primary mutation workflow)
175
+ sp edit my-specialist specialist.metadata.name my-specialist
176
+ sp edit my-specialist specialist.metadata.version 1.0.0
177
+ sp edit my-specialist specialist.execution.model anthropic/claude-sonnet-4-6
178
+ sp edit my-specialist specialist.execution.fallback_model google-gemini-cli/gemini-3.1-pro-preview
179
+ sp edit my-specialist specialist.execution.permission_required READ_ONLY
180
+
181
+ # 4. Use --file only for multiline prompt fields
182
+ sp edit my-specialist specialist.prompt.system --file .tmp/system.prompt.txt
183
+ sp edit my-specialist specialist.prompt.task_template --file .tmp/task-template.prompt.txt
184
+
185
+ # 5. Verify materialized JSON
186
+ sp view my-specialist
187
+
188
+ # 6. Validate schema
189
+ bun skills/specialist-author/scripts/validate-specialist.ts config/specialists/my-specialist.specialist.json
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Schema Reference
195
+
196
+ ### `specialist.metadata` (required)
197
+
198
+ | Field | Type | Required | Notes |
199
+ |-------|------|----------|-------|
200
+ | `name` | string | yes | kebab-case: `[a-z][a-z0-9-]*` |
201
+ | `version` | string | yes | semver: `1.0.0` |
202
+ | `description` | string | yes | One sentence |
203
+ | `category` | string | yes | Free text (e.g. `workflow`, `analysis`, `codegen`) |
204
+ | `author` | string | no | Optional |
205
+ | `created` | string | no | Optional date |
206
+ | `updated` | string | no | Optional date, quote it: `"2026-03-22"` |
207
+ | `tags` | string[] | no | Optional list |
208
+
209
+ ### `specialist.execution` (required)
210
+
211
+ | Field | Type | Default | Notes |
212
+ |-------|------|---------|-------|
213
+ | `model` | string | — | required — ping before using |
214
+ | `fallback_model` | string | — | must be a different provider |
215
+ | `mode` | enum | `auto` | `tool` \| `skill` \| `auto` |
216
+ | `timeout_ms` | number | `120000` | ms |
217
+ | `stall_timeout_ms` | number | — | kill if no event for N ms |
218
+ | `interactive` | boolean | `false` | enable multi-turn keep-alive by default |
219
+ | `response_format` | enum | `text` | `text` \| `json` \| `markdown` |
220
+ | `output_type` | enum | `custom` | `codegen` \| `analysis` \| `review` \| `synthesis` \| `orchestration` \| `workflow` \| `research` \| `custom` |
221
+ | `permission_required` | enum | `READ_ONLY` | see tier table below |
222
+ | `thinking_level` | enum | — | `off` \| `minimal` \| `low` \| `medium` \| `high` \| `xhigh` |
223
+
224
+ **When to use `execution.interactive`**
225
+
226
+ - Set `interactive: true` for specialists intended for multi-turn workflows (`resume`, iterative planning, long investigations).
227
+ - Leave it unset/`false` for one-shot specialists where each run should end immediately.
228
+ - Run-level overrides still apply:
229
+ - CLI: `--keep-alive` enables, `--no-keep-alive` disables.
230
+ - MCP `start_specialist`: `keep_alive` enables, `no_keep_alive` disables.
231
+ - Effective precedence: explicit disable (`--no-keep-alive` / `no_keep_alive`) → explicit enable (`--keep-alive` / `keep_alive`) → `execution.interactive` → one-shot default.
232
+
233
+ **Permission tiers** — controls which pi tools are available:
234
+
235
+ | Level | pi --tools | Use when |
236
+ |-------|-----------|----------|
237
+ | `READ_ONLY` | `read,grep,find,ls` | Read-only analysis, no bash |
238
+ | `LOW` | `+bash` | Inspect/run commands, no file edits |
239
+ | `MEDIUM` | `+edit` | Can edit existing files |
240
+ | `HIGH` | `+write` | Full access — can create new files |
241
+
242
+ **Common pitfall:** `READ_WRITE` is **not** a valid value — use `LOW` or higher.
243
+
244
+ ### `specialist.prompt` (required)
245
+
246
+ | Field | Type | Required | Notes |
247
+ |-------|------|----------|-------|
248
+ | `task_template` | string | yes | Template string with `$variable` substitution |
249
+ | `system` | string | no | System prompt / agents.md content |
250
+ | `skill_inherit` | string | no | Single skill folder/file injected via `pi --skill` (Agent Forge compat) |
251
+ | `output_schema` | object | no | JSON schema for structured output — injected into system prompt by runner; post-run validation is warn-only |
252
+ | `examples` | array | no | Few-shot examples |
253
+
254
+ **Output contract precedence (runner-injected):** `response_format` → `output_type` → `output_schema`.
255
+
256
+ **`response_format` behavior**
257
+ - `text`: no report template is injected (raw behavior)
258
+ - `json`: specialist must return one parseable JSON object
259
+ - `markdown`: specialist must use canonical report sections when applicable:
260
+ - `## Summary`
261
+ - `## Status`
262
+ - `## Changes`
263
+ - `## Verification`
264
+ - `## Risks`
265
+ - `## Follow-ups`
266
+ - `## Beads`
267
+ - Optional: `## Architecture`, `## Acceptance Criteria`, `## Machine-readable block`
268
+
269
+ **`output_type` (semantic archetype)**
270
+ - `codegen`: implementation/change manifests
271
+ - `analysis`: architecture/exploration reports
272
+ - `review`: compliance/review verdicts
273
+ - `synthesis`: decision summaries across multiple findings
274
+ - `orchestration`: coordinator actions/state handoffs
275
+ - `workflow`: procedural/operational run outputs
276
+ - `research`: source-backed findings with confidence
277
+ - `custom`: no built-in extension (schema still includes base contract fields in structured modes)
278
+
279
+ **`output_schema` guidance**: Add when output must be machine-readable by downstream consumers (beads notes, feed, orchestrators). The schema is injected into the system prompt and validated post-run with warn-only behavior (never hard-fail in v1).
280
+
281
+ **Mandatory markdown+schema rule:** if `response_format: markdown` and `output_schema` is present, the output must include `## Machine-readable block` containing exactly one JSON object in a single ` ```json ` fenced block. That JSON object is canonical and must match the schema.
282
+
283
+ Standard schemas by specialist type (shown as the `output_schema` object value):
284
+
285
+ executor — change manifest:
286
+ ```json
287
+ {
288
+ "type": "object",
289
+ "properties": {
290
+ "status": { "enum": ["success", "partial", "failed"] },
291
+ "files_changed": { "type": "array", "items": { "type": "string" } },
292
+ "symbols_modified": { "type": "array", "items": { "type": "string" } },
293
+ "lint_pass": { "type": "boolean" },
294
+ "tests_pass": { "type": "boolean" },
295
+ "issues_closed": { "type": "array", "items": { "type": "string" } },
296
+ "follow_ups": { "type": "array", "items": { "type": "string" } }
297
+ }
298
+ }
299
+ ```
300
+
301
+ explorer — analysis report:
302
+ ```json
303
+ {
304
+ "type": "object",
305
+ "properties": {
306
+ "summary": { "type": "string" },
307
+ "key_files": { "type": "array", "items": { "type": "string" } },
308
+ "architecture_notes": { "type": "string" },
309
+ "recommendations": { "type": "array", "items": { "type": "string" } }
310
+ }
311
+ }
312
+ ```
313
+
314
+ planner — epic result:
315
+ ```json
316
+ {
317
+ "type": "object",
318
+ "properties": {
319
+ "epic_id": { "type": "string" },
320
+ "children": { "type": "array", "items": { "type": "string" } },
321
+ "test_issues": { "type": "array", "items": { "type": "string" } },
322
+ "first_task": { "type": "string" }
323
+ }
324
+ }
325
+ ```
326
+
327
+ ### `specialist.skills` (optional)
328
+
329
+ ```json
330
+ {
331
+ "skills": {
332
+ "paths": [
333
+ "skills/my-skill/",
334
+ "~/.agents/skills/domain/",
335
+ "skills/notes.md"
336
+ ],
337
+ "scripts": [
338
+ {
339
+ "run": "./scripts/pre-check.sh",
340
+ "phase": "pre",
341
+ "inject_output": true
342
+ },
343
+ {
344
+ "run": "bd ready",
345
+ "phase": "pre",
346
+ "inject_output": true
347
+ },
348
+ {
349
+ "run": "./scripts/cleanup.sh",
350
+ "phase": "post"
351
+ }
352
+ ]
353
+ }
354
+ }
355
+ ```
356
+
357
+ `run` accepts either a **file path** (`./scripts/foo.sh`, `~/scripts/foo.sh`) or a **shell command** (`bd ready`, `git status`). Pre-run validation checks that file paths exist and shell commands are on `PATH`. Shebang typos (e.g. `pytho` instead of `python`) are caught and reported as errors before the session starts.
358
+
359
+ `path` is accepted as a deprecated alias for `run`.
360
+
361
+ ### `specialist.capabilities` (optional)
362
+
363
+ Informational declarations used by pre-run validation and future tooling (e.g. `specialists doctor`).
364
+
365
+ ```json
366
+ {
367
+ "capabilities": {
368
+ "required_tools": ["bash", "read", "grep", "glob"],
369
+ "external_commands": ["bd", "git", "gh"]
370
+ }
371
+ }
372
+ ```
373
+
374
+ `external_commands` causes a hard failure if any binary is not found on `PATH` — the session will not start.
375
+
376
+ ### `specialist.output_file` (optional, top-level)
377
+
378
+ ```json
379
+ {
380
+ "output_file": ".specialists/my-specialist-result.md"
381
+ }
382
+ ```
383
+
384
+ Writes the final session output to this file path after the session completes. Relative to the working directory.
385
+
386
+ ### `specialist.communication` (optional)
387
+
388
+ ```json
389
+ {
390
+ "communication": {
391
+ "next_specialists": "planner"
392
+ }
393
+ }
394
+ ```
395
+
396
+ Or as an array:
397
+ ```json
398
+ {
399
+ "communication": {
400
+ "next_specialists": ["planner", "test-runner"]
401
+ }
402
+ }
403
+ ```
404
+
405
+ `next_specialists` declares which specialist(s) should receive this specialist's output as `$previous_result`. Chaining is executed by the caller (e.g. `run_parallel` pipeline) — this field is declarative metadata.
406
+
407
+ ### `specialist.validation` (optional)
408
+
409
+ Drives the staleness detection shown in `specialists status` and `specialists list`.
410
+
411
+ | Field | Type | Notes |
412
+ |-------|------|-------|
413
+ | `files_to_watch` | string[] | Paths to monitor. If any file's mtime is newer than `metadata.updated`, the specialist is marked **STALE** |
414
+ | `stale_threshold_days` | number | If the specialist has been STALE for more than N days, escalates to **AGED** |
415
+ | `references` | array | Accepted, currently unused |
416
+
417
+ **Staleness states:**
418
+
419
+ | State | Condition |
420
+ |-------|-----------|
421
+ | `OK` | No watched files changed, or no `files_to_watch` / `updated` set |
422
+ | `STALE` | A watched file's mtime > `metadata.updated` |
423
+ | `AGED` | STALE + days since `updated` > `stale_threshold_days` |
424
+
425
+ ```json
426
+ {
427
+ "specialist": {
428
+ "metadata": {
429
+ "updated": "2026-03-01"
430
+ },
431
+ "validation": {
432
+ "files_to_watch": [
433
+ "src/specialist/schema.ts",
434
+ "src/specialist/runner.ts"
435
+ ],
436
+ "stale_threshold_days": 30
437
+ }
438
+ }
439
+ }
440
+ ```
441
+
442
+ This specialist goes STALE the moment `schema.ts` or `runner.ts` is modified after March 1st, and AGED if that condition persists for more than 30 days.
443
+
444
+ ### `specialist.beads_integration` (optional)
445
+
446
+ | Value | Behavior |
447
+ |-------|----------|
448
+ | `auto` (default) | Create tracking bead when permission_required is LOW+ |
449
+ | `always` | Always create a tracking bead |
450
+ | `never` | Never create a tracking bead |
451
+
452
+ ---
453
+
454
+ ## Built-in Template Variables
455
+
456
+ These are **always available** in `task_template` — no configuration needed:
457
+
458
+ | Variable | Value |
459
+ |----------|-------|
460
+ | `$prompt` | The user's prompt passed to `use_specialist` |
461
+ | `$cwd` | `process.cwd()` at invocation time |
462
+ | `$pre_script_output` | Stdout of `pre` scripts with `inject_output: true` (empty string if none) |
463
+
464
+ **When invoked via `--bead`** (inputBeadId present):
465
+
466
+ | Variable | Value |
467
+ |----------|-------|
468
+ | `$bead_context` | Full bead content (replaces `$prompt`) |
469
+ | `$bead_id` | The bead ID |
470
+
471
+ **Custom variables** can be passed at invocation time via `--variables key=value` and accessed as `$key`.
472
+
473
+ ---
474
+
475
+ ## Skills Injection (`skills.paths`)
476
+
477
+ Files listed under `skills.paths` are read and appended to the system prompt at runtime:
478
+
479
+ ```json
480
+ {
481
+ "skills": {
482
+ "paths": [
483
+ "skills/specialist-author/SKILL.md",
484
+ ".claude/agents.md"
485
+ ]
486
+ }
487
+ }
488
+ ```
489
+
490
+ Each file is appended as:
491
+ ```
492
+ ---
493
+ # Skill: <path>
494
+
495
+ <file content>
496
+ ```
497
+
498
+ Missing files are silently skipped (no error).
499
+
500
+ `skill_inherit` (in `prompt:`) works the same way but for a single file — it is an Agent Forge compatibility field, appended under `# Service Knowledge`.
501
+
502
+ ---
503
+
504
+ ## Pre/Post Scripts
505
+
506
+ Scripts run **locally** (not inside the agent session):
507
+
508
+ ```json
509
+ {
510
+ "skills": {
511
+ "scripts": [
512
+ {
513
+ "run": "scripts/gather-context.sh",
514
+ "phase": "pre",
515
+ "inject_output": true
516
+ },
517
+ {
518
+ "run": "scripts/notify.sh",
519
+ "phase": "post",
520
+ "inject_output": false
521
+ }
522
+ ]
523
+ }
524
+ }
525
+ ```
526
+
527
+ - `pre` scripts run before the agent session starts; use `inject_output: true` to surface their stdout.
528
+ - `post` scripts run after the session completes (cleanup, notifications).
529
+ - Timeout: 30 seconds per script.
530
+ - Exit code is captured but does not abort the run.
531
+
532
+ ---
533
+
534
+ ## Annotated Full Example
535
+
536
+ ```json
537
+ {
538
+ "specialist": {
539
+ "metadata": {
540
+ "name": "code-reviewer",
541
+ "version": "1.0.0",
542
+ "description": "Reviews a PR diff for correctness, style, and security issues.",
543
+ "category": "code-quality",
544
+ "author": "team@example.com",
545
+ "updated": "2026-03-22",
546
+ "tags": ["review", "code-quality", "security"]
547
+ },
548
+ "execution": {
549
+ "mode": "tool",
550
+ "model": "anthropic/claude-sonnet-4-6",
551
+ "fallback_model": "google-gemini-cli/gemini-3.1-pro-preview",
552
+ "timeout_ms": 300000,
553
+ "stall_timeout_ms": 60000,
554
+ "interactive": true,
555
+ "response_format": "markdown",
556
+ "permission_required": "READ_ONLY"
557
+ },
558
+ "prompt": {
559
+ "system": "You are an expert code reviewer. Focus on correctness, maintainability, and security.\nDo NOT modify any files -- output a markdown review only.\n",
560
+ "task_template": "Review the following changes:\n\n$prompt\n\n$pre_script_output\n\nWorking directory: $cwd\n\nOutput a structured markdown review with sections: Summary, Issues, Suggestions.\n",
561
+ "skill_inherit": "skills/code-review/guidelines.md"
562
+ },
563
+ "skills": {
564
+ "paths": [
565
+ "skills/code-review/"
566
+ ],
567
+ "scripts": [
568
+ {
569
+ "run": "scripts/get-diff.sh",
570
+ "phase": "pre",
571
+ "inject_output": true
572
+ }
573
+ ]
574
+ },
575
+ "capabilities": {
576
+ "required_tools": ["bash", "read"],
577
+ "external_commands": ["git"]
578
+ },
579
+ "communication": {
580
+ "next_specialists": ["sync-docs"]
581
+ },
582
+ "output_file": ".specialists/review.md",
583
+ "beads_integration": "auto"
584
+ }
585
+ }
586
+ ```
587
+
588
+ ---
589
+
590
+ ## Context Window & Lifecycle Design
591
+
592
+ Specialists run as long-lived Pi sessions. Context management is not optional — ignoring it causes silent quality degradation before any hard limit is hit.
593
+
594
+ ### Context rot starts before the window fills
595
+
596
+ Quality degrades as the context grows — compressed early context causes inconsistency, missed facts, and instruction drift. Design for bounded, coherent runs rather than arbitrarily long ones.
597
+
598
+ **Rules when authoring a specialist:**
599
+ - Set `stall_timeout_ms` explicitly for any specialist that may idle between turns (keep-alive/interactive). Without it, a stuck session holds resources indefinitely.
600
+ - Use `thinking_level: low` for orchestration/coordinator specialists that emit structured JSON output — thinking tokens cost context budget without improving structured output quality.
601
+ - For research/explorer specialists: bounded scope per session + `handoff_summary` in `output_schema` > one unbounded session.
602
+ - `interactive: true` specialists must define what "done" looks like in their system prompt — otherwise they drift.
603
+
604
+ ### Context metrics are always available
605
+
606
+ `status.json` exposes `metrics.token_usage` (cumulative input+output tokens) and `metrics.turns` on every turn. These are written by 08zd Phase 1 and available to any caller (NodeSupervisor, orchestrator, human).
607
+
608
+ **context_pct formula**: `(cumulative_input_tokens / model_context_window) * 100`
609
+
610
+ Approximate context windows:
611
+ | Model family | Window |
612
+ |-------------|--------|
613
+ | `claude-opus-4-6`, `claude-sonnet-4-6`, `claude-haiku-4-5` | 200k tokens |
614
+ | `gemini-3.1-pro-preview` | 1M tokens |
615
+ | `qwen3.5-plus`, `dashscope/qwen3.5-plus` | 128k tokens |
616
+ | `zai/glm-5`, `zai/glm-5-turbo` | 128k tokens |
617
+
618
+ ### For Node members specifically
619
+
620
+ NodeSupervisor injects `member_health` into the coordinator resume prompt on **every turn** — not just at warning thresholds. This is by design: the coordinator needs continuous data to make proactive rotation decisions before quality degrades.
621
+
622
+ When authoring a specialist intended to run as a Node member:
623
+ - Include a `handoff_summary` field in `output_schema` so context can be transferred on rotation
624
+ - Keep system prompts concise — the NodeSupervisor will inject additional context on each resume
625
+ - `thinking_level: low` or `off` for coordinator-class specialists; higher levels for deep analysis members
626
+
627
+ ### Design checklist for long-running specialists
628
+
629
+ Before finalising a specialist that uses `interactive: true` or is expected to run many turns:
630
+
631
+ ```
632
+ [ ] stall_timeout_ms set (not relying on timeout_ms alone)
633
+ [ ] thinking_level set appropriately for the output type
634
+ [ ] output_schema includes handoff_summary or equivalent for rotation
635
+ [ ] system prompt has explicit termination condition ("you are done when...")
636
+ [ ] task_template doesn't inject large static blobs that could be fetched on demand
637
+ ```
638
+
639
+ ---
640
+
641
+ ## Common Errors and Fixes
642
+
643
+ | Zod Error | Cause | Fix |
644
+ |-----------|-------|-----|
645
+ | `Must be kebab-case` | `name` has uppercase or spaces | Use `my-specialist` not `MySpecialist` |
646
+ | `Must be semver` | `version: "v1.0"` | Use `"version": "1.0.0"` (no `v` prefix) |
647
+ | `Invalid enum value ... 'READ_WRITE'` | Wrong permission value | Use `READ_ONLY`, `LOW`, `MEDIUM`, or `HIGH` |
648
+ | `Invalid enum value ... 'auto'` on permission_required | Using `auto` for permission_required | `auto` is only valid for `beads_integration` |
649
+ | `Required` on `task_template` | `task_template` missing from `prompt` | Add `task_template` (even if just `"$prompt"`) |
650
+ | `Required` on `model` | `model` missing from `execution` | Add a model string |
651
+ | `Required` on `description` | Missing `description` in `metadata` | Add description string |
652
+ | `Required` on `category` | Missing `category` in `metadata` | Add category string |
653
+ | Silently ignored / no output | JSON valid but `task_template` doesn't use `$prompt` | Add `$prompt` to `task_template` |
654
+ | `defaults` key unrecognized | Using `defaults` top-level key | Remove it; use `--variables` at invocation or built-ins |
655
+
656
+ ---
657
+
658
+ ## File Placement
659
+
660
+ Specialists are discovered from three scopes (highest priority first):
661
+
662
+ 1. **Project**: `<project-root>/specialists/*.specialist.json`
663
+ 2. **User**: `~/.agents/specialists/*.specialist.json`
664
+ 3. **System**: package-bundled specialists
665
+
666
+ Name your file `<metadata.name>.specialist.json`.
667
+
668
+ ---
669
+
670
+ ## Validation Workflow
671
+
672
+ A bundled validator is included with this skill so the agent does not need to reconstruct the `bun -e` one-liner from memory. It prints `OK <file>` on success and a field-by-field error list on failure.
673
+
674
+ ```bash
675
+ # 1. MANDATORY: discover + ping models (see top of this skill)
676
+ pi --list-models
677
+ pi --model <provider>/<primary-model-id> --print "ping" # must return "pong"
678
+ pi --model <provider>/<fallback-model-id> --print "ping" # must return "pong"
679
+
680
+ # 2. Scaffold first (fills missing schema sections/fields)
681
+ node config/skills/specialists-creator/scripts/scaffold-specialist.ts config/specialists/my-specialist.specialist.json
682
+
683
+ # 3. Mutate with sp edit (dot.path + presets)
684
+ sp edit my-specialist --preset standard
685
+ sp edit my-specialist specialist.execution.model <provider>/<primary-model-id>
686
+ sp edit my-specialist specialist.execution.fallback_model <provider>/<fallback-model-id>
687
+
688
+ # 4. Use --file only for multiline prompt fields
689
+ sp edit my-specialist specialist.prompt.system --file .tmp/system.prompt.txt
690
+ sp edit my-specialist specialist.prompt.task_template --file .tmp/task-template.prompt.txt
691
+
692
+ # 5. Verify rendered config
693
+ sp view my-specialist
694
+
695
+ # 6. Validate schema with the bundled helper
696
+ bun skills/specialist-author/scripts/validate-specialist.ts config/specialists/my-specialist.specialist.json
697
+
698
+ # 7. List to confirm discovery
699
+ specialists list
700
+
701
+ # 8. Smoke test
702
+ specialists run my-specialist --prompt "ping" --no-beads
703
+ ```
704
+
705
+ If you need the underlying implementation, read `skills/specialist-author/scripts/validate-specialist.ts`. It is a thin Bun/TypeScript wrapper over `parseSpecialist()` from `src/specialist/schema.ts`, which keeps the helper cross-platform for Windows, macOS, and Linux.