Nomi 用户反馈雷达
SkillCloud & infraSummarizes your app's user feedback and usage events into a short daily list of the top issues worth fixing today.
Use Nomi 用户反馈雷达 in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Nomi 用户反馈雷达 and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Nomi 用户反馈雷达 skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Automatically runs a user feedback radar at the start of every Nomi session, first runs `pnpm run intake:radar` to fetch feedback/usage events/Agent traces from Cloudflare and summarize them, then triages the summary: real bugs / config issues / UX issues / data reporting issues, attaches private to-
What this skill tells your AI
The instructions your AI receives, as published by aqm857886159/nomi in agent-skills/nomi-intake-radar/SKILL.md and read by ahel’s review.
目标:把「用户点了反馈按钮 / 匿名用量事件」变成「今天最该改的 1-2 件事」。抓取和算数字是脚本的活(scripts/intake-radar.mjs + scripts/lib/intake-radar/),这份技能只做判断——分诊、归因、写待办、汇报。这个分工和 feedback-radar.mjs(GitHub/B站/微信反馈)、model-radar.ts(供应商模型雷达)是同一条线:脚本确定性、不花额度;技能才调 LLM 判断。
入口
- 跑
pnpm run intake:radar(如果本轮会话开始时的「每日雷达」步骤已经跑过,直接读它的输出,不用重跑)。- 失败会红着退出,终端明说「今天没查成」——这种情况不要把它读成「今天没有新反馈」,如实告诉用户抓取失败以及失败原因,不要往下分诊(没有新数据可分诊)。
- 报告在仓库外的缓存目录:默认
%LOCALAPPDATA%\nomi-intake\reports\<日期>.md(同名.json是给这份技能读的结构化版本),可能被NOMI_INTAKE_CACHE改过位置——脚本终端输出的最后几行会打印这一轮报告的实际路径,认那个,不要假设默认路径。 - 读
.json报告里的newFeedback(本次新增反馈)、generationResults(成功/失败/取消分布)、errorCodeRanking、spikes(突增)、launches/updateActions。这些数字都已经算好,不要重新数一遍,也不要在没重新验证的前提下怀疑脚本的算术。
先判断数据可不可信,再下结论
看到成功率、错误码分布、突增这类数字异常时,第一反应不是「这是个 bug」,而是「这个数字覆盖的是不是它看起来该覆盖的那个总体」。上报链路本身有缺口时,数字会系统性失真,而不是随机噪音——先查缺口,缺口没排除之前任何百分比结论都要加限定语。
已知的两个缺口(2026-09-29 查实,写进这里是为了不用每次都重新排查一遍;如果之后有人把它们接上了,删掉对应这条,别留着误导):
generation.completed目前只覆盖「画布直生成」:唯一的上报点是src/workbench/api/taskApi.ts的runWorkbenchTaskByVendor(渲染层,画布节点执行器catalogTaskActions.ts调它)。「制作流程」(ProductionRun,electron/productionRun/,多镜头批量调度)和「Agent 付费卡」触发的生成(electron/capabilityCore/mcpStdioServer.ts、appIntegration.ts调createProductionGenerationSubmission)整条链路里没有任何 telemetry 调用——不是成功事件漏报而失败事件正常报,是这两条路径的生成完全不出现在generation.completed里,无论成败。所以任何从这份数据算出来的生成成功率,只代表画布直生成这一条路径,不能说成"Nomi 的生成成功率"。看到这类数字要在汇报里加一句「样本只覆盖画布直生成,制作流程/Agent 生成不在里面」。这本身也是要挂私有待办的一条(数据上报问题,不是产品 bug),可以引用electron/telemetry/telemetryOutbox.ts的recordTelemetryEvent——它是渲染层 IPC 和主进程都能直接调的唯一出口,ProductionRun 要补报点时不用建新链路,在它判定终态的地方直接调这个函数即可(接线本身不在这份技能的职责里,只在待办里写清楚"接到哪")。- Agent 轨迹(
trajectories/前缀)条数是 0,这是预期状态,不是新发现:生产代码里没有任何地方把独立的轨迹对象放进上报队列(enqueueIntake('trajectories', …)只在测试文件里出现过)。electron/telemetry/trajectoryProjection.ts的projectLaneTrajectory唯一的生产调用方是electron/feedback/feedbackReport.ts——只在用户手动提交"一键反馈"时,把最近 3 个回合的白名单投影附带在那份反馈里,不是独立上报。看到轨迹条数为 0 不用再报一遍"发现轨迹没接",除非将来接上之后条数还是 0(那才是真异常)。
对生成结果按能力/版本/系统/日期看的时候同理:事件的 systemProps 只有 appMajor.appMinor,没有补丁号——报告里出现的"版本"是"0.22"这个粒度,不是完整版本号,不要在汇报里假装精确到补丁版本。
归类
每条新反馈归到四类之一,写进私有待办前先定这个类:
- 真 bug——Nomi 自己的代码/设计导致用户做不成事,且可复现、可定位到具体模块。
- 配置问题——用户自建/中转渠道、模型 id、参数等配置错误,Nomi 按预期拒绝或报错;但如果报错文案让用户摸不清"该怎么改",这本身是体验问题,两类可以同时成立。
- 体验问题——功能能用,但流程绕、提示不清楚、需要用户多想一步;包括"设计出来的保护性拦截"(比如为避免白扣费主动拒绝某个操作)用户仍然觉得困惑的情况——护栏本身没错,但用户体验到的是一次"卡住",值得记。
- 数据上报本身有问题——现象不是产品行为异常,是遥测/反馈链路本身漏报、误报、口径不一致(比如上面两个已知缺口这一类)。
一条反馈可以同时挂多个类(比如"真 bug + 体验问题"),不必只选一个。
归因到底层设计问题
不要满足于"这条反馈对应哪一行代码"。先查这个现象是不是已经被结构性归过因——读 docs/audit/2026-09-29-hot-modules-structure-review.md(四个热模块为什么扎堆)和它引用的 #897 结构簇(两台生成发动机 / 同一件事多处判断 / 跨边界约定没有共用定义 / 投影层自己下结论 / 失败不出声)。如果一条新反馈明显是这几类的又一个实例(尤其"画布直生成 vs ProductionRun 两台发动机"这条线——目前看到的很多生成类反馈最终都会落在这上面),在私有待办里点出它属于哪一簇,不要当成孤立新 bug 重新归因一遍;同一层 7 天内第三份根因合同要先出结构评审(R21),挂待办时可以提前标出"这可能是第 N 份",帮后面派工的人少走一遍这个判断。
挂私有待办
- 私有待办是唯一真相源,这份技能只知道它叫"私有待办",不在这份公开仓库的文件里写它的具体位置——运行这份技能的会话应该已经知道去哪读写它。
- 先搜私有待办里有没有已经登记的相关条目(按模块/症状关键词搜,不是按这条反馈的编号搜——同一个底层问题可能已经被换了个说法登记过)。有就把这条反馈的编号(
NF-MMDD-NNNN)追加挂上去当新证据,不重复开条;没有就新记一条。 - 写进待办的只能是归纳后的问题描述:模块、现象、影响范围、属于哪个结构簇(如果查得到)。不许把用户反馈的原文摘要、留言原文、或反馈自带的附件内容(比如那份很大的
model-catalog.json诊断快照)整段搬进待办——那些是本机缓存里的诊断数据,不是要长期保存的产品文档。要引用就用自己的话转述"用户反馈说 X 场景下 Y 不工作",不逐字复制。
汇报给用户
大白话,今天最该动的 1-2 件事,不是把整份报告念一遍。格式:
- 这件事是什么(一句话,说人话不说术语)
- 为什么值得今天动它(新出现的 / 影响面大的 / 突增的 / 卡住付费路径的,优先级从这几条里选)
- 建议怎么处理(继续走正常修复流程 / 需要用户拍板 / 只是记录观察,不用现在动)
如果这一轮没有新反馈、也没有突增,如实说"今天没有新东西",不要为了有话说而重复讲已经报过的旧发现。
隐私
原始反馈/事件/轨迹只留在本机缓存目录(脚本已经保证不进仓库、不进任何提交)。这份技能自己的输出——包括私有待办里新增的条目——只能是归纳后的问题描述,不贴用户反馈原文、不贴附件内容、不贴账号 id、不贴任何价格/成本数字。跟"论文雷达""模型雷达"一样,这份技能的判断额度默认已授权,不用为了跑一次分诊再单独问用户。
Signals
- GitHub stars
- 550
- Forks
- 124
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
nomi-intake-radar- Source
- github.com/aqm857886159/nomi
Related picks
Skill · cloudflare
The pick for Cloudflarelegacy-js
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptsetup-ts-deep-modules
Skill · mattpocock
The pick for TypeScripttypescript-pro
Skill · jeffallan
The pick for TypeScriptfind-skills
Skill · vercel-labs
More in Cloud & infra