mcpField
P
pp-pagliacci

pp-pagliacci

github.com/mvanhorn其他2.1k73 次安装今天更新
代码仓库

关于 pp-pagliacci

pp-pagliacci 是供家庭使用的命令行技能,可通过程序浏览 Pagliacci Pizza 菜单并处理订餐任务。它将门店和配送时段查询与订单规划、半半披萨制作、奖励计算及历史订单重下单结合起来。

主要功能

  1. 01浏览菜单、价格和当日可售披萨片
  2. 02查找营业中的门店及配送时段
  3. 03制作并计算定制或半半披萨价格
  4. 04按人数和已保存地址规划订单
  5. 05重下历史订单并计算奖励折扣

适用场景

  1. 01查看当天有哪些披萨片可选
  2. 02查找今晚仍可配送的门店
  3. 03为小型聚会规划披萨订单
  4. 04按更新后的价格重建历史订单

安装

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

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-pagliacci

安装后在 Claude Code 中输入/pp-pagliacci确认已加载。

详细介绍

Pagliacci Pizza — Printing Press CLI

前置条件:安装 CLI

此技能使用 pagliacci-pp-cli 二进制文件。**调用此技能中的任何命令之前,必须先确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install pagliacci --cli-only
    
  2. 验证:pagliacci-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/food-and-dining/pagliacci/cmd/pagliacci-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法通过 $PATH 找到二进制文件目录。验证成功前,请勿执行此技能中的命令。

何时使用此 CLI

当 Agent 或用户想要以编程方式与 Pagliacci Pizza 交互时,请使用此 CLI:浏览菜单、查找门店和时段、制作半半披萨、规划小型聚会订单、查看奖励余额,或重放之前的订单。此 CLI 专为家庭及小型聚会点餐而设计。

独特功能

这些功能是此 API 的其他工具所不具备的。

可累积的本地状态
  • slices today — 查看西雅图所有门店当前供应的 Pagliacci 披萨片,并按与已保存地址的距离排序。

    家人问“今晚可以点哪些披萨片?”时,此功能会一次性返回便于比较的列表,无需逐个查看门店。

    pagliacci-pp-cli slices today --agent
    
  • rewards stack — 根据订单总额,计算储存的优惠券、奖励兑换和账户余额的最佳使用方式。默认使用一张最佳优惠券加账户余额;多优惠券叠加会标记为 --experimental。

    家庭订单($40 以上)通常达到奖励门槛,叠加优惠确实能省下不少钱——Agent 会选出最佳折扣,而不只是第一个有效的优惠券。

    pagliacci-pp-cli rewards stack --order-total 55.00 --agent
    
  • orders summary — 按时间范围汇总订单,并列出热门商品、门店分布和下单频率。

    了解家庭的披萨消费习惯——最常点什么、在哪家门店点、多久点一次——无论是为了制定预算,还是单纯图个乐。

    pagliacci-pp-cli orders summary --since 90d --agent
    
基于时间的组合查询
  • store tonight — 列出当前仍营业且能配送到已保存地址的门店,并按预计送达时间排序。

    临时安排家庭晚餐时,只显示今晚确实还能接单的门店。

    pagliacci-pp-cli store tonight --address-label home --agent
    
  • address best-time — 一次调用即可将已保存的地址标签解析为下一个可用的配送时段。

    安排在家庭晚餐时间送达,无需单独查询配送区域或搜索时段。

    pagliacci-pp-cli address best-time --label home --agent
    
订单工作流
  • orders reorder — 将之前的订单重新创建为一个新购物车,并在价格变动时重新验证价格。添加 --send 还会提交订单。

    家庭通常都有常点的订单——无需逐项重建购物车,即可重放订单。

    pagliacci-pp-cli orders reorder --last --dry-run
    
  • menu half-half — 通过一条命令制作半半披萨,验证两边配料是否符合菜单,并通过 ProductPrice 计算价格。

    有挑食孩子的家庭通常会把半半披萨作为默认选择。一条命令即可生成可提交的购物车条目,适用于最常见的家庭披萨类型。

    pagliacci-pp-cli menu half-half --left pepperoni --right cheese --size large --json
    
  • orders plan — 根据人数和已保存的地址,建议完整的订单方案:最佳门店、配送时段、合适份量的购物车内容,以及最佳折扣组合。

    招待 4–8 人时,一条命令就能为 Agent 提供确认订单所需的全部信息——无需串联多个工具调用,也无需手动组合订单。

    pagliacci-pp-cli orders plan --people 6 --address-label home --json
    

HTTP 传输

此 CLI 使用兼容 Chrome 的 HTTP 传输方式访问面向浏览器的端点。对于常规 API 调用,无需运行常驻的浏览器进程。

发现信号

此 CLI 根据浏览器观测到的流量上下文生成。

  • 捕获覆盖范围:26 个 API 条目,网络条目共 26 个
  • 协议:rest_json(置信度 98%)
  • 认证信号:组合式 — 请求头:Authorization — Cookie:customerId、authToken
  • 生成提示:requires_browser_auth、composed_auth
  • 候选命令建议:store list — GET /Store 返回所有门店的完整清单;menu top — GET /MenuTop/{storeId} 驱动首页菜单 UI;menu cache — GET /MenuCache/{storeId} 返回完整菜单;menu slices — GET /MenuSlices 返回所有门店今日的菜单分段;address lookup — POST /AddressInfo 验证地址并解析配送门店;address list — GET /AddressName 返回已保存的地址;orders list — GET /OrderList/{page}/{size} 返回分页订单历史;orders get — GET /OrderListItem/{id} 返回完整详情

命令参考

account — 身份验证和注册(这些端点无需身份验证)

  • pagliacci-pp-cli account confirm_email — 点击电子邮件确认链接中的令牌,确认新账户
  • pagliacci-pp-cli account create_token — 签发会话令牌(SPA 内部用于刷新令牌)
  • pagliacci-pp-cli account login — 使用电子邮件/电话号码和密码进行身份验证。响应会设置 customerId 和 authToken Cookie。
  • pagliacci-pp-cli account logout — 使当前会话失效
  • pagliacci-pp-cli account password_forgot — 请求发送密码重置电子邮件
  • pagliacci-pp-cli account password_reset — 使用 PasswordForgot 电子邮件中的令牌重置密码
  • pagliacci-pp-cli account register — 创建新的客户账户

address — 地址验证和已保存的地址簿

  • pagliacci-pp-cli address create — 创建新的已保存地址
  • pagliacci-pp-cli address delete — 删除已保存的地址
  • pagliacci-pp-cli address get — 按 ID 获取已保存的地址
  • pagliacci-pp-cli address get_info — 按已保存的 ID 获取地址信息
  • pagliacci-pp-cli address list — 列出已通过身份验证的用户保存的地址
  • pagliacci-pp-cli address lookup — 验证地址并检查配送区域(如果可配送,则返回门店 ID)

cart — 在提交订单前构建订单并计算价格

  • pagliacci-pp-cli cart get_quote_building — 按构建 ID 获取当前购物车/报价构建状态
  • pagliacci-pp-cli cart price_order — 在提交订单前计算订单总价(购物车内容、税费、费用、配送费)
  • pagliacci-pp-cli cart send_order — 提交订单。访客用户必须提供付款信息;已通过身份验证的用户使用已保存的付款方式。
  • pagliacci-pp-cli cart update_quote_building — 更新购物车内容(添加/删除/修改商品)

credit — 账户信用余额和条目

  • pagliacci-pp-cli credit delete — 移除账户信用条目
  • pagliacci-pp-cli credit get — 获取单个信用条目
  • pagliacci-pp-cli credit list — 列出已通过身份验证的用户的账户信用条目

customer — 客户资料和设备

  • pagliacci-pp-cli customer access_devices_delete — 撤销设备对账户的访问权限
  • pagliacci-pp-cli customer access_devices_list — 列出有权访问此账户的设备
  • pagliacci-pp-cli customer get — 按 ID 获取客户资料
  • pagliacci-pp-cli customer migrate_answer — 提交迁移问题的答案
  • pagliacci-pp-cli customer migrate_question — 提交安全/迁移问题(旧版账户迁移流程)

customer_feedback — 向 Pagliacci 提交客户反馈

  • pagliacci-pp-cli customer_feedback get — 按 ID 获取反馈提交记录
  • pagliacci-pp-cli customer_feedback submit — 提交客户反馈(访客或已通过身份验证的用户)

gifts — 已保存的礼品卡、余额查询和转赠

  • pagliacci-pp-cli gifts check — 按礼品卡 ID 和 PIN 查询余额(查询无需身份验证)
  • pagliacci-pp-cli gifts delete — 从账户中移除已保存的礼品卡
  • pagliacci-pp-cli gifts get — 按 ID 获取一张已保存的礼品卡
  • pagliacci-pp-cli gifts list — 列出已通过身份验证的用户保存的礼品卡
  • pagliacci-pp-cli gifts transfer — 将礼品卡余额转给其他账户
  • pagliacci-pp-cli gifts value — 获取已保存礼品卡的当前价值/余额

menu — 菜单、披萨片和产品定价

  • pagliacci-pp-cli menu cache — 获取某家门店的完整菜单(类别、产品、价格、描述、图片)
  • pagliacci-pp-cli menu product_price — 计算定制产品的价格(尺寸、配料、选项)
  • pagliacci-pp-cli menu slices — 获取当天所有门店供应的披萨片(易变质,每天轮换)
  • pagliacci-pp-cli menu top — 获取某家门店的精选菜单主打产品

orders — 订单历史和详情

  • pagliacci-pp-cli orders clone — 获取可用于重新下单的订单数据(将过往订单转换为新购物车)
  • pagliacci-pp-cli orders get — 获取单笔过往订单的完整详情(商品、价格、门店、时间)
  • pagliacci-pp-cli orders list — 列出已通过身份验证的用户的订单历史(分页)
  • pagliacci-pp-cli orders list_gift_cards — 列出购买了礼品卡的订单
  • pagliacci-pp-cli orders list_pending — 列出正在处理中的订单(已下单但尚未送达或取货)
  • pagliacci-pp-cli orders suggestion — 获取为客户个性化推荐的订单

rewards — 忠诚度卡、奖励历史和已保存的优惠券

  • pagliacci-pp-cli rewards card — 获取已通过身份验证的用户的奖励卡余额、积分和可用奖励
  • pagliacci-pp-cli rewards coupon_lookup — 按序列号查询优惠券(应用前先验证)
  • pagliacci-pp-cli rewards history — 获取奖励获取/兑换历史(最近的 N 条记录)
  • pagliacci-pp-cli rewards stored_coupons — 列出已保存到已通过身份验证的用户账户中的优惠券

scheduling — 配送和自取时间段

  • pagliacci-pp-cli scheduling slot_list — 列出某家门店和服务类型的可用时间段
  • pagliacci-pp-cli scheduling slot_list_for_date — 列出指定配送/自取日期(YYYYMMDD)允许的时段
  • pagliacci-pp-cli scheduling window_days — 列出某家门店可配送或自取的日期。serviceType 为 DEL(配送)或 PICK(自取)

store — Pagliacci 门店位置、营业时间和报价信息

  • pagliacci-pp-cli store compute_quote — 根据购物车内容为指定门店计算报价(返回配送、无人机、自取等待时间)
  • pagliacci-pp-cli store get — 按数字 ID 获取一家门店
  • pagliacci-pp-cli store get_quote — 获取单家门店的报价元数据(配送费、无人机状态、自取等待时间)
  • pagliacci-pp-cli store list — 列出所有 Pagliacci 门店位置,以及地址、营业时间、GPS、设施和可供应的披萨片
  • pagliacci-pp-cli store list_quotes — 列出所有门店的报价元数据(配送费、无人机状态、自取等待时间)

system — 系统信息和公告

  • pagliacci-pp-cli system site_wide_message — 获取全站公告横幅文本(停业、节假日营业时间等)
  • pagliacci-pp-cli system version — 获取当前 API 版本

新鲜度约定

此 CLI 仅对已注册的、由存储支持的读取命令路径负责有限的新鲜度保障。在 --data-source auto 模式下,这些路径会检查 sync_state,并可能在读取本地数据前执行有限刷新。--data-source local 不会刷新。--data-source live 会读取 API,且不会修改本地存储。设置 PAGLIACCI_NO_AUTO_REFRESH=1 可跳过新鲜度钩子,而不更改数据源选择。

覆盖的路径:

  • pagliacci-pp-cli address
  • pagliacci-pp-cli address create
  • pagliacci-pp-cli address delete
  • pagliacci-pp-cli address get
  • pagliacci-pp-cli address get_info
  • pagliacci-pp-cli address list
  • pagliacci-pp-cli address lookup
  • pagliacci-pp-cli credit
  • pagliacci-pp-cli credit delete
  • pagliacci-pp-cli credit get
  • pagliacci-pp-cli credit list
  • pagliacci-pp-cli customer
  • pagliacci-pp-cli customer access_devices_delete
  • pagliacci-pp-cli customer access_devices_list
  • pagliacci-pp-cli customer get
  • pagliacci-pp-cli customer migrate_answer
  • pagliacci-pp-cli customer migrate_question
  • pagliacci-pp-cli gifts
  • pagliacci-pp-cli gifts check
  • pagliacci-pp-cli gifts delete
  • pagliacci-pp-cli gifts get
  • pagliacci-pp-cli gifts list
  • pagliacci-pp-cli gifts transfer
  • pagliacci-pp-cli gifts value
  • pagliacci-pp-cli orders
  • pagliacci-pp-cli orders clone
  • pagliacci-pp-cli orders get
  • pagliacci-pp-cli orders list
  • pagliacci-pp-cli orders list_gift_cards
  • pagliacci-pp-cli orders list_pending
  • pagliacci-pp-cli orders suggestion
  • pagliacci-pp-cli store
  • pagliacci-pp-cli store compute_quote
  • pagliacci-pp-cli store get
  • pagliacci-pp-cli store get_quote
  • pagliacci-pp-cli store list
  • pagliacci-pp-cli store list_quotes

当 JSON 输出使用生成的来源信息封套时,新鲜度元数据位于 meta.freshness。应将其视为该覆盖命令路径的当前缓存新鲜度,而非完整历史回填或特定 API 数据增强的保证。

查找合适的命令

当你知道要做什么,却不知道该用哪个命令时,可以直接询问 CLI:

pagliacci-pp-cli which "<capability in your own words>"

which 会根据自然语言功能查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项——请改用 --help,或尝试更具体的查询。

示例

今晚吃什么?
pagliacci-pp-cli slices today --agent --select store,slice,price

返回今天所有门店可供应的披萨片,仅包含便于 Agent 快速决策的关键字段。

为 6 人的小型聚会规划订单
pagliacci-pp-cli orders plan --people 6 --address-label home --json

将门店距离、配送时段、合适份量的购物车和折扣组合整合为一条推荐。

制作一份双拼家庭披萨
pagliacci-pp-cli menu half-half --left pepperoni --right cheese --size large --json

验证披萨两半是否符合菜单,并返回已定价、可提交的购物车条目。

重放上一笔订单
pagliacci-pp-cli orders reorder --last --dry-run --json

提取最新的 OrderListItem,通过 OrderClone 转换,重新定价,并返回可提交的购物车,但不会提交订单。

结账前最大化折扣
pagliacci-pp-cli rewards stack --order-total 55.00 --agent

根据给定的订单总额,计算已保存优惠券、奖励兑换和账户余额的最佳组合用法。

身份验证设置

Pagliacci 没有公共 API,并使用由 Cookie 构造的自定义组合 PagliacciAuth {customerId}|{authToken} 标头。登录 Chrome 中的 pagliacci.com 后,运行 pagliacci-pp-cli auth login --chrome——CLI 会读取身份验证 Cookie 并为你构造标头。公共命令(菜单、门店、披萨片、时间段)无需登录即可使用;需要身份验证的命令(订单历史、奖励、已保存地址)则需要 Chrome 会话。

运行 pagliacci-pp-cli doctor 验证设置。

Agent 模式

在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可管道传输 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。在处理冗长 API 时,这对于控制上下文大小至关重要:

    pagliacci-pp-cli address list --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不会发送

  • 离线友好 — 有本地 SQLite 存储时,同步/搜索命令可以使用它

  • 非交互式 — 从不显示提示,每项输入都必须是一个标志

响应封装

从本地存储或 API 读取的命令会将输出包装在来源封装中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 以判断数据来自实时来源还是本地来源。只有当 stdout 连接到终端时,才会将便于阅读的 N results (live) 摘要打印到 stderr;通过管道传输的消费者/Agent 会在 stdout 获得纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:

pagliacci-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pagliacci-pp-cli feedback --stdin < notes.txt
pagliacci-pp-cli feedback list --json --limit 10

条目会本地存储在 ~/.pagliacci-pp-cli/feedback.jsonl。只有在设置了 PAGLIACCI_FEEDBACK_ENDPOINT,并且传入了 --send 或 PAGLIACCI_FEEDBACK_AUTO_SEND=true 时,才会 POST。默认行为仅限本地存储。

记录让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:这才是能持续积累的部分。

输出交付

每个命令都接受 --deliver <sink>。输出会写入指定的接收端,同时也可写入 stdout,或替代 stdout 输出,这样 Agent 无需手动通过管道传输,就能路由命令结果。支持三种接收端:

接收端效果
stdout默认;仅写入 stdout
file:<path>将输出原子写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(使用 --compact 时为 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回列出支持项的结构化错误。Webhook 失败时会返回非零退出码,并在 stderr 中记录 URL 和 HTTP 状态。

命名配置

配置文件是一组已保存的标志值,可在多次调用中重复使用。如果某个定时 Agent 每次运行都会使用相同配置调用同一命令,就可以使用它——这就是 HeyGen 的“Beacon”模式。

pagliacci-pp-cli profile save briefing --json
pagliacci-pp-cli --profile briefing address list
pagliacci-pp-cli profile list --json
pagliacci-pp-cli profile show briefing
pagliacci-pp-cli profile delete briefing --yes

显式标志的优先级始终高于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,以便自省型 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 pagliacci-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的前置条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并附加 --agent)

安装 MCP 服务

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/food-and-dining/pagliacci/cmd/pagliacci-pp-mcp@latest
    
  2. 在 Claude Code 中注册:
    claude mcp add pagliacci-pp-mcp -- pagliacci-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which pagliacci-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的前置条件)。
  2. 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    pagliacci-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,请深入查看子命令帮助:pagliacci-pp-cli <command> --help。

评论

支持 Markdown