Static reading edition · s07-06
Release, update and remove a plugin
Distribute a tested plugin through a real supported channel and verify installation, rollback and removal.
Understand the approach
Choose a distribution channel for the intended audience: repository marketplace, admin-managed workspace publication, or public directory submission. These have different ownership, eligibility and consumer steps. This lab supplies a complete local marketplace and versioned package; the release guide shows the actual Git ref, consumer installation, update and removal flow rather than ending at a readiness record.
For a repository marketplace, test the exact package, commit the catalog and package, tag the tested revision, and publish through your normal repository process. Consumers add the Git source with --ref, inspect the marketplace and installed version, and test a new chat. A local tag or JSON validation is not distribution. A pinned source remains pinned when refreshed; rollback explicitly selects a known-good ref and repeats verification.
Workspace admins can publish a local plugin to chosen roles from the Personal plugin menu. Public publication instead uses the Plugins portal: upload an eligible ZIP, resolve findings, submit for review, then publish the approved version. The current portal rejects lifecycle hooks/app references, so this hook-bearing local lab cannot be submitted unchanged. No account publication was performed by the course author; the lesson still teaches the executable publisher and consumer path.
Choose a plugin release channel and verify consumer use
Test the exact package version and rehearse local installation, listing and removal. A repository marketplace is published as a reviewed commit and tag; workspace publishing has its own roles, and public-directory publication has separate eligibility and review. Verify the consumer's installed version and actual workflow, then retain a tested update, rollback and removal path. This hook-bearing lab is not public-directory eligible unchanged.
Prepare the right review evidence
For an MCP-backed submission, the current guide asks for five positive cases, three negative cases, a walkthrough, release notes, and a dedicated reviewer account when sign-in is required. Do not fabricate executed cases or create credentials for this lesson. A skills-only package can have a different requirement set. Mark every missing artifact and recheck the current portal guidance before requesting approval for a real submission.
About your environment
Verified October 21, 2026. Native metadata lifecycle tested on Windows with Codex CLI 0.163.0-alpha.11 in disposable child-only CODEX_HOME: starter 0.2.0 and extension 0.3.0 install/list/remove succeeded. Authenticated skill invocation, MCP inside Codex, hook trust/delivery, other platforms and publication were not run by the course author.
Try it step by step
- Finish the generated 0.3.0 extension, run the baseline/protocol checks and inspect the exact release files/license/setup instructions.
- Rehearse native install/list/remove locally with the child-only helper; inspect the actual version and installed path.
- For a repository you maintain, follow RELEASE.md to commit/tag/publish the tested marketplace; give consumers its real URL and pinned ref, not the tutorial placeholder.
- Verify a consumer installation and actual workflow, then document explicit update/known-good rollback and removal. Keep shared marketplace dependencies in view.
- If choosing workspace/public publication instead, follow its actual admin/portal steps and eligibility checks; verify visibility after publication rather than equating upload with availability.
A useful starting example
Illustration · adapt before use.
codex plugin marketplace add https://github.com/YOUR-ACCOUNT/YOUR-REPOSITORY.git --ref v0.3.0
codex plugin marketplace list --json
codex plugin add workflow-review-practice@howto-practice-local --json
codex plugin list --marketplace howto-practice-local --json
# After testing, remove only this practice installation/source:
codex plugin remove workflow-review-practice@howto-practice-local --json
codex plugin marketplace remove howto-practice-local --jsonTwo actual native version rehearsals
The starter and complete extension were installed and removed in separate disposable profiles.
Starter 0.2.0 → add catalog → install → inspect version/path → remove
Reference 0.3.0 → same lifecycle after actual extension gradingObserved: both native versions installed/enabled and removed successfully.
Owner environment unchanged; no login, model request, schedule or publication.This is actual native metadata/cache evidence. RELEASE.md supplies the separate real Git publisher/consumer and workspace/public workflows; external distribution and authenticated smoke testing remain unrun.
Your turn
Complete the local native release rehearsal for starter 0.2.0 and the actual 0.3.0 extension. Deliver tested package contents, version receipts, install/smoke/removal notes and a rollback recipe. If you maintain a repository and intend to distribute, execute the documented publisher/consumer path and record the real ref and workflow result. Otherwise mark external distribution unrun; do not replace the instructions with approval paperwork.
Try the exercise before opening its reference answer. Use a disposable practice folder.
Produce a truthful release-readiness record
Extract into a new practice folder and keep the included labs folder. Run these commands from that extraction root, or from the course folder, using an existing Node.js installation.
- Command 1 text
node labs/workflow-plugin/workflows/validate-artifact.cjs release labs/workflow-plugin/workflows/release-review.jsonCheck: release artifact passed local checks. No client action was performed.
- Command 2 text
node labs/workflow-plugin/schema-check.cjsCheck: Confirms local package structure while the release record correctly keeps public-directory eligibility false.
- Command 3 text
node --test labs/workflow-plugin/depth.test.cjsCheck: 5 checks pass, including starter failure, complete reference grading through actual stdio, preserved baseline suite and scope rejection.
The package now has actual native installation evidence and a complete versioned reference extension. Distribution is verified by consumer installation/workflow, with rollback and removal.
Check your result
- The actual versioned artifact passes behavioral and protocol checks, with native version receipts and cleanup.
- The selected channel includes concrete publisher and consumer steps plus update/rollback/removal.
- Local rehearsal, remote distribution, workspace visibility, public review and publication remain distinct states.
Reference answer & rubric Try the exercise before opening
Ship the tested artifact through the chosen channel, verify the consumer workflow, and keep a known-good removal/rollback path.
- Build and grade 0.3.0 in a generated workspace; inspect the complete reference after your own attempt.
- Follow NATIVE-CLIENT.md for the isolated native add/install/list/remove lifecycle and retain actual returned version/path.
- Use RELEASE.md for the complete Git commit/tag/push and consumer --ref recipe only with a real repository you maintain.
- Repeat the installed workflow in a new supported chat and verify actual tool evidence; an install receipt alone is not the smoke test.
- Test removal and document explicit rollback to the previous reviewed ref. Use admin/public portal routes only when the package and publisher qualify.
Check your understanding
A public plugin draft has been approved. Is it necessarily published?
- No; the publisher chooses when to publish the approved version.
- Yes; approval always publishes immediately.
- Only if its local manifest contains MIT.
Reveal the answer and explanation
Answer 1: No; the publisher chooses when to publish the approved version.
The documented flow separates review approval from the explicit publication step. A license field does not change that state.
Take this quiz in the interactive lesson to save your answer in the browser.
When it does not work
The package passes schemas, so the release is labeled publicly eligible.
Likely cause: Structural validity was confused with submission requirements.
What to try: Inspect current component eligibility and retain explicit hooks/local-stdio blockers in the readiness record.
An uploaded draft is announced as published.
Likely cause: Upload, review approval, and public publication were collapsed into one state.
What to try: Report the actual portal state and destination; perform each external transition only after the required authorization.
Common mistakes
- Claiming a local package or successful upload is publicly approved.
- Submitting hook-dependent or app-reference packages without checking current public-directory restrictions.
Source mapping & differences · different
Codex distribution uses its supported catalogs, workspace controls, and OpenAI submission review rather than the source's tagging and Anthropic marketplace flow.
Source topic: Publish a plugin ↗Go to the source
Official documentation, checked 21 October 2026. Product names, controls and availability may vary with your version, platform or account.
Completion and quiz progress are saved
only in the interactive course.