feat: rename bugfix-ship/requirement-flow to short-ship/long-ship with shared ship records
short-ship and long-ship share one ship-id record under .pouch/ship/<id>/. specifier writes PRDs into spec/; delivery-loop appends evidence pointers. Old names stay as deprecation stubs so existing installs keep working.
This commit is contained in:
@@ -32,8 +32,14 @@ class CatalogTests(unittest.TestCase):
|
||||
"releaser",
|
||||
"note-style",
|
||||
"pouch",
|
||||
"short-ship",
|
||||
"long-ship",
|
||||
"ship",
|
||||
"pr-ship",
|
||||
# 旧名兼容占位,仍须可列出(见 test_manage_release_is_deprecation_stub)
|
||||
"manage-release",
|
||||
"bugfix-ship",
|
||||
"requirement-flow",
|
||||
):
|
||||
self.assertIn(f"| {name} |", result.stdout)
|
||||
self.assertIn("/ack 初始化", result.stdout)
|
||||
@@ -51,6 +57,28 @@ class CatalogTests(unittest.TestCase):
|
||||
self.assertFalse((stub / "references").exists())
|
||||
self.assertFalse((stub / "templates").exists())
|
||||
|
||||
def test_bugfix_ship_is_deprecation_stub(self) -> None:
|
||||
stub = REPO_ROOT / "skills" / "bugfix-ship"
|
||||
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.assertFalse((stub / "references").exists())
|
||||
self.assertFalse((stub / "templates").exists())
|
||||
self.assertFalse((stub / "agents").exists())
|
||||
|
||||
def test_requirement_flow_is_deprecation_stub(self) -> None:
|
||||
stub = REPO_ROOT / "skills" / "requirement-flow"
|
||||
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.assertFalse((stub / "references").exists())
|
||||
self.assertFalse((stub / "templates").exists())
|
||||
self.assertFalse((stub / "agents").exists())
|
||||
|
||||
def test_missing_readme_fails(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
skill = Path(tmp) / "demo"
|
||||
|
||||
Reference in New Issue
Block a user