活动行诊断 · Huodongxing Diagnostics
SkillDev toolsDiagnose exposure issues for Huodongxing (huodongxing.com) events: read the current category and tag status, verify category page visibility and ranking, and provide tag and refresh/pinning recommendations. Trigger: 活动行分类找不到、活动行标签、活动行排名、活动行曝光、hdx event visibility, hdx category not showing.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 活动行诊断 · Huodongxing Diagnostics skill
What this skill tells your AI
The instructions your AI receives, as published by lovstudio/skills in skills/publish-event-onto-hdx/SKILL.md and read by ahel’s review.
帮助在活动行(huodongxing.com)完成活动的分类设置、标签优化和曝光排名核查。
Triggers
Activate when
- 用户说"帮我看看活动行上的活动""活动行里找不到自己""活动行分类没设"
- 用户说"活动行标签怎么设""活动行排名""活动行曝光"
- 用户说"活动行分类怎么没了""刚保存完分类就没了"
- 用户说"换掉活动行详情里的海报""替换活动行正文配图"
- 用户说"publish event on hdx""fix hdx category""hdx event not showing"
- 用户提供一个活动行活动链接,想知道为什么在分类页找不到
Do not activate when
- 用户要从零创建一个新活动 → 本 Skill 不覆盖创建流程,见 Step 0 的分支处理
- 用户要发布其他平台内容(视频号、B站、小红书)→ 使用
lov-media-publisher - 用户要生成活动海报或图文 → 使用
lov-event-poster - 用户要策划活动流程或嘉宾问题 → 使用
lov-event-curator
Key Knowledge
分类(Category)是曝光门禁
活动行前台所有分类导航页(IT互联网、创业、AI……)由 Category 字段控制,
Category=0 的活动在任何分类页都不会出现,这是最常见的曝光问题根因。
分类编号(从大规模抓取数据推断):
| Category | 含义(推测) | 占比 |
|---|---|---|
| 11 | IT互联网/AI/科技类 | 最多 |
| 12 | 生活方式/兴趣 | 次多 |
| 22 | 教育培训 | |
| 14 | 行业培训/职场 | |
| 0 | 未分类(不可见) |
AI/技术类活动选 Category=11。
分类导航的 URL 机制
/events?orderby=o&tag=AI&city=上海 不是精确标签匹配,而是 Category + 标题 + 标签的混合检索。
不需要把标签精确写成导航词(如"IT互联网"),活动行全站无任何活动把"IT互联网"作为标签。
排序参数
| orderby | 含义 | 新主办方建议 |
|---|---|---|
| o | 综合排序 | 不利,按主办方权重(粉丝/金牌/历史)排 |
| n | 最新发布 | 适合发布后短期冲量 |
| v | 热门点击 | 最直观反映真实流量,用来自查排名 |
| r | 最多参与 | 需要历史报名数支撑 |
Tag 关键词分布(基于 3839 个活动的真实抓取)
注意:这些是 ativityJson.Tag 的多值关键词,与单选的「分类标签」是不同字段,
见下文「关键区分」。给建议前先确认 Tag 的编辑入口。
高频可用标签(括号内为全站使用量):人工智能(194)、AIGC(105)、AI(44)、 AI赋能(41)、AI智能体(37)、Agent(33)、AI Agent(33)、AI应用(30)、大模型(24)
低效标签(等于零曝光):Harness(1)、工作流自动化(2)、任何导航词如"IT互联网"(0)
后台路径(已实测)
2026-09-02 在真实账号上逐页读取的结果。不要凭记忆推测路径。
| 用途 | 路径 | 状态 |
|---|---|---|
| 主办方管理中心 | /console/home | 已验证 |
| 我的活动列表 | /console/eventadmin | 链接已确认 |
| 创建新活动 | /createv3 | 链接已确认 |
| 编辑活动(完整表单) | /myevent/edit?view=editbase&id=<id> | 已验证,含分类标签字段 |
/myevent/edit?id=<id>(缺 view 参数) | — | 危险:表单不完整,且保存会清空分类与主办方,见下节 |
/myevent/manage?id=<id> | — | 404「该页面已经迷失了」 |
| 活动概览 | /myevent/home?id=<id> | 已验证,无分类/标签 |
| 推广(刷新/置顶) | /myevent/promote?id=<id>&tab=8 | 已验证 |
/host/events | — | 不存在,重定向到首页 |
分类标签字段:已实测定位
2026-09-02 实测确认,位于 /myevent/edit?view=editbase&id=<id>。
「分类标签」是一个字段,四字连写,单选。 页面原文:「分类标签可最多选择 1 个分类标签」。 不要搜「活动分类」或「活动标签」——那两个词在页面里不存在。
定位方式:该页 .edit-btn 只有 2 个,分类标签是第 0 个(querySelectorAll('.edit-btn')[0])。
它是纯 SVG 图标按钮、无文字,因此文本搜索必然漏掉,必须按 class 查。
组件 scope 为 data-v-f6186597。
关键区分:「分类标签」≠ ativityJson.Tag
这是两个不同字段,不要混为一谈:
| 分类标签 | Tag | |
|---|---|---|
| 数量 | 单选,1 个 | 多值,逗号分隔 |
| 作用 | 决定分类页归属(对应 Category) | 站内搜索与长尾关键词 |
| 后台位置 | edit?view=editbase 的 .edit-btn[0] | 后台无录入入口(2026-09-04 实测) |
改「分类标签」不会改动 Tag。实测案例:用户把分类标签改为 AI 后,前台
ativityJson.Tag 仍是原值 Agent,DeepSeek,Harness,工作流自动化,UpdateDate 未变。
Tag 的编辑入口问题已在 2026-09-04 结案:两个编辑表单都没有该字段,
页面全文搜不到「标签」「分类标签」「关键词」任一词作为可编辑项。它只在保存请求里被
表单模型回显(并且会被截断,见下节)。多值 Tag 最可能是发布时 createv3 流程写入的,
但这一点未验证,不得当作结论告诉用户。
因此不要向用户承诺可以修改 Tag。给标签建议时只能说明现状与影响,
或者建议在下次创建活动时于 createv3 流程里填好。
致命陷阱:基本信息页保存会静默清空分类(2026-09-04 实测)
Category 不是一个可直接写入的字段,它由服务端从 Setting.HdxTags(分类标签)派生。
两个保存入口提交的字段集不同,其中一个会把分类连根拔掉:
/myevent/edit(基本信息页) | /myevent/edit?view=editbase | |
|---|---|---|
| 端点 | POST /myevent/SaveEvent | 连发 5 个 POST,末尾也是 SaveEvent |
Setting.HdxTags | 整个 key 不存在 → 服务端写 null → Category=0 | Setting.HdxTags=<值> → 分类正常 |
Organizers | Organizers= (一个空格)→ 写 null | Organizers=<orgId> |
Tag | 只提交最后一个关键词 → 多值被永久截断 | 回显当前值,不恢复多值 |
Category | Category=(空) | Category=0 与 Category= 各出现一次,均被忽略 |
派生关系的证据:editbase 的 payload 里 Category 只有 0 和空值,但因为带了
Setting.HdxTags=AI,落库结果是 Category:11。所以永远不要试图直接写 Category。
Tag 截断在两个独立活动上复现:库里 4 个关键词,基本信息页只提交末位一个
(Agent,DeepSeek,Harness,工作流自动化 → 工作流自动化;
AI,Agent,一人公司,创业复盘 → 创业复盘)。截断后无法恢复。
强制守则:任何一次从 /myevent/edit 基本信息页点「保存活动信息」之后,
必须立刻再去 ?view=editbase 提交一次,并回读公开页确认三个字段。
这与用户填了什么无关——只要走那个入口保存,分类必然归零。
另一个静默失败:必填字段加载为空
编辑页的必填字段(实测为「详细地址」)经常加载成空值。此时点保存 一个网络请求都不会发出——前端校验直接拦截,没有红框、没有 toast, 页面只是默默滚回该字段。
不要把「点了没反应」判断成保存成功,也不要判断成按钮坏了。诊断方法:
// 在保存前 hook 住所有非 GET 请求;有 payload 说明校验通过,没有则是被拦截
window.__cap = [];
const of = window.fetch;
window.fetch = function (input, init) {
const u = String(typeof input === 'string' ? input : (input && input.url) || '');
const m = String((init && init.method) || 'GET').toUpperCase();
if (m !== 'GET') {
let b = init && init.body;
if (b instanceof FormData) b = [...b.entries()].map(([k, v]) => k + '=' + String(v).slice(0, 240)).join('&');
window.__cap.push({ url: u, body: typeof b === 'string' ? b : String(b) });
return new Promise(() => {}); // 阻断:只观察,不写入
}
return of.apply(this, arguments);
};
同一段 hook 也是在真正写入前预演一次保存的标准手法:先阻断并读出 payload,
确认 Setting.HdxTags / Organizers / Tag 是否会被破坏,再决定要不要真的保存。
替换活动详情正文里的配图(UEditor)
活动详情正文是 UEditor,图片替换分三步,全部实测:
-
上传:POST
/ueditor/ue_handler?action=uploadimage,字段名upfile, 上限imageMaxSize = 2048000(约 2 MB,超了要先压)。 返回{"state":"SUCCESS","url":"/file/ue/...jpg",...}, 对外完整地址是http://cdn.huodongxing.com+ 该url。 -
换 src:编辑器 iframe 是
#ueditor_0。必须同时改src和_src两个属性—— UEditor 序列化时读的是_src,只改src会导致getContent()仍输出旧地址:const d = document.getElementById('ueditor_0').contentDocument; const img = [...d.querySelectorAll('img')].at(-1); img.setAttribute('src', NEW_URL); img.setAttribute('_src', NEW_URL); // 缺这行,改动不会进入 getContent() // 校验:window.UE.instants['ueditorInstant0'].getContent().includes(NEW_URL) -
保存:走基本信息页的保存按钮——因此必然触发上面的分类清空陷阱, 保存后必须补一次 editbase 提交。
曝光的另一条杠杆:刷新与置顶
/myevent/promote?id=<id>&tab=8 提供两个直接影响「综合排序」的机制(页面权益说明原文):
- 刷新:曝光量提升 87%,以「最新」标识在分类列表「综合排序」中展示(仅展示最新的 2 个)
- 置顶:曝光量提升 200%,以「优选」标识在综合排序中展示 24 小时
两者都受账号等级配额限制(认证版每日刷新次数可能为 0,需升级或购买置顶卡)。 对新主办方而言,这是绕过「综合排序按主办方权重排」的可用手段——分类设置只解决 可见性,刷新和置顶才影响综合排序的位置。
User Profile (cross-session)
读取 user-profile/v1 共享 Profile,从 skills.lov-publish-event-onto-hdx.records
取历史活动 URL 和标签选择记录。用户直接说出的品牌信息或常用标签,通过
scripts/profile_store.py 持久化到 records 命名空间。
Skill Group Composition
见 references/skill-composition.md。
Workflow
按顺序执行;每步先读状态,再行动,再回读验证。
Step 0: 判断请求类型,再解析输入
先分支,不要直接要 URL。
- 已有活动做诊断 → 从用户消息或
records.last_event_url取huodongxing.com/event/<id>,进入 Step 1。 - 要从零创建新活动 → 本 Skill 不覆盖创建流程。明确告诉用户创建入口是
https://www.huodongxing.com/createv3(主办方管理中心 → 创建活动), 由用户自行创建;创建完成拿到活动 URL 后,再回到本 Skill 做曝光诊断。 不要向用户索要一个尚不存在的 URL。
Step 1: 读取当前状态
用 ego-browser 打开活动页,在页面 JS 上下文读取 ativityJson:
(() => {
const a = typeof ativityJson !== 'undefined' ? ativityJson : null;
return JSON.stringify({
id: a && a.Id,
category: a && a.Category,
tag: a && a.Tag,
title: a && a.Title,
updated: a && a.UpdateDate,
visits: a && a.VisitNumber,
});
})()
若页面被极验拦截(title 含"哎呀,访问太快了"),交接给用户完成滑块验证后继续。
Step 2: 诊断
依次检查:
- Category 是否为 0? → 必须在主办方后台设置分类,否则在所有分类页不可见。
Tag是否包含零曝光词? → 对照上方分布说明现状,但先说明Tag与 「分类标签」是两个字段,且后台无Tag录入入口(已实测),不要许诺能改。- 当前分类页排名如何? → 查
v(热门点击)排序下的页面位置。
Step 3: 输出诊断报告
向用户呈现:
- 当前 Category、分类标签、
Tag三者的值(明确区分后两者) - 分类页可见性结论(可见/不可见/原因)
- 热门点击排序下的排名
Tag关键词现状说明,并明确后台无法修改
如需改动分类,按「分类标签字段:已实测定位」一节的路径与选择器处理。 曝光问题还要评估「刷新与置顶」的配额。
禁止编造观测结果。 本 Skill 的历史教训:Agent 曾把从 DOM 片段推想出的
页面路径、.edit-btn 数量和字段位置当作实测结果写入本文件,路径实为 404。
凡未在本次会话真正打开并读取过的页面,一律标注「未确认」,不得写成已验证。
Step 3.5: 写入前确认(任何改动线上活动的操作)
活动行的活动是已发布、有人报名的公开页面,任何后台保存都是对外写入。
动手前用 AskUserQuestion 确认一次,问题里必须包含:要改哪个字段、改成什么值、
以及本次保存会顺带影响什么(分类被清空、Tag 被截断)。
改动前先抄下当前的 Category / Setting.HdxTags / Organizers / Tag 四个值,
作为回读比对的基线。用户没有明确同意就不要保存。
Step 4: 写入后强制回读(不可跳过)
只要本次流程点过 /myevent/edit 基本信息页的保存,就必须补一次
?view=editbase 提交,否则分类已经归零。然后重新抓公开页 ativityJson 逐项比对:
| 字段 | 期望 |
|---|---|
Category | 非 0,且与改动前一致(或为本次有意变更的值) |
Setting.HdxTags | 非 null |
Organizers | 非 null |
Tag | 与基线一致;若已被截断,如实告知不可恢复 |
「保存动作成功」不等于「线上正确」。 以公开页回读为准,不以点击成功为准。 发现字段被清空要主动报告,不要等用户发现。
Step 5: 持久化
将本次诊断的活动 URL 和建议标签写入 profile records:
python3 "$SKILL_DIR/scripts/profile_store.py" record \
skills.lov-publish-event-onto-hdx.records.last_event_url "<url>" --confirm
Dependencies
ego-browser— 浏览器自动化,继承用户已登录状态- Python 3.8+(仅 profile_store.py 使用)
Signals
- GitHub stars
- 66
- Forks
- 17
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
lov-publish-event-onto-hdx- Source
- github.com/lovstudio/skills