One function
_install_skills in witt3rd/oh-my-hermes
The author described this change as “fix(omh): category grouping, frontmatter schema, and description truncation (#5)”. It counts as a record because the check below fails on the code as it stood at 7b0d0957b and passes on 8a36787da, with nothing else changed between the two runs.
Projectwitt3rd/oh-my-hermes
Fix saved2026-04-25
Sharing licenceMIT · LICENSE
Change size+14 −8
What the code was meant to do, written into the code itself as a docstring
Install bundled skills to ~/.hermes/skills/ if not already present. Skips skills that are already installed — the user's copy takes precedence. Uses an atomic copy-then-rename pattern to avoid partial installs.
The change
| 1 | - | def _install_skills(): | |
| 2 | - | """Install bundled skills to ~/.hermes/skills/ if not already present. | |
| 1 | + | def _install_skills( | |
| 2 | + | skills_src_root: Path | None = None, | |
| 3 | + | skills_dest_root: Path | None = None, | |
| 4 | + | ) -> None: | |
| 5 | + | """Install bundled skills to ~/.hermes/skills/omh/ if not already present. | |
| 3 | 6 | ||
| 4 | 7 | Skips skills that are already installed — the user's copy takes precedence. | |
| 5 | 8 | Uses an atomic copy-then-rename pattern to avoid partial installs. | |
| 6 | 9 | """ | |
| 7 | - | try: | |
| 8 | - | from hermes_cli.config import get_hermes_home | |
| 9 | - | skills_dest_root = get_hermes_home() / "skills" | |
| 10 | - | except Exception: | |
| 11 | - | skills_dest_root = Path.home() / ".hermes" / "skills" | |
| 10 | + | if skills_dest_root is None: | |
| 11 | + | try: | |
| 12 | + | from hermes_cli.config import get_hermes_home | |
| 13 | + | skills_dest_root = get_hermes_home() / "skills" / "omh" | |
| 14 | + | except Exception: | |
| 15 | + | skills_dest_root = Path.home() / ".hermes" / "skills" / "omh" | |
| 12 | 16 | ||
| 13 | - | skills_src_root = Path(__file__).parent / "skills" | |
| 17 | + | if skills_src_root is None: | |
| 18 | + | skills_src_root = Path(__file__).parent / "skills" | |
| 19 | + | ||
| 14 | 20 | if not skills_src_root.exists(): | |
| 15 | 21 | return | |
| 16 | 22 |
The check that tells the two apart
fail→pass·plugins/omh/tests/test_init.py::test_install_skills_copies_when_missing
Check file plugins/omh/tests/test_init.py, taken without changes from the fix and copied onto the older code, so the exact same check runs against both versions.
Origin and history
The code before it7b0d0957b203981ef66d2c6883a8d68665f2bd1e
Broken version dated2026-04-22
Moduleplugins.omh.__init__
Units changed_install_skills
Fingerprint67f7339e51349955
Checked2026-08-18 by goldset/0.1
Every field above is generated by our program. None of it is written by hand.
Other bugs found in witt3rd/oh-my-hermes
- 2026-04-21_state_dir