feat(ship): merge short-ship and long-ship into one entry

Promote ship to the user-facing delivery skill. Kind is short or long
from an explicit mode, then self-judgment, then a question, defaulting
to short. Old names remain deprecation stubs.
This commit is contained in:
2026-10-24 14:27:19 +08:00
parent 7d6f3fe8e5
commit a15a046e4e
33 changed files with 331 additions and 315 deletions
+28 -4
View File
@@ -62,8 +62,8 @@ class CatalogTests(unittest.TestCase):
skill = (stub / "SKILL.md").read_text(encoding="utf-8")
self.assertIn("name: bugfix-ship", skill)
self.assertIn("已弃用", skill)
self.assertIn("../short-ship/SKILL.md", skill)
self.assertTrue((REPO_ROOT / "skills" / "short-ship" / "SKILL.md").is_file())
self.assertIn("../ship/SKILL.md", skill)
self.assertTrue((REPO_ROOT / "skills" / "ship" / "SKILL.md").is_file())
self.assertFalse((stub / "references").exists())
self.assertFalse((stub / "templates").exists())
self.assertFalse((stub / "agents").exists())
@@ -73,8 +73,32 @@ class CatalogTests(unittest.TestCase):
skill = (stub / "SKILL.md").read_text(encoding="utf-8")
self.assertIn("name: requirement-flow", skill)
self.assertIn("已弃用", skill)
self.assertIn("../long-ship/SKILL.md", skill)
self.assertTrue((REPO_ROOT / "skills" / "long-ship" / "SKILL.md").is_file())
self.assertIn("../ship/SKILL.md", skill)
self.assertTrue((REPO_ROOT / "skills" / "ship" / "SKILL.md").is_file())
self.assertFalse((stub / "references").exists())
self.assertFalse((stub / "templates").exists())
self.assertFalse((stub / "agents").exists())
def test_short_ship_is_deprecation_stub(self) -> None:
stub = REPO_ROOT / "skills" / "short-ship"
skill = (stub / "SKILL.md").read_text(encoding="utf-8")
self.assertIn("name: short-ship", skill)
self.assertIn("已弃用", skill)
self.assertIn("../ship/SKILL.md", skill)
self.assertIn("short 模式", skill)
self.assertTrue((REPO_ROOT / "skills" / "ship" / "SKILL.md").is_file())
self.assertFalse((stub / "references").exists())
self.assertFalse((stub / "templates").exists())
self.assertFalse((stub / "agents").exists())
def test_long_ship_is_deprecation_stub(self) -> None:
stub = REPO_ROOT / "skills" / "long-ship"
skill = (stub / "SKILL.md").read_text(encoding="utf-8")
self.assertIn("name: long-ship", skill)
self.assertIn("已弃用", skill)
self.assertIn("../ship/SKILL.md", skill)
self.assertIn("long 模式", skill)
self.assertTrue((REPO_ROOT / "skills" / "ship" / "SKILL.md").is_file())
self.assertFalse((stub / "references").exists())
self.assertFalse((stub / "templates").exists())
self.assertFalse((stub / "agents").exists())