Skip to content

feat(make-it-a-bit-better): add the product-polish loop plugin (0.2.4) - #166

Open
Lumos-789 wants to merge 1 commit into
zai-org:mainfrom
Lumos-789:feat/make-it-a-bit-better
Open

Lumos-789 wants to merge 1 commit into
zai-org:mainfrom
Lumos-789:feat/make-it-a-bit-better

Conversation

@Lumos-789

@Lumos-789 Lumos-789 commented Nov 4, 2026 •

Copy link
Copy Markdown

Plugin type (required) / 插件类型(必填)

  • UI Plugin / 是 UI 插件 — provides MCP Apps interactive pages / 提供 MCP Apps 交互页面
  • Standard plugin / 普通插件(非 UI) — does not provide MCP Apps interactive pages / 不提供 MCP Apps 交互页面
  • Not applicable / 不适用 — repository-only changes; no plugin content changed / 仅仓库级改动,不涉及插件内容

Affected plugin name(s) / 涉及的插件名称:make-it-a-bit-better

What / 改动内容

EN — Adds make-it-a-bit-better, a skill-only product-polish loop. Every round opens a mandatory fresh brainstorm (three perspective lenses), picks one small angle, implements it, verifies it, commits it alone, and records the round in a per-project ledger. Oversized ideas go to an icebox instead of derailing the round.

  • A round is capped at three files or roughly a hundred lines, whichever comes first, so the loop stays cheap to review.
  • The ledger records angle, dimensions touched and the next-round hint; a failed round leaves a commit plus a revert, and a stalled loop writes stalled and stops rather than grinding.
  • The loop commits locally and never pushes; the repository gate now requires the target to be the repository root, so a nested directory can no longer commit rounds into an unrelated parent repository.

中文 — 新增 make-it-a-bit-better:纯 skill 的产品打磨循环。每轮强制开新头脑风暴(三个视角),择一个小角度实现、验证、单独提交并落账;超格想法进 icebox。轮次有体量上限、只本地提交不 push,并要求目标必须是仓库根。

Visible behavior and testing / 可见行为与测试

  • The skill has no unit tests by design; it was exercised with one full polish round on a real repository (brainstorm → pick → implement → verify → commit → ledger entry), and the ledger/hint read-back was checked afterwards.
  • Gate behaviour checked both ways: a target that is the repository root passes; a directory nested inside another repository now fails and reports both paths (this is the 0.2.2 fix).
  • The three subagent lenses were run as real subagents in the round, not simulated.

Not covered by this round / 本轮未覆盖:

  • Multi-round rotation (stalled / reverted rounds) was only partially exercised; a long unattended run is untested.

Version and marketplace registration / 版本与市场注册

  • New plugin directory external_plugins/make-it-a-bit-better/ (10 files, 46 KiB), manifest and marketplace.json entry both at 0.2.2.
  • Category productivity; icon added at the repo-root path the entry uses (assets/make-it-a-bit-better/icon.png, 512×512).
  • description_i18n carries en and zh-CN, identical in both files; README.md / README_CN.md both present.

Dependencies, network, permissions, side effects / 依赖、网络、权限与副作用

  • No runtime dependencies: the plugin is a skill plus its references.
  • Operates on whichever repository the user points it at: it reads that project's context, writes its ledger under that project, and creates local git commits.
  • No network access; it never pushes, never opens PRs and never rewrites history.

Licensing / provenance / 许可与来源

  • MIT (LICENSE ships in the plugin directory); code written for this submission.
  • No third-party code or assets.

Self-check / 自查清单

  • Plugin name is unique kebab-case; new external plugin directory is external_plugins/make-it-a-bit-better/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于 external_plugins/make-it-a-bit-better/,已有插件修复保留原归属
  • Usage category is set independently of publisher ownership / 用途分类 category 已填写,与维护归属分开:productivity
  • Plugin type and affected names are declared above / 已在上方声明插件类型与涉及的插件名称
  • version bumped in BOTH plugin.json and marketplace.json (artifacts are immutable) / plugin.json 与 marketplace.json 两处版本号已同步升级:0.2.2
  • README.md (EN) and README_CN.md (中文) both updated and equivalent / 中英文 README 均已更新且语义一致
  • description_i18n has both en and zh-CN / description_i18n 包含 en 与 zh-CN
  • No secrets, machine-specific paths, or private dependencies / 不含密钥、机器专属路径或私有依赖
  • Model/API/network dependencies documented / 模型、API、网络依赖已写明(见上方依赖小节与两个 README)
  • python3 scripts/validate.py passes on this branch, and the plugin artifact was built through the same build_zip() code path CI uses (size and sha256 in the comment below). The full python3 scripts/build_dist.py needs the repo's UI-plugin pnpm build and fails identically on upstream main (excalidraw: incomplete build), so CI runs it here — see the note above. / 本地 validate.py 通过,本插件产物用 CI 同一条 build_zip() 路径打出(体积与 sha256 见下方评论);完整 build_dist.py 依赖仓库自带 UI 插件的 pnpm build,在 main 上同样失败,交由 CI 执行

@Lumos-789

Copy link
Copy Markdown
Author

0.2.2 — verification (2026-11-04)

Environment: ZCode CLI 0.17.1, macOS 27.0.1 arm64, Python 3.14.4, Node 24.15.0.

Installed from a local marketplace → make-it-a-bit-better@0.2.2; the skill resolves from the plugin cache (make-it-a-bit-better/0.2.2/skills/make-it-a-bit-better/SKILL.md), not from a repo checkout.

This plugin is a prompt protocol, so the only meaningful test is a real round. Run against a throwaway 4-line Python tool:

Step Observed
Round 1, no focus three lens subagents spawned in parallel; each returned candidates
Selection one angle: a multi-word message was silently truncated to its first word
Implementation msg = sys.argv[2] → msg = " ".join(sys.argv[2:])
Verification py_compile clean; python3 log.py WARN hello world foo bar → full message; bare python3 log.py still defaults to INFO
Record commit af3e69c, ledger written at <target>/.agents/mabb/ledger.md with dimension / angle / who feels it / change / commit / evidence, plus Dimensions touched and a Next round hint

Payload gates: plugin_acceptance.py PASS make-it-a-bit-better@0.2.2, marketplace_check.py OK. The repo has no automated test suite by design — there is no code to unit-test; the round above is the acceptance path.

Not covered: multi-round behaviour (ledger-driven rotation across several rounds) and the icebox path — both are prompt-level and were only exercised once here.

@panda920

panda920 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

@Lumos-789
Lumos-789 force-pushed the feat/make-it-a-bit-better branch from 7eb5ab4 to 1a789d3 Compare November 4, 2026 18:20
@Lumos-789

Copy link
Copy Markdown
Author

Third round — review & simplification (2026-11-05)

No new features. Two repo-hygiene items:

Release history was stored twice and had drifted. The README carried its own "What's new" list (0.2.1 / 0.2.0 / 0.1.0) while CHANGELOG.md had only 0.2.2 — so the two disagreed about which releases existed. The changelog is now the single history (all four entries), and both READMEs keep one line of news plus a link.

package.json declares engines.dsh and the skill-filesystem peer, so an incompatible harness blocks install and activation instead of failing at runtime. The other six plugins already declared this; this one did not.

The skill itself was left alone: at 117 lines it is under the 150-line soft cap it sets for itself, and the protocol clauses have all been paid for by earlier rounds.

Verification: tools/plugin_acceptance.py make-it-a-bit-better passes (schema, icon, skill frontmatter, no machine-local paths, ZCode manifest validation); tools/simplify_gate.py is clean.

Payload: re-synced, 10 files, verified blob-by-blob against Lumos-789/make-it-a-bit-better@154d72d.

@panda920

panda920 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

@Lumos-789
Lumos-789 force-pushed the feat/make-it-a-bit-better branch from 1a789d3 to ef7f809 Compare November 5, 2026 06:48
@Lumos-789 Lumos-789 changed the title feat: add make-it-a-bit-better (product polish loop) feat(make-it-a-bit-better): add the product-polish loop plugin (0.2.2) Nov 5, 2026
@Lumos-789

Copy link
Copy Markdown
Author

Re-pushed this branch as ef7f809a and fixed two classes of defect that were ours, not the repository's. Nothing about the plugin's behaviour changed.

1. The PR now follows .github/PULL_REQUEST_TEMPLATE.md. The body had drifted into hand-written prose and lost the two parts a reviewer checks first: the Plugin type declaration and the Self-check list. Both are back, the five sections CONTRIBUTING asks for are filled in (problem / visible behaviour and testing / version and marketplace registration / dependencies and side effects / licensing), and the title carries the (<plugin-name>) scope the template requires for the squash commit on main.

2. The entry named the repo-root assets/make-it-a-bit-better/icon.png, but that file was never uploaded with the branch — the catalogue would have shown a broken icon. It is committed now (512×512) and the entry uses the same absolute CDN form as every other icon-bearing entry in marketplace.json.

Re-verified against the branch itself (not a local checkout):

check result
python3 scripts/validate.py @ ef7f809a OK: 53 plugin(s) validated
plugin artifact via build_zip() — the same code path CI runs 30416 B, sha256 8a0f711f8b11d87dace0bceadaf41cec19d1e914ffde1de5c5dbd3b77bc6bab1
assets/make-it-a-bit-better/icon.png present, 512×512
README.md + README_CN.md in the payload both present

Request: the earlier validate status was bound to 1a789d39, so it is stale after this push. Could you re-run the external validation on ef7f809a? The full build_dist.py still needs the repository's UI-plugin pnpm build and fails identically on main (excalidraw: incomplete build; run pnpm build first), which is why I am relying on CI for that step.

中文摘要:本轮只补元数据与载荷完整性 —— 恢复了模板要求的插件类型声明与自查清单、标题加上 (插件名) scope(模板说明该标题会成为 main 上的 squash commit)、把条目引用的根级图标真正提交并以 CDN 绝对地址引用。分支上 validate.py 通过,插件产物按 CI 同一代码路径打包成功(体积与 sha256 见上表)。旧的 validate 状态绑定在 1a789d39 上已失效,请在 ef7f809a 上重跑一次校验。

@Lumos-789
Lumos-789 force-pushed the feat/make-it-a-bit-better branch from ef7f809 to 1fe56d3 Compare November 8, 2026 18:03
@Lumos-789 Lumos-789 changed the title feat(make-it-a-bit-better): add the product-polish loop plugin (0.2.2) feat(make-it-a-bit-better): add the product-polish loop plugin (0.2.4) Nov 8, 2026
@Lumos-789

Copy link
Copy Markdown
Author

Update: payload bumped to 0.2.4 (head 1fe56d3). Payload refreshed to the current main repo (byte-identical, verified MATCH). This round is a behavior-preserving cleanup: redundant comments and dead code removed, docs re-aligned with the code. Full test suite, packaging gates (plugin acceptance / simplify / public release) and the install lifecycle matrix all pass locally.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants