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.
- package/cli/dist/index.cjs +31 -8
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +4 -1
- package/config/hooks.json +5 -0
- package/hooks/README.md +19 -0
- package/hooks/beads-stop-gate.mjs +1 -0
- package/hooks/main-guard-post-push.mjs +71 -0
- package/package.json +11 -4
- package/project-skills/{py-quality-gate → quality-gates}/.claude/settings.json +10 -0
- package/project-skills/quality-gates/.claude/skills/using-quality-gates/SKILL.md +254 -0
- package/project-skills/quality-gates/README.md +109 -0
- package/project-skills/quality-gates/evals/evals.json +181 -0
- package/project-skills/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +75 -0
- package/project-skills/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +59 -0
- package/project-skills/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +60 -0
- package/project-skills/quality-gates/workspace/iteration-1/eval-summary.md +105 -0
- package/project-skills/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +93 -0
- package/project-skills/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +104 -0
- package/project-skills/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +74 -0
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +18 -0
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +18 -0
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +56 -0
- package/project-skills/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +67 -0
- package/project-skills/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +97 -0
- package/project-skills/tdd-guard/.claude/hooks/tdd-guard-pretool-bridge.cjs +0 -1
- package/hooks/__pycache__/agent_context.cpython-314.pyc +0 -0
- package/project-skills/py-quality-gate/.claude/skills/using-py-quality-gate/SKILL.md +0 -112
- package/project-skills/py-quality-gate/README.md +0 -147
- package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/doc_reminder.cpython-314.pyc +0 -0
- package/project-skills/service-skills-set/.claude/git-hooks/__pycache__/skill_staleness.cpython-314.pyc +0 -0
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/__pycache__/bootstrap.cpython-314.pyc +0 -0
- package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/cataloger.cpython-314.pyc +0 -0
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/skill_activator.cpython-314.pyc +0 -0
- 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
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
- package/project-skills/service-skills-set/__pycache__/install-service-skills.cpython-314.pyc +0 -0
- package/project-skills/ts-quality-gate/.claude/settings.json +0 -16
- package/project-skills/ts-quality-gate/.claude/skills/using-ts-quality-gate/SKILL.md +0 -81
- package/project-skills/ts-quality-gate/README.md +0 -115
- package/skills/documenting/scripts/__pycache__/drift_detector.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/__pycache__/orchestrator.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/__pycache__/validate_metadata.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/changelog/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/changelog/__pycache__/add_entry.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/changelog/__pycache__/bump_release.cpython-314.pyc +0 -0
- package/skills/documenting/scripts/changelog/__pycache__/validate_changelog.cpython-314.pyc +0 -0
- package/skills/documenting/tests/__pycache__/test_changelog.cpython-314-pytest-9.0.2.pyc +0 -0
- package/skills/documenting/tests/__pycache__/test_drift_detector.cpython-314-pytest-9.0.2.pyc +0 -0
- package/skills/documenting/tests/__pycache__/test_orchestrator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/skills/documenting/tests/__pycache__/test_validate_metadata.cpython-314-pytest-9.0.2.pyc +0 -0
- package/skills/documenting/tests/integration_test.sh +0 -70
- package/skills/documenting/tests/test_changelog.py +0 -201
- package/skills/documenting/tests/test_drift_detector.py +0 -80
- package/skills/documenting/tests/test_orchestrator.py +0 -52
- package/skills/documenting/tests/test_validate_metadata.py +0 -64
- /package/project-skills/{ts-quality-gate → quality-gates}/.claude/hooks/hook-config.json +0 -0
- /package/project-skills/{ts-quality-gate → quality-gates}/.claude/hooks/quality-check.cjs +0 -0
- /package/project-skills/{py-quality-gate → quality-gates}/.claude/hooks/quality-check.py +0 -0
package/cli/dist/index.cjs
CHANGED
|
@@ -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
|
-
|
|
41093
|
-
|
|
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
|
|
41119
|
-
kleur_default.dim("
|
|
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:
|
|
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
|
|
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" },
|