插件与生态索引(v0.26.0)¶
phase-barrier 通过 Python 入口点(entry points)支持四类插件:
| 入口点组 | 作用 | 参考实现 |
|---|---|---|
phase_barrier.languages |
自定义语言适配器 | examples/custom_adapter/ |
phase_barrier.validators |
自定义阶段校验器(覆盖内置) | examples/plugin_rules/ |
phase_barrier.interceptors |
自定义拦截规则 | examples/plugin_rules/ |
anti_shortcut.integrations |
Agent 集成插件(自动装回包装后的工具) | examples/orchestrator_hooks/ |
开发模板¶
最小语言适配器插件:
# pyproject.toml
[project.entry-points."phase_barrier.languages"]
my_language = "my_package:MyLanguageAdapter"
# my_package/__init__.py
from anti_shortcut import LanguageAdapter
class MyLanguageAdapter(LanguageAdapter):
name = "my_language"
file_extensions = [".xyz"]
source_file_patterns = ["*.xyz"]
test_file_patterns = ["test_*.xyz"]
def check_syntax(self, path):
return True, "语法检查通过(示例插件)"
安装插件包后,用 language: my_language 或 language_adapter: "my_package:MyLanguageAdapter" 启用。
自定义拦截规则插件:
[project.entry-points."phase_barrier.interceptors"]
my_rules = "my_package:rules"
# my_package/__init__.py
def deny_uploads(kind, target, config, stage, content=None):
if kind == "write" and "uploads/" in str(target).replace("\\", "/"):
return False, "禁止写入 uploads/(我的规则)"
return None
rules = [deny_uploads]
自动验证(v0.29.0)¶
安装插件包后,python -m anti_shortcut plugin-verify 会自动加载并冒烟验证
全部四类入口点:语言适配器(name + 必需方法)、校验器(映射 / 工厂)、
拦截规则(可调用规则)、集成插件(可调用 / install())。返回码 0 = 全部通过。
pip install phase-barrier my-plugin
python -m anti_shortcut plugin-verify # 全部通过时退出码 0
python -m anti_shortcut plugin-verify --json # 结构化结果(CI 断言用)
插件 CI 模板(一键接入)¶
把下面工作流复制到插件仓库 .github/workflows/ci.yml,每次 push / PR 自动验证:
name: Plugin CI
on:
push:
branches: [main, master]
pull_request:
jobs:
plugin-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: Xuqing0415/phase-barrier/.github/actions/plugin-test@v0.29.0
with:
plugin-path: . # 插件包目录(包含 pyproject.toml)
python-version: '3.12'
phase-barrier-version: '' # 留空 = 最新发布版;可固定如 0.29.0
验证通过后可在 README 添加徽章:
[](https://github.com/<owner>/<repo>/actions/workflows/ci.yml)
提交到索引¶
- 把插件发布为公开的 PyPI 包(或提供可安装的 GitHub 仓库)。
- 在插件仓库接入上面的 插件 CI 模板,保证
plugin-verify全绿。 - 在 GitHub Issues 选择 「插件提交(Plugin Submission)」模板,附上:包名 / 仓库链接、支持的入口点组、 CI 状态链接、一段使用示例。
- 维护者审核后合并到下表。
第一批索引(官方示例,v0.26.2)¶
以下为本仓库自带的官方示例插件,均可直接复用 / 作为提交模板:
| 插件 | 类型 | 作者 | 说明 |
|---|---|---|---|
phase-barrier-foo-adapter(examples/custom_adapter/) |
phase_barrier.languages |
phase-barrier 官方示例 | 虚构 .foo 语言适配器:文件识别 / 语法检查 / 测试统计 / 测试命令识别;演示打包与入口点注册,安装后 language: foo 直接启用 |
phase-barrier-plugin-example(examples/plugin_rules/) |
phase_barrier.validators + phase_barrier.interceptors |
phase-barrier 官方示例 | 自定义校验器(strict_design)+ 拦截规则(deny_vendor_writes),安装后自动参与门禁 |
编排器钩子集成(examples/orchestrator_hooks/) |
anti_shortcut.integrations |
phase-barrier 官方示例 | 任务启动 / 阶段切换钩子调用 PhaseBarrier,把包装后的工具装回 Agent |
社区第三方插件¶
| 插件 | 类型 | 作者 | 说明 |
|---|---|---|---|
| (待社区提交) | 第一个第三方插件等你来 |