@aurelienbbn/agentlint-plugin-shopify-app

中文文档
0.1.5发布于 2026/10/14MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2608

自定义代理林特规则为 Shopify app和扩展代码.

中文使用文档
文档目录9 节
  1. 快开始
  2. 规则
  3. 什么火吗
  4. 检出: 第一次油漆等待无所可避免
  5. app-ux-review qq: 您将文件映射到审查区域
  6. 移徙
  7. 来源
  8. 登记的合同库存
  9. 信用概念

@aurelienbn/ agentlint-plugin-shopfy-app (原始内容存档于2018-09-26)

npm downloads CI license node

15 Agentlint评论Shopify应用和扩展:一个决定性的触发器找到现场,一个审查者根据Shopify自己的指导来检查.

[尖叫声] 需要引擎 @aurelienbbn/agentlint >=0.3.0 <0.9.0 作为同伴. 证据。 。 。 .

调查结论是需要检查的,而不是违反政策. 决议 .agentlint/acceptances.jsonl 保留审查证据;无论是App Store还是Choshify的资格证明.

快开始

agentlint init --preset "@aurelienbbn/agentlint-plugin-shopify-app#starterPreset"
agentlint rules test
agentlint rules scan --review
agentlint next --format json

init 保存已有的配置并打印安装命令;从未安装. 要求前校正绑定 agentlint check --all。 。 。 .

import { defineConfig } from "@aurelienbbn/agentlint";
import { checkoutExtensionPreset, shopifyAppPreset } from "@aurelienbbn/agentlint-plugin-shopify-app";

export default defineConfig({ extends: [shopifyAppPreset, checkoutExtensionPreset] });

规则

规则shopifyAppappServercheckoutExtensionstarter订正选项
session-token-auth✅✅2 国 家identityKeyPattern
form-error-recovery✅✅1个errorAttribute
action-label-clarity✅1个ambiguousLabelPatterns
banner-usage✅1个
destructive-action-review✅1个toneAttribute, (中文(简体) ), destructiveTone
modal-workflow-review✅1个
no-pressure-copy✅1个languages (单位:千美元)en, (中文(简体) ), fr, (中文(简体) ), de, (中文(简体) ), additionalPatterns
review-solicitation✅1个additionalPatterns, (中文(简体) ), useDefaultPatterns
settings-save-bar✅页:1formElementPattern, (中文(简体) ), saveBarMarkerPattern
admin-api-loop-review✅1个graphqlCalleePattern
webhook-handler-review✅1个topicPattern
checkout-network-discipline✅2 国 家networkCallPattern
scope-change-review 🧪1个manifestPattern
flow-action-handler-review 🧪1个handlerPathPattern
app-ux-review 🧪1个targets, (中文(简体) ), elementNamePattern

预设为 <name>Preset。在无预设的情况下:注册 scopeChangeReview, (中文(简体) ), flowActionHandlerReview / 一个配置 defineAppUxReview(...). 所有规则:代理授权,探测器 1. 预设忽略 **/*.d.ts。 。 。 移徙。 。 。 .

预设范围缩小到
shopifyAppPreset**/*.{ts,tsx,js,jsx} + 键 **/locales/**/*.json您的应用程序 家源, 当 repo 持有多个 Shopify 表面时
appServerPreset**/*.{ts,tsx,js,jsx},不包括测试服务器代码( e)app/routes/**, (中文(简体) ), app/**/*.server.*除了其他GraphQL客户
checkoutExtensionPresetextensions/**/*.{ts,tsx,js,jsx}

每个规则都输出一个 defineX(options) ; 在同一规则 ID 下注册已配置实例。 状态正则表达式在每次匹配前重置.

defineNoPressureCopy({ languages: ["en", "fr"], additionalPatterns: [/última oportunidad/iu] });
defineSettingsSaveBar({ saveBarMarkerPattern: /useSaveBar/ });

什么火吗

<form data-save-bar>…</form>           // ✅ direct literal attribute
<form title="SaveBar">…</form>          // ❌ a mention isn't a marker
<form data-save-bar={false}>…</form>    // ❌ false or dynamic values don't count
for (const id of ids) await admin.graphql(QUERY, { variables: { id } }); // ❌ admin-api-loop-review
for (const edge of (await admin.graphql(QUERY)).edges) {
  total += edge.node.count;
} // ✅ the iterable

来文方其他地方的储蓄酒吧不再压制表格的审查. 应用 内部规则符合JSX的准确名称: 没有导入、包装或分布分辨率; 设置 elementNamePattern 给您的审查包装.

复制、 认证和表格: 触发和边界
规则着火了边界
no-pressure-copyjSX文本或字符串中的紧急性、稀缺性或结果保证性措辞默认词典 : en, (中文(简体) ), fr, (中文(简体) ), de
session-token-authdocument.cookie· ; localStorage 编号 : sessionStorage getItem 编号 : setItem 带有身份钥匙identityKeyPattern 默认: 符号/会话/auth/jwt/证书/ api- key. 候选资格,而不是认证核查
settings-save-bar(单位:千美元) <form> 编号 : <Form> 打开元素时没有自己的保存栏标记习惯 saveBarMarkerPattern 在打开的单元上保留一个信任的逃生舱口
review-solicitationjSX文本或字符串中的具体审查请求短语英文、法文和德文缺省为部分词汇;中立请求仍然需要职位安排和奖励审查

公认的保存栏标记不能证明肮脏状态或导航行为:用路由审查来锻炼那些状态.

session-token-auth 也要求离线代币通过图书馆会话存储器读取: 保存在别处的复制件会沉淀于图书库下 expiringOfflineAccessTokens 未来的旗帜。 指南使用当前 ID 标志术语; 规则 ID 保留 session-token-auth。 。 。 .

英语风格和可读性分数从不被视为通用地语或无障碍要求.

App 主机组件:触发器和边界

它们不解决进口,包装,动态组件,散放道具或生成模板. 匹配另一个 Shopify 表面的名称不会使 App Home 指南应用到那里: 将这些规则范围扩大到正确的文件.

规则着火了边界
action-label-clarity直接在内部配置模糊的文字 s-button 或者说 s-linkambiguousLabelPatterns 替换一个小的英语默认词典; 翻译助手和任意字符串没有分析
banner-usages-banner,包括: dismissible(c) 正确的道具不能证实任何证据
destructive-action-reviews-button 或者说 s-clickable 字数 tone="critical"动态色调需要单独审查
form-error-recovery一个已知的极地输入控制,可能具有活性 error 道具空无, false, (中文(简体) ), null, (中文(简体) ), undefined 字节保持安静; 运行时表达式调度审查
modal-workflow-reviews-modal 或者说 s-app-window审查进入路径、任务匹配、解职、恢复;结构档次规则分开

文本字段引用在打字时鼓励反馈;提醒指南在模糊后建议出错. form-error-recovery 揭露了这种差异,要求提供未经更改、打字、模糊、提交和复原的证据。 没有禁忌 onInput 或从道具中验证验证时间.

服务器:环路、网络呼声、流程动作、范围
规则着火了保持安静
admin-api-loop-reviewadmin.graphql, (中文(简体) ), client.request 或者说 client.query (可选资格)a for 编号 : for…of 编号 : while 编号 : do 体 体 或 一个 .map 编号 : .forEach 编号 : .flatMap 回调(单位:千美元) for…of 可执行, a for 初始化器, 仅在循环内定义的函数; 测试文件
webhook-handler-review每个文件一次 : authenticate.webhook,一个 X-Shopify-Hmac-Sha256 编号 : X-Shopify-Topic 编号 : X-Shopify-Webhook-Id 字符串,或已知的题目字面(orders/create, (中文(简体) ), APP_UNINSTALLED作为 switch 实例或比较测试文件
flow-action-handler-review 🧪每个文件一次 : authenticate.flow,一个 action_run_id 编号 : action_definition_id 键(成员、解结构、计算或对象键),或路径匹配 handlerPathPattern预览和验证端点( 无运行 id), 键为纯文本; 测试文件
scope-change-review 🧪更改规则 : shopify.app.toml 编号 : shopify.app.<name>.toml 谁 [access_scopes] scopes 编号 : optional_scopes (或高级遗产) scopes(自基特基线以来获得条目)删除、重新排序或降级范围;从未清点过未经修改的清单,即使有 --all
限制
admin-api-loop-reviewgraphqlCalleePattern 增加项目包装;进口和别名未解决. 被捆绑的标注是合法的: 发现要求绑定和油门处理
webhook-handler-reviewtopicPattern 替换默认主题词典。 恒定时间数据库工作内行通道; 调出或排队到另一个文件是审查者引用的证据, 而不是触发解决的东西
flow-action-handler-review问HMAC, action_run_id ddup, 10 s(202个延长工作)以内, 4xxx只针对永久失败, a return_value 躯体。 不读 runtime_url 从 TOML: 设置 handlerPathPattern 给把有效载荷下放到别处的处理者。 手动 HMAC 检查也触发 webhook-handler-review
scope-change-review读取两个已知的密钥;而不是 TOML 解析器。 范围必要性得到判断,从未得到证实

检出: 第一次油漆等待无所可避免

checkout-network-discipline 开火 fetch (净值或 window. 编号 : globalThis. 编号 : self.- 合格)和 shopify.query() 下级 extensions/**· ; networkCallPattern 添加工程抓取包装 . 触发器不能确定耐久性:对照两种性能来源审查量度的请求和渲染时机. 将网络呼叫调出模块范围.

验出消息说
来源说
退出扩展性能在第一次涂料之前在扩展调用中装入必要的初始数据, 因此 Shopify 的装入骨架会一直停留到稳定内容准备好为止
检查最佳做法响应时间低于一秒;初始骨架
离职能力后端只信任已核实的会话控件要求 ^ 没有可调用买方的敏感端点 ^ 用 Access-Control-Allow-Origin: * · 不期望 logged_in_customer_id 在 App 代理服务器上从扩展名拨打

app-ux-review qq: 您将文件映射到审查区域

Dormant 默认; 目的从未从文件名中推断 . 优于缩小 App Home 预设的 超 复选 、 管理员 和 Sidekick 扩展 .

areas  home · onboarding · navigation · responsive · premium · visual-editor · inputs
       collections · content · copy-mechanics · checkout · admin-extension · sidekick
配置和报告
import { defineConfig } from "@aurelienbbn/agentlint";
import { defineAppUxReview, shopifyAppPreset } from "@aurelienbbn/agentlint-plugin-shopify-app";

export default defineConfig({
  extends: [shopifyAppPreset],
  rules: [
    defineAppUxReview({
      targets: [
        { filenamePattern: /\/app\._index\.tsx$/, areas: ["home", "responsive"] },
        { filenamePattern: /editor\.tsx$/, areas: ["visual-editor"] },
        { filenamePattern: /extensions\/admin\//, areas: ["admin-extension"], trigger: "file" },
        { filenamePattern: /sidekick\.ts$/, areas: ["sidekick"], trigger: "file" },
      ],
    }),
  ],
});
目标类型报告
页面(默认)第一次匹配时 s-page
trigger: "file"tS/JS程序节点:没有JSX页面的扩展切入点

每个触发器报告每个文件一次,合并匹配区域;查找名称仅指那些区域. 审查它们,附上源修订和浏览器或运行时间观察,并记录未解决状态. 规则不读出或发现扩展目标.

移徙

规则变动
⚠️ checkout-network-discipline, (中文(简体) ), session-token-auth 转录 2添加容量安全检查和离线切换会话存储检查
⚠️ settings-save-bar仅一个直线字 data-save-bar 表格上的复议

要求的身份证和证据边界: policy/shopify-requirements.json 和寄存器 保存检查.

Agentlint规则合同
事实细节
规则形状lifecycle, (中文(简体) ), standard (订正), detector (版本), binding (id, 权威, 范围, 实质性选项)
编译defineConfig({ extends: [preset] }) 或者说 defineConfig({ rules: [configuredRule] }); 重复使用需要不同的绑定标识
权力默认允许代理接受;存储器所有者选择范围,并可以向 human
接受结论需要匹配当前证据 财务报告和审定财务报表 权力
固定装置@aurelienbbn/agentlint/testing 使用真实解析器运行嵌入式活性/静态固定装置

来源

从Shopify的正式文件中独立执行;没有Shopify代码或模板供货商. 可盗取 @attribution 标记执行文件中的源概念. starterPreset 登机:由Peter O'Malley拆卸而来的概念灵感;没有复制代码或指南.

按日期和规则分列的检查页面
检查过来源种子
2026-09-05 (英语)为商店化要求而建, (中文(简体) ), App Store 要求适用性和编号义务
2026-09-05 (英语)内容, (中文(简体) ), 营销, (中文(简体) ), 警报, (中文(简体) ), 表单可读行动、限制宣传、可以理解的反馈、有组织的编辑
2026-09-05 (英语)语音和语气, (中文(简体) ), 语法和力学适合情况的副本,特定地方的机械师
2026-09-05 (英语)App 结构使行政扩展规模和工作流程审查适合
2026-09-05 (英语)App 主页, (中文(简体) ), 上岗, (中文(简体) ), 导航, (中文(简体) ), 版式路线一级审查区
2026-09-05 (英语)极地 按钮, (中文(简体) ), 横幅, (中文(简体) ), 模式, (中文(简体) ), 文本字段组件意图和行为
2026-09-05 (英语)极地 切换, (中文(简体) ), 取颜色器, (中文(简体) ), 图表, (中文(简体) ), 选择列表, (中文(简体) ), 菜单, (中文(简体) ), 工具提示, (中文(简体) ), 段 次 页 次有针对性的投入、收集和内容审查
2026-09-05 (英语)退出扩展性能, (中文(简体) ), 检查最佳做法初始渲染序列, 测量反应时间目标
2026-09-05 (英语)标识符, (中文(简体) ), 保存条 API当前平台指导
2026-09-19 (英语)管理图形QL API, (中文(简体) ), API 限制, (中文(简体) ), 大宗业务, (中文(简体) ), 一能性admin-api-loop-review
2026-09-19 (英语)HTTPS 网络快递, (中文(简体) ), 复制网点, (中文(简体) ), 网上最佳做法, (中文(简体) ), authenticate.webhookwebhook-handler-review
2026-09-19 (英语)准入范围管理, (中文(简体) ), 受保护的客户数据scope-change-review
2026-09-19 (英语)离职能力, (中文(简体) ), shopify-app-js 未来旗帜延长检查和认证指导
2026-09-24 (英语)流动动作终点, (中文(简体) ), 创建流程动作, (中文(简体) ), 复杂数据类型flow-action-handler-review

登记的合同库存

从软件包导出 pnpm catalog. 规则特定选项和限制在上文和源测试中都有描述.

规则/检查触发或审查范围
action-label-clarity审查在其商贸背景中对极地行动进行了模糊的文字标记.
admin-api-loop-reviewFlags Admin GraphQL 调用由循环或迭代调用发布,用于成本,分批,节流审查.
app-ux-review请为明确配置的应用程序路径和扩展出入口提供 UX 证据 .
banner-usage评论App Home的标语,目的,背景,解雇的坚持,以及相竞的信息.
checkout-network-disciplineFlags Network在取出扩展码中调用以进行休息-预算审查.
destructive-action-review以破坏性的语气对后果、确认和失败处理进行审查.
flow-action-handler-review旗帜 流程动作运行时间处理器每文件一次,用于签名,重复运行,响应时间,状态码和回放值审查.
form-error-recovery审查Polaris与错误接线形成控制,以获取可以理解的、持续的恢复反馈.
modal-workflow-review审查商家启动、任务合适和可用解雇的模式和应用程序窗口工作流程.
no-pressure-copy旗下紧急,稀缺, 或结果-保证副本 在商家的UI.
review-solicitation审核应用评分请求短语中性措辞,激励,安置,和商贸控制.
scope-change-review自必要性审查基线以来,在Shopify应用程序上添加了标记访问范围.
session-token-auth被嵌入的 Shopify 应用程序代码中的旗下饼干或Web存储身份状态.
settings-save-bar嵌入式app页面中缺少上下文保存条集成的旗帜格式.
webhook-handler-reviewFlags Shopify Webhook 处理器每个文件一次,用于响应时间,重复交付,订购,解装,以及遵守审查.

信用概念

版本与发布记录

@aurelienbbn/agentlint-plugin-shopify-app 共发布 6 个版本,首次发布于 2026/09/25;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.5latest2026/10/1424 天前
0.1.42026/10/1325 天前
0.1.32026/09/301 个月前
0.1.22026/09/301 个月前
0.1.12026/09/251 个月前
0.1.02026/09/251 个月前

关于 @aurelienbbn/agentlint-plugin-shopify-app 的常见问题

@aurelienbbn/agentlint-plugin-shopify-app 是什么?

自定义代理林特规则为 Shopify app和扩展代码.

如何安装 @aurelienbbn/agentlint-plugin-shopify-app?

在项目目录运行 npm install @aurelienbbn/agentlint-plugin-shopify-app,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aurelienbbn/agentlint(>=0.3.0 <0.9.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aurelienbbn/agentlint-plugin-shopify-app 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aurelienbbn/agentlint-plugin-shopify-app 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aurelienbbn/agentlint-plugin-shopify-app 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.19.0 || ^24.11.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aurelienbbn/agentlint-plugin-shopify-app 可以商用吗?

@aurelienbbn/agentlint-plugin-shopify-app 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aurelienbbn/agentlint-plugin-shopify-app 的下载量有多少?

根据 npm 官方下载统计,@aurelienbbn/agentlint-plugin-shopify-app 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,608 次,日均约 87 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aurelienbbn/agentlint-plugin-shopify-app 还在维护吗?

最新版本 0.1.5 发布于 2026/10/14(24 天前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/09/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。