xtrm-tools 2.0.2 → 2.1.0

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 (30) hide show
  1. package/README.md +0 -2
  2. package/cli/dist/index.cjs +19 -19
  3. package/cli/dist/index.cjs.map +1 -1
  4. package/cli/package.json +1 -1
  5. package/config/hooks.json +33 -0
  6. package/hooks/README.md +108 -5
  7. package/hooks/beads-close-memory-prompt.mjs +49 -0
  8. package/hooks/beads-commit-gate.mjs +64 -0
  9. package/hooks/beads-edit-gate.mjs +72 -0
  10. package/hooks/beads-gate-utils.mjs +121 -0
  11. package/hooks/beads-stop-gate.mjs +61 -0
  12. package/hooks/main-guard.mjs +149 -0
  13. package/package.json +3 -2
  14. package/project-skills/py-quality-gate/.claude/settings.json +1 -1
  15. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/SKILL.md +12 -12
  16. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/script_quality_standards.md +13 -0
  17. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/service_skill_system_guide.md +14 -0
  18. package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/__pycache__/bootstrap.cpython-314.pyc +0 -0
  19. package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/SKILL.md +6 -6
  20. package/project-skills/service-skills-set/.claude/skills/updating-service-skills/SKILL.md +1 -1
  21. package/project-skills/service-skills-set/.claude/skills/using-service-skills/SKILL.md +2 -2
  22. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/__pycache__/skill_activator.cpython-314.pyc +0 -0
  23. 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
  24. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/skill_activator.py +2 -2
  25. package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/test_skill_activator.py +58 -0
  26. package/project-skills/ts-quality-gate/.claude/settings.json +1 -1
  27. package/project-skills/main-guard/.claude/hooks/main-guard.cjs +0 -188
  28. package/project-skills/main-guard/.claude/settings.json +0 -16
  29. package/project-skills/main-guard/.claude/skills/using-main-guard/SKILL.md +0 -135
  30. package/project-skills/main-guard/README.md +0 -163
package/README.md CHANGED
@@ -224,7 +224,6 @@ Task intake and service routing for Docker service projects.
224
224
  | `tdd-guard` | Enforce Test-Driven Development — blocks implementation until failing tests exist | SessionStart, PreToolUse, UserPromptSubmit |
225
225
  | `ts-quality-gate` | TypeScript/ESLint/Prettier quality gate — runs on every edit, auto-fixes issues | PostToolUse |
226
226
  | `py-quality-gate` | Python ruff/mypy quality gate — linting, formatting, and type checking | PostToolUse |
227
- | `main-guard` | Git branch protection — blocks direct edits to main/master branches | PreToolUse |
228
227
 
229
228
  ### Installing Project Skills
230
229
 
@@ -238,7 +237,6 @@ xtrm install project service-skills-set # Docker service expertise
238
237
  xtrm install project tdd-guard # TDD enforcement
239
238
  xtrm install project ts-quality-gate # TypeScript quality
240
239
  xtrm install project py-quality-gate # Python quality
241
- xtrm install project main-guard # Git branch protection
242
240
  xtrm install project all # Install every available project skill
243
241
  xtrm install project '*' # Same as above; quote to avoid shell expansion
244
242
  ```
@@ -40681,15 +40681,15 @@ async function getAvailableProjectSkills() {
40681
40681
  return [];
40682
40682
  }
40683
40683
  const entries = await import_fs_extra10.default.readdir(PROJECT_SKILLS_DIR);
40684
- const skills2 = [];
40684
+ const skills = [];
40685
40685
  for (const entry of entries) {
40686
40686
  const entryPath = import_path10.default.join(PROJECT_SKILLS_DIR, entry);
40687
40687
  const stat = await import_fs_extra10.default.stat(entryPath);
40688
40688
  if (stat.isDirectory()) {
40689
- skills2.push(entry);
40689
+ skills.push(entry);
40690
40690
  }
40691
40691
  }
40692
- return skills2.sort();
40692
+ return skills.sort();
40693
40693
  }
40694
40694
  function deepMergeHooks(existing, incoming) {
40695
40695
  const result = { ...existing };
@@ -40810,20 +40810,20 @@ async function installProjectSkill(toolName, projectRootOverride) {
40810
40810
  console.log(kleur_default.green(" \u2713 Installation complete!\n"));
40811
40811
  }
40812
40812
  async function installAllProjectSkills(projectRootOverride) {
40813
- const skills2 = await getAvailableProjectSkills();
40814
- if (skills2.length === 0) {
40813
+ const skills = await getAvailableProjectSkills();
40814
+ if (skills.length === 0) {
40815
40815
  console.log(kleur_default.dim(" No project skills available.\n"));
40816
40816
  return;
40817
40817
  }
40818
40818
  const projectRoot = projectRootOverride ?? getProjectRoot();
40819
40819
  console.log(kleur_default.bold(`
40820
- Installing ${skills2.length} project skills:
40820
+ Installing ${skills.length} project skills:
40821
40821
  `));
40822
- for (const skill of skills2) {
40822
+ for (const skill of skills) {
40823
40823
  console.log(kleur_default.dim(` \u2022 ${skill}`));
40824
40824
  }
40825
40825
  console.log("");
40826
- for (const skill of skills2) {
40826
+ for (const skill of skills) {
40827
40827
  await installProjectSkill(skill, projectRoot);
40828
40828
  }
40829
40829
  }
@@ -40833,7 +40833,7 @@ async function listProjectSkills() {
40833
40833
  console.log(kleur_default.dim(" No project skills available.\n"));
40834
40834
  return;
40835
40835
  }
40836
- const skills2 = [];
40836
+ const skills = [];
40837
40837
  for (const entry of entries) {
40838
40838
  const readmePath = import_path10.default.join(PROJECT_SKILLS_DIR, entry, "README.md");
40839
40839
  let description = "No description available";
@@ -40841,9 +40841,9 @@ async function listProjectSkills() {
40841
40841
  const readmeContent = await import_fs_extra10.default.readFile(readmePath, "utf8");
40842
40842
  description = extractReadmeDescription(readmeContent).slice(0, 80);
40843
40843
  }
40844
- skills2.push({ name: entry, description });
40844
+ skills.push({ name: entry, description });
40845
40845
  }
40846
- if (skills2.length === 0) {
40846
+ if (skills.length === 0) {
40847
40847
  console.log(kleur_default.dim(" No project skills available.\n"));
40848
40848
  return;
40849
40849
  }
@@ -40854,7 +40854,7 @@ async function listProjectSkills() {
40854
40854
  colWidths: [25, 60],
40855
40855
  style: { head: [], border: [] }
40856
40856
  });
40857
- for (const skill of skills2) {
40857
+ for (const skill of skills) {
40858
40858
  table.push([kleur_default.white(skill.name), kleur_default.dim(skill.description)]);
40859
40859
  }
40860
40860
  console.log(table.toString());
@@ -55051,10 +55051,10 @@ ${kleur_default.cyan("PROJECT SKILLS:")}
55051
55051
 
55052
55052
  ${kleur_default.cyan("INSTALL TARGETS:")}
55053
55053
 
55054
- xtrm-tools v2.0.0 installs into Claude Code targets and the `.agents / skills` cache:
55055
- ~/.claude
55056
- %APPDATA%/Claude on Windows
55057
- ~/.agents/skills (skills-only copy)
55054
+ xtrm-tools v2.0.0 installs into Claude Code targets and the .agents/skills cache:
55055
+ \u2022 ~/.claude
55056
+ \u2022 %APPDATA%/Claude on Windows
55057
+ \u2022 ~/.agents/skills (skills-only copy)
55058
55058
 
55059
55059
  ${kleur_default.cyan("ARCHITECTURE:")}
55060
55060
 
@@ -55067,9 +55067,9 @@ ${kleur_default.cyan("ARCHITECTURE:")}
55067
55067
 
55068
55068
  ${kleur_default.cyan("RESOURCES:")}
55069
55069
 
55070
- Repository: https://github.com/Jaggerxtrm/xtrm-tools
55071
- Documentation: See README.md in the repository
55072
- Report Issues: https://github.com/Jaggerxtrm/xtrm-tools/issues
55070
+ \u2022 Repository: https://github.com/Jaggerxtrm/xtrm-tools
55071
+ \u2022 Documentation: See README.md in the repository
55072
+ \u2022 Report Issues: https://github.com/Jaggerxtrm/xtrm-tools/issues
55073
55073
 
55074
55074
  ${kleur_default.dim("Run 'xtrm <command> --help' for more information on a specific command.")}
55075
55075
  `);