From dev-gui-plugin
Atom Game GUI pipeline 第 8 阶段(每次修 bug / 做需求完成后必做),也可单独调用沉淀知识。 从本次开发提取经验回写**私有知识库** ${CLAUDE_PLUGIN_DATA}/gui-knowledge/:建实例层 bug/fix、 泛化出通用层 component/pattern/lesson、写 edges、独立 reviewer 晋升 proposed→confirmed、 重建 query_pack;promote/demote 时对公共库语义去重(公共库为准)。 两遍式:默认捕获遍;`enrich` 参数触发充实遍填 _TODO_ 段。 **既是 pipeline 第 8 阶段自动调用,也可由用户手动 `/dev-gui-plugin:gui-learn` 主动沉淀私有库**; 要沉淀进**项目公共库**则改用 gui-learn-public skill。
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-gui-plugin:gui-learnThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**职责**:从本次开发中提取经验回写知识库。**核心是「泛化」**——不只记「这个 panel 发生了什么」,
职责:从本次开发中提取经验回写知识库。核心是「泛化」——不只记「这个 panel 发生了什么」, 更要抽出可跨 panel 复用的通用教训/组件用法/性能经验。
本 skill 只写私有知识库:$KB_ROOT = ${CLAUDE_PLUGIN_DATA}/gui-knowledge(个人、跨版本存活、不进 git)。
下文所有 gui_knowledge.py 命令的 root 一律用 "$KB_ROOT";首次写入前若目录不存在,先
gui_knowledge.py init "$KB_ROOT"(gui-plan 通常已建)。
沉淀进项目公共库(团队共享、走 p4)请改用
gui-learn-publicskill。 Schema 见${CLAUDE_PLUGIN_ROOT}/shared-references/knowledge-schema.md。 机制总纲见 plan §十 与acceptance-gate.md。 私有库去重:promote / demote 时对公共库查重(见第 7 步与 D 段),重复/矛盾以公共库为准。
触发条件:① pipeline 中每次修 bug 或做需求完成(PASS 或 2 轮 improve 结束)自动跑;
② 用户随时可手动调用 /dev-gui-plugin:gui-learn 主动把当前对话里学到的经验沉淀进私有库。
即使本次无 panel 级产物(纯逻辑/性能修复),只要学到可复用的东西也必须沉淀到通用层。
任何条目持久化前先过滤(PreToolUse hook 也会兜底拦截写 gui-knowledge 的内容):
echo "<条目正文>" | python3 "${CLAUDE_PLUGIN_ROOT}/tools/capture_filter.py" -
命中 env_failure / transient_error / negative_tool_claim / single_instance_narrative →
不存原文,改存「怎么修 / 缺什么配置 / 它隐含的类级规则」或丢弃。
bugs/<bug_id>.md:现象 + 根因(file:line) + 修复 + 验证。fixes/<fix_id>.md:成功/失败、变更、影响。失败也记,且原因必须是类级
(如「每帧重建子节点」),不是操作噪音。实例→类级规则:「B003 在 XXPanel 因未判空 SerializeField 崩」是实例;存进通用层的是它隐含的 类级规则「SerializeField 引用在 OnXxx 使用前必须判空」。只存后者。
写每条通用层条目前先查重(§十.7,三态:新增 / 补充 / 冲突):
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" find-existing \
"$KB_ROOT" --type lesson --slug <slug>
status: proposed,通用层段落留 _TODO._)。conflict,入队人工 / reviewer 裁决。components/<slug>.md(用法/坑点/性能特征)patterns/<slug>.md(反模式建条目 / 已知追加案例 / 最佳实践亦收录)lessons/<slug>.md(H1 一句话教训 + 类级规则填实;其余段可留 _TODO._)写关系图 + 渲染关联:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" add-edge "$KB_ROOT" \
--from bug:B001 --to component:styles-module --type caused_by
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" render-connections "$KB_ROOT"
(⑤ 图是真相源,各页「## 关联」段由脚本重渲染,禁手编。)
晋升 load-bearing + 对公共库去重(⑥ 拒/纳不对称):通用层条目默认 proposed,要进
query_pack 必须经 独立 reviewer 背书。
7a. 机械初筛公共库候选:对每条待晋升私有条目跑:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" find-dedup-candidates lesson:L004 \
--root "$KB_ROOT" --public-root "${CLAUDE_PROJECT_DIR}/.claude/dev-gui-knowledge"
输出公共库同主题候选(node_id/title/excerpt);[] 表示公共库无覆盖。
7b. spawn gui-reviewer subagent(全新上下文)批量裁决,对每条私有条目同时判:
① 「确为类级、正确、可复用」(背书);② 与 7a 候选的语义关系,三态之一:
confirm:公共库无语义覆盖 → 晋升:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" promote "$KB_ROOT" \
lesson:L004 --reviewer gui-reviewer --verdict-id <背书产物>
duplicate(语义相似/相近)或 conflict(语义矛盾)→ 以公共库为准,删私有条目(不晋升):
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" remove "$KB_ROOT" \
lesson:L004 --reason duplicate-of-public --superseded-by <公共 node_id>
机械筛只能「拒」,「纳」(promote)必须 reviewer 背书;7a 只是缩小候选,删/留由 reviewer 语义裁决。
重建 query_pack + 索引(确定性、只收 confirmed):
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" rebuild-index "$KB_ROOT"
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" rebuild-query-pack "$KB_ROOT"
追加 log:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" log "$KB_ROOT" \
"panelId=XXX verdict=PASS | lesson L004(confirmed): 列表优先 ListModule 复用"
收尾:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_run_state.py" set "${CLAUDE_PROJECT_DIR}" <panelId> gui-learn done
当某私有库 confirmed 通用层条目被推翻(reviewer 复审否定 / 被新证据取代 / 用户显式要求降级):
python3 "${CLAUDE_PLUGIN_ROOT}/tools/gui_knowledge.py" demote "$KB_ROOT" \
lesson:L004 --reason "<为何不再成立>"
find-dedup-candidates + reviewer 语义判;
若公共库现已覆盖(duplicate/conflict)→ 改用 remove(公共库为准)而非停留在 proposed。rebuild-index / rebuild-query-pack(query_pack 只收 confirmed,降级/删除即生效)。/dev-gui-plugin:gui-learn enrich [--max N])把通用层骨架里 _TODO._ 段填成 1–3 句结论(②):
_TODO._ 的条目(可复用成分 / 适用场景 / 失败模式)。--max N 封顶批量(token 预算真实存在)。status(晋升仍走第 7 步的 reviewer 背书)。填充后可再跑 rebuild-query-pack(confirmed 条目的新内容会被重新抽句)。
npx claudepluginhub avatarganymede/dev-gui-plugin --plugin dev-gui-pluginCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.