open-design/apps/web/tests/components/home-hero
lefarcen d03b8fd095
fix(plugins): stop recommending raw publish CLIs from authoring summary (#2380)
QA repro (transcript shared on PR #2363): the agent finishes the
Home "Create plugin" → plugin-authoring chip flow, validates / packs
/ installs the generated plugin, then in its summary turn freeform-
recommends shell commands like:

  od plugin publish ./generated-plugin --to open-design
  cd generated-plugin && git init && git add . && git commit -m "..."
  gh repo create lefarcen/<name> --public --source=. --push

Two things go wrong:

1. The summary recreates the exact flows the plugin-folder card buttons
   already drive end-to-end (PR #2363 wired the buttons through the
   right gh + git sequences with auth gates, jq fallback, and retry
   rules baked in). The freeform suggestions drop those guarantees —
   they're the source of bug #2332 where `od plugin publish --to
   open-design` was the recommended action even though it produces an
   issue URL rather than creating a public repo.

2. The prompt explicitly hinted at `od plugin publish` in step 3 ("Then
   run or prepare the CLI path: ... and `od plugin publish` when the
   user is ready to open a registry PR"). The agent dutifully repeated
   that as the next step, even though the publish work belongs to the
   plugin-folder card button prompts now.

Rewrites `PLUGIN_AUTHORING_PROMPT_TEMPLATE` to:

* Keep the original scaffolding instructions (generated-plugin/ +
  SKILL.md + open-design.json + plugin.repo + inputs).
* Replace the loose "od plugin whoami/login through gh, and od plugin
  publish when the user is ready" sentence with a precise local-
  validation chain: `od plugin validate` → `od plugin pack` →
  `od plugin install --source <abs-path>`.
* Tell the agent to STOP after the summary, and explicitly ban
  follow-up suggestions of `od plugin publish`, `od plugin publish
  --to open-design`, `gh repo create`, `git init` / `git remote add` /
  `git push`. The ban names the workarounds it has actually emitted
  in QA transcripts.
* Point the user at the plugin-folder card buttons (Add to My plugins
  / Publish repo / Open Design PR) and call out that those prompts
  encode the auth gates and fallback rules the summary suggestions
  would skip.
* Same jq guidance carried over from PR #2363: do not assume the
  standalone `jq` binary, prefer the built-in Read tool / cat / node
  -e, and disambiguate from `gh ... --jq` (which is fine because gh
  ships its own embedded library).

Tests:

* `apps/web/tests/components/home-hero/plugin-authoring-prompt.test.ts`
  (new) — nine assertions covering: goal-placeholder interpolation,
  generated-plugin scaffolding mentions, local validation chain, the
  follow-up CLI ban list (`od plugin publish --to open-design`,
  `gh repo create`, `git push`), the plugin-folder card hand-off, the
  jq fallback + gh-flag carve-out, and the round-trip helpers
  (`buildPluginAuthoringInputs` / `buildPluginAuthoringPromptForInputs`
  / `createPluginAuthoringHandoff`).

Validation:

* `pnpm --filter @open-design/web exec vitest run tests/components/home-hero/plugin-authoring-prompt.test.ts`
  → 9/9 passed
* `pnpm --filter @open-design/web exec vitest run tests/components/HomeView.prefill.test.tsx`
  → 11/11 passed (no regression in the adjacent HomeView prompt-prefill
  suite; that test references the template literal directly so a
  silent shape change would surface here)

Related: PR #2363 fixes the same source-of-bug shape on the
plugin-folder card "Publish repo" button. That PR is the canonical
home for the publish flow; this PR makes sure the authoring summary
hands off to it rather than re-implementing it inline.
2026-05-20 15:39:42 +08:00
..
plugin-authoring-prompt.test.ts fix(plugins): stop recommending raw publish CLIs from authoring summary (#2380) 2026-05-20 15:39:42 +08:00