Hey, I tested SkillTree 1.7.8 and found what looks like a logic bug in the OnItemRepair path, even though the plugin compiles and loads.
In HandleMaxRepair(), the code currently does:
if (Interface.CallHook("STOnItemRepairWithMaxRepair", item) == null) return;
That seems inverted. In the normal case, CallHook(...) returns null when no other plugin handles the hook, so MaxRepair exits immediately and does nothing unless another plugin explicitly returns a value. Changing it to this fixed the issue for me:
if (Interface.CallHook("STOnItemRepairWithMaxRepair", item) != null) return;
After that change, the repair perk started working correctly.
One other odd thing I noticed: Oxide briefly reported a compile error like "} expected | Line: 660, Pos: 99", but reloading again succeeded without any code change in that area. That looked unrelated/noisy on my end, because line 660 was valid and the plugin loaded fine on retry.