mcpField
U
unopim-plugin-development

unopim-plugin-development

github.com/unopim开发140 次安装2 周前更新
代码仓库

关于 unopim-plugin-development

用于构建独立 UnoPim Concord 模块和第三方连接器的技能,按开发阶段提供参考资料,并说明后端、安全、界面和集成规范。

主要功能

  1. 01按阶段提供开发参考
  2. 02Laravel 13 与 PHP 8.4 规范
  3. 03连接器凭据与 HTTP 模式
  4. 04管理界面、CRUD 与 ACL 指引
  5. 05列表和验证所需的配套技能

适用场景

  1. 01启动新的 UnoPim 模块
  2. 02构建 REST API 连接器
  3. 03实现安全的凭据存储
  4. 04添加管理端 CRUD 页面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/unopim/agent-skills --skill unopim-plugin-development

安装后在 Claude Code 中输入/unopim-plugin-development确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

acl-security.md
admin-ui.md
backend.md
credentials.md
crud-patterns.md
http-client.md
mapping.md
package-structure.md
quickstart.md

详细介绍

UnoPim 插件开发

在 packages/Webkul/{ModuleName}/ 下构建一个独立的 Concord 包——功能模块或第三方连接器(Shopify、Shopware 或任何 REST API)。当前的连接器参考实现是 packages/Webkul/AiAgent;如果此处的模板与该包不一致,以该包为准。

参考文件——仅加载当前阶段所需的文件

文件何时加载
quickstart.md开始新模块时——第 1 天的有序检查清单
package-structure.md目录布局、composer.json、服务提供者、配置合并、迁移
backend.md模型、契约、仓库、事件、Octane 安全绑定
credentials.md凭据存储、静态加密、历史记录/审计、连接测试端点
http-client.mdcURL ApiClient、身份验证策略、SSRF 防护、容器绑定
admin-ui.mdBlade 视图——组件、主题令牌、CRUD 概述
crud-patterns.md管理后台 CRUD 结构——保存栏、创建弹窗、面包屑、页面骨架
acl-security.mdACL 覆盖范围、FormRequest 授权、上传、CSRF、密钥
mapping.md连接器的属性映射界面

必需子技能: 所有管理后台列表页面均使用 unopim-datagrid。 必需子技能: Exporter、Importer 和 Validator 类均使用 unopim-data-transfer。 必需子技能: 声明任何更改已完成前,使用 unopim-verify。

关键约定(详情和示例见参考文件)

  • 目标为 Laravel 13 / PHP 8.4:构造函数属性提升、显式返回类型、模型使用 #[Fillable]/#[Table]/#[Hidden] 属性以及 casts(): array 方法。
  • 提供者在 bootstrap/providers.php 中注册——config/app.php 中没有 providers 数组。
  • 菜单配置合并到 'menu.admin' 键,绝不能合并到 'menu'——管理侧边栏只读取 config('menu.admin'),因此合并到 'menu' 的模块永远不会显示。
  • 插件包将迁移文件放在根目录下的 Database/Migration/(单数)中;核心包使用 src/Database/Migrations/(复数)。表名直接书写——前缀来自 env('DB_PREFIX', ''),其默认值为空。
  • 路由中间件仅使用 ['admin']。ACL 按路由名称采用失败放行策略:每个写入路由(store、update、destroy、mass_*、test-connection)都必须出现在 Config/acl.php 中,否则任何已登录的管理员都可以调用它。请参阅 acl-security.md。
  • 历史记录/审计模型必须实现其模块契约、PresentableHistoryInterface(包含 getPresenters())以及 OwenIt 的 Auditable 契约,使用 HistoryTrait,并定义 $historyTags——遗漏其中任何一项都会在类加载时或首次保存时触发致命错误。
  • 静态存储的密钥必须同时使用 'encrypted' cast、#[Hidden] 和 $auditExclude。 仅设置 $auditExclude 会以明文存储。
  • 连接器 HTTP 必须使用原生 cURL——绝不能使用 Guzzle 或 Http facade。有状态的客户端使用 scoped() 绑定,绝不能使用 singleton()(此技术栈运行在 Octane 上)。
  • 本地化文件位于 Resources/lang/{locale}/,其中 33 种语言环境均以 en_US 为规范格式——单独的 en/ 目录不会加载。
  • 方法体、数组字面量、路由组或 Blade 标记中不得包含注释。方法 PHPDoc 应为单行祈使句摘要。
  • 不得硬编码面向用户的字符串——所有标签、消息和占位符均使用 trans('{module}::app.…')。

评论

支持 Markdown