xtrm-tools 2.1.6 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/cli/dist/index.cjs +31 -8
  2. package/cli/dist/index.cjs.map +1 -1
  3. package/cli/package.json +4 -1
  4. package/config/hooks.json +5 -0
  5. package/hooks/README.md +19 -0
  6. package/hooks/beads-stop-gate.mjs +1 -0
  7. package/hooks/main-guard-post-push.mjs +71 -0
  8. package/package.json +11 -4
  9. package/project-skills/{py-quality-gate → quality-gates}/.claude/settings.json +10 -0
  10. package/project-skills/quality-gates/.claude/skills/using-quality-gates/SKILL.md +254 -0
  11. package/project-skills/quality-gates/README.md +109 -0
  12. package/project-skills/quality-gates/evals/evals.json +181 -0
  13. package/project-skills/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +75 -0
  14. package/project-skills/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +59 -0
  15. package/project-skills/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +60 -0
  16. package/project-skills/quality-gates/workspace/iteration-1/eval-summary.md +105 -0
  17. package/project-skills/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +93 -0
  18. package/project-skills/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +104 -0
  19. package/project-skills/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +74 -0
  20. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +18 -0
  21. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +18 -0
  22. package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +56 -0
  23. package/project-skills/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +67 -0
  24. package/project-skills/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +97 -0
  25. package/project-skills/tdd-guard/.claude/hooks/tdd-guard-pretool-bridge.cjs +0 -1
  26. package/hooks/__pycache__/agent_context.cpython-314.pyc +0 -0
  27. package/project-skills/py-quality-gate/.claude/skills/using-py-quality-gate/SKILL.md +0 -112
  28. package/project-skills/py-quality-gate/README.md +0 -147
  29. package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/doc_reminder.cpython-314.pyc +0 -0
  30. package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/skill_staleness.cpython-314.pyc +0 -0
  31. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/__pycache__/bootstrap.cpython-314.pyc +0 -0
  32. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
  33. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/cataloger.cpython-314.pyc +0 -0
  34. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/skill_activator.cpython-314.pyc +0 -0
  35. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/test_skill_activator.cpython-314-pytest-9.0.2.pyc +0 -0
  36. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
  37. package/project-skills/service-skills-set/__pycache__/install-service-skills.cpython-314.pyc +0 -0
  38. package/project-skills/ts-quality-gate/.claude/settings.json +0 -16
  39. package/project-skills/ts-quality-gate/.claude/skills/using-ts-quality-gate/SKILL.md +0 -81
  40. package/project-skills/ts-quality-gate/README.md +0 -115
  41. package/skills/documenting/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
  42. package/skills/documenting/scripts/__pycache__/orchestrator.cpython-314.pyc +0 -0
  43. package/skills/documenting/scripts/__pycache__/validate_metadata.cpython-314.pyc +0 -0
  44. package/skills/documenting/scripts/changelog/__pycache__/__init__.cpython-314.pyc +0 -0
  45. package/skills/documenting/scripts/changelog/__pycache__/add_entry.cpython-314.pyc +0 -0
  46. package/skills/documenting/scripts/changelog/__pycache__/bump_release.cpython-314.pyc +0 -0
  47. package/skills/documenting/scripts/changelog/__pycache__/validate_changelog.cpython-314.pyc +0 -0
  48. package/skills/documenting/tests/__pycache__/test_changelog.cpython-314-pytest-9.0.2.pyc +0 -0
  49. package/skills/documenting/tests/__pycache__/test_drift_detector.cpython-314-pytest-9.0.2.pyc +0 -0
  50. package/skills/documenting/tests/__pycache__/test_orchestrator.cpython-314-pytest-9.0.2.pyc +0 -0
  51. package/skills/documenting/tests/__pycache__/test_validate_metadata.cpython-314-pytest-9.0.2.pyc +0 -0
  52. package/skills/documenting/tests/integration_test.sh +0 -70
  53. package/skills/documenting/tests/test_changelog.py +0 -201
  54. package/skills/documenting/tests/test_drift_detector.py +0 -80
  55. package/skills/documenting/tests/test_orchestrator.py +0 -52
  56. package/skills/documenting/tests/test_validate_metadata.py +0 -64
  57. /package/project-skills/{ts-quality-gate → quality-gates}/.claude/hooks/hook-config.json +0 -0
  58. /package/project-skills/{ts-quality-gate → quality-gates}/.claude/hooks/quality-check.cjs +0 -0
  59. /package/project-skills/{py-quality-gate → quality-gates}/.claude/hooks/quality-check.py +0 -0
@@ -41089,8 +41089,28 @@ async function installProjectSkill(toolName, projectRootOverride) {
41089
41089
  console.log(kleur_default.white(` Please read: ${kleur_default.cyan(".claude/docs/" + toolName + "-readme.md")}
41090
41090
  `));
41091
41091
  if (toolName === "tdd-guard") {
41092
- console.log(kleur_default.white(" Example for Vitest:"));
41093
- console.log(kleur_default.dim(" npm install --save-dev tdd-guard-vitest\n"));
41092
+ const tddGuardCheck = (0, import_child_process3.spawnSync)("tdd-guard", ["--version"], { stdio: "pipe" });
41093
+ if (tddGuardCheck.status !== 0) {
41094
+ console.log(kleur_default.red(" \u2717 tdd-guard CLI not found globally!\n"));
41095
+ console.log(kleur_default.white(" Install the global CLI:"));
41096
+ console.log(kleur_default.cyan(" npm install -g tdd-guard\n"));
41097
+ } else {
41098
+ console.log(kleur_default.green(" \u2713 tdd-guard CLI found globally"));
41099
+ }
41100
+ console.log(kleur_default.white("\n Install a test reporter (choose one):"));
41101
+ console.log(kleur_default.dim(" npm install --save-dev tdd-guard-vitest # Vitest"));
41102
+ console.log(kleur_default.dim(" npm install --save-dev tdd-guard-jest # Jest"));
41103
+ console.log(kleur_default.dim(" pip install tdd-guard-pytest # pytest\n"));
41104
+ }
41105
+ if (toolName === "quality-gates") {
41106
+ console.log(kleur_default.white(" Install language dependencies:\n"));
41107
+ console.log(kleur_default.white(" TypeScript:"));
41108
+ console.log(kleur_default.dim(" npm install --save-dev typescript eslint prettier"));
41109
+ console.log(kleur_default.white("\n Python:"));
41110
+ console.log(kleur_default.dim(" pip install ruff mypy"));
41111
+ console.log(kleur_default.white("\n For TDD (test-first) enforcement, install separately:"));
41112
+ console.log(kleur_default.dim(" npm install -g tdd-guard"));
41113
+ console.log(kleur_default.dim(" xtrm install project tdd-guard\n"));
41094
41114
  }
41095
41115
  console.log(kleur_default.green(" \u2713 Installation complete!\n"));
41096
41116
  }
@@ -41115,10 +41135,8 @@ Installing ${skills.length} project skills:
41115
41135
  function buildProjectInitGuide() {
41116
41136
  const lines = [
41117
41137
  kleur_default.bold("\nProject Init \u2014 Recommended baseline\n"),
41118
- `${kleur_default.cyan("1) Install a quality gate skill (or equivalent checks):")}`,
41119
- kleur_default.dim(" - TypeScript projects: xtrm install project ts-quality-gate"),
41120
- kleur_default.dim(" - Python projects: xtrm install project py-quality-gate"),
41121
- kleur_default.dim(" - TDD workflow: xtrm install project tdd-guard"),
41138
+ `${kleur_default.cyan("1) Install quality gates (unified TDD + lint + typecheck workflow):")}`,
41139
+ kleur_default.dim(" xtrm install project quality-gates"),
41122
41140
  "",
41123
41141
  `${kleur_default.cyan("2) Ensure your checks are actually configured in this repo:")}`,
41124
41142
  kleur_default.dim(" - Testing: commands should run and fail when behavior regresses"),
@@ -41126,14 +41144,18 @@ function buildProjectInitGuide() {
41126
41144
  kleur_default.dim(" - Type checks: tsc (TS) or mypy/pyright (Python)"),
41127
41145
  kleur_default.dim(" - Hooks only enforce what your project config defines"),
41128
41146
  "",
41129
- `${kleur_default.cyan("3) Optional: Service Skills Set (service-skills-set)")}`,
41147
+ `${kleur_default.cyan("3) Optional: TDD Guard (standalone, for test-first enforcement)")}`,
41148
+ kleur_default.dim(" xtrm install project tdd-guard"),
41149
+ kleur_default.dim(" - Requires language-specific test reporter (tdd-guard-vitest, tdd-guard-pytest, etc.)"),
41150
+ "",
41151
+ `${kleur_default.cyan("4) Optional: Service Skills Set (service-skills-set)")}`,
41130
41152
  kleur_default.dim(" - For multi-service/Docker repos with repeated operational workflows"),
41131
41153
  kleur_default.dim(" - Adds project hooks + skills that route Claude to service-specific context"),
41132
41154
  kleur_default.dim(" - Helps keep architecture knowledge persistent across sessions"),
41133
41155
  "",
41134
41156
  kleur_default.bold("Quick start commands:"),
41135
41157
  kleur_default.dim(" xtrm install project list"),
41136
- kleur_default.dim(" xtrm install project ts-quality-gate # or py-quality-gate / tdd-guard"),
41158
+ kleur_default.dim(" xtrm install project quality-gates"),
41137
41159
  ""
41138
41160
  ];
41139
41161
  return lines.join("\n");
@@ -55630,6 +55652,7 @@ var import_path15 = __toESM(require("path"), 1);
55630
55652
  var import_fs_extra14 = __toESM(require_lib2(), 1);
55631
55653
  var HOOK_CATALOG = [
55632
55654
  { file: "main-guard.mjs", event: "PreToolUse", desc: "Blocks direct edits on protected branches" },
55655
+ { file: "main-guard-post-push.mjs", event: "PostToolUse", desc: "After feature-branch push, reminds PR/merge/sync steps" },
55633
55656
  { file: "skill-suggestion.py", event: "UserPromptSubmit", desc: "Suggests relevant skills based on user prompt" },
55634
55657
  { file: "serena-workflow-reminder.py", event: "SessionStart", desc: "Injects Serena semantic editing workflow reminder" },
55635
55658
  { file: "type-safety-enforcement.py", event: "PreToolUse", desc: "Prevents risky Bash and enforces safe edit patterns" },