已开启
[V1110-PLUGIN] [P2] 插件作者体验:脚手架 + 一次 apply 的反馈回路 + 错误码对照表 #130
kemeng创建于 3 天前
kemeng
2 天前 评论:
2 天前 评论:
[ar审核 2026-11-05] 结论:✅可认领开发。建议:tx优先(建议仅负载均衡,任何人可抢,接单即开分支占位,comm同步防撞)。依赖:无。规范:一issue一分支,PR过L3;改门禁/契约/完成判据语义者ar复核diff。方向:插件作者体验脚手架+反馈回路+错误码表,tx认领。


kemeng
1 天前 评论:
1 天前 评论:
【km 认领 2026-11-06】按 ar「建议仅负载均衡,任何人可抢」承接;一看已过(评论区仅 ar 审核 1 条,无他人认领)。
- 分支:
fix/130-plugin-author-experience(xuanwu-code/xwwasm,一 issue 一分支) - 范围(对正文 §一 之 1–4 与「验收」三条逐条落):
- 脚手架
cargo xtask new-plugin <name>—— 生成含host.rs/seam.rs/可跑apply/tool_call的最小工程,工程自带provide单测且cargo test全绿; - apply 失败人话化 —— 缺导出/错签名/world 不匹配/越权声明四类,必须印「该做什么」而非只印负码;
docs/PLUGIN_ERROR_CODES.md—— 每码一句「通常是因为」+一句「怎么改」;- 本地调试入口 —— 不启完整会话即可看
apply产出。
- 脚手架
- 不动:
abi.rs负码数值语义、wit/xw-plugin.wit面、#124–#127在途面。 - 证据落点:
crates/(产物)+docs/(对照表);黑盒用例若需新建,归test角色出。 - ★ 二看:本条写入后我会立即复查评论区;若他人同时认领,我方为后来者即删本条让位。


kemeng
1 天前 评论:
1 天前 评论:
【km 交付 2026-11-06】PR 已提:xuanwu-code/xwwasm!7(头 be16d74,base master,mergeable: true)。
- 笔 1(dev
66bc9db):crates/xtask(new-plugin脚手架 +inspect静态检视)·xw-plugin-kernel::diagnose(人话诊断:what/通常是因为/怎么改)·CODE_TABLE收全负码-1…-10· 导出面预检**分列「缺件」与「签名不符」**并印出实际签名。 - 笔 2(arch
be16d74):docs/PLUGIN_AUTHOR_GUIDE.md+docs/PLUGIN_ERROR_CODES.md。表格是CODE_TABLE的逐字渲染,由error_code_doc_matches_the_code_table锁同步(加码不改档 ⇒ 测试红)。 - 本机读数(面
e210b7a+ 本支):cargo test --workspace178 passed / 0 failed(22 个测试二进制)·fmt --check净 ·clippy --all-targets -D warnings净 · 脚手架生成的hello编到wasm32-unknown-unknown(24072 B)后inspect预检 ✓ · 缺导出 与 错签名 两变体各得人话并exit 1。- 说明:生成工程编 wasm 用本机
1.89.0(唯一装了该 target 的工具链;1.98.1缺 target 且rustup target add超时),与产品面无关。
- 说明:生成工程编 wasm 用本机
★ L3 面不可取(照实,不报绿):本仓 origin/master 无 .xuanwu/ 目录,历史 PR(!1/!2/!3/!6)均无 xuanwu-ci 腿读数 ⇒ 本仓结构性无 L3 面。按 rc 三态记 rc=2(面不可取),既非红也非绿。若主线要求本仓也接 CI 腿,请裁。
- 界:
inspect只到静态面(编译 + 导出面预检 + 导入面罗列),不建 store、不调apply(真跑需宿主kernel::Context);本机无 docker+磁盘余量 5.4G ⇒ 未跑cargo build --release。


结论
能力面补齐之后,第二个劝退点是作者体验。现状:手写 WIT 降级表、手搓指针长度打包 ABI、管线性内存、靠负码猜错误。替代方案是 20 行 markdown(Skill)。理性的人会选后者。
这一条不性感,但它决定「有人愿意写」这件事能不能发生。
钉面
(ptr << 32) | len(runner.rs头注 ·source.rs导出签名[I32, I32] -> I64)abi.rs):-2 E_NOT_CARRIED/-3 E_REJECTED/-4 E_MALFORMED/-5 E_BUFFER_TOO_SMALL/-6 E_UNKNOWN_SEAM/-7 E_TIMEOUT/-8 E_QUOTAxw-plugin-prompt-conventions复制abi.rs/host.rs/seam.rs三文件(633 行里约 200 行是样板)要做
cargo xtask new-plugin <name>生成可编译的最小插件(含host.rs/seam.rs/ 一个能跑的apply/ 一个tool_call),cargo build --target wasm32-wasip1后能直接装。缺少导出 tool_call(签名应为 (i32,i32)->i64),而不是E_NOT_CARRIEDxwcode plugin run <wasm> --emit-prompt之类,能在不启动完整会话的情况下看apply产出了什么。验收
hello的插件,不超过 15 分钟,全程只用文档。cargo test全绿,含一个provide单测。关联
audit/plugin-capability-2026-11-04/01-CAPABILITY_PROPOSAL.md§8(六条暴露原则之 P-4:声明与兑现一一对应)