Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,8 @@ In Progress

- [x] Create `plugins/swiftasb-skills/` with its own `.codex-plugin/plugin.json` and authored `skills/` source.
- [x] Add first-slice skills for explaining SwiftASB, choosing an integration shape, and building a SwiftUI app on top of SwiftASB.
- [ ] Add `swiftasb:build-appkit-app` for AppKit apps after the first slice proves useful.
- [ ] Add `swiftasb:build-swift-package` for Swift package authors after the first slice proves useful.
- [x] Add `swiftasb:build-appkit-app` for AppKit apps after the first slice proves useful.
- [x] Add `swiftasb:build-swift-package` for Swift package authors after the first slice proves useful.
- [x] Add an integration diagnostics skill for runtime discovery, app-server startup, threads, turns, approvals, diagnostics, MCP status, history reads, and live-test isolation.
- [x] Wire `swiftasb-skills` into the root Socket marketplace as a normal local child plugin.
- [x] Update root README and maintainer docs so users understand the split between the SwiftASB package source of truth and the Socket-hosted Codex guidance plugin.
Expand All @@ -141,7 +141,7 @@ In Progress

- [x] The Socket marketplace exposes `swiftasb-skills` as an installable child plugin.
- [x] The new skills can help an agent explain SwiftASB to a user before implementation, including when SwiftASB is not the right fit.
- [ ] The new skills guide SwiftUI, AppKit, and Swift package integrations without duplicating broad Apple framework guidance that belongs to `apple-dev-skills`.
- [x] The new skills guide SwiftUI, AppKit, and Swift package integrations without duplicating broad Apple framework guidance that belongs to `apple-dev-skills`.
- [x] Root Socket docs, marketplace wiring, and validation agree on the plugin's install surface.

## Backlog Candidates
Expand Down
14 changes: 7 additions & 7 deletions docs/maintainers/swiftasb-skills-plugin-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,18 +153,18 @@ The first slice should be intentionally small:
- [x] Add `swiftasb:build-swiftui-app`.
- [x] Wire `swiftasb-skills` into `.agents/plugins/marketplace.json`.
- [x] Update `README.md` and `ROADMAP.md` so Socket documents the new child plugin surface.
- [ ] Run `uv run scripts/validate_socket_metadata.py`.
- [ ] Run any child-plugin validation added by the new plugin.
- [x] Run `uv run scripts/validate_socket_metadata.py`.
- [x] Run any child-plugin validation added by the new plugin.

## Later Slices

After the first slice proves useful, add:

- [ ] `swiftasb:build-appkit-app`.
- [ ] `swiftasb:build-swift-package`.
- [x] `swiftasb:build-appkit-app`.
- [x] `swiftasb:build-swift-package`.
- [x] `swiftasb:diagnose-integration`.
- [ ] Examples that show how agents should explain SwiftASB to users before implementation.
- [ ] Install testing with a temporary `CODEX_HOME`.
- [x] Examples that show how agents should explain SwiftASB to users before implementation.
- [x] Install testing with a temporary `CODEX_HOME`.
- [x] Decide against a SwiftASB repo-local marketplace because SwiftASB is expected to be consumed as a Swift package dependency inside other apps, command-line tools, and packages; Codex-visible guidance belongs in the Socket-hosted companion plugin.

## Definition Of Done
Expand All @@ -175,4 +175,4 @@ The plugin is ready for first release when:
- [x] The skills consistently describe SwiftASB as a Swift-native app-server client rather than a general AI SDK or a raw protocol dump.
- [x] The guidance sends Apple framework questions through Apple Dev Skills instead of duplicating broad SwiftUI or AppKit rules.
- [x] The guidance points agents back to the SwiftASB package docs for source-of-truth API, licensing, release, and compatibility details.
- [ ] Root Socket docs, marketplace wiring, and validation all agree on the plugin's install surface.
- [x] Root Socket docs, marketplace wiring, and validation all agree on the plugin's install surface.
1 change: 1 addition & 0 deletions plugins/agent-plugin-skills/.agents/skills
2 changes: 1 addition & 1 deletion plugins/agent-plugin-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-plugin-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Installable maintainer skills for skills-export repositories.",
"author": {
"name": "Gale",
Expand Down
1 change: 1 addition & 0 deletions plugins/agent-plugin-skills/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Use this file for durable repo-local guidance that Codex should follow before ch
- Keep Codex plugin guidance aligned with the current OpenAI docs: only `plugin.json` belongs in `.codex-plugin/`, while `skills/` stays at the plugin root and the manifest points to it with `"skills": "./skills/"`.
- Keep Codex plugin-boundary wording factual and explicit: repo-visible plugins come from the documented marketplace model, and OpenAI does not document a richer repo-private scoping model beyond that.
- Default user-facing install and update guidance to Git-backed marketplace sources with `codex plugin marketplace add <owner>/<repo>` and `codex plugin marketplace upgrade <marketplace-name>`. Use explicit refs such as `<owner>/<repo>@vX.Y.Z` only for pinned reproducible installs. Manual local marketplace roots and copied plugin payloads are development, unpublished-testing, or fallback paths.
- Do not recreate `skills/install-plugin-to-socket` or `skills/validate-plugin-install-surfaces`; those retired installer and validation workflows encouraged manual install-surface thinking that this repo now keeps out of the standard Codex path.
- For Python-backed maintainer repositories, require `uv` plus repo-local dev dependencies in `pyproject.toml` for the tools the repo expects to run.
- Do not teach or rely on machine-global `uv tool install` as the primary baseline for repo validation when the repo can declare `pytest`, `ruff`, and `mypy` directly in its dev dependency group.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ codex plugin marketplace add gaelic-ghost/SpeakSwiftlyServer

After the marketplace is added or upgraded, restart Codex, open the plugin directory in the Codex GUI, choose the marketplace, and install or enable the desired plugin there. Use explicit refs such as `gaelic-ghost/socket@vX.Y.Z` only for pinned reproducible installs. Manual local marketplace files and copied payload directories are development and fallback tools, not the preferred user path.

When an active Codex workflow needs a companion skill or plugin, first route through the Codex harness surfaces that are already available in the current session. Name the current-session skill to use before giving installation advice. If the companion skill is not exposed, add or update the marketplace and install the plugin through Codex's plugin directory for future sessions instead of presenting `config.toml` edits, copied payload folders, or arbitrary checkout searches as the standard path.

## Marketplace Identity

Codex tracks plugin enabled-state by plugin name plus marketplace name.
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-plugin-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-plugin-skills-maintenance"
version = "6.4.1"
version = "6.5.0"
description = "Maintainer-only Python tooling baseline for agent-plugin-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ When this skill touches Codex plugin guidance, keep these surfaces distinct inst

Default user-facing install and update guidance to the official Git-backed marketplace commands. Use explicit refs such as `<owner>/<repo>@vX.Y.Z` only for pinned reproducible installs. Use manual local marketplace or copied-payload instructions only for local development, testing unpublished changes, or fallback cases where the Git-backed path is not available.

When a workflow depends on a companion skill or plugin, first route through the Codex harness surfaces that are already available in the current session. Name the current-session skill to use, such as `productivity-skills:maintain-project-repo`, before giving install advice. If the companion skill is missing from the session, tell the user to add or update the marketplace and install the plugin through Codex's plugin directory for future sessions; do not imply that editing `config.toml`, copying payload folders, or searching an arbitrary checkout is the standard way to make a skill callable from Codex.

For `socket`, prefer:

```bash
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

EXACT_NO_FINDINGS = "No findings."
README_SNIPPETS = [
"Installable maintainer skills for skills-export repositories.",
"Installable maintainer skills for skills-export and plugin-export repositories.",
"does not document a richer repo-private scoping model",
"codex plugin marketplace add gaelic-ghost/socket",
"codex plugin marketplace upgrade socket",
Expand All @@ -26,7 +26,7 @@
"only `plugin.json` belongs in `.codex-plugin/`",
]
AGENTS_SNIPPETS = [
"Root `skills/` is the canonical authored and exported surface",
"canonical authored and exported surface",
'the manifest points to it with `"skills": "./skills/"`',
"Resolve shared project dependencies only from GitHub repository URLs, package managers, package registries, or other real remote repositories",
"Machine-local dependency paths are expressly prohibited in any project that is public or intended to be shared publicly",
Expand All @@ -50,6 +50,8 @@
"codex plugin marketplace upgrade socket",
"Documented plugin path: `~/.codex/config.toml`",
"project-scoped `.codex/config.toml`, label it as a general Codex config capability",
"first route through the Codex harness surfaces that are already available in the current session",
"install the plugin through Codex's plugin directory for future sessions",
]
WORKFLOW_ATLAS_SNIPPETS = [
"No skill in this repo should treat repo-local Codex plugin installs as a richer private scoping model than the marketplace-based behavior OpenAI documents.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def _write_repo(repo_root: Path, _plugin_name: str) -> None:
(repo_root / "README.md").write_text(
"\n".join(
[
"Installable maintainer skills for skills-export repositories.",
"Installable maintainer skills for skills-export and plugin-export repositories.",
"OpenAI's documented Codex plugin system exposes repo-visible plugins through marketplace catalogs and does not document a richer repo-private scoping model beyond that.",
"codex plugin marketplace add gaelic-ghost/socket",
"codex plugin marketplace upgrade socket",
Expand All @@ -44,7 +44,7 @@ def _write_repo(repo_root: Path, _plugin_name: str) -> None:
(repo_root / "AGENTS.md").write_text(
"\n".join(
[
"Root `skills/` is the canonical authored and exported surface",
"canonical authored and exported surface",
'the manifest points to it with `"skills": "./skills/"`',
"Resolve shared project dependencies only from GitHub repository URLs, package managers, package registries, or other real remote repositories",
"Machine-local dependency paths are expressly prohibited in any project that is public or intended to be shared publicly",
Expand Down Expand Up @@ -83,6 +83,8 @@ def _write_repo(repo_root: Path, _plugin_name: str) -> None:
"codex plugin marketplace upgrade socket",
"Documented plugin path: `~/.codex/config.toml`",
"If you mention project-scoped `.codex/config.toml`, label it as a general Codex config capability rather than part of the documented plugin install-surface map.",
"first route through the Codex harness surfaces that are already available in the current session",
"install the plugin through Codex's plugin directory for future sessions",
]
)
+ "\n",
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-plugin-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-dev-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Apple development workflows for Codex and Claude Code, including SwiftUI architecture and DocC authoring guidance.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "apple-dev-skills-maintainer"
version = "6.4.1"
version = "6.5.0"
description = "Maintainer tooling for the apple-dev-skills repository"
requires-python = ">=3.9"
dependencies = []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Bring an existing Swift package repository up to the expected guidance baseline

## Companion Plugin Requirement

This skill can be discovered from a standalone `apple-dev-skills` install, but its mutating guidance-sync path refreshes repo-maintenance files through the companion [`productivity-skills`](https://github.com/gaelic-ghost/productivity-skills) plugin. If the companion `maintain-project-repo` runner is missing, tell the user to install `productivity-skills` alongside `apple-dev-skills`, or add the [`socket`](https://github.com/gaelic-ghost/socket) marketplace with `codex plugin marketplace add gaelic-ghost/socket` and then install or enable both `apple-dev-skills` and `productivity-skills` from the Socket catalog.
This skill can be discovered from a standalone `apple-dev-skills` install, but its mutating guidance-sync path refreshes repo-maintenance files through the companion [`productivity-skills`](https://github.com/gaelic-ghost/productivity-skills) plugin. Before giving filesystem-level fallback instructions, first check the skills exposed in the current Codex session and use the harness-discovered `productivity-skills:maintain-project-repo` workflow when it is available. If the companion skill is not exposed, tell the user to add the [`socket`](https://github.com/gaelic-ghost/socket) marketplace with `codex plugin marketplace add gaelic-ghost/socket`, then install the relevant plugins from Codex's plugin directory so future sessions expose both `apple-dev-skills` and `productivity-skills`.

## When To Use

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Bring an existing Xcode app repository up to the expected guidance baseline with

## Companion Plugin Requirement

This skill can be discovered from a standalone `apple-dev-skills` install, but its mutating guidance-sync path refreshes repo-maintenance files through the companion [`productivity-skills`](https://github.com/gaelic-ghost/productivity-skills) plugin. If the companion `maintain-project-repo` runner is missing, tell the user to install `productivity-skills` alongside `apple-dev-skills`, or add the [`socket`](https://github.com/gaelic-ghost/socket) marketplace with `codex plugin marketplace add gaelic-ghost/socket` and then install or enable both `apple-dev-skills` and `productivity-skills` from the Socket catalog.
This skill can be discovered from a standalone `apple-dev-skills` install, but its mutating guidance-sync path refreshes repo-maintenance files through the companion [`productivity-skills`](https://github.com/gaelic-ghost/productivity-skills) plugin. Before giving filesystem-level fallback instructions, first check the skills exposed in the current Codex session and use the harness-discovered `productivity-skills:maintain-project-repo` workflow when it is available. If the companion skill is not exposed, tell the user to add the [`socket`](https://github.com/gaelic-ghost/socket) marketplace with `codex plugin marketplace add gaelic-ghost/socket`, then install the relevant plugins from Codex's plugin directory so future sessions expose both `apple-dev-skills` and `productivity-skills`.

## When To Use

Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/cardhop-app/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cardhop-app",
"version": "6.4.1",
"version": "6.5.0",
"description": "Cardhop.app workflow guidance plus a bundled local MCP server for contact capture and updates on macOS.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cardhop-app/mcp/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "cardhop-app-mcp"
version = "6.4.1"
version = "6.5.0"
requires-python = ">=3.13"
dependencies = [
"fastmcp>=3.0.2",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cardhop-app/mcp/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/dotnet-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dotnet-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Standalone plugin repository for future .NET-focused Codex skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/productivity-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "productivity-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Broadly useful productivity workflows for Codex and Claude Code.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/productivity-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "productivity-skills-maintenance"
version = "6.4.1"
version = "6.5.0"
description = "Maintainer-only Python tooling baseline for productivity-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/productivity-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/python-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "python-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Bundled Python-focused Codex skills for uv bootstrapping, FastAPI and FastMCP scaffolding, FastAPI/FastMCP integration, and pytest workflows.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/python-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "python-skills-maintainer"
version = "6.4.1"
version = "6.5.0"
description = "Maintainer tooling for the python-skills repository"
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/python-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/rust-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rust-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Standalone plugin repository for future Rust-focused Codex skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/spotify/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "spotify",
"version": "6.4.1",
"version": "6.5.0",
"description": "Placeholder plugin repository for future Spotify-focused Codex workflows.",
"author": {
"name": "Gale",
Expand Down
6 changes: 4 additions & 2 deletions plugins/swiftasb-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "swiftasb-skills",
"version": "6.4.1",
"version": "6.5.0",
"description": "Codex skills for explaining SwiftASB and building SwiftUI, AppKit, and Swift package integrations on top of it.",
"author": {
"name": "Gale",
Expand Down Expand Up @@ -33,8 +33,10 @@
"websiteURL": "https://github.com/gaelic-ghost/socket/tree/main/plugins/swiftasb-skills",
"defaultPrompt": [
"Explain whether SwiftASB is the right fit for this Swift app before we start building.",
"Choose a SwiftASB integration shape for this SwiftUI or AppKit project.",
"Choose a SwiftASB integration shape for this SwiftUI, AppKit, package, or helper project.",
"Add a SwiftUI-facing SwiftASB client model using observable companions.",
"Add an AppKit-facing SwiftASB owner for a window, document, or controller.",
"Design a Swift package API that uses SwiftASB internally without leaking raw wire models.",
"Diagnose why this SwiftASB-backed app or test is failing."
],
"brandColor": "#F05138"
Expand Down
2 changes: 1 addition & 1 deletion plugins/swiftasb-skills/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Use this file for durable guidance that applies inside the `swiftasb-skills` chi
## Source Of Truth

- Use the current SwiftASB repository, README, DocC docs, release notes, and public Swift API as the source of truth for package behavior.
- SwiftASB `v1.0.0` is the first supported public API baseline, but active development may move ahead of that release. Verify the local or GitHub package state before writing exact API guidance.
- SwiftASB `v1.0.0` is the first supported public API baseline, and `v1.0.1` is the current released baseline. Active development may move ahead of that release, so verify the local or GitHub package state before writing exact API guidance.
- Do not copy SwiftASB source, generated wire models, or schema files into this plugin.
- Do not describe generated `CodexWire...` models as the intended public integration surface. SwiftASB's public surface is the hand-owned Swift API.

Expand Down
Loading