Maintain Agent Plugins
Purpose
Create and maintain Codex plugin source without reintroducing hand-maintained
metadata, per-plugin commands, Python automation, or customizable scaffolding.
Use current official OpenAI plugin documentation for host schema facts, then
apply the fixed Socket repository policy through the managed runtime.
Required Interface
Plugin maintenance has exactly two public commands. Each processes every plugin
manifest and marketplace entry owned by the repository:
just plugins-check
just plugins-apply
Do not add per-plugin, per-manifest, scaffold, sync, bootstrap, or alternate
mode recipes. plugins-check is read-only. plugins-apply performs the complete
deterministic reconciliation and then checks its result.
Installation
- Confirm the target is a Git repository root.
- Run
scripts/maintain-agent-plugins.fsx --repo-root <path> --operation install
from this skill once to copy the managed runtime and Just import.
- The installer also adds ordered repository-maintenance hooks when the target
already uses the canonical
scripts/repo-maintenance/ runtime.
- Run
just plugins-apply, then just repo-validate when repository-skills is
present.
Use --operation refresh to replace managed files from this skill and
--operation report-only for a read-only drift report. These installer modes
are skill internals, not additional Just tasks.
Fixed Policy
- Publisher: Gale,
mail@galewilliams.com,
https://github.com/gaelic-ghost.
- License: Apache-2.0.
- Plugin names: stable kebab case matching their directory.
- Manifest:
.codex-plugin/plugin.json; bundled skills: ./skills/.
- Default plugin repository URL:
https://github.com/gaelic-ghost/<plugin-name>.
- Local marketplace policy:
AVAILABLE and ON_INSTALL.
- Default category:
Developer Tools unless the plugin already has an
intentional product category.
- Default-discovered hook files stay at
hooks/hooks.json; do not duplicate
that default path in the manifest.
interface.defaultPrompt is an array of at most three concise prompts.
The runtime owns these choices. Do not add user profiles, policy files,
template variables, interactive questions, or project-local overrides.
Creating a Plugin
- Establish one bounded capability and its owning plugin name.
- Create the plugin directory,
.codex-plugin/plugin.json, AGENTS.md, and at
least one complete skill under skills/<skill-name>/SKILL.md.
- Add only real optional surfaces:
.mcp.json, .app.json, hooks/, agents,
or assets must have an actual consumer and validation path.
- Use the fixed publisher and license policy. Write plugin-specific purpose,
descriptions, prompts, keywords, and capability content directly; these are
authored semantics, not customization inputs.
- Run
just plugins-apply. In Socket, this adds missing root marketplace
wiring and checks the complete plugin set.
- Run only the repository root integration/E2E path. Do not create tests under
the plugin or skill.
Ownership Handoffs
- Use
repository-skills:maintain-project-repo for the four canonical docs,
repo-wide synchronization and validation, protected-main releases, and
version changes.
- Use
agent-engineering-skills for agent orchestration, automation, eval, and
scheduling behavior.
- Use
agent-portability-skills for ACP, A2A, MCP boundary selection, Zed,
Hermes, and other host adapters.
- Keep runtime hooks and MCP implementation with the plugin that ships them;
this skill owns their packaging consistency, not their product behavior.
Guards
- Never edit installed plugin caches or enabled-state configuration.
- Never restore
bootstrap-skills-plugin-repo,
sync-skills-repo-guidance, Python generators, or nested plugin tests.
- Never infer a new packaging layer or publish destination.
- Stop when a manifest name and directory disagree, a managed target is not a
regular file, or a required optional asset is missing.
Script Inventory
scripts/maintain-agent-plugins.fsx
1---2name: maintain-agent-plugins3description: Create or align agent plugin repositories, install deterministic managed FSX plugin maintenance, and validate or apply the whole plugin set through exactly two aggregate Just commands.4license: Apache-2.05---67# Maintain Agent Plugins89## Purpose1011Create and maintain Codex plugin source without reintroducing hand-maintained12metadata, per-plugin commands, Python automation, or customizable scaffolding.13Use current official OpenAI plugin documentation for host schema facts, then14apply the fixed Socket repository policy through the managed runtime.1516## Required Interface1718Plugin maintenance has exactly two public commands. Each processes every plugin19manifest and marketplace entry owned by the repository:2021```text22just plugins-check23just plugins-apply24```2526Do not add per-plugin, per-manifest, scaffold, sync, bootstrap, or alternate27mode recipes. `plugins-check` is read-only. `plugins-apply` performs the complete28deterministic reconciliation and then checks its result.2930## Installation31321. Confirm the target is a Git repository root.332. Run `scripts/maintain-agent-plugins.fsx --repo-root <path> --operation install`34 from this skill once to copy the managed runtime and Just import.353. The installer also adds ordered repository-maintenance hooks when the target36 already uses the canonical `scripts/repo-maintenance/` runtime.374. Run `just plugins-apply`, then `just repo-validate` when repository-skills is38 present.3940Use `--operation refresh` to replace managed files from this skill and41`--operation report-only` for a read-only drift report. These installer modes42are skill internals, not additional Just tasks.4344## Fixed Policy4546- Publisher: Gale, `mail@galewilliams.com`,47 `https://github.com/gaelic-ghost`.48- License: Apache-2.0.49- Plugin names: stable kebab case matching their directory.50- Manifest: `.codex-plugin/plugin.json`; bundled skills: `./skills/`.51- Default plugin repository URL:52 `https://github.com/gaelic-ghost/<plugin-name>`.53- Local marketplace policy: `AVAILABLE` and `ON_INSTALL`.54- Default category: `Developer Tools` unless the plugin already has an55 intentional product category.56- Default-discovered hook files stay at `hooks/hooks.json`; do not duplicate57 that default path in the manifest.58- `interface.defaultPrompt` is an array of at most three concise prompts.5960The runtime owns these choices. Do not add user profiles, policy files,61template variables, interactive questions, or project-local overrides.6263## Creating a Plugin64651. Establish one bounded capability and its owning plugin name.662. Create the plugin directory, `.codex-plugin/plugin.json`, `AGENTS.md`, and at67 least one complete skill under `skills/<skill-name>/SKILL.md`.683. Add only real optional surfaces: `.mcp.json`, `.app.json`, `hooks/`, agents,69 or assets must have an actual consumer and validation path.704. Use the fixed publisher and license policy. Write plugin-specific purpose,71 descriptions, prompts, keywords, and capability content directly; these are72 authored semantics, not customization inputs.735. Run `just plugins-apply`. In Socket, this adds missing root marketplace74 wiring and checks the complete plugin set.756. Run only the repository root integration/E2E path. Do not create tests under76 the plugin or skill.7778## Ownership Handoffs7980- Use `repository-skills:maintain-project-repo` for the four canonical docs,81 repo-wide synchronization and validation, protected-main releases, and82 version changes.83- Use `agent-engineering-skills` for agent orchestration, automation, eval, and84 scheduling behavior.85- Use `agent-portability-skills` for ACP, A2A, MCP boundary selection, Zed,86 Hermes, and other host adapters.87- Keep runtime hooks and MCP implementation with the plugin that ships them;88 this skill owns their packaging consistency, not their product behavior.8990## Guards9192- Never edit installed plugin caches or enabled-state configuration.93- Never restore `bootstrap-skills-plugin-repo`,94 `sync-skills-repo-guidance`, Python generators, or nested plugin tests.95- Never infer a new packaging layer or publish destination.96- Stop when a manifest name and directory disagree, a managed target is not a97 regular file, or a required optional asset is missing.9899## Script Inventory100101- `scripts/maintain-agent-plugins.fsx`