用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/shorty456132/av-module-maker --skill plugin-revision命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | plugin-revision |
| description | Review and revise an existing Q-SYS plugin — fix bugs, improve logic, and bump the version |
| argument-hint | plugin directory path |
Review and revise an existing Q-SYS plugin in the specified directory.
Target directory: $ARGUMENTS
If $ARGUMENTS is empty, ask the user which plugin directory to revise.
Read ${CLAUDE_PLUGIN_ROOT}/reference/qsys/QSYS_PATTERNS.md and ${CLAUDE_PLUGIN_ROOT}/reference/qsys/QSYS_CONSTRAINTS.md before revising Lua — together they cover sockets, timers, JSON, control types, reserved names, design-time function signatures, naming/scoping rules, and the platform's common pitfalls, and answer most review questions without a doc search.
For anything they don't cover, do not read the doc index or WebFetch help pages in this thread — fetched pages are large and reading them inline exhausts the context window. Delegate instead: call the Agent tool with subagent_type: "Explore", point it at ${CLAUDE_PLUGIN_ROOT}/reference/qsys/QSYS_DOC_INDEX.md (a Topic | Title | Source URL table), have it grep the Topic column for the subject, WebFetch the matching Source URL for the current page, and use only the excerpts (plus the source URL) it returns. The full help text is not stored in the repo — it is QSC copyrighted material fetched live. Index topics prefixed Schematic_Library-, Hardware-, Networking-, Control_Scripting- cover components, hardware, networking, and Lua; Getting_Started-, Standards_Definitions-, Code_Examples-, Recommended_Practices- cover plugin standards, examples, and TCP/UDP/Serial.
Read all .lua files in the target directory to understand the full plugin:
info.lua — metadata and current versionplugin.lua — entry point and lifecycle structureproperties.lua — user-configurable propertiescontrols.lua — control definitionslayout.lua — UI layout and stylingruntime.lua — runtime logic, event handlers, networkingpages.lua, model.lua, components.lua, pins.lua, wiring.lua, rectify_properties.lua — supporting filesAfter reading the plugin, present a summary of what the plugin does, then ask the user what they want to do using AskUserQuestion with these options:
If the user selects Bug Review or Full Review, run through the Bug Review Checklist and report all findings before making changes. Ask the user which issues to fix.
If the user selects Feature Revision or Layout/UI Revision, ask the user to describe the specific changes they want.
Check for these common issues:
Controls["..."] in runtime.lua has a matching entry in controls.luacontrols.lua has a layout entry in layout.luaProperties["..."] or props["..."] reference has a matching definition in properties.luaCount values match indexed references (e.g., "Button 1", "Button 2")Controls object in design-time functionslocal at top level.IsConnected or .IsOpen checked before writing to sockets/ports.Error, .Timeout, .Closed)Timer.CallAfter with pcallpcall (socket opens, server listen, port opens)tostring()pcall to handle malformed responsesprint("TX: " .. cmd))print("RX: " .. data))pcall failures print the error messagePageNames in plugin.lua matches pages handled in layout.luaPluginInfo has all required fields (Name, Version, BuildVersion, Id, Author, Description)Major.Minor.Fix.Development (4-part semantic)Edit only the files that need changes. Do not rewrite files that are already correct. Use the Edit tool for targeted modifications.
After making changes, run through the consistency checklist to verify nothing is broken:
Controls["..."] reference in runtime.lua has a matching entry in controls.luacontrols.lua has a layout entry in layout.luaProperties["..."] or props["..."] reference has a matching definition in properties.luaPageNames in plugin.lua matches the pages handled in layout.luatable.insert calls target the correct local variable (ctrls, props, pages, etc.)Count values match the indexed references in runtime.luaAfter all changes are made, read the current version from info.lua and ask the user which version component to bump using AskUserQuestion:
Then compile with the appropriate flag:
python "${CLAUDE_PLUGIN_ROOT}/scripts/qsys/compile.py" $ARGUMENTS --bump=<choice>
If the user chooses Skip:
python "${CLAUDE_PLUGIN_ROOT}/scripts/qsys/compile.py" $ARGUMENTS
Tell the user the new version and where the .qplug file was created.