下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/daze--1688-activity-signup.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @daze/1688-activity-signup。1688平台活动报名、登录、筛选、提报与结果确认;支持逗号分隔输入的活动ID+商品ID规则。
阅读全文 (展开查看完整说明)
概述
1688 活动报名助手
用于 1688 平台活动扫描、登录检查、只读复核和按用户指定商品 ID 提报活动。
安全边界
- 审查、扫描、登录检查和
signup <activityId>是只读流程,不提交报名。 - 正式写入只走
signup-full <activityId>。 - 运行
signup-full前,用户必须同时明确活动 ID 和商品 ID 列表;商品 ID 通过SIGNUP_PRODUCT_IDS/SIGNUP_PRODUCT_ID/PRODUCT_IDS传入。 - 当用户输入逗号分隔列表
报名 <活动ID>,<商品ID1>,<商品ID2>…时,第一个数字是活动 ID,其余全部是商品 ID。不要把商品 ID 当作活动 ID 去查详情;活动详情页会返回空壳「活动介绍」。正确做法是直接执行signup-full <活动ID>,并设置SIGNUP_PRODUCT_IDS="<商品ID1>,<商品ID2>"完成提报。 - 未提供商品 ID 时,只输出候选商品并停止,不默认全选。
- 商品 ID 必须是纯数字;脚本会去重,默认单次最多 10 个,可用
SIGNUP_PRODUCT_ID_LIMIT调整。 - 内部辅助写入脚本默认禁止直接调用;维护时必须显式设置
ALLOW_1688_INTERNAL_WRITE=1。日常写入不要绕过signup-full。 - 写入命令会对当前
PW_USER_DATA_DIR加运行锁,避免多个报名流程抢同一个浏览器 profile。 - 不点击撤销报名;遇到已报名活动,应进入商品提报流程继续确认商品状态。
- 不自动填写手机号、邮箱、联系人等商家基础信息;页面要求额外联系信息时停止并等待用户确认。
- 折扣保护、价格范围冲突、SKU 校验失败等平台业务错误必须原样输出
errMsg/reason,不得强制重试提交。 signup-full访问活动详情页后先做资格预检(只读,统一调用reviewActivity复核详情页):详情页出现「您暂不符合店铺要求」警示条即终止(含已报记录场景),输出errorCode: STORE_REQUIREMENTS_NOT_MET;活动显式不可报名(不符合活动规则/已结束/报名已截止)且无已报记录时终止,输出errorCode: ACTIVITY_NOT_ELIGIBLE(含notEligibleBlocked.reasons/message/evidence);页面无明确负向信号时放行,不进入报名页前即给出直观失败原因。
命令
node scripts/1688_activity_pw.cjs flow
node scripts/1688_activity_pw.cjs selftest
node scripts/1688_activity_pw.cjs getcommand
node scripts/1688_activity_pw.cjs check
node scripts/1688_activity_pw.cjs login
node scripts/1688_activity_pw.cjs scan
node scripts/1688_activity_pw.cjs eligible
node scripts/1688_activity_pw.cjs signup <activityId>
SIGNUP_PRODUCT_IDS="商品ID1,商品ID2" node scripts/1688_activity_pw.cjs signup-full <activityId>辅助脚本边界
日常只读复核可用:
scripts/verify_signup_status.cjs: 打开商品提报页并读取商品状态,不点击按钮。scripts/probe_product_select.cjs: 打开选择商品弹窗,搜索、切 tab、翻页读取指定商品可报性,不保存或提交。
维护专用 direct-write 脚本,默认禁止直接运行,必须显式设置 ALLOW_1688_INTERNAL_WRITE=1:
scripts/submit_product_select.cjs: 直接勾选商品并提交草稿。scripts/trace_editor_submit.cjs: 真实点击编辑器提交并追踪网络。scripts/fill_min_stock.cjs: 直接填写活动供货量并提交。scripts/sku_check_submit.cjs: 直接勾选 SKU、填供货量并提交。
正式写入仍只走 scripts/1688_activity_pw.cjs signup-full <activityId>。
离线自测
node scripts/1688_activity_pw.cjs selftest不启动浏览器、不访问 1688。- 覆盖商品 ID 解析、最终结果语义、输出压缩和辅助脚本读写边界。
- 成功输出
status: "ok"/success: true,失败输出结构化failures[]并以非零退出。
环境变量
PW_USER_DATA_DIR: 浏览器持久化 profile;默认系统临时目录1688-pw-session。OUTPUT_DIR: 截图、扫描结果和 JSON/Markdown artifact 原始输出目录;默认 skill 目录下的outputs/(即C:UsersAdministrator.workbuddyskills1688活动报名助手outputs)。只有维护调试时才建议显式指定,日常不要覆盖,避免原始产物不在 skill 的outputs/。WORKBUDDY_WORKSPACE: 产物「工作区 outputs 副本」的工作区根目录;默认process.cwd()(代理执行时即当前工作区)。scan/login生成的1688_activity_list_*.md、登录二维码 PNG,以及signup-full生成的1688_signup_full_*.md会在保留原始产物的同时,自动额外复制一份到此目录下的outputs/,展示时优先用工作区outputs/副本路径。SIGNUP_PRODUCT_IDS/SIGNUP_PRODUCT_ID/PRODUCT_IDS: 指定要提报的商品 ID。SIGNUP_PRODUCT_ID_LIMIT: 单次商品 ID 数量上限,默认 10,硬上限 10;去重后超过 10 个会直接停止。SIGNUP_ACTIVITY_DISCOUNT_RATE: SKU 活动价折扣率,默认由脚本策略处理。SIGNUP_ACTIVITY_STOCK: 每 SKU 活动供货量;未设时按页面最小规则处理。SCAN_SCENE_MAX_PAGES: 营销场景扫描最大翻页数,默认 5。SCAN_PRINT_MARKDOWN:scan结束后是否直接输出完整 Markdown 活动清单;compact 默认不打印完整 Markdown,设为1时打印;SCAN_STDOUT_MODE=full下默认保留旧版完整 stdout,可设为0关闭。PRODUCT_CANDIDATE_LIMIT: 候选商品输出上限,默认 50。PW_DEBUG=1: 输出更详细调试信息,仅故障复现时使用。ALLOW_1688_INTERNAL_WRITE=1: 仅维护/调试时允许直接运行内部写入脚本。
输出结果
signup-full 最终 JSON 至少关注这些字段:
- 输出最终结果前会对商品列表做只读复核纠偏:同一商品 ID 多行多状态时优先「待完善/草稿」,其次才是「待审核/审核通过/活动中/已报名/已提交」;「撤销报名 + 查看商品」按已提报完成处理;若最终仍是「待完善/草稿」,会等待平台刷新并重试后再判定;找不到商品则保留原失败原因。
overallStatus:completed/partial/blocked/failed/unknown。errorCode: STORE_REQUIREMENTS_NOT_MET(含storeRequirementBlocked.bannerText/message/evidence):店铺要求预检未通过(reviewActivity 复核 + 详情页警示条检测),报名已在详情页阶段终止,含已报记录场景;证据截图存于outputs/1688_store_requirement_<activityId>.png。errorCode: ACTIVITY_NOT_ELIGIBLE(含notEligibleBlocked.reasons/message/evidence):活动显式不可报名(不符合活动规则/已结束/报名已截止)且无已报记录,报名在详情页阶段终止;证据截图复用outputs/1688_activity_<activityId>.png。success: 仅所有请求商品完成时为true。merchantRegistrationStatus: 商家报名状态。allRequestedProductsCompleted: 用户指定商品是否全部完成。requestedProductCount/completedProductCount/failedProductCount: 商品计数。requestedProductIds: 本次请求的商品 ID,按输入去重后的顺序输出。productAttempts[]: 逐请求商品结果;未进入提交流程的商品会显示status: "not_attempted"。productFailures[]: 未完成商品汇总,优先查看errMsg/reason。notAttemptedProductCount: 请求了但未进入提交结果的商品数量。requiresUserProductSelection: 为true时,需要用户补充商品 ID 后再运行。warnings[]: 输入去重、陈旧锁替换等非致命提示。reportMarkdownPath/reportMarkdownWorkspacePath/reportMarkdown: 最终对话反馈用 Markdown;内容按每个商品输出「活动 ID / 商品ID / 活动状态 / 失败原因」表格,以及「商品提报数量、成功数、失败数」汇总;reportMarkdownPath为 skill outputs 原始文件,reportMarkdownWorkspacePath为工作区outputs/副本。displayAttachmentPath/displayAttachmentWorkspacePath/displayAttachmentFileName:signup-full报告展示字段;对话展示优先使用工作区副本。
展示规范
- 活动清单展示走 Markdown/JSON artifact,不生成或展示 HTML,不启动本地静态服务器。
scan结束后默认保存 Markdown/JSON artifact 到 skill 目录下的outputs/,并把 Markdown 清单自动复制一份到当前工作区的outputs/(见WORKBUDDY_WORKSPACE);对话展示只发精简摘要,并把 Markdown 清单作为附件展示;不要把完整 Markdown 表格直接贴进对话正文。- 最终回复展示顺序:先用
MEDIA:<markdownPath>附上 Markdown 清单文件(优先取脚本输出的displayAttachmentWorkspacePath工作区outputs/副本,其次displayAttachmentPath),让 OpenClaw 内置文件查看器打开.md;再输出chatSummary。chatSummary末尾只提示「完整活动清单:见上方 Markdown 附件:1688 活动清单」,不要在正文里伪造本地文件链接,也不要把本地绝对路径作为裸文本暴露。 - 如维护调试需要在 stdout 打印完整 Markdown,可显式设置
SCAN_PRINT_MARKDOWN=1;旧版SCAN_STDOUT_MODE=full默认仍保留完整 stdout,避免影响兼容流程。 - 登录二维码使用 PNG artifact;展示优先取脚本输出的
workspaceQrImagePath(工作区outputs/副本),其次qrImagePath(原 skilloutputs/下文件)。 signup-full生成报名结果 Markdown 后,会同时保留 skilloutputs/原始文件并复制一份到工作区outputs/;展示优先取displayAttachmentWorkspacePath/reportMarkdownWorkspacePath,其次取displayAttachmentPath/reportMarkdownPath。- 用户输入「查看命令」时,必须执行
node scripts/1688_activity_pw.cjs getcommand;不要直接从本文档手写或压缩命令列表。该命令输出与登录成功后的printFinalJson(buildPostLoginTips())一致。 login命令在登录成功(含扫码成功与已登录两种情况)后,stdout 末尾会输出postLoginPrompt+availableCommands(主脚本全部命令);对话助手确认登录成功后,必须完整保留postLoginPrompt,并将availableCommands[]的每个command和desc按 Markdown 表格展示,不得只输出「登录成功」或自行压缩、遗漏命令说明,再继续后续流程。availableCommands[]是登录成功后脚本返回的完整命令提示,不要求另行生成.md文件;只有脚本实际返回*.mdartifact 时,才使用MEDIA:附件展示。- 登录已成功但无需扫码时,也必须执行上述完整命令提示展示规则。
- 如需只保留结构化输出,使用默认 compact 模式运行
scan即可;旧版SCAN_STDOUT_MODE=full可设置SCAN_PRINT_MARKDOWN=0关闭 Markdown 打印。
参考
references/workflow.mdreferences/steps.mdreferences/playwright.mdreferences/troubleshooting.md