xtrm-tools 0.7.0 → 0.7.2

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 (633) 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 +2 -2
  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 +31 -0
  57. package/README.md +20 -3
  58. package/cli/dist/index.cjs +26796 -30901
  59. package/cli/dist/index.cjs.map +1 -1
  60. package/cli/package.json +6 -3
  61. package/package.json +15 -13
  62. package/scripts/ghgrep.mjs +358 -0
  63. package/.claude-plugin/marketplace.json +0 -19
  64. package/.claude-plugin/plugin.json +0 -9
  65. package/config/hooks.json +0 -83
  66. package/config/settings.json +0 -70
  67. package/hooks/beads-memory-gate.mjs +0 -94
  68. package/hooks/quality-check-env.mjs +0 -79
  69. package/hooks/statusline.mjs +0 -183
  70. package/hooks/tsconfig-cache.json +0 -4
  71. package/hooks/using-xtrm-reminder.mjs +0 -47
  72. package/plugins/xtrm-tools/.claude-plugin/plugin.json +0 -9
  73. package/plugins/xtrm-tools/.mcp.json +0 -18
  74. package/plugins/xtrm-tools/hooks/README.md +0 -61
  75. package/plugins/xtrm-tools/hooks/beads-claim-sync.mjs +0 -154
  76. package/plugins/xtrm-tools/hooks/beads-commit-gate.mjs +0 -70
  77. package/plugins/xtrm-tools/hooks/beads-compact-restore.mjs +0 -77
  78. package/plugins/xtrm-tools/hooks/beads-compact-save.mjs +0 -63
  79. package/plugins/xtrm-tools/hooks/beads-edit-gate.mjs +0 -85
  80. package/plugins/xtrm-tools/hooks/beads-gate-core.mjs +0 -236
  81. package/plugins/xtrm-tools/hooks/beads-gate-messages.mjs +0 -75
  82. package/plugins/xtrm-tools/hooks/beads-gate-utils.mjs +0 -176
  83. package/plugins/xtrm-tools/hooks/beads-memory-gate.mjs +0 -94
  84. package/plugins/xtrm-tools/hooks/beads-stop-gate.mjs +0 -53
  85. package/plugins/xtrm-tools/hooks/gitnexus/gitnexus-hook.cjs +0 -222
  86. package/plugins/xtrm-tools/hooks/hooks.json +0 -129
  87. package/plugins/xtrm-tools/hooks/quality-check.cjs +0 -1286
  88. package/plugins/xtrm-tools/hooks/quality-check.py +0 -345
  89. package/plugins/xtrm-tools/hooks/statusline.mjs +0 -183
  90. package/plugins/xtrm-tools/hooks/tsconfig-cache.json +0 -4
  91. package/plugins/xtrm-tools/hooks/worktree-boundary.mjs +0 -33
  92. package/plugins/xtrm-tools/hooks/xtrm-logger.mjs +0 -123
  93. package/plugins/xtrm-tools/hooks/xtrm-session-logger.mjs +0 -27
  94. package/plugins/xtrm-tools/hooks/xtrm-tool-logger.mjs +0 -53
  95. package/plugins/xtrm-tools/skills/README.txt +0 -31
  96. package/plugins/xtrm-tools/skills/clean-code/SKILL.md +0 -201
  97. package/plugins/xtrm-tools/skills/creating-service-skills/SKILL.md +0 -433
  98. package/plugins/xtrm-tools/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  99. package/plugins/xtrm-tools/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  100. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/bootstrap.py +0 -326
  101. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  102. package/plugins/xtrm-tools/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  103. package/plugins/xtrm-tools/skills/delegating/SKILL.md +0 -196
  104. package/plugins/xtrm-tools/skills/delegating/config.yaml +0 -210
  105. package/plugins/xtrm-tools/skills/delegating/references/orchestration-protocols.md +0 -41
  106. package/plugins/xtrm-tools/skills/docker-expert/SKILL.md +0 -409
  107. package/plugins/xtrm-tools/skills/documenting/CHANGELOG.md +0 -23
  108. package/plugins/xtrm-tools/skills/documenting/README.md +0 -148
  109. package/plugins/xtrm-tools/skills/documenting/SKILL.md +0 -113
  110. package/plugins/xtrm-tools/skills/documenting/examples/example_pattern.md +0 -70
  111. package/plugins/xtrm-tools/skills/documenting/examples/example_reference.md +0 -70
  112. package/plugins/xtrm-tools/skills/documenting/examples/example_ssot_analytics.md +0 -64
  113. package/plugins/xtrm-tools/skills/documenting/examples/example_workflow.md +0 -141
  114. package/plugins/xtrm-tools/skills/documenting/references/changelog-format.md +0 -97
  115. package/plugins/xtrm-tools/skills/documenting/references/metadata-schema.md +0 -136
  116. package/plugins/xtrm-tools/skills/documenting/references/taxonomy.md +0 -81
  117. package/plugins/xtrm-tools/skills/documenting/references/versioning-rules.md +0 -78
  118. package/plugins/xtrm-tools/skills/documenting/scripts/bump_version.sh +0 -60
  119. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/__init__.py +0 -0
  120. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/add_entry.py +0 -216
  121. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/bump_release.py +0 -117
  122. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/init_changelog.py +0 -54
  123. package/plugins/xtrm-tools/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
  124. package/plugins/xtrm-tools/skills/documenting/scripts/drift_detector.py +0 -266
  125. package/plugins/xtrm-tools/skills/documenting/scripts/generate_template.py +0 -311
  126. package/plugins/xtrm-tools/skills/documenting/scripts/list_by_category.sh +0 -84
  127. package/plugins/xtrm-tools/skills/documenting/scripts/orchestrator.py +0 -255
  128. package/plugins/xtrm-tools/skills/documenting/scripts/validate_metadata.py +0 -242
  129. package/plugins/xtrm-tools/skills/documenting/templates/CHANGELOG.md.template +0 -13
  130. package/plugins/xtrm-tools/skills/documenting/tests/integration_test.sh +0 -70
  131. package/plugins/xtrm-tools/skills/documenting/tests/test_changelog.py +0 -201
  132. package/plugins/xtrm-tools/skills/documenting/tests/test_drift_detector.py +0 -80
  133. package/plugins/xtrm-tools/skills/documenting/tests/test_orchestrator.py +0 -52
  134. package/plugins/xtrm-tools/skills/documenting/tests/test_validate_metadata.py +0 -64
  135. package/plugins/xtrm-tools/skills/find-skills/SKILL.md +0 -133
  136. package/plugins/xtrm-tools/skills/gitnexus-exploring/SKILL.md +0 -75
  137. package/plugins/xtrm-tools/skills/gitnexus-impact-analysis/SKILL.md +0 -94
  138. package/plugins/xtrm-tools/skills/gitnexus-refactoring/SKILL.md +0 -113
  139. package/plugins/xtrm-tools/skills/hook-development/SKILL.md +0 -797
  140. package/plugins/xtrm-tools/skills/hook-development/examples/load-context.sh +0 -55
  141. package/plugins/xtrm-tools/skills/hook-development/examples/quality-check.js +0 -1168
  142. package/plugins/xtrm-tools/skills/hook-development/examples/validate-bash.sh +0 -43
  143. package/plugins/xtrm-tools/skills/hook-development/examples/validate-write.sh +0 -38
  144. package/plugins/xtrm-tools/skills/hook-development/references/advanced.md +0 -527
  145. package/plugins/xtrm-tools/skills/hook-development/references/migration.md +0 -369
  146. package/plugins/xtrm-tools/skills/hook-development/references/patterns.md +0 -412
  147. package/plugins/xtrm-tools/skills/hook-development/scripts/README.md +0 -164
  148. package/plugins/xtrm-tools/skills/hook-development/scripts/hook-linter.sh +0 -153
  149. package/plugins/xtrm-tools/skills/hook-development/scripts/test-hook.sh +0 -252
  150. package/plugins/xtrm-tools/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  151. package/plugins/xtrm-tools/skills/obsidian-cli/SKILL.md +0 -106
  152. package/plugins/xtrm-tools/skills/orchestrating-agents/SKILL.md +0 -135
  153. package/plugins/xtrm-tools/skills/orchestrating-agents/config.yaml +0 -45
  154. package/plugins/xtrm-tools/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
  155. package/plugins/xtrm-tools/skills/orchestrating-agents/references/examples.md +0 -45
  156. package/plugins/xtrm-tools/skills/orchestrating-agents/references/handover-protocol.md +0 -31
  157. package/plugins/xtrm-tools/skills/orchestrating-agents/references/workflows.md +0 -42
  158. package/plugins/xtrm-tools/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
  159. package/plugins/xtrm-tools/skills/planning/SKILL.md +0 -405
  160. package/plugins/xtrm-tools/skills/planning/evals/evals.json +0 -19
  161. package/plugins/xtrm-tools/skills/prompt-improving/README.md +0 -162
  162. package/plugins/xtrm-tools/skills/prompt-improving/SKILL.md +0 -74
  163. package/plugins/xtrm-tools/skills/prompt-improving/references/analysis_commands.md +0 -24
  164. package/plugins/xtrm-tools/skills/prompt-improving/references/chain_of_thought.md +0 -24
  165. package/plugins/xtrm-tools/skills/prompt-improving/references/mcp_definitions.md +0 -20
  166. package/plugins/xtrm-tools/skills/prompt-improving/references/multishot.md +0 -23
  167. package/plugins/xtrm-tools/skills/prompt-improving/references/xml_core.md +0 -60
  168. package/plugins/xtrm-tools/skills/python-testing/SKILL.md +0 -815
  169. package/plugins/xtrm-tools/skills/scoping-service-skills/SKILL.md +0 -231
  170. package/plugins/xtrm-tools/skills/scoping-service-skills/scripts/scope.py +0 -74
  171. package/plugins/xtrm-tools/skills/senior-backend/SKILL.md +0 -209
  172. package/plugins/xtrm-tools/skills/senior-backend/references/api_design_patterns.md +0 -103
  173. package/plugins/xtrm-tools/skills/senior-backend/references/backend_security_practices.md +0 -103
  174. package/plugins/xtrm-tools/skills/senior-backend/references/database_optimization_guide.md +0 -103
  175. package/plugins/xtrm-tools/skills/senior-backend/scripts/api_load_tester.py +0 -114
  176. package/plugins/xtrm-tools/skills/senior-backend/scripts/api_scaffolder.py +0 -114
  177. package/plugins/xtrm-tools/skills/senior-backend/scripts/database_migration_tool.py +0 -114
  178. package/plugins/xtrm-tools/skills/senior-data-scientist/SKILL.md +0 -226
  179. package/plugins/xtrm-tools/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
  180. package/plugins/xtrm-tools/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
  181. package/plugins/xtrm-tools/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
  182. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
  183. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
  184. package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
  185. package/plugins/xtrm-tools/skills/senior-devops/SKILL.md +0 -209
  186. package/plugins/xtrm-tools/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
  187. package/plugins/xtrm-tools/skills/senior-devops/references/deployment_strategies.md +0 -103
  188. package/plugins/xtrm-tools/skills/senior-devops/references/infrastructure_as_code.md +0 -103
  189. package/plugins/xtrm-tools/skills/senior-devops/scripts/deployment_manager.py +0 -114
  190. package/plugins/xtrm-tools/skills/senior-devops/scripts/pipeline_generator.py +0 -114
  191. package/plugins/xtrm-tools/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
  192. package/plugins/xtrm-tools/skills/senior-security/SKILL.md +0 -209
  193. package/plugins/xtrm-tools/skills/senior-security/references/cryptography_implementation.md +0 -103
  194. package/plugins/xtrm-tools/skills/senior-security/references/penetration_testing_guide.md +0 -103
  195. package/plugins/xtrm-tools/skills/senior-security/references/security_architecture_patterns.md +0 -103
  196. package/plugins/xtrm-tools/skills/senior-security/scripts/pentest_automator.py +0 -114
  197. package/plugins/xtrm-tools/skills/senior-security/scripts/security_auditor.py +0 -114
  198. package/plugins/xtrm-tools/skills/senior-security/scripts/threat_modeler.py +0 -114
  199. package/plugins/xtrm-tools/skills/skill-creator/LICENSE.txt +0 -202
  200. package/plugins/xtrm-tools/skills/skill-creator/SKILL.md +0 -479
  201. package/plugins/xtrm-tools/skills/skill-creator/agents/analyzer.md +0 -274
  202. package/plugins/xtrm-tools/skills/skill-creator/agents/comparator.md +0 -202
  203. package/plugins/xtrm-tools/skills/skill-creator/agents/grader.md +0 -223
  204. package/plugins/xtrm-tools/skills/skill-creator/assets/eval_review.html +0 -146
  205. package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  206. package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  207. package/plugins/xtrm-tools/skills/skill-creator/references/schemas.md +0 -430
  208. package/plugins/xtrm-tools/skills/skill-creator/scripts/__init__.py +0 -0
  209. package/plugins/xtrm-tools/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  210. package/plugins/xtrm-tools/skills/skill-creator/scripts/generate_report.py +0 -326
  211. package/plugins/xtrm-tools/skills/skill-creator/scripts/improve_description.py +0 -248
  212. package/plugins/xtrm-tools/skills/skill-creator/scripts/package_skill.py +0 -136
  213. package/plugins/xtrm-tools/skills/skill-creator/scripts/quick_validate.py +0 -103
  214. package/plugins/xtrm-tools/skills/skill-creator/scripts/run_eval.py +0 -310
  215. package/plugins/xtrm-tools/skills/skill-creator/scripts/run_loop.py +0 -332
  216. package/plugins/xtrm-tools/skills/skill-creator/scripts/utils.py +0 -47
  217. package/plugins/xtrm-tools/skills/sync-docs/SKILL.md +0 -286
  218. package/plugins/xtrm-tools/skills/sync-docs/evals/evals.json +0 -89
  219. package/plugins/xtrm-tools/skills/sync-docs/references/doc-structure.md +0 -99
  220. package/plugins/xtrm-tools/skills/sync-docs/references/schema.md +0 -103
  221. package/plugins/xtrm-tools/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
  222. package/plugins/xtrm-tools/skills/sync-docs/scripts/context_gatherer.py +0 -240
  223. package/plugins/xtrm-tools/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
  224. package/plugins/xtrm-tools/skills/sync-docs/scripts/drift_detector.py +0 -563
  225. package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_doc.py +0 -365
  226. package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_metadata.py +0 -185
  227. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
  228. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
  229. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
  230. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
  231. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
  232. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  233. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
  234. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
  235. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  236. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
  237. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
  238. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
  239. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
  240. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  241. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
  242. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
  243. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
  244. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
  245. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
  246. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
  247. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  248. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
  249. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
  250. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
  251. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
  252. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
  253. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
  254. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
  255. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
  256. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  257. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
  258. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
  259. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
  260. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
  261. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
  262. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
  263. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  264. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
  265. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
  266. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  267. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
  268. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
  269. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  270. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  271. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
  272. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
  273. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  274. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
  275. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
  276. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
  277. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
  278. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
  279. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
  280. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
  281. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
  282. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  283. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
  284. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
  285. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
  286. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
  287. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
  288. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
  289. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  290. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
  291. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
  292. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
  293. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
  294. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
  295. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
  296. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
  297. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  298. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
  299. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
  300. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
  301. package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  302. package/plugins/xtrm-tools/skills/test-planning/SKILL.md +0 -465
  303. package/plugins/xtrm-tools/skills/test-planning/evals/evals.json +0 -23
  304. package/plugins/xtrm-tools/skills/updating-service-skills/SKILL.md +0 -136
  305. package/plugins/xtrm-tools/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  306. package/plugins/xtrm-tools/skills/using-quality-gates/SKILL.md +0 -254
  307. package/plugins/xtrm-tools/skills/using-serena-lsp/README.md +0 -8
  308. package/plugins/xtrm-tools/skills/using-serena-lsp/REFERENCE.md +0 -194
  309. package/plugins/xtrm-tools/skills/using-serena-lsp/SKILL.md +0 -82
  310. package/plugins/xtrm-tools/skills/using-service-skills/SKILL.md +0 -108
  311. package/plugins/xtrm-tools/skills/using-service-skills/scripts/cataloger.py +0 -74
  312. package/plugins/xtrm-tools/skills/using-service-skills/scripts/skill_activator.py +0 -152
  313. package/plugins/xtrm-tools/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
  314. package/plugins/xtrm-tools/skills/using-tdd/SKILL.md +0 -410
  315. package/plugins/xtrm-tools/skills/using-xtrm/SKILL.md +0 -127
  316. package/plugins/xtrm-tools/skills/xt-debugging/SKILL.md +0 -149
  317. package/plugins/xtrm-tools/skills/xt-end/SKILL.md +0 -297
  318. package/plugins/xtrm-tools/skills/xt-merge/SKILL.md +0 -313
  319. package/project-skills/quality-gates/.claude/hooks/hook-config.json +0 -66
  320. package/project-skills/quality-gates/.claude/hooks/quality-check.cjs +0 -1286
  321. package/project-skills/quality-gates/.claude/hooks/quality-check.py +0 -334
  322. package/project-skills/quality-gates/.claude/settings.json +0 -3
  323. package/project-skills/quality-gates/.claude/skills/using-quality-gates/SKILL.md +0 -254
  324. package/project-skills/quality-gates/README.md +0 -109
  325. package/project-skills/quality-gates/evals/evals.json +0 -181
  326. package/project-skills/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +0 -75
  327. package/project-skills/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +0 -59
  328. package/project-skills/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +0 -60
  329. package/project-skills/quality-gates/workspace/iteration-1/eval-summary.md +0 -105
  330. package/project-skills/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +0 -93
  331. package/project-skills/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +0 -104
  332. package/project-skills/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +0 -74
  333. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +0 -18
  334. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +0 -18
  335. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +0 -56
  336. package/project-skills/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +0 -67
  337. package/project-skills/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +0 -97
  338. package/project-skills/service-skills-set/.claude/git-hooks/doc_reminder.py +0 -67
  339. package/project-skills/service-skills-set/.claude/git-hooks/skill_staleness.py +0 -194
  340. package/project-skills/service-skills-set/.claude/service-registry.json +0 -4
  341. package/project-skills/service-skills-set/.claude/settings.json +0 -37
  342. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/SKILL.md +0 -433
  343. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  344. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  345. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/bootstrap.py +0 -308
  346. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  347. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  348. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/SKILL.md +0 -231
  349. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/scripts/scope.py +0 -74
  350. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/SKILL.md +0 -136
  351. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  352. package/project-skills/service-skills-set/.claude/skills/using-service-skills/SKILL.md +0 -108
  353. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/cataloger.py +0 -74
  354. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/skill_activator.py +0 -152
  355. package/project-skills/service-skills-set/README.md +0 -93
  356. package/project-skills/service-skills-set/install-service-skills.py +0 -193
  357. package/project-skills/service-skills-set/service-skills-readme.md +0 -236
  358. package/skills/README.txt +0 -31
  359. package/skills/clean-code/SKILL.md +0 -201
  360. package/skills/creating-service-skills/SKILL.md +0 -433
  361. package/skills/creating-service-skills/references/script_quality_standards.md +0 -425
  362. package/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
  363. package/skills/creating-service-skills/scripts/bootstrap.py +0 -326
  364. package/skills/creating-service-skills/scripts/deep_dive.py +0 -304
  365. package/skills/creating-service-skills/scripts/scaffolder.py +0 -482
  366. package/skills/delegating/SKILL.md +0 -196
  367. package/skills/delegating/config.yaml +0 -210
  368. package/skills/delegating/references/orchestration-protocols.md +0 -41
  369. package/skills/docker-expert/SKILL.md +0 -409
  370. package/skills/documenting/CHANGELOG.md +0 -23
  371. package/skills/documenting/README.md +0 -148
  372. package/skills/documenting/SKILL.md +0 -113
  373. package/skills/documenting/examples/example_pattern.md +0 -70
  374. package/skills/documenting/examples/example_reference.md +0 -70
  375. package/skills/documenting/examples/example_ssot_analytics.md +0 -64
  376. package/skills/documenting/examples/example_workflow.md +0 -141
  377. package/skills/documenting/references/changelog-format.md +0 -97
  378. package/skills/documenting/references/metadata-schema.md +0 -136
  379. package/skills/documenting/references/taxonomy.md +0 -81
  380. package/skills/documenting/references/versioning-rules.md +0 -78
  381. package/skills/documenting/scripts/bump_version.sh +0 -60
  382. package/skills/documenting/scripts/changelog/__init__.py +0 -0
  383. package/skills/documenting/scripts/changelog/add_entry.py +0 -216
  384. package/skills/documenting/scripts/changelog/bump_release.py +0 -117
  385. package/skills/documenting/scripts/changelog/init_changelog.py +0 -54
  386. package/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
  387. package/skills/documenting/scripts/drift_detector.py +0 -266
  388. package/skills/documenting/scripts/generate_template.py +0 -311
  389. package/skills/documenting/scripts/list_by_category.sh +0 -84
  390. package/skills/documenting/scripts/orchestrator.py +0 -255
  391. package/skills/documenting/scripts/validate_metadata.py +0 -242
  392. package/skills/documenting/templates/CHANGELOG.md.template +0 -13
  393. package/skills/find-skills/SKILL.md +0 -133
  394. package/skills/gitnexus-exploring/SKILL.md +0 -75
  395. package/skills/gitnexus-impact-analysis/SKILL.md +0 -94
  396. package/skills/gitnexus-refactoring/SKILL.md +0 -113
  397. package/skills/hook-development/SKILL.md +0 -797
  398. package/skills/hook-development/examples/load-context.sh +0 -55
  399. package/skills/hook-development/examples/quality-check.js +0 -1168
  400. package/skills/hook-development/examples/validate-bash.sh +0 -43
  401. package/skills/hook-development/examples/validate-write.sh +0 -38
  402. package/skills/hook-development/references/advanced.md +0 -527
  403. package/skills/hook-development/references/migration.md +0 -369
  404. package/skills/hook-development/references/patterns.md +0 -412
  405. package/skills/hook-development/scripts/README.md +0 -164
  406. package/skills/hook-development/scripts/hook-linter.sh +0 -153
  407. package/skills/hook-development/scripts/test-hook.sh +0 -252
  408. package/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  409. package/skills/obsidian-cli/SKILL.md +0 -106
  410. package/skills/orchestrating-agents/SKILL.md +0 -135
  411. package/skills/orchestrating-agents/config.yaml +0 -45
  412. package/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
  413. package/skills/orchestrating-agents/references/examples.md +0 -45
  414. package/skills/orchestrating-agents/references/handover-protocol.md +0 -31
  415. package/skills/orchestrating-agents/references/workflows.md +0 -42
  416. package/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
  417. package/skills/planning/SKILL.md +0 -405
  418. package/skills/planning/evals/evals.json +0 -19
  419. package/skills/prompt-improving/README.md +0 -162
  420. package/skills/prompt-improving/SKILL.md +0 -74
  421. package/skills/prompt-improving/references/analysis_commands.md +0 -24
  422. package/skills/prompt-improving/references/chain_of_thought.md +0 -24
  423. package/skills/prompt-improving/references/mcp_definitions.md +0 -20
  424. package/skills/prompt-improving/references/multishot.md +0 -23
  425. package/skills/prompt-improving/references/xml_core.md +0 -60
  426. package/skills/python-testing/SKILL.md +0 -815
  427. package/skills/scoping-service-skills/SKILL.md +0 -231
  428. package/skills/scoping-service-skills/scripts/scope.py +0 -74
  429. package/skills/senior-backend/SKILL.md +0 -209
  430. package/skills/senior-backend/references/api_design_patterns.md +0 -103
  431. package/skills/senior-backend/references/backend_security_practices.md +0 -103
  432. package/skills/senior-backend/references/database_optimization_guide.md +0 -103
  433. package/skills/senior-backend/scripts/api_load_tester.py +0 -114
  434. package/skills/senior-backend/scripts/api_scaffolder.py +0 -114
  435. package/skills/senior-backend/scripts/database_migration_tool.py +0 -114
  436. package/skills/senior-data-scientist/SKILL.md +0 -226
  437. package/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
  438. package/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
  439. package/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
  440. package/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
  441. package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
  442. package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
  443. package/skills/senior-devops/SKILL.md +0 -209
  444. package/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
  445. package/skills/senior-devops/references/deployment_strategies.md +0 -103
  446. package/skills/senior-devops/references/infrastructure_as_code.md +0 -103
  447. package/skills/senior-devops/scripts/deployment_manager.py +0 -114
  448. package/skills/senior-devops/scripts/pipeline_generator.py +0 -114
  449. package/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
  450. package/skills/senior-security/SKILL.md +0 -209
  451. package/skills/senior-security/references/cryptography_implementation.md +0 -103
  452. package/skills/senior-security/references/penetration_testing_guide.md +0 -103
  453. package/skills/senior-security/references/security_architecture_patterns.md +0 -103
  454. package/skills/senior-security/scripts/pentest_automator.py +0 -114
  455. package/skills/senior-security/scripts/security_auditor.py +0 -114
  456. package/skills/senior-security/scripts/threat_modeler.py +0 -114
  457. package/skills/skill-creator/LICENSE.txt +0 -202
  458. package/skills/skill-creator/SKILL.md +0 -479
  459. package/skills/skill-creator/agents/analyzer.md +0 -274
  460. package/skills/skill-creator/agents/comparator.md +0 -202
  461. package/skills/skill-creator/agents/grader.md +0 -223
  462. package/skills/skill-creator/assets/eval_review.html +0 -146
  463. package/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  464. package/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  465. package/skills/skill-creator/references/schemas.md +0 -430
  466. package/skills/skill-creator/scripts/__init__.py +0 -0
  467. package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  468. package/skills/skill-creator/scripts/generate_report.py +0 -326
  469. package/skills/skill-creator/scripts/improve_description.py +0 -248
  470. package/skills/skill-creator/scripts/package_skill.py +0 -136
  471. package/skills/skill-creator/scripts/quick_validate.py +0 -103
  472. package/skills/skill-creator/scripts/run_eval.py +0 -310
  473. package/skills/skill-creator/scripts/run_loop.py +0 -332
  474. package/skills/skill-creator/scripts/utils.py +0 -47
  475. package/skills/sync-docs/SKILL.md +0 -286
  476. package/skills/sync-docs/evals/evals.json +0 -89
  477. package/skills/sync-docs/references/doc-structure.md +0 -99
  478. package/skills/sync-docs/references/schema.md +0 -103
  479. package/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
  480. package/skills/sync-docs/scripts/context_gatherer.py +0 -240
  481. package/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
  482. package/skills/sync-docs/scripts/drift_detector.py +0 -563
  483. package/skills/sync-docs/scripts/validate_doc.py +0 -365
  484. package/skills/sync-docs/scripts/validate_metadata.py +0 -185
  485. package/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
  486. package/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
  487. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
  488. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
  489. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
  490. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  491. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
  492. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
  493. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  494. package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
  495. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
  496. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
  497. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
  498. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  499. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
  500. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
  501. package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
  502. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
  503. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
  504. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
  505. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  506. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
  507. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
  508. package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
  509. package/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
  510. package/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
  511. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
  512. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
  513. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
  514. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
  515. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
  516. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
  517. package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
  518. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
  519. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
  520. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
  521. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
  522. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
  523. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
  524. package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  525. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
  526. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
  527. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  528. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
  529. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
  530. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
  531. package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  532. package/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
  533. package/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
  534. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
  535. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
  536. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
  537. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
  538. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
  539. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
  540. package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
  541. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
  542. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
  543. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
  544. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
  545. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
  546. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
  547. package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
  548. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
  549. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
  550. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
  551. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
  552. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
  553. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
  554. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
  555. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
  556. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
  557. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
  558. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
  559. package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
  560. package/skills/test-planning/SKILL.md +0 -465
  561. package/skills/test-planning/evals/evals.json +0 -23
  562. package/skills/updating-service-skills/SKILL.md +0 -136
  563. package/skills/updating-service-skills/scripts/drift_detector.py +0 -222
  564. package/skills/using-quality-gates/SKILL.md +0 -254
  565. package/skills/using-serena-lsp/README.md +0 -8
  566. package/skills/using-serena-lsp/REFERENCE.md +0 -194
  567. package/skills/using-serena-lsp/SKILL.md +0 -82
  568. package/skills/using-service-skills/SKILL.md +0 -108
  569. package/skills/using-service-skills/scripts/cataloger.py +0 -74
  570. package/skills/using-service-skills/scripts/skill_activator.py +0 -152
  571. package/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
  572. package/skills/using-tdd/SKILL.md +0 -410
  573. package/skills/using-xtrm/SKILL.md +0 -127
  574. package/skills/xt-debugging/SKILL.md +0 -149
  575. package/skills/xt-end/SKILL.md +0 -297
  576. package/skills/xt-merge/SKILL.md +0 -313
  577. /package/{config → .xtrm/config}/.env.example +0 -0
  578. /package/{config/mcp_servers_optional.json → .xtrm/config/claude.mcp.optional.json} +0 -0
  579. /package/{hooks → .xtrm/config}/hooks.json +0 -0
  580. /package/{config → .xtrm/config}/pi/auth.json.template +0 -0
  581. /package/{config → .xtrm/config}/pi/extensions/auto-session-name/index.ts +0 -0
  582. /package/{config → .xtrm/config}/pi/extensions/auto-session-name/package.json +0 -0
  583. /package/{config → .xtrm/config}/pi/extensions/auto-update/index.ts +0 -0
  584. /package/{config → .xtrm/config}/pi/extensions/auto-update/package.json +0 -0
  585. /package/{config → .xtrm/config}/pi/extensions/beads/package.json +0 -0
  586. /package/{config → .xtrm/config}/pi/extensions/compact-header/index.ts +0 -0
  587. /package/{config → .xtrm/config}/pi/extensions/compact-header/package.json +0 -0
  588. /package/{config → .xtrm/config}/pi/extensions/core/adapter.ts +0 -0
  589. /package/{config → .xtrm/config}/pi/extensions/core/guard-rules.ts +0 -0
  590. /package/{config → .xtrm/config}/pi/extensions/core/lib.ts +0 -0
  591. /package/{config → .xtrm/config}/pi/extensions/core/logger.ts +0 -0
  592. /package/{config → .xtrm/config}/pi/extensions/core/package.json +0 -0
  593. /package/{config → .xtrm/config}/pi/extensions/core/runner.ts +0 -0
  594. /package/{config → .xtrm/config}/pi/extensions/core/session-state.ts +0 -0
  595. /package/{config → .xtrm/config}/pi/extensions/custom-footer/package.json +0 -0
  596. /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/index.ts +0 -0
  597. /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/package.json +0 -0
  598. /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/index.ts +0 -0
  599. /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/package.json +0 -0
  600. /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/index.ts +0 -0
  601. /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/package.json +0 -0
  602. /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/index.ts +0 -0
  603. /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/package.json +0 -0
  604. /package/{config → .xtrm/config}/pi/extensions/quality-gates/index.ts +0 -0
  605. /package/{config → .xtrm/config}/pi/extensions/quality-gates/package.json +0 -0
  606. /package/{config → .xtrm/config}/pi/extensions/service-skills/index.ts +0 -0
  607. /package/{config → .xtrm/config}/pi/extensions/service-skills/package.json +0 -0
  608. /package/{config → .xtrm/config}/pi/extensions/session-flow/index.ts +0 -0
  609. /package/{config → .xtrm/config}/pi/extensions/session-flow/package.json +0 -0
  610. /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/index.ts +0 -0
  611. /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/package.json +0 -0
  612. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/format.ts +0 -0
  613. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/package.json +0 -0
  614. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-dark.json +0 -0
  615. /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-light.json +0 -0
  616. /package/{config → .xtrm/config}/pi/models.json.template +0 -0
  617. /package/{config → .xtrm/config}/pi/pi-worktrees-settings.json +0 -0
  618. /package/{config → .xtrm/config}/pi/settings.json.template +0 -0
  619. /package/{hooks → .xtrm/hooks}/beads-claim-sync.mjs +0 -0
  620. /package/{hooks → .xtrm/hooks}/beads-compact-restore.mjs +0 -0
  621. /package/{hooks → .xtrm/hooks}/beads-compact-save.mjs +0 -0
  622. /package/{hooks → .xtrm/hooks}/beads-edit-gate.mjs +0 -0
  623. /package/{hooks → .xtrm/hooks}/beads-gate-core.mjs +0 -0
  624. /package/{hooks → .xtrm/hooks}/beads-gate-messages.mjs +0 -0
  625. /package/{hooks → .xtrm/hooks}/beads-gate-utils.mjs +0 -0
  626. /package/{hooks → .xtrm/hooks}/beads-stop-gate.mjs +0 -0
  627. /package/{hooks → .xtrm/hooks}/gitnexus/gitnexus-hook.cjs +0 -0
  628. /package/{hooks → .xtrm/hooks}/quality-check.cjs +0 -0
  629. /package/{hooks → .xtrm/hooks}/quality-check.py +0 -0
  630. /package/{hooks → .xtrm/hooks}/worktree-boundary.mjs +0 -0
  631. /package/{hooks → .xtrm/hooks}/xtrm-logger.mjs +0 -0
  632. /package/{hooks → .xtrm/hooks}/xtrm-session-logger.mjs +0 -0
  633. /package/{hooks → .xtrm/hooks}/xtrm-tool-logger.mjs +0 -0
@@ -1,425 +0,0 @@
1
- # Script Quality Standards for Service Skills
2
-
3
- > Distilled from the mercury-market-data implementation (Feb 2026).
4
- > Updated with lessons from the processing-papers implementation (Feb 2026).
5
- > Apply these standards to every script generated in Phase 2 of the service-skill-builder workflow.
6
-
7
- ---
8
-
9
- ## Table of Contents
10
-
11
- - [Mandatory DB Connection Pattern](#mandatory-db-connection-pattern)
12
- - [Schema Verification Before Writing Any SQL](#schema-verification-before-writing-any-sql)
13
- - [Makefile Standard](#makefile-standard)
14
- - [Design Principles](#design-principles)
15
- - [health_probe.py Standards](#health_probepy-standards)
16
- - [log_hunter.py Standards](#log_hunterpy-standards)
17
- - [Specialist Script Standards](#specialist-script-standards)
18
- - [Common Pitfalls](#common-pitfalls)
19
-
20
- ---
21
-
22
- ## Mandatory DB Connection Pattern
23
-
24
- **Every script that touches the database MUST use this exact pattern.** No exceptions.
25
-
26
- ```python
27
- #!/usr/bin/env python3
28
- import sys
29
- from pathlib import Path
30
- from dotenv import load_dotenv
31
-
32
- # Resolve project root (depth depends on script location within .claude/skills/)
33
- project_root = Path(__file__).resolve().parent.parent.parent.parent.parent
34
- env_file = project_root / ".env"
35
- if env_file.exists():
36
- load_dotenv(str(env_file))
37
-
38
- sys.path.insert(0, str(project_root))
39
- from shared.db_pool_manager import execute_db_query
40
- ```
41
-
42
- **Why:** System `python3` may lack `dotenv` and project deps. Always test with `venv/bin/python3`.
43
- **Never:** Raw `psycopg2`, hardcoded DSN strings, or skipping the `load_dotenv` call.
44
-
45
- ---
46
-
47
- ## Schema Verification Before Writing Any SQL
48
-
49
- Run these queries against the live DB **before** writing any script SQL. Paste the results
50
- into the delegation prompt so the agent never guesses column or table names.
51
-
52
- ```sql
53
- -- Step 1: Confirm which tables actually exist
54
- SELECT tablename FROM pg_tables WHERE schemaname = 'public' ORDER BY tablename;
55
-
56
- -- Step 2: For each output table — get exact column names and types
57
- SELECT column_name, data_type, is_nullable
58
- FROM information_schema.columns
59
- WHERE table_name = '<your_table>'
60
- ORDER BY ordinal_position;
61
- ```
62
-
63
- **Critical rule:** If a table has no timestamp column, use `COUNT(*)` for freshness checks —
64
- never guess a column name. Verify with `information_schema.columns` first.
65
-
66
- ---
67
-
68
- ## Makefile Standard
69
-
70
- Every `scripts/` directory MUST contain a `Makefile` with these standard targets.
71
- This is auto-generated by the scaffolder in Phase 1 and should be updated in Phase 2
72
- to add any service-specific targets.
73
-
74
- ```makefile
75
- # Skill diagnostic scripts for <service-id>
76
- # Usage: make <target> (from this directory)
77
- # Override python: make health PYTHON=../../venv/bin/python3
78
-
79
- PYTHON := python3
80
-
81
- .PHONY: health health-json data data-json logs errors db help
82
-
83
- help:
84
- @echo "Available targets:"
85
- @echo " health - Run health probe (human readable)"
86
- @echo " health-json - Run health probe (JSON output)"
87
- @echo " data - Show latest DB records"
88
- @echo " data-json - Show latest DB records (JSON, limit 5)"
89
- @echo " logs - Tail and analyze recent logs"
90
- @echo " errors - Show errors/criticals only"
91
- @echo " db - Run DB helper example queries"
92
-
93
- health:
94
- $(PYTHON) health_probe.py
95
-
96
- health-json:
97
- $(PYTHON) health_probe.py --json
98
-
99
- data:
100
- $(PYTHON) data_explorer.py
101
-
102
- data-json:
103
- $(PYTHON) data_explorer.py --json --limit 5
104
-
105
- logs:
106
- $(PYTHON) log_hunter.py --tail 50
107
-
108
- errors:
109
- $(PYTHON) log_hunter.py --errors-only --tail 50
110
-
111
- db:
112
- $(PYTHON) db_helper.py
113
- ```
114
-
115
- ---
116
-
117
- ## Design Principles
118
-
119
- ### 1. Service-Specific, Not Generic
120
-
121
- The single most important rule. Generic scripts provide zero value.
122
-
123
- **Wrong (generic stub output):**
124
- ```python
125
- error_patterns = [
126
- r"(ERROR|CRITICAL|FATAL|EXCEPTION)",
127
- r"ConnectionError",
128
- r"SyntaxError",
129
- r"ImportError",
130
- ]
131
- ```
132
-
133
- **Right (service-specific, sourced from actual codebase):**
134
- ```python
135
- PATTERNS = [
136
- # From yfinance source: actual exception class names
137
- ("Rate limit", r"YFRateLimitError|429.*yahoo|Too Many Requests", "error"),
138
- ("Missing data", r"YFPricesMissingError|no timezone found|Period.*invalid", "warning"),
139
- # From DB layer: actual psycopg2 messages
140
- ("DB connect", r"could not connect|password authentication failed", "critical"),
141
- ("DB write", r"relation.*does not exist|column.*does not exist", "error"),
142
- ]
143
- ```
144
-
145
- **How to find real patterns:** Read the service's entry point script, exception handlers, and log statements. Search for `logger.error`, `raise`, `except` blocks, and error message strings.
146
-
147
- ---
148
-
149
- ### 2. Port Awareness: Host vs. Container
150
-
151
- Scripts in `skills/` run on the host machine, not inside Docker. Port mappings matter.
152
-
153
- | Context | Use This Port |
154
- |---------|--------------|
155
- | Host scripts (`skills/*.py`) | External mapped port (e.g., `5433` for TimescaleDB `5433:5432`) |
156
- | Docker service env vars | Internal port (`5432`) |
157
- | `docker exec` commands | N/A — resolves via container DNS |
158
-
159
- **Always use env vars with correct defaults:**
160
- ```python
161
- DB_HOST = os.getenv("DB_HOST", "localhost")
162
- DB_PORT = int(os.getenv("DB_PORT", "5433")) # External mapped port
163
- ```
164
-
165
- ---
166
-
167
- ### 3. Read-Before-Write Discipline
168
-
169
- When a stub file already exists and you are replacing it, **always read it first**. Write tools fail with "File has not been read yet" otherwise. New files (no existing content) can be created directly.
170
-
171
- ---
172
-
173
- ### 4. Dual Output Mode
174
-
175
- Every script must support both human-readable (default) and machine-readable (`--json`) output.
176
-
177
- ```python
178
- parser.add_argument("--json", action="store_true", help="Output as JSON")
179
-
180
- if args.json:
181
- print(json.dumps(result, indent=2, default=str))
182
- return
183
- # ... human-readable output below
184
- ```
185
-
186
- ---
187
-
188
- ### 5. Actionable Remediation in Output
189
-
190
- When a health probe or log hunter detects a critical problem, it must print the exact fix command — not a generic "check the logs."
191
-
192
- ```python
193
- if by_sev["critical"]:
194
- print(f"\n ⚠ Critical issues detected.")
195
- if any("OAuth expired" in h["labels"] for h in by_sev["critical"]):
196
- print(f" Fix: docker exec -it {CONTAINER} python scripts/auth.py --refresh")
197
- if any("DB connect" in h["labels"] for h in by_sev["critical"]):
198
- print(f" Fix: docker compose restart timescaledb && docker compose restart {CONTAINER}")
199
- ```
200
-
201
- ---
202
-
203
- ## health_probe.py Standards
204
-
205
- ### Structure
206
-
207
- ```python
208
- CONTAINER = "service-name" # Exact Docker container name
209
-
210
- def check_container() -> dict:
211
- """docker inspect for status. Always present."""
212
- ...
213
-
214
- def check_<domain>() -> dict:
215
- """Service-specific check (DB freshness, file presence, HTTP endpoint, etc.)"""
216
- ...
217
-
218
- def main():
219
- # 1. Collect all checks
220
- # 2. --json: dump report dict
221
- # 3. Human: print formatted table
222
- # 4. Print fix commands on failure
223
- ```
224
-
225
- ### For DB-writing services: Freshness Table
226
-
227
- ```python
228
- # Define per-table stale thresholds based on service update frequency
229
- FRESHNESS_CHECKS = [
230
- # (table_name, timestamp_col, stale_threshold_minutes)
231
- ("candles_5m", "timestamp", 30), # 5m feed → stale if >30m old
232
- ("outright_snapshots", "snapshot_ts", 10), # continuous → stale if >10m old
233
- ("volatility_snapshots","snapshot_ts", 1500), # daily job → stale if >25h old
234
- ]
235
- ```
236
-
237
- Stale threshold logic: `update_interval × 3` is a reasonable default, but adjust for business criticality.
238
-
239
- ### For HTTP API services: Endpoint Probing
240
-
241
- Do not ping generic ports. Probe the actual API routes the service exposes:
242
-
243
- ```python
244
- HEALTH_ENDPOINTS = [
245
- ("FastAPI health", "http://localhost:8000/api/system/health", 3),
246
- ("Background server", "http://localhost:5002/health", 2),
247
- ]
248
- # Optional smoke tests against real data endpoints
249
- SMOKE_ENDPOINTS = [
250
- ("Market snapshot", "http://localhost:8000/api/market/snapshot"),
251
- ("Volatility data", "http://localhost:8000/api/analytics/volatility"),
252
- ]
253
- ```
254
-
255
- ### For one-shot services (migrations, backfills): Exit Code
256
-
257
- ```python
258
- # docker inspect returns status="exited" and exit_code="0" on success
259
- result = subprocess.run(
260
- ["docker", "inspect", "--format",
261
- "{{.State.Status}} {{.State.ExitCode}} {{.State.FinishedAt}}",
262
- CONTAINER],
263
- capture_output=True, text=True
264
- )
265
- ```
266
-
267
- A one-shot service is healthy if `exit_code == "0"` and expected tables/schemas exist in the DB.
268
-
269
- ### For file watcher services: Mount + State File
270
-
271
- ```python
272
- def check_scid_mount() -> dict:
273
- result = subprocess.run(
274
- ["docker", "exec", CONTAINER, "ls", "/data/scid"],
275
- capture_output=True, text=True, timeout=10
276
- )
277
- files = [f for f in result.stdout.splitlines() if f.endswith(".scid")]
278
- return {"accessible": result.returncode == 0, "file_count": len(files)}
279
-
280
- def check_state_file() -> dict:
281
- result = subprocess.run(
282
- ["docker", "exec", CONTAINER, "cat", "/app/state/watcher_state.json"],
283
- capture_output=True, text=True
284
- )
285
- if result.returncode != 0:
286
- return {"present": False}
287
- return {"present": True, "state": json.loads(result.stdout)}
288
- ```
289
-
290
- ---
291
-
292
- ## log_hunter.py Standards
293
-
294
- ### Pattern Structure
295
-
296
- ```python
297
- PATTERNS = [
298
- # (label, regex_pattern, severity)
299
- ("OAuth expired", r"invalid_grant|token.*expired", "critical"),
300
- ("PDF parse", r"PdfReadError|pdf.*format.*changed", "error"),
301
- ("No data", r"No new.*report|0 reports.*found", "warning"),
302
- ("Report saved", r"report.*ingested|saved.*DB", "info"),
303
- ]
304
- ```
305
-
306
- **Severity levels:**
307
- - `critical`: Service needs restart or manual intervention to recover
308
- - `error`: Functionality is impaired, data may be incomplete
309
- - `warning`: Degraded state, worth monitoring
310
- - `info`: Normal operation confirmation
311
-
312
- ### Severity Ordering
313
-
314
- Always use `sev_order` so that the highest severity "wins" when a line matches multiple patterns:
315
-
316
- ```python
317
- sev_order = {"critical": 0, "error": 1, "warning": 2, "info": 3}
318
- if matched_severity is None or sev_order[severity] < sev_order[matched_severity]:
319
- matched_severity = severity
320
- ```
321
-
322
- ### Required CLI Flags
323
-
324
- ```python
325
- parser.add_argument("--tail", type=int, default=200)
326
- parser.add_argument("--since", type=str, default=None) # Docker --since (e.g. "1h", "2026-01-01")
327
- parser.add_argument("--errors-only", action="store_true") # Skip info entries
328
- parser.add_argument("--json", action="store_true")
329
- ```
330
-
331
- ### Pattern Design Rules
332
-
333
- 1. Test patterns against the **actual log format** of the service, not hypothetical messages.
334
- 2. Use `re.IGNORECASE` — log levels and messages vary in capitalization.
335
- 3. Prefer specific class names (`YFPricesMissingError`) over generic keywords (`Error`).
336
- 4. For Rust services, add: `r"thread '.*' panicked|panicked at '"` as a critical pattern.
337
- 5. Always include at least 2 `info` patterns for normal operation confirmation — so the absence of info lines itself becomes a signal.
338
-
339
- ### Anti-patterns to avoid
340
-
341
- | Anti-pattern | Why It Fails |
342
- |---|---|
343
- | `r"ERROR"` | Matches comment text, variable names, and dozens of false positives |
344
- | `r"Exception"` | Too broad — every Python `try/except` emits this |
345
- | `r"ConnectionError"` | Only catches one subclass; misses `OperationalError`, `InterfaceError`, etc. |
346
- | Single `error_patterns` list without severity | Provides no triage — everything looks equally bad |
347
-
348
- ---
349
-
350
- ## Specialist Script Standards
351
-
352
- ### data_explorer.py (for DB-writing services)
353
-
354
- Purpose: Let an agent query the service's output tables interactively without writing SQL.
355
-
356
- ```python
357
- # Always support:
358
- parser.add_argument("--symbol", help="Filter to a specific symbol")
359
- parser.add_argument("--history", action="store_true", help="Show time series, not just latest")
360
- parser.add_argument("--limit", type=int, default=20)
361
- parser.add_argument("--json", action="store_true")
362
- ```
363
-
364
- Use `DISTINCT ON (symbol) ... ORDER BY symbol, timestamp DESC` for "latest per symbol" queries. Use parameterized queries: `WHERE symbol = %s`.
365
-
366
- ### endpoint_tester.py (for HTTP API services)
367
-
368
- Test every real route in the API, not just `/health`. Measure response time and size:
369
-
370
- ```python
371
- ENDPOINTS = [
372
- # (label, method, path, expected_status, timeout_s)
373
- ("Health check", "GET", "/api/system/health", 200, 3),
374
- ("Market overview", "GET", "/api/market/overview", 200, 5),
375
- ("Symbol detail", "GET", "/api/market/ES=F", 200, 5),
376
- # ... all actual routes
377
- ]
378
- ```
379
-
380
- Report slow endpoints (>2s) separately from failed ones.
381
-
382
- ### state_inspector.py (for stateful file watchers)
383
-
384
- Read the state file via `docker exec` and compute lag between current file size and processed byte offset:
385
-
386
- ```python
387
- scid_size = get_file_size_in_container(container, filepath)
388
- lag_bytes = scid_size - state["byte_offset"]
389
- lag_flag = " ⚠" if lag_bytes > 1_000_000 else ""
390
- ```
391
-
392
- ### coverage_checker.py (for one-shot backfill services)
393
-
394
- Report per-entity (spread, symbol, etc.) row counts, date ranges, and gaps:
395
-
396
- ```sql
397
- SELECT entity_id, COUNT(*) AS rows,
398
- MIN(ts) AS earliest, MAX(ts) AS latest
399
- FROM output_table
400
- GROUP BY entity_id ORDER BY entity_id;
401
- ```
402
-
403
- Also detect missing entities against a known expected list, and find time-series gaps using `LAG()`.
404
-
405
- ---
406
-
407
- ## Common Pitfalls
408
-
409
- | Pitfall | Prevention |
410
- |---------|-----------|
411
- | Script uses port 5432 from host | Default to 5433 (external mapped port); document the discrepancy |
412
- | Script uses HTTP port scanning instead of real routes | Read docker-compose to find actual port mappings; check the service's API routes |
413
- | OAuth token path is wrong | `docker exec container ls /expected/path` to verify before hardcoding |
414
- | **DB table name is guessed** | Run `SELECT tablename FROM pg_tables WHERE schemaname='public'` first; include output in delegation prompt |
415
- | **DB column name is guessed** | Run `SELECT column_name, data_type FROM information_schema.columns WHERE table_name='X'` per table; include in delegation prompt |
416
- | **Assumed timestamp column on every table** | Check `information_schema.columns` — if no timestamp exists, use `COUNT(*)` for freshness; never guess |
417
- | `try` block with no matching `except` | Every DB call needs a complete `try/except`; bare `try` blocks crash silently |
418
- | Function renamed but call sites not updated | After any rename, grep the scripts dir for the old name before finishing |
419
- | Delegation with no `-y` flag (Qwen) | Qwen requires `-y` for non-interactive file writes; without it, research happens but no files are written |
420
- | Using `ccs gemini` instead of `gemini -p` | Gemini: `gemini -p "..."` · Qwen: `qwen -y "..."` · GLM: `env -u CLAUDECODE ccs glm -p "..."` |
421
- | Scripts tested with system python3 | Always test with `venv/bin/python3`; system python may lack dotenv and other deps |
422
- | Log patterns too broad | Read the actual `logger.error()` calls in the source code |
423
- | Missing `--since` flag | Log hunters without `--since` can't be used for incremental monitoring |
424
- | `health_probe.py` doesn't print fix commands | Always add actionable remediation text after detecting critical states |
425
- | No `scripts/Makefile` | Every skill must have a Makefile with standard targets; scaffolder generates it in Phase 1 |
@@ -1,278 +0,0 @@
1
- # Service Skill System: Architecture & Operations Guide
2
-
3
- > Distilled from real-world Docker microservices projects.
4
- > This guide is project-agnostic — adapt all examples to your stack.
5
-
6
- ---
7
-
8
- ## Table of Contents
9
-
10
- - [1. System Overview](#1-system-overview)
11
- - [2. System Architecture](#2-system-architecture)
12
- - [3. Mandatory Two-Phase Workflow](#3-mandatory-two-phase-workflow)
13
- - [4. Service Type Classification](#4-service-type-classification)
14
- - [5. Directory Structure](#5-directory-structure)
15
- - [6. Skill Lifecycle](#6-skill-lifecycle)
16
- - [7. Quality Gates](#7-quality-gates)
17
- - [8. Best Practices](#8-best-practices)
18
- - [9. Anti-Patterns](#9-anti-patterns)
19
-
20
- ---
21
-
22
- ## 1. System Overview
23
-
24
- The **Service Skill System** transforms an AI agent from a generic assistant into a service-aware operator. Each Docker service in your project gets a dedicated **skill package**: a structured combination of operational documentation and executable diagnostic scripts.
25
-
26
- ### What a Skill Provides
27
-
28
- | Layer | Contents | Purpose |
29
- |-------|----------|---------|
30
- | `SKILL.md` | Operational manual | How the service works, how to debug it |
31
- | `scripts/health_probe.py` | Container + data freshness checks | Is the service healthy right now? |
32
- | `scripts/log_hunter.py` | Pattern-based log analysis | What is the service logging and why? |
33
- | `scripts/<specialist>.py` | Service-specific inspector | What state does this service hold? |
34
-
35
- Without scripts, a skill is documentation only. Without documentation, scripts have no context. Both are required.
36
-
37
- ---
38
-
39
- ## 2. System Architecture
40
-
41
- ### Three Components
42
-
43
- **A. The Builder (`service-skill-builder`)**
44
- The meta-skill that generates other skills.
45
- - **Input**: `docker-compose*.yml`, Dockerfiles, entry-point source code
46
- - **Engine**: `scripts/main.py` (Phase 1 skeleton generator)
47
- - **Output**: `SKILL.md`, `REFINEMENT_BRIEF.md`, stub scripts → then replaced in Phase 2
48
-
49
- **B. The Health Checker (`scripts/skill_health_check.py`)**
50
- Detects drift between skills and the live codebase.
51
- - Compares service modification timestamps vs. skill generation timestamps
52
- - Identifies services with no skill (coverage gaps)
53
- - Reports stale skills needing a re-dive
54
-
55
- **C. The Generated Skills**
56
- Individual packages per service (e.g., `.claude/skills/my-service/`).
57
-
58
- ---
59
-
60
- ## 3. Mandatory Two-Phase Workflow
61
-
62
- **Phase 1 and Phase 2 are both required. The skeleton alone is never sufficient.**
63
-
64
- ### Phase 1: Automated Skeleton
65
-
66
- Run the generator against your project root:
67
-
68
- ```bash
69
- # Discover all Docker services
70
- python3 .claude/skills/service-skill-builder/scripts/main.py --scan
71
-
72
- # Generate skeleton for one service
73
- python3 .claude/skills/service-skill-builder/scripts/main.py <service-name>
74
- ```
75
-
76
- The skeleton provides:
77
- - Structural facts: port mappings, env var names, image names, volumes
78
- - `REFINEMENT_BRIEF.md` listing every open question
79
- - Generic stub scripts (placeholder only — **must be replaced**)
80
-
81
- **The skeleton cannot tell you:**
82
- - What the service actually writes to the database (column names, stale thresholds)
83
- - What real error messages look like in the logs
84
- - What "healthy" vs. "degraded" vs. "failed" looks like
85
- - What exact commands fix common failures
86
-
87
- ### Phase 2: Agentic Deep Dive
88
-
89
- Read the source code. Answer every question in `REFINEMENT_BRIEF.md` using `Grep`, `Glob`, `Read`, and Serena LSP tools. Do not guess. Do not leave placeholders.
90
-
91
- **Mandatory investigation areas:**
92
-
93
- #### Container & Runtime
94
- - What is the exact entry point? (Dockerfile CMD + docker-compose `command:`)
95
- - Is this a long-running daemon, a cron job, or a one-shot? → determines health strategy
96
- - Which env vars cause a crash if missing? Which are optional?
97
- - What volumes does it read from? Write to?
98
- - What is the restart policy and why?
99
-
100
- #### Data Layer
101
- - Which tables does it write? Which does it only read?
102
- - What is the timestamp column for each output table (`created_at`, `snapshot_ts`, `asof_ts`, etc.)?
103
- - What is a realistic "stale" threshold in minutes per table? (Rule of thumb: update_interval × 3)
104
- - Does it use Redis, S3, local files, or other external state?
105
- - Are queries parameterized? (Check `%s`, `%(name)s`, `?` patterns — never f-strings in SQL)
106
-
107
- #### Failure Modes
108
- Build this table with ≥5 rows from code comments, exception handlers, and READMEs:
109
-
110
- | Symptom | Likely Cause | Resolution |
111
- |---------|-------------|------------|
112
- | (what you see in logs or alerts) | (root cause) | (exact docker/shell command to fix) |
113
-
114
- #### Log Patterns
115
- Search for `logger.error`, `logger.warning`, `raise`, `except`, and `panic!` in the source:
116
- - What appears in logs during normal healthy operation? (→ `info` patterns)
117
- - What appears during recoverable errors? (→ `warning` / `error` patterns)
118
- - What appears during critical failures requiring restart? (→ `critical` patterns)
119
- - For Rust services: what does a panic look like? (`thread '.*' panicked`)
120
-
121
- ---
122
-
123
- ## 4. Service Type Classification
124
-
125
- Classify before writing scripts. The service type determines which scripts to write beyond the baseline `health_probe.py` and `log_hunter.py`.
126
-
127
- | Service Type | Health Probe Strategy | Specialist Script |
128
- |---|---|---|
129
- | **Continuous DB writer** | Table freshness (age of most recent row per table) | `data_explorer.py` |
130
- | **HTTP API server** | HTTP probe against real routes (not just port scan) | `endpoint_tester.py` |
131
- | **One-shot / migration** | Container exit code + expected tables/schemas present | `coverage_checker.py` |
132
- | **File watcher** | Mount path accessible + state file present + DB recency | `state_inspector.py` |
133
- | **Email / API poller** | Container running + auth token file present | service-specific |
134
- | **Scheduled backup** | Recent backup files in staging dir + daemon running | service-specific |
135
- | **MCP stdio server** | Data source freshness in DB (no HTTP to probe) | service-specific |
136
-
137
- ---
138
-
139
- ## 5. Directory Structure
140
-
141
- ```
142
- .claude/skills/
143
- ├── service-skill-builder/ # Meta-skill (system core)
144
- │ ├── SKILL.md
145
- │ ├── references/
146
- │ │ ├── service_skill_system_guide.md # This file
147
- │ │ └── script_quality_standards.md # Script design rules
148
- │ └── scripts/
149
- │ ├── main.py # Phase 1 skeleton generator
150
- │ ├── skill_health_check.py # Drift detection
151
- │ ├── discovery.py # Docker Compose parser
152
- │ ├── analysis.py # AST/regex code analyzer
153
- │ ├── devops_audit.py # CI/CD/observability audit
154
- │ └── generator.py # Skill file generation logic
155
-
156
- ├── my-service-a/ # Generated skill (long-running daemon)
157
- │ ├── SKILL.md
158
- │ └── scripts/
159
- │ ├── health_probe.py # Container + DB freshness checks
160
- │ ├── log_hunter.py # Pattern-matched log analysis
161
- │ └── data_explorer.py # Query output tables interactively
162
-
163
- ├── my-service-b/ # Generated skill (HTTP API)
164
- │ ├── SKILL.md
165
- │ └── scripts/
166
- │ ├── health_probe.py
167
- │ ├── log_hunter.py
168
- │ └── endpoint_tester.py # Probe all real API routes
169
-
170
- └── my-service-c/ # Generated skill (file watcher)
171
- ├── SKILL.md
172
- └── scripts/
173
- ├── health_probe.py
174
- ├── log_hunter.py
175
- └── state_inspector.py # Read state file, compute lag
176
- ```
177
-
178
- Agent mirrors — always sync after creating or updating skills:
179
-
180
- ```bash
181
- for d in .claude/skills/my-*/; do
182
- svc=$(basename "$d")
183
- cp -r "$d" ".agent/skills/$svc/"
184
- cp -r "$d" ".gemini/skills/$svc/"
185
- done
186
- ```
187
-
188
- ---
189
-
190
- ## 6. Skill Lifecycle
191
-
192
- ### When to Generate a Skill
193
- - A new Docker service is added to the project
194
- - An existing service is significantly refactored
195
-
196
- ### When to Update a Skill
197
- - The service's database schema changes
198
- - New error conditions are added to the code
199
- - The entry point or restart policy changes
200
- - The health check script's stale thresholds no longer reflect reality
201
-
202
- ### Detecting Drift
203
-
204
- ```bash
205
- # Check all skills for staleness
206
- python3 .claude/skills/service-skill-builder/scripts/skill_health_check.py --all
207
- ```
208
-
209
- Output example:
210
- ```
211
- my-service-a: HEALTHY
212
- my-service-b: STALE (service code modified 2026-01-15, skill generated 2025-11-01)
213
- my-service-c: MISSING (no skill exists)
214
- ```
215
-
216
- A skill is **STALE** when the service's source code or docker-compose definition has been modified more recently than the skill was generated. This is a signal to re-run Phase 2 for the affected service.
217
-
218
- ---
219
-
220
- ## 7. Quality Gates
221
-
222
- A skill is **complete** (not draft) when all of the following are true:
223
-
224
- - [ ] No `[PENDING RESEARCH]` markers remain in SKILL.md
225
- - [ ] All stub scripts have been replaced with service-specific implementations
226
- - [ ] `health_probe.py` queries actual output tables with correct stale thresholds
227
- - [ ] `log_hunter.py` patterns are sourced from the real codebase (not invented)
228
- - [ ] At least one specialist script exists if the service has unique inspectable state
229
- - [ ] The Troubleshooting table has ≥5 rows based on real failure modes
230
- - [ ] All CLI commands in SKILL.md are verified against the actual docker-compose config
231
- - [ ] Scripts have been synced to `.agent/skills/` and `.gemini/skills/` mirrors
232
-
233
- ---
234
-
235
- ## 8. Best Practices
236
-
237
- ### One Service, One Skill
238
- Keep skills granular. A skill for `my-api` should not also document `my-worker`. Tightly coupled services (e.g., Redis master/replica) may share a skill if they are always operated together.
239
-
240
- ### Read Source, Not Docs
241
- Internal README files go stale. The entry point script, exception handlers, and log statements are the ground truth. Always grep the source code for actual error messages before writing log patterns.
242
-
243
- ### Port Awareness
244
- Scripts in `skills/` run on the **host machine**, not inside Docker. Always use the external mapped port:
245
-
246
- ```python
247
- # ✅ Host script (external mapped port)
248
- DB_PORT = int(os.getenv("DB_PORT", "5433"))
249
-
250
- # ❌ Wrong for a host script (container-internal port)
251
- DB_PORT = int(os.getenv("DB_PORT", "5432"))
252
- ```
253
-
254
- ### Executable Knowledge
255
- Prefer putting logic into `scripts/` (executed without reading into context) over text-only descriptions in SKILL.md. An agent that can run `health_probe.py` learns the truth about service health in one step. An agent reading stale prose may act on incorrect assumptions.
256
-
257
- ### Actionable Remediation
258
- Every critical failure detected by a script must print the exact command to fix it — not "check the logs." For example:
259
-
260
- ```python
261
- if not token_present:
262
- print(f" Fix: docker exec -it {CONTAINER} python scripts/auth.py --refresh")
263
- ```
264
-
265
- ---
266
-
267
- ## 9. Anti-Patterns
268
-
269
- | Anti-pattern | Why It Fails |
270
- |---|---|
271
- | Skip Phase 2 because Phase 1 looks complete | Skeleton has correct port numbers but wrong table names, wrong log patterns, wrong stale thresholds |
272
- | Copy log patterns from another service's skill | Different services emit different errors; shared patterns produce false positives and miss real failures |
273
- | Use port 5432 in host scripts | Container-internal port is unreachable from host; scripts silently hang |
274
- | Write `health_probe.py` without fix commands | Agent sees a failure but has no recovery path |
275
- | Leave `[PENDING RESEARCH]` markers | The skill is unusable — an agent acting on incomplete info may apply wrong fixes |
276
- | Forget to sync to `.agent/` and `.gemini/` | Other agent runtimes use stale or missing skills |
277
- | Use `r"ERROR"` as a log pattern | Matches variable names, comments, thousands of false positives |
278
- | Hardcode table names without verifying | `SELECT tablename FROM pg_tables WHERE schemaname='public'` first |