关于 pp-pagliacci
pp-pagliacci 是供家庭使用的命令行技能,可通过程序浏览 Pagliacci Pizza 菜单并处理订餐任务。它将门店和配送时段查询与订单规划、半半披萨制作、奖励计算及历史订单重下单结合起来。
主要功能
- 01浏览菜单、价格和当日可售披萨片
- 02查找营业中的门店及配送时段
- 03制作并计算定制或半半披萨价格
- 04按人数和已保存地址规划订单
- 05重下历史订单并计算奖励折扣
适用场景
- 01查看当天有哪些披萨片可选
- 02查找今晚仍可配送的门店
- 03为小型聚会规划披萨订单
- 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 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install pagliacci --cli-only - 验证:
pagliacci-pp-cli --version - 确保报告的安装目录位于将调用此技能的 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 addresspagliacci-pp-cli address createpagliacci-pp-cli address deletepagliacci-pp-cli address getpagliacci-pp-cli address get_infopagliacci-pp-cli address listpagliacci-pp-cli address lookuppagliacci-pp-cli creditpagliacci-pp-cli credit deletepagliacci-pp-cli credit getpagliacci-pp-cli credit listpagliacci-pp-cli customerpagliacci-pp-cli customer access_devices_deletepagliacci-pp-cli customer access_devices_listpagliacci-pp-cli customer getpagliacci-pp-cli customer migrate_answerpagliacci-pp-cli customer migrate_questionpagliacci-pp-cli giftspagliacci-pp-cli gifts checkpagliacci-pp-cli gifts deletepagliacci-pp-cli gifts getpagliacci-pp-cli gifts listpagliacci-pp-cli gifts transferpagliacci-pp-cli gifts valuepagliacci-pp-cli orderspagliacci-pp-cli orders clonepagliacci-pp-cli orders getpagliacci-pp-cli orders listpagliacci-pp-cli orders list_gift_cardspagliacci-pp-cli orders list_pendingpagliacci-pp-cli orders suggestionpagliacci-pp-cli storepagliacci-pp-cli store compute_quotepagliacci-pp-cli store getpagliacci-pp-cli store get_quotepagliacci-pp-cli store listpagliacci-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 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示pagliacci-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的前置条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并附加
--agent)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/food-and-dining/pagliacci/cmd/pagliacci-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add pagliacci-pp-mcp -- pagliacci-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which pagliacci-pp-cli如果未找到,请提供安装选项(参见本技能顶部的前置条件)。 - 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:pagliacci-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请深入查看子命令帮助:
pagliacci-pp-cli <command> --help。