去掉依赖

This commit is contained in:
2026-06-07 14:50:44 +08:00
parent 4c5bc31b0e
commit 5b555e4313
10 changed files with 43 additions and 23 deletions

View File

@@ -39,7 +39,7 @@
- [ ] 至少有 1 个缺必填字段 / 非法输入测试。
- [ ] 如果有 adapter至少覆盖 timeout / unauthorized / invalid response可用 fake 模拟)。
- [ ] 如果有解析 / 计算 / 校验类业务,至少保留 1 组 golden fixture脱敏
- [ ] 如果技能有 Python 三方依赖,`requirements.txt` 已声明且版本约束合理(尽量收窄范围)。
- [ ] 如果技能有**特有** Python 三方依赖,`requirements.txt` 已声明且版本约束合理(尽量收窄范围)公共依赖platform-kit、playwright由宿主共享 runtime 提供,**不要**写入技能 requirements
- [ ] `health` 能在依赖缺失或原生运行库未就绪时给出清晰、可操作的错误(非裸 traceback
- [ ] 真实 API / 真实 RPA 测试只放 `tests/integration/`,并且默认 `.sample`,不默认运行。

View File

@@ -24,6 +24,14 @@ def _parse_platform_kit_min_version(skill_md_text: str) -> str:
return m.group(1).strip()
def _requirement_dependency_lines(req_text: str) -> list[str]:
return [
line.strip()
for line in req_text.splitlines()
if line.strip() and not line.strip().startswith("#")
]
class TestPlatformImportSource(unittest.TestCase):
def test_jiangchang_skill_core_not_from_skill_scripts(self) -> None:
scripts_dir = os.path.abspath(get_scripts_dir())
@@ -89,7 +97,10 @@ class TestPlatformImportSource(unittest.TestCase):
req_path = os.path.join(get_skill_root(), "requirements.txt")
with open(req_path, encoding="utf-8") as f:
req = f.read()
self.assertIn("jiangchang-platform-kit>=1.0.11", req)
dep_lines = _requirement_dependency_lines(req)
dep_body = "\n".join(dep_lines).lower()
self.assertNotIn("jiangchang-platform-kit", dep_body)
self.assertNotIn("playwright", dep_body)
installed = metadata.version("jiangchang-platform-kit")
self.assertTrue(

View File

@@ -24,6 +24,10 @@ FORBIDDEN_PHRASES = (
"模板通过 vendor 拷贝引用",
"vendor 自 platform-kit",
"模板 vendor 拷贝在 scripts/jiangchang_skill_core",
"模板默认声明 `jiangchang-platform-kit",
"模板默认包含 `jiangchang-platform-kit",
"默认已含 `jiangchang-platform-kit",
"保留仅含 `jiangchang-platform-kit",
)
POSITIVE_MARKERS = (