小红书 Skill 创新赛 · 参与思路

举报
yd_224682420 发表于 2026/10/19 14:03:01 2026/10/19
【摘要】 小红书 Skill 创新赛 · 参与思路从赛题拆解、选题决策、设计实现、验收到提交策略的完整复盘——一份可复用的参赛方法论,而非单次作品记录。赛事:2026 华为开发者大赛赛道:小红书 Skill 创新赛(竞赛 ID 1300000350)奖池:¥500,000作品:xhs-note-polish 01 赛赛概况先看清规则再动手——这是整件事的起点。赛事:2026 华为开发者大赛,下设多个...

小红书 Skill 创新赛 · 参与思路

从赛题拆解、选题决策、设计实现、验收到提交策略的完整复盘——一份可复用的参赛方法论,而非单次作品记录。

  • 赛事:2026 华为开发者大赛
  • 赛道:小红书 Skill 创新赛(竞赛 ID 1300000350)
  • 奖池:¥500,000
  • 作品:xhs-note-polish

01 赛赛概况

先看清规则再动手——这是整件事的起点。

  • 赛事:2026 华为开发者大赛,下设多个赛道,本专题聚焦「小红书 Skill 创新赛」,总奖池 ¥500,000。
  • 核心理念:学—做—晒 闭环。不是交一个 Skill 就完事,而是「学到—做出—晒出来」形成可传播闭环。晒(真实发布一篇笔记)是传播力分的证据。
  • 硬门槛:必须用码道 CodeArts 或果办 OfficeAce 提交;主账号;实名认证;Skill ≤30 文件、≤40MB。

时间线(关键节点)

阶段 说明
报名 10 月起开放,约 1.4 万报名者
初筛 11.16 前后开始;提前公开作品 = 抄袭/撞创意风险
提交 以截止前最新一次提交为准(可迭代,别一次定生死)
评选 按五维打分(见 02)

**⚠️ 反直觉点:**提交通道是「码道/果办 → 华为云 Skill 市场 + 小红书 Skill 市场」,不是 Git 仓库。把作品推到公开 Git 仓库等于把作品摆给所有报名者看,是这次最大的坑之一。


02 评审五维

五维是打分表,也是选题和取舍的标尺。每个设计决策都回扣到某一维。

维度 关键词 含义
场景真实性 用户基数 × 痛点频率 解决的是不是真有人、很多人、经常有的问题。不是自嗨的炫技场景。
内容传播力 像人写的 产物在小红书能不能不被一眼识破「AI 套话」。传播力负分来自套话文案。
Skill 复用性 换参数换场景 同一 Skill 能不能服务多种人设/平台/场景,而不是写死一个 case。
技术完成度 能跑 + 不虚标 逐功能真调用通过;不承诺做不到的能力(精修/美颜/真 CV)。
差异化卖点 官方不做的事 小红书官方 AI 文案只生成文字。重排+P图叠加+签名是它不做的,就是差异点。

**方法论:**选题前先用五维给自己打分,哪维弱就补哪维;任何「这个功能要不要做」的纠结,都回到「它提升哪一维、扣哪一维」来决断。


03 选题决策

选题 = 在五维约束下找全局最优解,不是找最酷的技术。

选定作品:xhs-note-polish(出片一键发)

输入一组照片(+ 可选用户历史文案),输出一份可直接发布的小红书笔记:重排后的图片(带画框/文案/签名叠加)+ note.md(标题/正文/标签)。

为什么是这个(对着五维打分)

维度 评分 理由
场景真实性 9/10 发图用户基数巨大,「拍完还要 P 图+配文」是高频痛点,不是造出来的需求
内容传播力 9/10 文案模仿用户本人风格(few-shot),硬禁 AI 套话,产物像用户自己写的
Skill 复用性 8/10 同引擎换参数可服务多平台多人设
技术完成度 8/10 离线可跑,10/10 验收通过
差异化卖点 8/10 官方 AI 文案只做文字;图片重排 + P 图叠加 + 签名水印是它不做的

**⚠️ 被否掉的选项:**纯文案生成(撞官方 AI,差异化≈0)、照片精修/美颜(PIL 做不稳,完成度会崩)、真 CV 场景识别(沙箱跑不了大模型,离线可跑优先)。


04 设计思路

每一步都是独立可跑的纯函数,评委能拆开单测,整条链离线可跑。

① 启发式场景识别(image_analyze.py)

用色彩统计(亮度/饱和度/暖冷偏/绿占比/肤色比)+ 边缘密度 + 宽高比,把照片分到 8 类:美食/夜景/风景/人像/室内/穿搭/探店/日常。

**⚠️ 诚实声明:**这是色彩统计启发式,不是真 CV 识别。选它是因为沙箱离线可跑、不依赖大模型;接 LLM 的扩展点 XHS_LLM_ENDPOINT 已留,但不承诺。这是「完成度」维的关键取舍——不虚标能力。

② 图片重排

规则可解释、非随机:封面 = 最高边缘密度(抓眼球)→ 同场景聚拢(读起来像故事)→ 竖横交替(视觉节奏)→ 最宽横图收尾。理由写进 note.md 注释,评委看得到不是随机。

③ few-shot 文案(caption_gen.py)

从用户 3–5 篇历史文案提取风格指纹:emoji 习惯、句长、标签。按人设(文艺/搞笑/种草/干货/记录)+ 场景分布拼一段连贯正文(不是每图一行模板拼接)。硬禁 17 个 AI 套话词(姐妹们/绝绝子/yyds/谁懂啊/直接封神…),命中即剔除并计数。

④ PIL 叠加

白色画框 + 底部渐变文字带(标题/正文)+ 序号徽章 + 签名水印。中文字体随仓库内置(SimHei.ttf),离线可跑。

平台 / 人设矩阵(复用性的证据)

平台 字数上限 人设 语气
小红书 xhs 1000 文艺 克制、留白、有画面感
朋友圈 150 种草 具体、说人话、讲效果
微博 140 搞笑 自嘲、反差、口语化
即刻 300 干货 结构化、信息密度高

同一组照片、同一引擎,换两个参数就是两篇不同笔记——这是复用率的可验证证据。


05 实现结构

12 个文件、5.1MB,全部硬指标内(≤30 文件、≤40MB)。

xhs-note-polish/
├── SKILL.md                  触发词 + 五维设计说明 + 用法 + 复用示例 + 失败处理
├── .gitignore
├── scripts/
│   ├── polish.py             主入口:编排 analyze→reorder→caption→overlay
│   ├── image_analyze.py      启发式场景识别(8 类)+ 视觉特征
│   ├── reorder.py            重排:封面/场景聚拢/竖横交替/横图收尾
│   ├── caption_gen.py        few-shot 风格 + 禁 AI 套话 + 连贯正文
│   └── overlay.py            PIL 画框/渐变文字带/序号徽章/签名
├── references/style_guide.md  禁用清单 + 人设档位 + 平台字数
├── assets/
│   ├── SimHei.ttf            内置中文字体(9.7MB,离线可跑)
│   ├── download_font.sh      字体备用拉取脚本
│   └── README.md
└── tests/test_acceptance.py   7 场景 × 10 断言验收

主流程一条命令

python3 scripts/polish.py \
  --photos ./my_photos \
  --out ./out \
  --persona 文艺 \
  --signature "@我的小日子" \
  --style-samples ./my_past_captions.txt

失败处理(全部显式,绝不静默)

情况 行为
找不到照片 退出码 2,stderr 提示 “no photos found”
图片不可读 / 太小(<64px) 退出码 2,提示具体文件
输出目录不可写 退出码 3
未提供 style-samples 正常运行,走人设默认模板
命中禁用套话 自动剔除并在 note.md 注释计数

06 验收

「逐功能真调用验收」是完成度维的落点——全过才算交付。

python3 tests/test_acceptance.py
=== 10 passed, 0 failed ===

7 个场景 × 10 项断言

场景 断言内容
normal 4 张混合场景图 + 风格样本 → note.md + 4 张打磨图;含重排理由、样本被用、无套话泄漏 3 个子断言
single 单图也能跑通
empty 空目录 → 退出码 2 + “no photos”
badimg 非图片文件 → 退出码 2
nosample 无风格样本 → 降级到人设默认模板,不崩
platform 切朋友圈 → 正文裁到 ≤150 字
reuse 同引擎换 persona+platform → 出不同笔记(复用率证据)

⚠️ 未覆盖的诚实缺口:验收用的是合成图,启发式场景识别在真实照片上的准确率还没验。这是提交前最大的未知点(见 09)。


07 提交策略

提交是 irreversible 的竞赛动作,通道选错全盘皆输。

正确通道

  1. 用华为云主账号登录码道 CodeArts(子账号不行,代金券也只发主账号)。
  2. 把 Skill 目录弄进 CodeArts(IDE 打开本地目录,或导入 .skill 包)。
  3. 在 CodeArts 对话框发官方口令:
我正在参加小红书Skill创新赛,帮我把这个Skill先发布到华为云Skill市场,
再使用 redskillhub-upload 发布到小红书 Skill 市场
  1. 码道自动走发布流程,中间确认信息按实际确认。先发华为云 Skill 市场,确认成功再发小红书。
  2. 发布到小红书 Skill 市场 = 非公开的参赛提交(不是公开发笔记)。另外再用自己的 Skill 产出一篇真实笔记,那是「晒」、是传播力分的证据。

为什么不走公开仓库

**❌ 公开 Git 仓库 = 抄袭风险。**初筛 11.16 才开始,提前公开等于把作品摆给 1.4 万报名者看。即使别人没原样抄,「撞创意」后评委判重复你也说不清。提交通道根本不是 Git 仓库——这是最该记住的坑。

私有仓库的定位

私有 GitCode 仓库(qin_rui/xhs-note-polish,private)只作云端备份 + 版本追溯,不是提交通道。clone 后直接可跑(字体已随仓库提交)。


08 踩坑记录

每个坑都记下根因和解法——下次参赛能直接绕开。

坑 根因 解法
浏览器导航失败 linux/arm64 openEuler 无 Chromium 用 curl 直连竞赛 SPA 的 API 端点
websearch HTTP 429 日配额上限 逆向 SPA 的 JS bundle,找到 API base URL 和端点路径
PIL alpha_composite 崩 底图是 RGB,alpha_composite 需 RGBA convert(“RGBA”) 再合成
测试路径错 HERE 指向 tests/ 而非 skill 根 dirname(dirname(__file__))
文案机械拼接 每图一行模板,读起来像 AI 改成基于场景分布的一段连贯正文
create_file 占位符 把 content 写成 POLISH 占位符就发了 改用 Git Smart HTTP 代理一次推全部真实内容
并发抢 master ref 锁 8 个 create_file 并行提交抢同一 ref 串行提交,或走 git push 一次性提交
沙箱不能发布到 Skill 市场 缺 redskillhub-upload / 小红书凭据 / 主账号登录态 口令在码道 CodeArts 里说,不在沙箱 agent 里说

可提炼的两条通则:
① 沙箱 agent 没有用户的登录态和凭据,凡是要「以用户身份发布/提交」的动作,都该引导用户去对应官方客户端做,别在沙箱里假装。
② 多文件推远端优先 git push(Smart HTTP 代理),别逐文件 API 并发——会抢锁。


09 待办建议

提交前最该做、且能真做的事,按优先级。

  1. 🔥 真实照片验收(最高优先):拿一组真实出片跑 polish.py --style-samples <你过往3-5篇文案>,确认启发式场景识别在真素材上分得准。这是现在最大的不确定点——只用了合成图验过。
  2. 实名认证 + 主账号:没实名 / 用子账号,代金券领不到、提交可能被挡。
  3. 先华为云 Skill 市场,再小红书:口令里是两步串行,别跳;任一步报错把报错贴回来排查。
  4. 发一篇真实笔记:用产物发一篇,截图作为「晒」的证据,别只交 Skill 不发笔记。
  5. 迭代提交:以截止前最新一次提交为准,初筛前还能改。

**⚠️ 启发式阈值可能要调:**真实照片的色彩分布和合成图不同,image_analyze.classify 的几个阈值(亮度<60 判夜景、肤色比>0.18 判人像…)在真素材上可能需要微调。这是真实照片验收要重点看的。


10 成果

当前产物的三个落点:

落点 说明
本地源码 xhs-note-polish/,12 文件,验收 10/10 通过
打包件 xhs-note-polish.skill,5.1MB(zip),≤30 文件 ≤40MB 达标
私有仓库 GitCode 私有仓库,含字体,clone 即可跑

**✅ 一句话总结:**选题对着五维打分、每步纯函数可单测、离线可跑不虚标、文案禁套话像人写的、提交走码道双市场不走公开仓库——这套思路换一个赛道也大体适用。


小红书 Skill 创新赛 · 参与思路专题 | 作品 xhs-note-polish | 2026-10-19

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。