From 17700e6fec8d90cd829dc060e0c9aefb3afc01ff Mon Sep 17 00:00:00 2001 From: Edward Frazer Date: Mon, 11 May 2026 18:03:05 -0700 Subject: [PATCH 1/3] docs(skills): simplify plugin creator deeplink shape --- .../src/assets/samples/plugin-creator/SKILL.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md index 5c9cb2062ea9..7f3bc60a68a5 100644 --- a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md +++ b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md @@ -152,11 +152,14 @@ python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \ - Keep marketplace `source.path` relative to the selected marketplace root as `./plugins/`. - When the workflow created or updated a marketplace-backed plugin, end the final user-facing response with these two Markdown links, in this order, and do not add any text after them: - - `[View ](codex://plugins/view-local?marketplacePath=&pluginName=)` - - `[Share ](codex://plugins/share-local?marketplacePath=&pluginName=)` -- Replace the link-label placeholder and both deeplink placeholders with the real normalized plugin - name plus the real absolute marketplace path from the scaffolded plugin. URL-encode query - parameter values when needed. + - `[View ](codex://plugins/?marketplacePath=)` + - `[Share ](codex://plugins/?marketplacePath=&mode=share)` +- Replace the normalized plugin-name placeholder in both the Markdown label and the deeplink path + segment with the real normalized plugin name. Replace the marketplace path placeholder with the + real absolute `marketplace.json` path from the scaffolded plugin. URL-encode the path segment and + query value when needed. +- Do not add `pluginName` or `hostId` query parameters to these deeplinks. Codex derives both after + the user clicks the link. - Do not emit the `View ` or `Share ` links when no marketplace entry was created or updated. From f35746c1fdf81a7d6f67d8d6eb333ba65f9f2e12 Mon Sep 17 00:00:00 2001 From: Edward Frazer Date: Mon, 11 May 2026 18:12:51 -0700 Subject: [PATCH 2/3] docs(skills): clarify app-only plugin deeplinks --- codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md index 7f3bc60a68a5..44dedb452388 100644 --- a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md +++ b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md @@ -151,7 +151,8 @@ python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \ - Add `policy.products` only when the user explicitly asks for that override. - Keep marketplace `source.path` relative to the selected marketplace root as `./plugins/`. - When the workflow created or updated a marketplace-backed plugin, end the final user-facing - response with these two Markdown links, in this order, and do not add any text after them: + response with this Codex app handoff block, in this order, and do not add any text after the links. + First write the standalone line `To view this in the Codex app:`. Then write: - `[View ](codex://plugins/?marketplacePath=)` - `[Share ](codex://plugins/?marketplacePath=&mode=share)` - Replace the normalized plugin-name placeholder in both the Markdown label and the deeplink path From 01ece88181568af0315333a1700e25a89095f2a0 Mon Sep 17 00:00:00 2001 From: Edward Frazer Date: Tue, 12 May 2026 13:57:34 -0700 Subject: [PATCH 3/3] docs(skills): loosen plugin app handoff links --- .../src/assets/samples/plugin-creator/SKILL.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md index 44dedb452388..4a90165c0708 100644 --- a/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md +++ b/codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md @@ -151,14 +151,13 @@ python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \ - Add `policy.products` only when the user explicitly asks for that override. - Keep marketplace `source.path` relative to the selected marketplace root as `./plugins/`. - When the workflow created or updated a marketplace-backed plugin, end the final user-facing - response with this Codex app handoff block, in this order, and do not add any text after the links. - First write the standalone line `To view this in the Codex app:`. Then write: - - `[View ](codex://plugins/?marketplacePath=)` - - `[Share ](codex://plugins/?marketplacePath=&mode=share)` -- Replace the normalized plugin-name placeholder in both the Markdown label and the deeplink path - segment with the real normalized plugin name. Replace the marketplace path placeholder with the - real absolute `marketplace.json` path from the scaffolded plugin. URL-encode the path segment and - query value when needed. + response with a short Codex app handoff. Say `To view this in the Codex app:` and write + `View ` and `Share ` as Markdown links, not raw + URLs or code spans. +- The View deeplink uses `codex://plugins/?marketplacePath=`. + The Share deeplink uses the same URL with `&mode=share`. +- Replace the placeholders with the real normalized plugin name and absolute `marketplace.json` + path from the scaffolded plugin. URL-encode the path segment and query value when needed. - Do not add `pluginName` or `hostId` query parameters to these deeplinks. Codex derives both after the user clicks the link. - Do not emit the `View ` or `Share ` links when no marketplace entry was