refactor(releaser): 将 manage-release 改名为 releaser

- skills/manage-release -> skills/releaser(git mv,内容不变)
- releaser 的 frontmatter/标题改名,description 保留旧名作为触发词
- skills/manage-release/ 保留为纯弃用占位(SKILL.md + README.md,指向 releaser),
  已装软链与旧项目 .pouch.yaml 不再悬空或失效
- 同步或引用:AGENTS.md、README.md、docs/getting-started.md、orc(routing/SKILL/README)、
  ack delivery、builder(SKILL/README/contract)、memory-distill、pouch onboard 与
  suggest_skills
- 测试:catalog 需列出旧名占位,新增弃用占位断言,orc children 纳入旧名占位
This commit is contained in:
2026-09-16 15:14:12 +08:00
parent ca3156ed93
commit d791f5584c
24 changed files with 465 additions and 403 deletions
+2 -2
View File
@@ -44,11 +44,11 @@ class OrcSkillTests(unittest.TestCase):
self.assertIn("当前 shell", skill)
self.assertNotIn("用户未指定档位时采用以下判断", skill)
self.assertNotIn("若该档位不足以安全完成", skill)
for child in ("$ack", "$manage-release", "$builder"):
for child in ("$ack", "$releaser", "$builder"):
self.assertIn(child, routing)
def test_children_do_not_reference_orc(self) -> None:
for child in ("ack", "manage-release", "builder"):
for child in ("ack", "releaser", "builder", "manage-release"):
for path in (REPO_ROOT / "skills" / child).rglob("*"):
if not path.is_file() or "__pycache__" in path.parts:
continue
+14 -1
View File
@@ -29,15 +29,28 @@ class CatalogTests(unittest.TestCase):
"builder",
"deployer",
"host-sec-check",
"manage-release",
"releaser",
"note-style",
"pouch",
# 旧名兼容占位,仍须可列出(见 test_manage_release_is_deprecation_stub)
"manage-release",
):
self.assertIn(f"| {name} |", result.stdout)
self.assertIn("/ack 初始化", result.stdout)
self.assertIn("用 builder 初始化这个项目", result.stdout)
self.assertNotIn("触发词", result.stdout)
def test_manage_release_is_deprecation_stub(self) -> None:
"""旧名只保留指向 releaser 的占位,不得再携带流程或参考资料。"""
stub = REPO_ROOT / "skills" / "manage-release"
skill = (stub / "SKILL.md").read_text(encoding="utf-8")
self.assertIn("name: manage-release", skill)
self.assertIn("已弃用", skill)
self.assertIn("../releaser/SKILL.md", skill)
self.assertTrue((REPO_ROOT / "skills" / "releaser" / "SKILL.md").is_file())
self.assertFalse((stub / "references").exists())
self.assertFalse((stub / "templates").exists())
def test_missing_readme_fails(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
skill = Path(tmp) / "demo"