xtrm-tools 0.6.0 → 0.7.1

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 (632) hide show
  1. package/.xtrm/config/README.md +10 -0
  2. package/{config/mcp_servers.json → .xtrm/config/claude.mcp.json} +0 -28
  3. package/{config → .xtrm/config}/instructions/agents-top.md +12 -3
  4. package/{config → .xtrm/config}/instructions/claude-top.md +12 -3
  5. package/{config → .xtrm/config}/pi/extensions/beads/index.ts +44 -13
  6. package/{config → .xtrm/config}/pi/extensions/custom-footer/index.ts +59 -82
  7. package/{config → .xtrm/config}/pi/extensions/xtrm-ui/index.ts +3 -3
  8. package/{config → .xtrm/config}/pi/install-schema.json +2 -2
  9. package/.xtrm/config/pi.mcp.json +39 -0
  10. package/.xtrm/config/settings.json +41 -0
  11. package/.xtrm/extensions/auto-session-name/index.ts +29 -0
  12. package/.xtrm/extensions/auto-session-name/package.json +16 -0
  13. package/.xtrm/extensions/auto-update/index.ts +71 -0
  14. package/.xtrm/extensions/auto-update/package.json +16 -0
  15. package/.xtrm/extensions/beads/index.ts +232 -0
  16. package/.xtrm/extensions/beads/package.json +19 -0
  17. package/.xtrm/extensions/compact-header/index.ts +69 -0
  18. package/.xtrm/extensions/compact-header/package.json +16 -0
  19. package/.xtrm/extensions/core/adapter.ts +52 -0
  20. package/.xtrm/extensions/core/guard-rules.ts +100 -0
  21. package/.xtrm/extensions/core/lib.ts +3 -0
  22. package/.xtrm/extensions/core/logger.ts +45 -0
  23. package/.xtrm/extensions/core/package.json +18 -0
  24. package/.xtrm/extensions/core/runner.ts +71 -0
  25. package/.xtrm/extensions/core/session-state.ts +59 -0
  26. package/.xtrm/extensions/custom-footer/index.ts +398 -0
  27. package/.xtrm/extensions/custom-footer/package.json +19 -0
  28. package/.xtrm/extensions/custom-provider-qwen-cli/index.ts +363 -0
  29. package/.xtrm/extensions/custom-provider-qwen-cli/package.json +1 -0
  30. package/.xtrm/extensions/git-checkpoint/index.ts +53 -0
  31. package/.xtrm/extensions/git-checkpoint/package.json +16 -0
  32. package/.xtrm/extensions/lsp-bootstrap/index.ts +134 -0
  33. package/.xtrm/extensions/lsp-bootstrap/package.json +17 -0
  34. package/.xtrm/extensions/pi-serena-compact/index.ts +121 -0
  35. package/.xtrm/extensions/pi-serena-compact/package.json +16 -0
  36. package/.xtrm/extensions/quality-gates/index.ts +66 -0
  37. package/.xtrm/extensions/quality-gates/package.json +19 -0
  38. package/.xtrm/extensions/service-skills/index.ts +108 -0
  39. package/.xtrm/extensions/service-skills/package.json +19 -0
  40. package/.xtrm/extensions/session-flow/index.ts +96 -0
  41. package/.xtrm/extensions/session-flow/package.json +19 -0
  42. package/.xtrm/extensions/xtrm-loader/index.ts +152 -0
  43. package/.xtrm/extensions/xtrm-loader/package.json +19 -0
  44. package/.xtrm/extensions/xtrm-ui/format.ts +93 -0
  45. package/.xtrm/extensions/xtrm-ui/index.ts +1044 -0
  46. package/.xtrm/extensions/xtrm-ui/package.json +10 -0
  47. package/.xtrm/extensions/xtrm-ui/themes/pidex-dark.json +85 -0
  48. package/.xtrm/extensions/xtrm-ui/themes/pidex-light.json +85 -0
  49. package/{hooks → .xtrm/hooks}/README.md +2 -1
  50. package/{hooks → .xtrm/hooks}/beads-commit-gate.mjs +4 -0
  51. package/.xtrm/hooks/beads-memory-gate.mjs +119 -0
  52. package/{plugins/xtrm-tools → .xtrm}/hooks/quality-check-env.mjs +1 -4
  53. package/.xtrm/hooks/statusline.mjs +156 -0
  54. package/{plugins/xtrm-tools → .xtrm}/hooks/using-xtrm-reminder.mjs +8 -7
  55. package/.xtrm/registry.json +1323 -0
  56. package/CHANGELOG.md +27 -0
  57. package/README.md +3 -1
  58. package/cli/dist/index.cjs +27025 -30731
  59. package/cli/dist/index.cjs.map +1 -1
  60. package/cli/package.json +2 -1
  61. package/package.json +12 -12
  62. package/.claude-plugin/marketplace.json +0 -19
  63. package/.claude-plugin/plugin.json +0 -9
  64. package/config/hooks.json +0 -83
  65. package/config/settings.json +0 -70
  66. package/hooks/beads-memory-gate.mjs +0 -94
  67. package/hooks/quality-check-env.mjs +0 -79
  68. package/hooks/statusline.mjs +0 -183
  69. package/hooks/tsconfig-cache.json +0 -14
  70. package/hooks/using-xtrm-reminder.mjs +0 -47
  71. package/plugins/xtrm-tools/.claude-plugin/plugin.json +0 -9
  72. package/plugins/xtrm-tools/.mcp.json +0 -18
  73. package/plugins/xtrm-tools/hooks/README.md +0 -61
  74. package/plugins/xtrm-tools/hooks/beads-claim-sync.mjs +0 -154
  75. package/plugins/xtrm-tools/hooks/beads-commit-gate.mjs +0 -70
  76. package/plugins/xtrm-tools/hooks/beads-compact-restore.mjs +0 -77
  77. package/plugins/xtrm-tools/hooks/beads-compact-save.mjs +0 -63
  78. package/plugins/xtrm-tools/hooks/beads-edit-gate.mjs +0 -85
  79. package/plugins/xtrm-tools/hooks/beads-gate-core.mjs +0 -236
  80. package/plugins/xtrm-tools/hooks/beads-gate-messages.mjs +0 -75
  81. package/plugins/xtrm-tools/hooks/beads-gate-utils.mjs +0 -176
  82. package/plugins/xtrm-tools/hooks/beads-memory-gate.mjs +0 -94
  83. package/plugins/xtrm-tools/hooks/beads-stop-gate.mjs +0 -53
  84. package/plugins/xtrm-tools/hooks/gitnexus/gitnexus-hook.cjs +0 -222
  85. package/plugins/xtrm-tools/hooks/hooks.json +0 -129
  86. package/plugins/xtrm-tools/hooks/quality-check.cjs +0 -1286
  87. package/plugins/xtrm-tools/hooks/quality-check.py +0 -345
  88. package/plugins/xtrm-tools/hooks/statusline.mjs +0 -183
  89. package/plugins/xtrm-tools/hooks/tsconfig-cache.json +0 -14
  90. package/plugins/xtrm-tools/hooks/worktree-boundary.mjs +0 -33
  91. package/plugins/xtrm-tools/hooks/xtrm-logger.mjs +0 -123
  92. package/plugins/xtrm-tools/hooks/xtrm-session-logger.mjs +0 -27
  93. package/plugins/xtrm-tools/hooks/xtrm-tool-logger.mjs +0 -53
  94. package/plugins/xtrm-tools/skills/README.txt +0 -31
  95. package/plugins/xtrm-tools/skills/clean-code/SKILL.md +0 -201
  96. package/plugins/xtrm-tools/skills/creating-service-skills/SKILL.md +0 -433
  97. package/plugins/xtrm-tools/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  98. package/plugins/xtrm-tools/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  99. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/bootstrap.py +0 -326
  100. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  101. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  102. package/plugins/xtrm-tools/skills/delegating/SKILL.md +0 -196
  103. package/plugins/xtrm-tools/skills/delegating/config.yaml +0 -210
  104. package/plugins/xtrm-tools/skills/delegating/references/orchestration-protocols.md +0 -41
  105. package/plugins/xtrm-tools/skills/docker-expert/SKILL.md +0 -409
  106. package/plugins/xtrm-tools/skills/documenting/CHANGELOG.md +0 -23
  107. package/plugins/xtrm-tools/skills/documenting/README.md +0 -148
  108. package/plugins/xtrm-tools/skills/documenting/SKILL.md +0 -113
  109. package/plugins/xtrm-tools/skills/documenting/examples/example_pattern.md +0 -70
  110. package/plugins/xtrm-tools/skills/documenting/examples/example_reference.md +0 -70
  111. package/plugins/xtrm-tools/skills/documenting/examples/example_ssot_analytics.md +0 -64
  112. package/plugins/xtrm-tools/skills/documenting/examples/example_workflow.md +0 -141
  113. package/plugins/xtrm-tools/skills/documenting/references/changelog-format.md +0 -97
  114. package/plugins/xtrm-tools/skills/documenting/references/metadata-schema.md +0 -136
  115. package/plugins/xtrm-tools/skills/documenting/references/taxonomy.md +0 -81
  116. package/plugins/xtrm-tools/skills/documenting/references/versioning-rules.md +0 -78
  117. package/plugins/xtrm-tools/skills/documenting/scripts/bump_version.sh +0 -60
  118. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/__init__.py +0 -0
  119. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/add_entry.py +0 -216
  120. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/bump_release.py +0 -117
  121. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/init_changelog.py +0 -54
  122. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
  123. package/plugins/xtrm-tools/skills/documenting/scripts/drift_detector.py +0 -266
  124. package/plugins/xtrm-tools/skills/documenting/scripts/generate_template.py +0 -311
  125. package/plugins/xtrm-tools/skills/documenting/scripts/list_by_category.sh +0 -84
  126. package/plugins/xtrm-tools/skills/documenting/scripts/orchestrator.py +0 -255
  127. package/plugins/xtrm-tools/skills/documenting/scripts/validate_metadata.py +0 -242
  128. package/plugins/xtrm-tools/skills/documenting/templates/CHANGELOG.md.template +0 -13
  129. package/plugins/xtrm-tools/skills/documenting/tests/integration_test.sh +0 -70
  130. package/plugins/xtrm-tools/skills/documenting/tests/test_changelog.py +0 -201
  131. package/plugins/xtrm-tools/skills/documenting/tests/test_drift_detector.py +0 -80
  132. package/plugins/xtrm-tools/skills/documenting/tests/test_orchestrator.py +0 -52
  133. package/plugins/xtrm-tools/skills/documenting/tests/test_validate_metadata.py +0 -64
  134. package/plugins/xtrm-tools/skills/find-skills/SKILL.md +0 -133
  135. package/plugins/xtrm-tools/skills/gitnexus-exploring/SKILL.md +0 -75
  136. package/plugins/xtrm-tools/skills/gitnexus-impact-analysis/SKILL.md +0 -94
  137. package/plugins/xtrm-tools/skills/gitnexus-refactoring/SKILL.md +0 -113
  138. package/plugins/xtrm-tools/skills/hook-development/SKILL.md +0 -797
  139. package/plugins/xtrm-tools/skills/hook-development/examples/load-context.sh +0 -55
  140. package/plugins/xtrm-tools/skills/hook-development/examples/quality-check.js +0 -1168
  141. package/plugins/xtrm-tools/skills/hook-development/examples/validate-bash.sh +0 -43
  142. package/plugins/xtrm-tools/skills/hook-development/examples/validate-write.sh +0 -38
  143. package/plugins/xtrm-tools/skills/hook-development/references/advanced.md +0 -527
  144. package/plugins/xtrm-tools/skills/hook-development/references/migration.md +0 -369
  145. package/plugins/xtrm-tools/skills/hook-development/references/patterns.md +0 -412
  146. package/plugins/xtrm-tools/skills/hook-development/scripts/README.md +0 -164
  147. package/plugins/xtrm-tools/skills/hook-development/scripts/hook-linter.sh +0 -153
  148. package/plugins/xtrm-tools/skills/hook-development/scripts/test-hook.sh +0 -252
  149. package/plugins/xtrm-tools/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  150. package/plugins/xtrm-tools/skills/obsidian-cli/SKILL.md +0 -106
  151. package/plugins/xtrm-tools/skills/orchestrating-agents/SKILL.md +0 -135
  152. package/plugins/xtrm-tools/skills/orchestrating-agents/config.yaml +0 -45
  153. package/plugins/xtrm-tools/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
  154. package/plugins/xtrm-tools/skills/orchestrating-agents/references/examples.md +0 -45
  155. package/plugins/xtrm-tools/skills/orchestrating-agents/references/handover-protocol.md +0 -31
  156. package/plugins/xtrm-tools/skills/orchestrating-agents/references/workflows.md +0 -42
  157. package/plugins/xtrm-tools/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
  158. package/plugins/xtrm-tools/skills/planning/SKILL.md +0 -405
  159. package/plugins/xtrm-tools/skills/planning/evals/evals.json +0 -19
  160. package/plugins/xtrm-tools/skills/prompt-improving/README.md +0 -162
  161. package/plugins/xtrm-tools/skills/prompt-improving/SKILL.md +0 -74
  162. package/plugins/xtrm-tools/skills/prompt-improving/references/analysis_commands.md +0 -24
  163. package/plugins/xtrm-tools/skills/prompt-improving/references/chain_of_thought.md +0 -24
  164. package/plugins/xtrm-tools/skills/prompt-improving/references/mcp_definitions.md +0 -20
  165. package/plugins/xtrm-tools/skills/prompt-improving/references/multishot.md +0 -23
  166. package/plugins/xtrm-tools/skills/prompt-improving/references/xml_core.md +0 -60
  167. package/plugins/xtrm-tools/skills/python-testing/SKILL.md +0 -815
  168. package/plugins/xtrm-tools/skills/scoping-service-skills/SKILL.md +0 -231
  169. package/plugins/xtrm-tools/skills/scoping-service-skills/scripts/scope.py +0 -74
  170. package/plugins/xtrm-tools/skills/senior-backend/SKILL.md +0 -209
  171. package/plugins/xtrm-tools/skills/senior-backend/references/api_design_patterns.md +0 -103
  172. package/plugins/xtrm-tools/skills/senior-backend/references/backend_security_practices.md +0 -103
  173. package/plugins/xtrm-tools/skills/senior-backend/references/database_optimization_guide.md +0 -103
  174. package/plugins/xtrm-tools/skills/senior-backend/scripts/api_load_tester.py +0 -114
  175. package/plugins/xtrm-tools/skills/senior-backend/scripts/api_scaffolder.py +0 -114
  176. package/plugins/xtrm-tools/skills/senior-backend/scripts/database_migration_tool.py +0 -114
  177. package/plugins/xtrm-tools/skills/senior-data-scientist/SKILL.md +0 -226
  178. package/plugins/xtrm-tools/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
  179. package/plugins/xtrm-tools/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
  180. package/plugins/xtrm-tools/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
  181. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
  182. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
  183. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
  184. package/plugins/xtrm-tools/skills/senior-devops/SKILL.md +0 -209
  185. package/plugins/xtrm-tools/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
  186. package/plugins/xtrm-tools/skills/senior-devops/references/deployment_strategies.md +0 -103
  187. package/plugins/xtrm-tools/skills/senior-devops/references/infrastructure_as_code.md +0 -103
  188. package/plugins/xtrm-tools/skills/senior-devops/scripts/deployment_manager.py +0 -114
  189. package/plugins/xtrm-tools/skills/senior-devops/scripts/pipeline_generator.py +0 -114
  190. package/plugins/xtrm-tools/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
  191. package/plugins/xtrm-tools/skills/senior-security/SKILL.md +0 -209
  192. package/plugins/xtrm-tools/skills/senior-security/references/cryptography_implementation.md +0 -103
  193. package/plugins/xtrm-tools/skills/senior-security/references/penetration_testing_guide.md +0 -103
  194. package/plugins/xtrm-tools/skills/senior-security/references/security_architecture_patterns.md +0 -103
  195. package/plugins/xtrm-tools/skills/senior-security/scripts/pentest_automator.py +0 -114
  196. package/plugins/xtrm-tools/skills/senior-security/scripts/security_auditor.py +0 -114
  197. package/plugins/xtrm-tools/skills/senior-security/scripts/threat_modeler.py +0 -114
  198. package/plugins/xtrm-tools/skills/skill-creator/LICENSE.txt +0 -202
  199. package/plugins/xtrm-tools/skills/skill-creator/SKILL.md +0 -479
  200. package/plugins/xtrm-tools/skills/skill-creator/agents/analyzer.md +0 -274
  201. package/plugins/xtrm-tools/skills/skill-creator/agents/comparator.md +0 -202
  202. package/plugins/xtrm-tools/skills/skill-creator/agents/grader.md +0 -223
  203. package/plugins/xtrm-tools/skills/skill-creator/assets/eval_review.html +0 -146
  204. package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  205. package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  206. package/plugins/xtrm-tools/skills/skill-creator/references/schemas.md +0 -430
  207. package/plugins/xtrm-tools/skills/skill-creator/scripts/__init__.py +0 -0
  208. package/plugins/xtrm-tools/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  209. package/plugins/xtrm-tools/skills/skill-creator/scripts/generate_report.py +0 -326
  210. package/plugins/xtrm-tools/skills/skill-creator/scripts/improve_description.py +0 -248
  211. package/plugins/xtrm-tools/skills/skill-creator/scripts/package_skill.py +0 -136
  212. package/plugins/xtrm-tools/skills/skill-creator/scripts/quick_validate.py +0 -103
  213. package/plugins/xtrm-tools/skills/skill-creator/scripts/run_eval.py +0 -310
  214. package/plugins/xtrm-tools/skills/skill-creator/scripts/run_loop.py +0 -332
  215. package/plugins/xtrm-tools/skills/skill-creator/scripts/utils.py +0 -47
  216. package/plugins/xtrm-tools/skills/sync-docs/SKILL.md +0 -286
  217. package/plugins/xtrm-tools/skills/sync-docs/evals/evals.json +0 -89
  218. package/plugins/xtrm-tools/skills/sync-docs/references/doc-structure.md +0 -99
  219. package/plugins/xtrm-tools/skills/sync-docs/references/schema.md +0 -103
  220. package/plugins/xtrm-tools/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
  221. package/plugins/xtrm-tools/skills/sync-docs/scripts/context_gatherer.py +0 -240
  222. package/plugins/xtrm-tools/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
  223. package/plugins/xtrm-tools/skills/sync-docs/scripts/drift_detector.py +0 -563
  224. package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_doc.py +0 -365
  225. package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_metadata.py +0 -185
  226. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
  227. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
  228. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
  229. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
  230. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
  231. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  232. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
  233. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
  234. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  235. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
  236. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
  237. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
  238. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
  239. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  240. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
  241. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
  242. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
  243. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
  244. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
  245. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
  246. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  247. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
  248. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
  249. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
  250. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
  251. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
  252. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
  253. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
  254. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
  255. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  256. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
  257. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
  258. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
  259. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
  260. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
  261. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
  262. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  263. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
  264. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
  265. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  266. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
  267. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
  268. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  269. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  270. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
  271. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
  272. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  273. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
  274. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
  275. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
  276. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
  277. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
  278. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
  279. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
  280. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
  281. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  282. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
  283. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
  284. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
  285. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
  286. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
  287. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
  288. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  289. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
  290. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
  291. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
  292. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
  293. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
  294. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
  295. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
  296. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  297. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
  298. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
  299. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
  300. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  301. package/plugins/xtrm-tools/skills/test-planning/SKILL.md +0 -465
  302. package/plugins/xtrm-tools/skills/test-planning/evals/evals.json +0 -23
  303. package/plugins/xtrm-tools/skills/updating-service-skills/SKILL.md +0 -136
  304. package/plugins/xtrm-tools/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  305. package/plugins/xtrm-tools/skills/using-quality-gates/SKILL.md +0 -254
  306. package/plugins/xtrm-tools/skills/using-serena-lsp/README.md +0 -8
  307. package/plugins/xtrm-tools/skills/using-serena-lsp/REFERENCE.md +0 -194
  308. package/plugins/xtrm-tools/skills/using-serena-lsp/SKILL.md +0 -82
  309. package/plugins/xtrm-tools/skills/using-service-skills/SKILL.md +0 -108
  310. package/plugins/xtrm-tools/skills/using-service-skills/scripts/cataloger.py +0 -74
  311. package/plugins/xtrm-tools/skills/using-service-skills/scripts/skill_activator.py +0 -152
  312. package/plugins/xtrm-tools/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
  313. package/plugins/xtrm-tools/skills/using-tdd/SKILL.md +0 -410
  314. package/plugins/xtrm-tools/skills/using-xtrm/SKILL.md +0 -127
  315. package/plugins/xtrm-tools/skills/xt-debugging/SKILL.md +0 -149
  316. package/plugins/xtrm-tools/skills/xt-end/SKILL.md +0 -297
  317. package/plugins/xtrm-tools/skills/xt-merge/SKILL.md +0 -313
  318. package/project-skills/quality-gates/.claude/hooks/hook-config.json +0 -66
  319. package/project-skills/quality-gates/.claude/hooks/quality-check.cjs +0 -1286
  320. package/project-skills/quality-gates/.claude/hooks/quality-check.py +0 -334
  321. package/project-skills/quality-gates/.claude/settings.json +0 -3
  322. package/project-skills/quality-gates/.claude/skills/using-quality-gates/SKILL.md +0 -254
  323. package/project-skills/quality-gates/README.md +0 -109
  324. package/project-skills/quality-gates/evals/evals.json +0 -181
  325. package/project-skills/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +0 -75
  326. package/project-skills/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +0 -59
  327. package/project-skills/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +0 -60
  328. package/project-skills/quality-gates/workspace/iteration-1/eval-summary.md +0 -105
  329. package/project-skills/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +0 -93
  330. package/project-skills/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +0 -104
  331. package/project-skills/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +0 -74
  332. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +0 -18
  333. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +0 -18
  334. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +0 -56
  335. package/project-skills/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +0 -67
  336. package/project-skills/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +0 -97
  337. package/project-skills/service-skills-set/.claude/git-hooks/doc_reminder.py +0 -67
  338. package/project-skills/service-skills-set/.claude/git-hooks/skill_staleness.py +0 -194
  339. package/project-skills/service-skills-set/.claude/service-registry.json +0 -4
  340. package/project-skills/service-skills-set/.claude/settings.json +0 -37
  341. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/SKILL.md +0 -433
  342. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  343. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  344. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/bootstrap.py +0 -308
  345. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  346. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  347. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/SKILL.md +0 -231
  348. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/scripts/scope.py +0 -74
  349. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/SKILL.md +0 -136
  350. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  351. package/project-skills/service-skills-set/.claude/skills/using-service-skills/SKILL.md +0 -108
  352. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/cataloger.py +0 -74
  353. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/skill_activator.py +0 -152
  354. package/project-skills/service-skills-set/README.md +0 -93
  355. package/project-skills/service-skills-set/install-service-skills.py +0 -193
  356. package/project-skills/service-skills-set/service-skills-readme.md +0 -236
  357. package/skills/README.txt +0 -31
  358. package/skills/clean-code/SKILL.md +0 -201
  359. package/skills/creating-service-skills/SKILL.md +0 -433
  360. package/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  361. package/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  362. package/skills/creating-service-skills/scripts/bootstrap.py +0 -326
  363. package/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  364. package/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  365. package/skills/delegating/SKILL.md +0 -196
  366. package/skills/delegating/config.yaml +0 -210
  367. package/skills/delegating/references/orchestration-protocols.md +0 -41
  368. package/skills/docker-expert/SKILL.md +0 -409
  369. package/skills/documenting/CHANGELOG.md +0 -23
  370. package/skills/documenting/README.md +0 -148
  371. package/skills/documenting/SKILL.md +0 -113
  372. package/skills/documenting/examples/example_pattern.md +0 -70
  373. package/skills/documenting/examples/example_reference.md +0 -70
  374. package/skills/documenting/examples/example_ssot_analytics.md +0 -64
  375. package/skills/documenting/examples/example_workflow.md +0 -141
  376. package/skills/documenting/references/changelog-format.md +0 -97
  377. package/skills/documenting/references/metadata-schema.md +0 -136
  378. package/skills/documenting/references/taxonomy.md +0 -81
  379. package/skills/documenting/references/versioning-rules.md +0 -78
  380. package/skills/documenting/scripts/bump_version.sh +0 -60
  381. package/skills/documenting/scripts/changelog/__init__.py +0 -0
  382. package/skills/documenting/scripts/changelog/add_entry.py +0 -216
  383. package/skills/documenting/scripts/changelog/bump_release.py +0 -117
  384. package/skills/documenting/scripts/changelog/init_changelog.py +0 -54
  385. package/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
  386. package/skills/documenting/scripts/drift_detector.py +0 -266
  387. package/skills/documenting/scripts/generate_template.py +0 -311
  388. package/skills/documenting/scripts/list_by_category.sh +0 -84
  389. package/skills/documenting/scripts/orchestrator.py +0 -255
  390. package/skills/documenting/scripts/validate_metadata.py +0 -242
  391. package/skills/documenting/templates/CHANGELOG.md.template +0 -13
  392. package/skills/find-skills/SKILL.md +0 -133
  393. package/skills/gitnexus-exploring/SKILL.md +0 -75
  394. package/skills/gitnexus-impact-analysis/SKILL.md +0 -94
  395. package/skills/gitnexus-refactoring/SKILL.md +0 -113
  396. package/skills/hook-development/SKILL.md +0 -797
  397. package/skills/hook-development/examples/load-context.sh +0 -55
  398. package/skills/hook-development/examples/quality-check.js +0 -1168
  399. package/skills/hook-development/examples/validate-bash.sh +0 -43
  400. package/skills/hook-development/examples/validate-write.sh +0 -38
  401. package/skills/hook-development/references/advanced.md +0 -527
  402. package/skills/hook-development/references/migration.md +0 -369
  403. package/skills/hook-development/references/patterns.md +0 -412
  404. package/skills/hook-development/scripts/README.md +0 -164
  405. package/skills/hook-development/scripts/hook-linter.sh +0 -153
  406. package/skills/hook-development/scripts/test-hook.sh +0 -252
  407. package/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  408. package/skills/obsidian-cli/SKILL.md +0 -106
  409. package/skills/orchestrating-agents/SKILL.md +0 -135
  410. package/skills/orchestrating-agents/config.yaml +0 -45
  411. package/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
  412. package/skills/orchestrating-agents/references/examples.md +0 -45
  413. package/skills/orchestrating-agents/references/handover-protocol.md +0 -31
  414. package/skills/orchestrating-agents/references/workflows.md +0 -42
  415. package/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
  416. package/skills/planning/SKILL.md +0 -405
  417. package/skills/planning/evals/evals.json +0 -19
  418. package/skills/prompt-improving/README.md +0 -162
  419. package/skills/prompt-improving/SKILL.md +0 -74
  420. package/skills/prompt-improving/references/analysis_commands.md +0 -24
  421. package/skills/prompt-improving/references/chain_of_thought.md +0 -24
  422. package/skills/prompt-improving/references/mcp_definitions.md +0 -20
  423. package/skills/prompt-improving/references/multishot.md +0 -23
  424. package/skills/prompt-improving/references/xml_core.md +0 -60
  425. package/skills/python-testing/SKILL.md +0 -815
  426. package/skills/scoping-service-skills/SKILL.md +0 -231
  427. package/skills/scoping-service-skills/scripts/scope.py +0 -74
  428. package/skills/senior-backend/SKILL.md +0 -209
  429. package/skills/senior-backend/references/api_design_patterns.md +0 -103
  430. package/skills/senior-backend/references/backend_security_practices.md +0 -103
  431. package/skills/senior-backend/references/database_optimization_guide.md +0 -103
  432. package/skills/senior-backend/scripts/api_load_tester.py +0 -114
  433. package/skills/senior-backend/scripts/api_scaffolder.py +0 -114
  434. package/skills/senior-backend/scripts/database_migration_tool.py +0 -114
  435. package/skills/senior-data-scientist/SKILL.md +0 -226
  436. package/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
  437. package/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
  438. package/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
  439. package/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
  440. package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
  441. package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
  442. package/skills/senior-devops/SKILL.md +0 -209
  443. package/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
  444. package/skills/senior-devops/references/deployment_strategies.md +0 -103
  445. package/skills/senior-devops/references/infrastructure_as_code.md +0 -103
  446. package/skills/senior-devops/scripts/deployment_manager.py +0 -114
  447. package/skills/senior-devops/scripts/pipeline_generator.py +0 -114
  448. package/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
  449. package/skills/senior-security/SKILL.md +0 -209
  450. package/skills/senior-security/references/cryptography_implementation.md +0 -103
  451. package/skills/senior-security/references/penetration_testing_guide.md +0 -103
  452. package/skills/senior-security/references/security_architecture_patterns.md +0 -103
  453. package/skills/senior-security/scripts/pentest_automator.py +0 -114
  454. package/skills/senior-security/scripts/security_auditor.py +0 -114
  455. package/skills/senior-security/scripts/threat_modeler.py +0 -114
  456. package/skills/skill-creator/LICENSE.txt +0 -202
  457. package/skills/skill-creator/SKILL.md +0 -479
  458. package/skills/skill-creator/agents/analyzer.md +0 -274
  459. package/skills/skill-creator/agents/comparator.md +0 -202
  460. package/skills/skill-creator/agents/grader.md +0 -223
  461. package/skills/skill-creator/assets/eval_review.html +0 -146
  462. package/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  463. package/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  464. package/skills/skill-creator/references/schemas.md +0 -430
  465. package/skills/skill-creator/scripts/__init__.py +0 -0
  466. package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  467. package/skills/skill-creator/scripts/generate_report.py +0 -326
  468. package/skills/skill-creator/scripts/improve_description.py +0 -248
  469. package/skills/skill-creator/scripts/package_skill.py +0 -136
  470. package/skills/skill-creator/scripts/quick_validate.py +0 -103
  471. package/skills/skill-creator/scripts/run_eval.py +0 -310
  472. package/skills/skill-creator/scripts/run_loop.py +0 -332
  473. package/skills/skill-creator/scripts/utils.py +0 -47
  474. package/skills/sync-docs/SKILL.md +0 -286
  475. package/skills/sync-docs/evals/evals.json +0 -89
  476. package/skills/sync-docs/references/doc-structure.md +0 -99
  477. package/skills/sync-docs/references/schema.md +0 -103
  478. package/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
  479. package/skills/sync-docs/scripts/context_gatherer.py +0 -240
  480. package/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
  481. package/skills/sync-docs/scripts/drift_detector.py +0 -563
  482. package/skills/sync-docs/scripts/validate_doc.py +0 -365
  483. package/skills/sync-docs/scripts/validate_metadata.py +0 -185
  484. package/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
  485. package/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
  486. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
  487. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
  488. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
  489. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  490. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
  491. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
  492. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  493. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
  494. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
  495. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
  496. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
  497. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  498. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
  499. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
  500. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
  501. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
  502. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
  503. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
  504. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  505. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
  506. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
  507. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
  508. package/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
  509. package/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
  510. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
  511. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
  512. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
  513. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  514. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
  515. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
  516. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
  517. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
  518. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
  519. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
  520. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  521. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
  522. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
  523. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  524. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
  525. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
  526. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  527. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  528. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
  529. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
  530. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  531. package/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
  532. package/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
  533. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
  534. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
  535. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
  536. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
  537. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
  538. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
  539. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  540. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
  541. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
  542. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
  543. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
  544. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
  545. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
  546. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  547. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
  548. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
  549. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
  550. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
  551. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
  552. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
  553. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
  554. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  555. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
  556. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
  557. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
  558. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  559. package/skills/test-planning/SKILL.md +0 -465
  560. package/skills/test-planning/evals/evals.json +0 -23
  561. package/skills/updating-service-skills/SKILL.md +0 -136
  562. package/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  563. package/skills/using-quality-gates/SKILL.md +0 -254
  564. package/skills/using-serena-lsp/README.md +0 -8
  565. package/skills/using-serena-lsp/REFERENCE.md +0 -194
  566. package/skills/using-serena-lsp/SKILL.md +0 -82
  567. package/skills/using-service-skills/SKILL.md +0 -108
  568. package/skills/using-service-skills/scripts/cataloger.py +0 -74
  569. package/skills/using-service-skills/scripts/skill_activator.py +0 -152
  570. package/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
  571. package/skills/using-tdd/SKILL.md +0 -410
  572. package/skills/using-xtrm/SKILL.md +0 -127
  573. package/skills/xt-debugging/SKILL.md +0 -149
  574. package/skills/xt-end/SKILL.md +0 -297
  575. package/skills/xt-merge/SKILL.md +0 -313
  576. /package/{config → .xtrm/config}/.env.example +0 -0
  577. /package/{config/mcp_servers_optional.json → .xtrm/config/claude.mcp.optional.json} +0 -0
  578. /package/{hooks → .xtrm/config}/hooks.json +0 -0
  579. /package/{config → .xtrm/config}/pi/auth.json.template +0 -0
  580. /package/{config → .xtrm/config}/pi/extensions/auto-session-name/index.ts +0 -0
  581. /package/{config → .xtrm/config}/pi/extensions/auto-session-name/package.json +0 -0
  582. /package/{config → .xtrm/config}/pi/extensions/auto-update/index.ts +0 -0
  583. /package/{config → .xtrm/config}/pi/extensions/auto-update/package.json +0 -0
  584. /package/{config → .xtrm/config}/pi/extensions/beads/package.json +0 -0
  585. /package/{config → .xtrm/config}/pi/extensions/compact-header/index.ts +0 -0
  586. /package/{config → .xtrm/config}/pi/extensions/compact-header/package.json +0 -0
  587. /package/{config → .xtrm/config}/pi/extensions/core/adapter.ts +0 -0
  588. /package/{config → .xtrm/config}/pi/extensions/core/guard-rules.ts +0 -0
  589. /package/{config → .xtrm/config}/pi/extensions/core/lib.ts +0 -0
  590. /package/{config → .xtrm/config}/pi/extensions/core/logger.ts +0 -0
  591. /package/{config → .xtrm/config}/pi/extensions/core/package.json +0 -0
  592. /package/{config → .xtrm/config}/pi/extensions/core/runner.ts +0 -0
  593. /package/{config → .xtrm/config}/pi/extensions/core/session-state.ts +0 -0
  594. /package/{config → .xtrm/config}/pi/extensions/custom-footer/package.json +0 -0
  595. /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/index.ts +0 -0
  596. /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/package.json +0 -0
  597. /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/index.ts +0 -0
  598. /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/package.json +0 -0
  599. /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/index.ts +0 -0
  600. /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/package.json +0 -0
  601. /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/index.ts +0 -0
  602. /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/package.json +0 -0
  603. /package/{config → .xtrm/config}/pi/extensions/quality-gates/index.ts +0 -0
  604. /package/{config → .xtrm/config}/pi/extensions/quality-gates/package.json +0 -0
  605. /package/{config → .xtrm/config}/pi/extensions/service-skills/index.ts +0 -0
  606. /package/{config → .xtrm/config}/pi/extensions/service-skills/package.json +0 -0
  607. /package/{config → .xtrm/config}/pi/extensions/session-flow/index.ts +0 -0
  608. /package/{config → .xtrm/config}/pi/extensions/session-flow/package.json +0 -0
  609. /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/index.ts +0 -0
  610. /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/package.json +0 -0
  611. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/format.ts +0 -0
  612. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/package.json +0 -0
  613. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-dark.json +0 -0
  614. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-light.json +0 -0
  615. /package/{config → .xtrm/config}/pi/models.json.template +0 -0
  616. /package/{config → .xtrm/config}/pi/pi-worktrees-settings.json +0 -0
  617. /package/{config → .xtrm/config}/pi/settings.json.template +0 -0
  618. /package/{hooks → .xtrm/hooks}/beads-claim-sync.mjs +0 -0
  619. /package/{hooks → .xtrm/hooks}/beads-compact-restore.mjs +0 -0
  620. /package/{hooks → .xtrm/hooks}/beads-compact-save.mjs +0 -0
  621. /package/{hooks → .xtrm/hooks}/beads-edit-gate.mjs +0 -0
  622. /package/{hooks → .xtrm/hooks}/beads-gate-core.mjs +0 -0
  623. /package/{hooks → .xtrm/hooks}/beads-gate-messages.mjs +0 -0
  624. /package/{hooks → .xtrm/hooks}/beads-gate-utils.mjs +0 -0
  625. /package/{hooks → .xtrm/hooks}/beads-stop-gate.mjs +0 -0
  626. /package/{hooks → .xtrm/hooks}/gitnexus/gitnexus-hook.cjs +0 -0
  627. /package/{hooks → .xtrm/hooks}/quality-check.cjs +0 -0
  628. /package/{hooks → .xtrm/hooks}/quality-check.py +0 -0
  629. /package/{hooks → .xtrm/hooks}/worktree-boundary.mjs +0 -0
  630. /package/{hooks → .xtrm/hooks}/xtrm-logger.mjs +0 -0
  631. /package/{hooks → .xtrm/hooks}/xtrm-session-logger.mjs +0 -0
  632. /package/{hooks → .xtrm/hooks}/xtrm-tool-logger.mjs +0 -0
@@ -0,0 +1,10 @@
1
+ # .xtrm/config
2
+
3
+ ## MCP config split
4
+
5
+ This directory contains two MCP canonical files:
6
+
7
+ - `claude.mcp.json` → Claude-family MCP format (sync target: `.mcp.json`)
8
+ - `pi.mcp.json` → Pi-native MCP format (sync target: `.pi/mcp.json`)
9
+
10
+ Do not mix formats between these files. They intentionally use different schemas.
@@ -6,34 +6,6 @@
6
6
  "version": "2.0.0"
7
7
  },
8
8
  "mcpServers": {
9
- "serena": {
10
- "type": "stdio",
11
- "command": "uvx",
12
- "args": [
13
- "--from",
14
- "git+https://github.com/oraios/serena",
15
- "serena",
16
- "start-mcp-server",
17
- "--context",
18
- "ide-assistant"
19
- ],
20
- "env": {},
21
- "_notes": {
22
- "project": "Auto-detected from current working directory during usage",
23
- "prerequisite": "Requires uvx (uv package manager)"
24
- }
25
- },
26
- "context7": {
27
- "type": "http",
28
- "url": "https://mcp.context7.com/mcp",
29
- "headers": {
30
- "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}"
31
- },
32
- "_notes": {
33
- "auth": "Requires API key - user will be prompted during sync",
34
- "env_file": "Store key in .env or ~/.jaggers/.env"
35
- }
36
- },
37
9
  "github-grep": {
38
10
  "type": "http",
39
11
  "url": "https://mcp.grep.app"
@@ -11,6 +11,13 @@
11
11
  4. `bv --robot-triage` — graph-aware triage: ranked picks, unblock targets, project health
12
12
  5. `bd update <id> --claim` — claim before any file edit
13
13
 
14
+ ## Execution Interaction Policy
15
+
16
+ - Proceed by default on standard implementation tasks once scope is clear.
17
+ - Do **not** ask repetitive “Proceed? Yes/No” confirmations.
18
+ - Ask for confirmation only when actions are destructive, irreversible, or high-risk (e.g. `rm`, history rewrite, mass deletes, credential rotation, prod-impacting ops).
19
+ - Prefer concise clarifying questions only when requirements are genuinely ambiguous.
20
+
14
21
  ## Active Gates (extensions enforce these — not optional)
15
22
 
16
23
  | Gate | Trigger | Required action |
@@ -18,7 +25,7 @@
18
25
  | **Edit** | Write/Edit without active claim | `bd update <id> --claim` |
19
26
  | **Commit** | `git commit` while claim is open | `bd close <id>` first, then commit |
20
27
  | **Stop** | Session end with unclosed claim | `bd close <id>` |
21
- | **Memory** | Auto-fires at session end if issue closed | `bd remember "<insight>"` then run the `bd kv set` command shown in the gate message |
28
+ | **Memory** | `bd close <id>` without issue ack | First run `bd remember "<insight>"` (or decide nothing novel), then `bd kv set "memory-acked:<id>" "saved:<key>"` or `"nothing novel:<reason>"`, then retry `bd close <id> --reason="..."` |
22
29
 
23
30
  ## bd Command Reference
24
31
 
@@ -43,9 +50,11 @@ bd create --title="..." --description="..." --type=task --priority=2
43
50
  # types: task | bug | feature | epic | chore | decision
44
51
 
45
52
  # Closing
46
- bd close <id> # Close issue
53
+ # Memory gate: ack per issue before close
54
+ # bd kv set "memory-acked:<id>" "saved:<key>" OR "nothing novel:<reason>"
55
+ bd close <id> # Close issue (blocked until memory-acked:<id> exists)
47
56
  bd close <id> --reason="Done: ..." # Close with context
48
- bd close <id1> <id2> <id3> # Batch close
57
+ bd close <id1> <id2> <id3> # Batch close (each id needs its own memory ack)
49
58
 
50
59
  # Dependencies
51
60
  bd dep add <issue> <depends-on> # issue depends on depends-on (depends-on blocks issue)
@@ -11,6 +11,13 @@
11
11
  4. `bv --robot-triage` — graph-aware triage: ranked picks, unblock targets, project health
12
12
  5. `bd update <id> --claim` — claim before any file edit
13
13
 
14
+ ## Execution Interaction Policy
15
+
16
+ - Proceed by default on standard implementation tasks once scope is clear.
17
+ - Do **not** ask repetitive “Proceed? Yes/No” confirmations.
18
+ - Ask for confirmation only when actions are destructive, irreversible, or high-risk (e.g. `rm`, history rewrite, mass deletes, credential rotation, prod-impacting ops).
19
+ - Prefer concise clarifying questions only when requirements are genuinely ambiguous.
20
+
14
21
  ## Active Gates (hooks enforce these — not optional)
15
22
 
16
23
  | Gate | Trigger | Required action |
@@ -18,7 +25,7 @@
18
25
  | **Edit** | Write/Edit without active claim | `bd update <id> --claim` |
19
26
  | **Commit** | `git commit` while claim is open | `bd close <id>` first, then commit |
20
27
  | **Stop** | Session end with unclosed claim | `bd close <id>` |
21
- | **Memory** | Auto-fires at Stop if issue closed this session | `bd remember "<insight>"` then run the `bd kv set` command shown in the gate message |
28
+ | **Memory** | `bd close <id>` without issue ack | First run `bd remember "<insight>"` (or decide nothing novel), then `bd kv set "memory-acked:<id>" "saved:<key>"` or `"nothing novel:<reason>"`, then retry `bd close <id> --reason="..."` (Stop hook remains fallback reminder) |
22
29
 
23
30
  ## bd Command Reference
24
31
 
@@ -43,9 +50,11 @@ bd create --title="..." --description="..." --type=task --priority=2
43
50
  # types: task | bug | feature | epic | chore | decision
44
51
 
45
52
  # Closing
46
- bd close <id> # Close issue
53
+ # Memory gate: ack per issue before close
54
+ # bd kv set "memory-acked:<id>" "saved:<key>" OR "nothing novel:<reason>"
55
+ bd close <id> # Close issue (blocked until memory-acked:<id> exists)
47
56
  bd close <id> --reason="Done: ..." # Close with context
48
- bd close <id1> <id2> <id3> # Batch close
57
+ bd close <id1> <id2> <id3> # Batch close (each id needs its own memory ack)
49
58
 
50
59
  # Dependencies
51
60
  bd dep add <issue> <depends-on> # issue depends on depends-on (depends-on blocks issue)
@@ -75,6 +75,25 @@ export default function (pi: ExtensionAPI) {
75
75
  return false;
76
76
  };
77
77
 
78
+ const stripQuoted = (command: string): string => command.replace(/'[^']*'|"[^"]*"/g, "");
79
+ const isSpecialistsSubprocessCommand = (commandUnquoted: string): boolean =>
80
+ /\bspecialists\s+(run|resume|result|feed|stop|status)\b/.test(commandUnquoted);
81
+
82
+ const getClosedIssueIdFromCommand = (commandUnquoted: string): string | null => {
83
+ const match = commandUnquoted.match(/\bbd\s+close\s+(\S+)/);
84
+ const issueId = match?.[1]?.trim();
85
+ if (!issueId || issueId.startsWith("-")) return null;
86
+ return issueId;
87
+ };
88
+
89
+ const hasIssueMemoryAck = async (issueId: string, cwd: string): Promise<boolean> => {
90
+ const result = await SubprocessRunner.run("bd", ["kv", "get", `memory-acked:${issueId}`], { cwd });
91
+ return result.code === 0 && result.stdout.trim().length > 0;
92
+ };
93
+
94
+ const closeMemoryBlockReason = (issueId: string): string =>
95
+ `MEMORY_GATE_BLOCK issue=${issueId} run="bd remember '<insight>' && bd kv set 'memory-acked:${issueId}' 'saved:<key>'" or="bd kv set 'memory-acked:${issueId}' 'nothing novel:<reason>'" then="bd close ${issueId} --reason='<reason>'"`;
96
+
78
97
  pi.on("session_start", async (_event, ctx) => {
79
98
  cachedSessionId = ctx?.sessionManager?.getSessionId?.() ?? ctx?.sessionId ?? ctx?.session_id ?? cachedSessionId;
80
99
  return undefined;
@@ -102,8 +121,23 @@ export default function (pi: ExtensionAPI) {
102
121
  }
103
122
 
104
123
  if (isToolCallEventType("bash", event)) {
105
- const command = event.input.command;
106
- if (command && /\bgit\s+commit\b/.test(command)) {
124
+ const command = event.input.command ?? "";
125
+ const commandUnquoted = stripQuoted(command);
126
+
127
+ if (isSpecialistsSubprocessCommand(commandUnquoted)) return undefined;
128
+
129
+ const closedIssueId = getClosedIssueIdFromCommand(commandUnquoted);
130
+ if (closedIssueId) {
131
+ const acked = await hasIssueMemoryAck(closedIssueId, cwd);
132
+ if (!acked) {
133
+ return {
134
+ block: true,
135
+ reason: closeMemoryBlockReason(closedIssueId),
136
+ };
137
+ }
138
+ }
139
+
140
+ if (/\bgit\s+commit\b/.test(commandUnquoted)) {
107
141
  const claim = await getActiveClaim(sessionId, cwd);
108
142
  if (claim) {
109
143
  return {
@@ -145,18 +179,8 @@ export default function (pi: ExtensionAPI) {
145
179
  memoryGateFired = false;
146
180
  }
147
181
 
148
- // Inject memory gate as agent-visible context only — parity with Claude Stop hook {additionalContext}.
149
- // No UI notification; the agent sees this silently in its tool result context.
150
182
  const memoryGateText = closedIssueId
151
- ? `\n\n**Beads Memory Gate**: Issue \`${closedIssueId}\` closed this session.\n` +
152
- `For each candidate insight, check ALL 4:\n` +
153
- ` 1. Hard to rediscover from code/docs?\n` +
154
- ` 2. Not obvious from the current implementation?\n` +
155
- ` 3. Will affect a future decision?\n` +
156
- ` 4. Still relevant in ~14 days?\n` +
157
- `KEEP (all 4 yes) → \`bd remember "<insight>"\`\n` +
158
- `SKIP examples: file maps, flag inventories, per-issue summaries, wording tweaks, facts obvious from reading the source.\n` +
159
- `When done: \`bd kv set "memory-gate-done:${sessionId}" "saved: <key>"\` (or \`"nothing novel — <reason>"\`)`
183
+ ? `\n\n**Beads Memory Gate**: close-time memory ack verified for \`${closedIssueId}\` (\`memory-acked:${closedIssueId}\`).`
160
184
  : `\n\n**Beads**: Work completed. Consider if this session produced insights worth persisting via \`bd remember\`.`;
161
185
  return { content: [...event.content, { type: "text", text: memoryGateText }] };
162
186
  }
@@ -185,6 +209,13 @@ export default function (pi: ExtensionAPI) {
185
209
  const closedIssueId = await getClosedThisSession(sessionId, cwd);
186
210
  if (!closedIssueId) return;
187
211
 
212
+ const closeTimeAcked = await hasIssueMemoryAck(closedIssueId, cwd);
213
+ if (closeTimeAcked) {
214
+ await SubprocessRunner.run("bd", ["kv", "clear", `closed-this-session:${sessionId}`], { cwd });
215
+ memoryGateFired = false;
216
+ return;
217
+ }
218
+
188
219
  memoryGateFired = true;
189
220
  // No notify — memory gate was injected into bd close tool_result content (silent, agent-visible only).
190
221
  };
@@ -13,11 +13,15 @@ import { truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
13
13
  import { SubprocessRunner, EventAdapter } from "@xtrm/pi-core";
14
14
 
15
15
  export default function (pi: ExtensionAPI) {
16
+ interface BeadClaim {
17
+ id: string;
18
+ shortId: string;
19
+ title: string | null;
20
+ status: string;
21
+ }
22
+
16
23
  interface BeadState {
17
- claimId: string | null;
18
- shortId: string | null;
19
- claimTitle: string | null;
20
- status: string | null;
24
+ claims: BeadClaim[];
21
25
  openCount: number;
22
26
  lastFetch: number;
23
27
  }
@@ -52,7 +56,6 @@ export default function (pi: ExtensionAPI) {
52
56
 
53
57
  let capturedPi: ExtensionAPI = pi;
54
58
  let capturedCtx: any = null;
55
- let sessionId = "";
56
59
  let requestRender: (() => void) | null = null;
57
60
 
58
61
  const CACHE_TTL = 5000;
@@ -60,10 +63,7 @@ export default function (pi: ExtensionAPI) {
60
63
  let refreshingRuntime = false;
61
64
 
62
65
  let beadState: BeadState = {
63
- claimId: null,
64
- shortId: null,
65
- claimTitle: null,
66
- status: null,
66
+ claims: [],
67
67
  openCount: 0,
68
68
  lastFetch: 0,
69
69
  };
@@ -162,52 +162,42 @@ export default function (pi: ExtensionAPI) {
162
162
  const refreshBeadState = async () => {
163
163
  if (refreshingBeads || Date.now() - beadState.lastFetch < CACHE_TTL) return;
164
164
  const cwd = getCwd();
165
- if (!EventAdapter.isBeadsProject(cwd) || !sessionId) return;
165
+ if (!EventAdapter.isBeadsProject(cwd)) return;
166
166
  refreshingBeads = true;
167
167
  try {
168
- const claimResult = await SubprocessRunner.run("bd", ["kv", "get", `claimed:${sessionId}`], { cwd });
169
- const claimId = claimResult.code === 0 ? claimResult.stdout.trim() || null : null;
170
-
171
- let status: string | null = null;
172
- let claimTitle: string | null = null;
173
- if (claimId) {
174
- const showResult = await SubprocessRunner.run("bd", ["show", claimId, "--json"], { cwd });
168
+ const inProgressResult = await SubprocessRunner.run("bd", ["list", "--status=in_progress"], { cwd });
169
+ const inProgressRaw = inProgressResult.code === 0 ? inProgressResult.stdout : "";
170
+ const ids = [...new Set([...inProgressRaw.matchAll(/^◐\s+([a-z][\w-]+)/gm)].map((m) => m[1]).filter((id) => id.includes("-")))];
171
+
172
+ let claims: BeadClaim[] = [];
173
+ if (ids.length === 1) {
174
+ const [id] = ids;
175
+ const showResult = await SubprocessRunner.run("bd", ["show", id, "--json"], { cwd });
175
176
  if (showResult.code === 0) {
176
177
  try {
177
178
  const issue = JSON.parse(showResult.stdout)?.[0];
178
- status = issue?.status ?? null;
179
- claimTitle = issue?.title ?? null;
179
+ claims = [{ id, shortId: getShortId(id), title: issue?.title ?? null, status: issue?.status ?? "in_progress" }];
180
180
  } catch {
181
- // keep nulls
181
+ claims = [{ id, shortId: getShortId(id), title: null, status: "in_progress" }];
182
182
  }
183
+ } else {
184
+ claims = [{ id, shortId: getShortId(id), title: null, status: "in_progress" }];
183
185
  }
184
- if (status === "closed") {
185
- await SubprocessRunner.run("bd", ["kv", "clear", `claimed:${sessionId}`], { cwd });
186
- beadState = {
187
- claimId: null,
188
- shortId: null,
189
- claimTitle: null,
190
- status: null,
191
- openCount: beadState.openCount,
192
- lastFetch: Date.now(),
193
- };
194
- requestRender?.();
195
- return;
196
- }
186
+ } else if (ids.length > 1) {
187
+ claims = ids.map((id) => ({ id, shortId: getShortId(id), title: null, status: "in_progress" }));
197
188
  }
198
189
 
199
190
  let openCount = 0;
200
- const listResult = await SubprocessRunner.run("bd", ["list"], { cwd });
201
- if (listResult.code === 0) {
202
- const m = listResult.stdout.match(/\((\d+)\s+open/);
203
- if (m) openCount = parseInt(m[1], 10);
191
+ if (claims.length === 0) {
192
+ const listResult = await SubprocessRunner.run("bd", ["list"], { cwd });
193
+ if (listResult.code === 0) {
194
+ const m = listResult.stdout.match(/\((\d+)\s+open/);
195
+ if (m) openCount = parseInt(m[1], 10);
196
+ }
204
197
  }
205
198
 
206
199
  beadState = {
207
- claimId,
208
- shortId: claimId ? getShortId(claimId) : null,
209
- claimTitle,
210
- status,
200
+ claims,
211
201
  openCount,
212
202
  lastFetch: Date.now(),
213
203
  };
@@ -223,22 +213,29 @@ export default function (pi: ExtensionAPI) {
223
213
  * Build beads line: ◐ 4843.5 Rework project bootstrap... or ○ 6 open
224
214
  */
225
215
  const buildBeadsLine = (width: number, theme: any): string => {
226
- const { shortId, claimTitle, status, openCount } = beadState;
216
+ const { claims, openCount } = beadState;
227
217
 
228
- // Claimed: ◐ 4843.5 Rework project bootstrap, verificat...
229
- if (shortId && claimTitle && status) {
218
+ if (claims.length === 1) {
219
+ const [{ shortId, title, status }] = claims;
230
220
  const icon = STATUS_ICONS[status] ?? "◐";
231
- const prefix = `${icon} ${shortId} `;
232
- const title = theme.fg("muted", claimTitle);
233
- return truncateToWidth(`${prefix}${title}`, width);
221
+ const idChip = chip(`${icon} ${shortId}`, STATUS_BG[status] ?? CHIP_BG_NEUTRAL);
222
+ const cappedTitle = title ? (title.length > 40 ? `${title.slice(0, 39)}…` : title) : "";
223
+ const line = cappedTitle ? `${idChip} ${theme.fg("muted", cappedTitle)}` : idChip;
224
+ return truncateToWidth(line, width);
225
+ }
226
+
227
+ if (claims.length > 1) {
228
+ const chips = claims.map(({ shortId, status }) => {
229
+ const icon = STATUS_ICONS[status] ?? "◐";
230
+ return chip(`${icon} ${shortId}`, STATUS_BG[status] ?? CHIP_BG_ACTIVE);
231
+ });
232
+ return truncateToWidth(chips.join(" "), width);
234
233
  }
235
234
 
236
- // Unclaimed with open issues: ○ 6 open
237
235
  if (openCount > 0) {
238
236
  return truncateToWidth(`○ ${openCount} open`, width);
239
237
  }
240
238
 
241
- // No open issues: ○ no open issues
242
239
  return truncateToWidth(`○ no open issues`, width);
243
240
  };
244
241
 
@@ -296,14 +293,11 @@ export default function (pi: ExtensionAPI) {
296
293
  ? `?/${formatTokens(contextWindow)}`
297
294
  : `${contextPercent}%/${formatTokens(contextWindow)}`;
298
295
 
299
- let statsLeft: string;
300
- if (contextPercentValue > 90) {
301
- statsLeft = theme.fg("error", contextDisplay);
302
- } else if (contextPercentValue > 70) {
303
- statsLeft = theme.fg("warning", contextDisplay);
304
- } else {
305
- statsLeft = contextDisplay;
306
- }
296
+ const colorizeUsage = (text: string) => {
297
+ if (contextPercentValue > 90) return theme.fg("error", text);
298
+ if (contextPercentValue > 70) return theme.fg("warning", text);
299
+ return text;
300
+ };
307
301
 
308
302
  // Build right side: (provider) model • thinking
309
303
  const modelName = model?.id || "no-model";
@@ -321,45 +315,29 @@ export default function (pi: ExtensionAPI) {
321
315
  let rightSide = rightSideWithoutProvider;
322
316
  if (providerCount > 1 && model) {
323
317
  rightSide = `(${model.provider}) ${rightSideWithoutProvider}`;
324
- if (visibleWidth(statsLeft) + 3 + visibleWidth(rightSide) > width) {
318
+ if (visibleWidth(contextDisplay) + 3 + visibleWidth(rightSide) > width) {
325
319
  rightSide = rightSideWithoutProvider;
326
320
  }
327
321
  }
328
322
 
329
323
  // Keep provider/model adjacent to usage (no right-bound alignment)
330
324
  const separator = " ";
331
-
332
- // Calculate layout
333
- let leftWidth = visibleWidth(statsLeft);
325
+ const leftWidth = visibleWidth(contextDisplay);
334
326
  const separatorWidth = visibleWidth(separator);
335
327
 
336
- // Check if left side too wide
337
- if (leftWidth > width - separatorWidth) {
338
- statsLeft = truncateToWidth(statsLeft, width - separatorWidth, "...");
339
- leftWidth = visibleWidth(statsLeft);
340
- }
341
-
342
- // Truncate right side to remaining width and place immediately after separator
343
- const availableForRight = width - leftWidth - separatorWidth;
344
328
  let line2: string;
345
- if (availableForRight > 0) {
346
- const truncatedRight = truncateToWidth(rightSide, availableForRight, "");
347
- line2 = statsLeft + separator + truncatedRight;
329
+ if (leftWidth >= width) {
330
+ line2 = colorizeUsage(truncateToWidth(contextDisplay, width, ""));
348
331
  } else {
349
- line2 = truncateToWidth(statsLeft, width, "");
332
+ const availableForRight = Math.max(0, width - leftWidth - separatorWidth);
333
+ const truncatedRight = truncateToWidth(rightSide, availableForRight, "");
334
+ line2 = `${colorizeUsage(contextDisplay)}${theme.fg("dim", separator)}${theme.fg("dim", truncatedRight)}`;
350
335
  }
351
336
 
352
- // Apply dim to each part separately (like original footer)
353
- // statsLeft may contain color codes for context % that end with reset
354
- const dimLeft = theme.fg("dim", statsLeft);
355
- const dimSep = theme.fg("dim", separator);
356
- const remainder = line2.slice(leftWidth + separatorWidth);
357
- const dimRemainder = theme.fg("dim", remainder);
358
-
359
337
  // === LINE 3: ◐ 4843.5 Rework project bootstrap... ===
360
338
  const line3 = buildBeadsLine(width, theme);
361
339
 
362
- return [pwdLine, dimLeft + dimSep + dimRemainder, line3];
340
+ return [pwdLine, line2, line3];
363
341
  },
364
342
  };
365
343
  });
@@ -375,7 +353,6 @@ export default function (pi: ExtensionAPI) {
375
353
 
376
354
  pi.on("session_start", async (_event, ctx) => {
377
355
  capturedCtx = ctx;
378
- sessionId = ctx.sessionManager?.getSessionId?.() || ctx.sessionId || ctx.session_id || process.pid.toString();
379
356
  runtimeState.lastFetch = 0;
380
357
  beadState.lastFetch = 0;
381
358
  applyCustomFooter(ctx);
@@ -70,7 +70,7 @@ export interface XtrmUiPrefs {
70
70
  export const XTRM_UI_PREFS_ENTRY = "xtrm-ui-prefs";
71
71
 
72
72
  export const DEFAULT_PREFS: XtrmUiPrefs = {
73
- themeName: "pidex-light",
73
+ themeName: "pidex-dark",
74
74
  density: "compact",
75
75
  showHeader: true,
76
76
  compactTools: true,
@@ -92,7 +92,7 @@ function normalizePrefs(input: unknown): XtrmUiPrefs {
92
92
  if (!input || typeof input !== "object") return { ...DEFAULT_PREFS };
93
93
  const source = input as Partial<XtrmUiPrefs>;
94
94
  return {
95
- themeName: source.themeName === "pidex-dark" ? "pidex-dark" : "pidex-light",
95
+ themeName: source.themeName === "pidex-light" ? "pidex-light" : "pidex-dark",
96
96
  density: source.density === "comfortable" ? "comfortable" : "compact",
97
97
  showHeader: source.showHeader ?? DEFAULT_PREFS.showHeader,
98
98
  compactTools: source.compactTools ?? DEFAULT_PREFS.compactTools,
@@ -749,7 +749,7 @@ function registerXtrmUiTools(pi: ExtensionAPI): void {
749
749
  activeSignatureCounts.has(stableToolSignature(toolName, args));
750
750
 
751
751
  const renderPendingCallIfActive = (toolName: string, args: Record<string, unknown>, theme: any) =>
752
- isToolCallActive(toolName, args) ? renderPendingCall(toolName, args, theme) : undefined;
752
+ isToolCallActive(toolName, args) ? renderPendingCall(toolName, args, theme) : new Text("", 0, 0);
753
753
 
754
754
  pi.on("tool_call", async (event) => {
755
755
  trackToolCallStart(event.toolCallId, event.toolName, event.input as Record<string, unknown>);
@@ -36,10 +36,10 @@
36
36
  "packages": [
37
37
  "npm:pi-gitnexus",
38
38
  "npm:pi-serena-tools",
39
- "npm:lsp-pi",
40
39
  "npm:@zenobius/pi-worktrees",
41
40
  "npm:@robhowley/pi-structured-return",
42
41
  "npm:@aliou/pi-guardrails",
43
- "npm:@aliou/pi-processes"
42
+ "npm:@aliou/pi-processes",
43
+ "npm:pi-mcp-adapter"
44
44
  ]
45
45
  }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$metadata": {
3
+ "description": "Canonical MCP servers for Pi runtime sync",
4
+ "format": "Pi-native mcpServers entries (command/args + lifecycle + idleTimeout)",
5
+ "note": "This file is for .pi/mcp.json sync. Claude uses .xtrm/config/claude.mcp.json instead."
6
+ },
7
+ "mcpServers": {
8
+ "context7": {
9
+ "command": "npx",
10
+ "args": ["-y", "@upstash/context7-mcp"],
11
+ "lifecycle": "lazy",
12
+ "idleTimeout": 10
13
+ },
14
+ "deepwiki": {
15
+ "command": "npx",
16
+ "args": ["-y", "pi-mcp-adapter", "https://mcp.deepwiki.com/mcp"],
17
+ "lifecycle": "lazy",
18
+ "idleTimeout": 10
19
+ },
20
+ "github-grep": {
21
+ "command": "npx",
22
+ "args": ["-y", "pi-mcp-adapter", "https://mcp.grep.app"],
23
+ "lifecycle": "lazy",
24
+ "idleTimeout": 10
25
+ },
26
+ "gitnexus": {
27
+ "command": "gitnexus",
28
+ "args": ["mcp"],
29
+ "lifecycle": "lazy",
30
+ "idleTimeout": 10
31
+ },
32
+ "specialists": {
33
+ "command": "specialists",
34
+ "args": [],
35
+ "lifecycle": "lazy",
36
+ "idleTimeout": 10
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "mcp__serena__list_memories",
5
+ "mcp__serena__read_memory",
6
+ "mcp__serena__get_symbols_overview",
7
+ "mcp__serena__find_symbol",
8
+ "mcp__serena__replace_symbol_body",
9
+ "Bash(python -m py_compile:*)",
10
+ "Bash(tree:*)",
11
+ "Bash(podman exec:*)",
12
+ "Bash(bd show:*)",
13
+ "Bash(bd list:*)",
14
+ "Bash(bd ready:*)",
15
+ "Bash(bd stats:*)",
16
+ "Bash(bd search:*)",
17
+ "Bash(bd prime:*)",
18
+ "Bash(bd memories:*)",
19
+ "Bash(bd recall:*)",
20
+ "Bash(git status:*)",
21
+ "Bash(git log:*)",
22
+ "Bash(git diff:*)",
23
+ "Bash(git show:*)",
24
+ "Bash(git fetch:*)",
25
+ "mcp__serena__list_dir",
26
+ "mcp__yfinance-market-intelligence__get_volatility_metrics",
27
+ "mcp__yfinance-market-intelligence__get_amt_snapshot",
28
+ "mcp__yfinance-market-intelligence__get_market_overview",
29
+ "Skill(scan-context)",
30
+ "mcp__gmail__search_emails",
31
+ "mcp__gmail__read_email",
32
+ "mcp__gmail__batch_modify_emails",
33
+ "mcp__gmail__list_email_labels"
34
+ ],
35
+ "defaultMode": "default"
36
+ },
37
+ "model": "sonnet",
38
+ "skillSuggestions": {
39
+ "enabled": true
40
+ }
41
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * oh-pi Auto Session Name Extension
3
+ *
4
+ * Automatically names sessions based on the first user message.
5
+ */
6
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
7
+
8
+ export default function (pi: ExtensionAPI) {
9
+ let named = false;
10
+
11
+ pi.on("session_start", async (_event, ctx) => {
12
+ named = !!pi.getSessionName();
13
+ });
14
+
15
+ pi.on("agent_end", async (event) => {
16
+ if (named) return;
17
+ const userMsg = event.messages.find((m) => m.role === "user");
18
+ if (!userMsg) return;
19
+ const text = typeof userMsg.content === "string"
20
+ ? userMsg.content
21
+ : userMsg.content.filter((b) => b.type === "text").map((b) => (b as { text: string }).text).join(" ");
22
+ if (!text) return;
23
+ const name = text.slice(0, 60).replace(/\n/g, " ").trim();
24
+ if (name) {
25
+ pi.setSessionName(name);
26
+ named = true;
27
+ }
28
+ });
29
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@xtrm/pi-auto-session-name",
3
+ "version": "1.0.0",
4
+ "description": "xtrm Pi extension: auto-session-name",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": "./index.ts"
8
+ },
9
+ "keywords": [
10
+ "pi",
11
+ "extension",
12
+ "xtrm"
13
+ ],
14
+ "author": "xtrm",
15
+ "license": "MIT"
16
+ }