بنقرة واحدة
feedback-closeout
BoardGame 线上反馈批量收口流程。用于未关闭反馈、排重、真假 bug 分诊、并行修复、状态回写、关闭误报/重复反馈。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
BoardGame 线上反馈批量收口流程。用于未关闭反馈、排重、真假 bug 分诊、并行修复、状态回写、关闭误报/重复反馈。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
BoardGame 项目内参考图生成 Three.js 程序化模型流程。用于 img2threejs、图生模型、参考图重建、Three.js 游戏资产原型、书本/棋盘/卡牌/道具 3D 模型任务;在动手写模型前先拆参考图结构并建立“参考图区域到模型部件/材质”的追踪表,禁止把参考图当整面贴图贴皮,也禁止脱离参考图生成泛主题模型。
BoardGame 规则 bug 修复流程。用于卡牌、技能、Token、状态、阶段、伤害、资源、升级/基础差异、结算顺序和审计漏审。
BoardGame Git 操作入口。用于提交、推送、同步主分支、pre-push 阻塞、PR、worktree、fork、merge 等协作场景。
BoardGame 新游戏创建或资源/data intake 流程。用于新增游戏、只给图片/位置先开工;按现有游戏模式分阶段推进并验收。
BoardGame 截图交付流程。用于打开图、给我看图、看截图、图呢、端到端截图;最终验收图默认走图片预览站。
Smash Up 新增派系端到端流程。用于新增派系、卡牌/基地素材、从素材做到可玩;含 intake、上传、数据、玩法、审计、E2E。
| name | feedback-closeout |
| description | BoardGame 线上反馈批量收口流程。用于未关闭反馈、排重、真假 bug 分诊、并行修复、状态回写、关闭误报/重复反馈。 |
open / in_progress / resolved / closedclosedReason / resolvedMethodreferences/feedback-open-api.md:描述 HTTP 接口路径、认证方式、字段形状C:\Users\zhuagenbao\docs\服务器连接与生产部署入口.md:提供 SSH / Mongo 入口和最小操作路径temp/feedback-closeout/**、evidence/feedback-closeout/**、截图、诊断包、导出文本都只能算临时诊断材料,不是正式留档。这个 skill 负责把“看反馈”收敛成一条固定流水线:先从开放接口抓取未收口反馈,再排重、分类、挑出可并行的非冲突候选,最后由多个子 agent 分别判断真假 bug、修复代码并回写状态。
优先使用本 skill 自带脚本,不要手工拼 URL、手工拷贝 JSON、手工维护重复组。
当用户说“处理反馈/收口反馈/修复反馈”时,默认必须同时覆盖下面这些动作,不能只做其中一部分就对外宣称“已处理”:
注意:仅回写状态 ≠ 修复完成;仅本地验证但未回写 ≠ 已收口。对外汇报时必须清楚说明本轮到底完成了哪些步骤。
open / in_progress / resolved 任一 > 0),就不得宣称“已完成/已收口”,必须继续迭代处理。feedback-modal、人工工单或其他人类来源的未收口项,就不得把 online-ai-watchdog、unsatisfiable-interaction-auto-skipped、force-end-turn-* 这类系统自动反馈当成主队列排在前面。online-ai-watchdog、unsatisfiable-interaction-auto-skipped、force-end-turn-* 这类系统单,最低要读出并记录:
autoReportKinderrorContext.messagestateSnapshot / actionLog 里的 reasoninteraction、legalActions、aiDecisionPreview共享/私有视图不一致0 个合法动作 / legal_action_unavailable恢复/跳过动作被服务端拒绝temp/feedback-closeout/**、evidence/feedback-closeout/**、本地截图、导出文本、诊断包,默认都只算临时工作材料,不是正式留档。closedReason(关闭理由)、resolvedMethod(解决方式)的唯一留档入口,统一以线上真实反馈记录为准。status-boardstatus-board、历史 evidence 文档若已存在,只按历史辅助材料看待;不得继续把它们当默认入口或必经留档步骤。./.codex/skill/feedback-closeout/:反馈处理流程、状态时机、脚本顺序、证据门禁AGENTS.md:仅当这是跨任务、跨 workflow 的总不变量反馈状态 只回答“这条反馈当前是否已经被定位、修复、验证并正式回写”发布/部署状态 只回答“修复代码是否已经 push / 已上线 / 已部署 / 已观察”resolved/closed;发布、部署、观察属于后续单独事项resolved/closed 回写流程;不得再用“还没部署”“还没在线上复测”“等线上不再复发”作为继续保留 open/in_progress 的理由。closedReason/resolvedMethodresolved/closed。resolved 的判定不以生产部署、线上复测或未来复发观察为前置条件。部署状态、CI 状态、发布窗口、线上后续观察只能作为后续待办单独记录;只要当前反馈已经有“根因定位 + 修复 + 验证 + evidence”,就必须回写 resolved。如果部署后再次出现同根因,应按新反馈/聚合项重新处理,而不是用不可证明的“等不复发”提前阻塞当前回写。旧的本地状态板脚本仅保留为阻塞场景 fallback,不再是默认流程:
node .codex/skill/feedback-closeout/scripts/sync-feedback-status-board.mjs temp/feedback-closeout/<timestamp>/summary.json
node .codex/skill/feedback-closeout/scripts/update-local-feedback-board.mjs --id <feedbackId> --status in_progress --owner codex --notes "<仅在阻塞/并行分派时使用>"
node scripts/verify/verify-feedback-status.mjs temp/feedback-closeout/status-board.json
feedbacks.repaired.json、temp/*.json、网页域名上返回的 SPA HTML,都只能用于辅助诊断、证据整理和人审,不得默认视为“已经改到真实反馈状态”。in_progress / resolved / closed 这类正式状态回写,必须先确认当前连接的就是线上真实反馈源。在第一次读或写状态前,必须先核对下面四件事:
如果上面任一项不能确认,就先停在分诊和证据阶段,不要写状态。
AGENTS.mddocs/ai-rules/testing-audit.mddocs/testing-best-practices.md先确认 --base-url 真的是线上真实反馈接口,再运行:
node .codex/skill/feedback-closeout/scripts/triage-open-feedback.mjs --base-url <真实反馈接口基址> --slots 4
如果要把挑出的并行候选立即认领成 in_progress:
node .codex/skill/feedback-closeout/scripts/triage-open-feedback.mjs --base-url <真实反馈接口基址> --token <BearerToken> --slots 4 --mark-in-progress
禁止把 http://127.0.0.1:* 当成默认正式目标,除非用户明确说这次就是要处理本地测试反馈。
当前线上正式列表/回写接口默认是 https://api.easyboardgame.top/admin/feedback...;旧的 /feedback/open 若返回 404,视为过期入口,不得继续沿用。
脚本会:
open,in_progresstemp/feedback-closeout/<timestamp>/summary.jsonimages/ 临时目录parallelCandidates,用于后续并行分派parallelCandidates 立即改成 in_progress拉取完成后,默认直接进入分诊与远端回写;只有在本轮确实需要本地并行认领/阻塞备注时,才允许把本批 summary.json 同步到本地分诊板:
node .codex/skill/feedback-closeout/scripts/sync-feedback-status-board.mjs temp/feedback-closeout/<timestamp>/summary.json
按 summary.json 中的代表项处理,不要把重复项当独立问题并行开工。
分类规则:
bug_candidate
non_bug
needs_owner_decision
needs_review
判断真假 bug 时,必须先检查:
resolved。resolved 回写。needs_owner_decision,必须用用户听得懂的话写清“这不是已证实的程序错误,而是体验/产品取舍,需要你决定是否改默认或保持开关方案”。不得用内部分类名替代结论。stateSnapshot、完整 core/sys 快照、真实操作日志、事件尾部、截图或同批诊断包,注入到当前代码后继续执行后续流程。只要结论已确认,就先回写远端正式状态与理由,再继续处理下一条反馈;默认不要再额外补本地收口文档。
每条反馈在进入“已修 / 已收口 / 已回写”口径前,必须先明确落到下面四类之一,禁止混说:
已用真实反馈状态复现
stateSnapshot、actionLog、eventStream、截图或同批真实导出,在本地成功回放到用户报错位点。当前树已恢复 / 已失效
open / in_progress;默认应直接归档收口。closed;若团队需要保留“当前树已恢复”的可见记录,也可用 resolved,但无论哪种都不得继续留在未收口队列。证据不足 / 未证实
仅修了相关风险或通用防线
最低汇报格式至少要带:
已复现 / 当前树已恢复 / 证据不足 / 仅修相关风险stateSnapshot / actionLog / eventStream / 截图 / 其他禁止行为:
stateSnapshot、actionLog、reason、autoReportKind当前树已恢复 / 已失效,并直接归档收口;不再继续按现存 bug 主线推进当结论是“当前树已恢复”或“证据不足”时,必须再补一句判断依据或缺口在哪:
eventStream、interaction、responseWindow、触发前 checkpoint)如果本轮顺手补了反馈采集能力,最终汇报必须写成:
该反馈本体:当前树已恢复 或 证据不足 / 未证实本轮额外改动:补了 xxx 诊断能力,方便下次同类反馈直接注入很多开放反馈会落在“代码其实已经修了,但状态还没回写”的阶段;批量开工前必须先做一次最近更新核对,避免重复修同一个问题。
强制检查顺序:
resolved/closedtemp/feedback-closeout/status-board.jsonclosedReason / resolvedMethod / statusevidence/,只把它当辅助参考,不再要求新建同类文档resolved 还是继续 in_progress推荐核对项:
status / closedReason / resolvedMethod禁止:
resolved,但不补验证与证据当反馈属于 SmashUp 的 scoreBases / Me First / afterScoring / smashup_reaction_choose 链路,且用户描述里出现“让过又出现”“计分后卡死”“以前是手牌承接”“中间弹窗/提示层”“没有可选目标”“同一基地重复触发”时,必须额外执行下面这组门禁:
先锁定是不是同一基地同一响应帧
基地索引/基地对象、reaction frameId、当前响应玩家、当前 sourceIdafterScoring 帧被重复续链Me First 结束后又进入 afterScoring先锁定交互载体,不得把提示壳当成交互对象
MeFirst / 顶部横幅 / 中间提示层默认只当提示 UI;未证实前不得把它们当作真正的点击承载层修复后必须同时补两层回归
pass 粘性、同一 frameId 的续链、或无目标自动收口等真实根因E2E 断言必须直接命中“不会再卡 / 不会再重开 / 不会再二次让过”
phase 最终离开 scoreBasesinteractionSourceIdresponseWindow.current看图结论必须落回用户语言
并行前必须满足:
parallelCandidates,或你自己确认 conflictKey 不冲突。使用子 agent 时必须显式固定模型配置:
model: gpt-5.4reasoning_effort: high给 worker 的任务必须包含:
只在拿到明确结论后改状态:
closedresolvedresolvedclosedin_progress状态语义补强:
resolved,不得改成 closed。resolved;不得因为它是重复上报就降级成 closed。closed 只用于:误报、建议、旧样本已失效、当前树已恢复但本轮没有再次做该 bug 的正式修复、或同组代表项本身就是这类关闭结论。resolved 的现实含义必须是:
字段要求:
closed
closedReason(关闭理由)resolved
resolvedMethod(解决方式)字段必填补强:
resolvedMethod 与 closedReason 都视为正式收口理由字段,默认必须填写完整。resolvedMethod 与 closedReason 默认都是给最终用户看的,不是给研发/当前操作者看的。这不是 bug不是当前代码缺陷证据不足当前树已恢复按非现存业务 bug 关闭resolved 时:
resolvedMethodclosedReason,也应同步填写一句面向人能读懂的收口结论;不得只写状态不写结论closed 时:
closedReasonresolved 或 closedresolved,修的是哪条现实规则/链路、用了什么验证closed,为什么它不是需要按“已解决”展示的 bug(如误报、当前树已恢复、证据不足、已失效)closedReason / resolvedMethod 单独读一遍,假设看到它的人只有最终用户而不知道仓库、测试、状态机、worktree、当前树这些背景;如果这句话在这种前提下仍然成立,才算合格。closedReason / resolvedMethod 是可能直接展示给反馈提交者看的回复,不是研发备注、排重备注、任务交接、测试结论或 agent 自我解释。resolved + resolvedMethod;代表项关闭才同组写 closed + closedReason。代表反馈、重复项、排重、收口、归档、验证通过、当前树、现存 bug、候选、状态回写、研发已处理。closedReason / resolvedMethod 这类玩家可见字段。执行顺序硬规则:
in_progressresolved/closedresolved/closed 时,必须同时回写对应理由字段;若真实写入口支持两种理由字段并且不会引入歧义,默认补齐结论字段,不得留空open/in_progress”的长时间滞留本地分诊板不是默认双写目标:
temp/feedback-closeout/status-board.jsonnotes 说明阻塞原因,任务结束后仍不得把它当正式留档使用:
node .codex/skill/feedback-closeout/scripts/update-feedback-status.mjs <feedbackId> closed --base-url <真实反馈接口基址> --token <BearerToken> --closed-reason "<关闭理由>"
node .codex/skill/feedback-closeout/scripts/update-feedback-status.mjs <feedbackId> resolved --base-url <真实反馈接口基址> --token <BearerToken> --resolved-method "<解决方式>"
收口代表项并顺带关闭重复项:
node .codex/skill/feedback-closeout/scripts/finalize-feedback-group.mjs temp/feedback-closeout/<timestamp>/summary.json <feedbackId> resolved --base-url <真实反馈接口基址> --token <BearerToken>
finalize-feedback-group.mjs 的同组反馈默认必须同步为同一个最终状态:代表项 resolved 时,同组反馈也必须 resolved;代表项 closed 时,同组反馈才 closed。禁止再把“同组重复反馈”固定写成 closed。
补充规则:
401 缺少登录凭证,这代表“正式接口存在,但缺 Bearer 凭证”;不得再把它误判成“只能 Mongo 直写”。401 缺少登录凭证、生产机未保存管理员 token、接口返回非真实线上数据)。closedReason/resolvedMethod,默认也必须一并写入;不得只改状态不写理由。closed/resolved,但 closedReason 或 resolvedMethod 仍为空,而本轮结论已经锁定,则默认动作不是停下确认,也不是只记本地板,而是直接对同一条线上真实记录补写缺失字段,然后继续主任务。closedReason/resolvedMethod 时,agent 应先用最小真实写入口补齐并继续主线;不得因为“HTTP 没 token”“要不要走 Mongo”这种已在本 skill 授权范围内的选择,再额外停下来征求用户确认。最终汇报必须明确:
2026-04-21 23:34:00 +08:00)open/in_progress/resolved 分项)resolvedtriage-open-feedback.mjs
update-feedback-status.mjs
finalize-feedback-group.mjs
summary.json 收口代表项,并默认把同组反馈同步为代表项的最终状态。sync-feedback-status-board.mjs
summary.json 初始化临时本地状态板。update-local-feedback-board.mjs
feedback-open-api.md