kvb-skills-dream, -tune, -auto, -essence and -transcend become kvb-skill-*, and tests/test_naming.py now requires the category skill. enable-plugins.js registers the reminder hooks under the new names and repoints hook commands of the previous kvb-skills-* paths as well as the older autotune/dream paths; test_dream covers both generations. References in kvb-check-confidence, kvb-org-perform, kvb-org-rasci, kvb-transcend, the tests and the README organigram and skill map follow. The header comments of both reminder hooks and enable-plugins.js are dropped. BREAKING CHANGE: /kvb-skills-dream, /kvb-skills-tune, /kvb-skills-auto, /kvb-skills-essence and /kvb-skills-transcend are now /kvb-skill-*. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
1013 B
Python
32 lines
1013 B
Python
"""The self-improving skills must share the objective held by kvb-skill-tune."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
SKILLS = REPO_ROOT / "skills"
|
|
ROUTERS = ("kvb-skill-auto", "kvb-check-confidence")
|
|
|
|
|
|
class TestOptimizeObjective(unittest.TestCase):
|
|
def test_autotune_names_the_three_axes(self):
|
|
text = (SKILLS / "kvb-skill-tune" / "SKILL.md").read_text(encoding="utf-8")
|
|
self.assertIn("## Objective", text)
|
|
for axis in ("**Tokens**", "**Time**", "**Quality**"):
|
|
self.assertIn(axis, text)
|
|
|
|
def test_routers_point_at_it(self):
|
|
for skill in ROUTERS:
|
|
text = (SKILLS / skill / "SKILL.md").read_text(encoding="utf-8")
|
|
self.assertIn(
|
|
"`kvb-skill-tune` skill's **Objective**",
|
|
text,
|
|
f"{skill} does not route to the kvb-skill-tune objective",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|