Skip to content

Commit a0ae78b

Browse files
committed
release: add spotify placeholder and align python toolchains
Why: Add the new spotify plugin placeholder in socket, make Python maintainer guidance explicitly require repo-local dev dependencies, and bump the changed shipped surfaces by a patch. Verification: uv run scripts/validate_socket_metadata.py cd plugins/agent-plugin-skills && uv run pytest && uv run ruff check . && uv run mypy . cd plugins/python-skills && uv run pytest && uv run ruff check . && uv run mypy .
1 parent 31d5101 commit a0ae78b

29 files changed

Lines changed: 662 additions & 22 deletions

File tree

.agents/plugins/marketplace.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,18 @@
112112
},
113113
"category": "Productivity"
114114
},
115+
{
116+
"name": "spotify",
117+
"source": {
118+
"source": "local",
119+
"path": "./plugins/spotify"
120+
},
121+
"policy": {
122+
"installation": "AVAILABLE",
123+
"authentication": "ON_INSTALL"
124+
},
125+
"category": "Productivity"
126+
},
115127
{
116128
"name": "web-dev-skills",
117129
"source": {

AGENTS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ Use this file for durable repo-local guidance that Codex should follow before ch
4949
- Keep the same names for the same concepts across `SKILL.md`, `agents/openai.yaml`, docs, automation prompts, scripts, and marketplace metadata.
5050
- If docs and scripts disagree, fix the script or narrow the documented contract so they match.
5151
- When shipped behavior, active skill inventory, packaging roots, or validation commands change, update the relevant docs and `ROADMAP.md` in the same pass unless Gale explicitly says not to.
52-
- For Python-backed skill repositories, prefer `uv sync --dev`, `uv run pytest`, and uv-managed maintainer tools such as `ruff` and `mypy`.
52+
- For Python-backed repositories in `socket`, use `uv` as the maintainer baseline and declare repo-local dev dependencies in `pyproject.toml` instead of relying on globally installed tools.
53+
- Prefer a root or package-local dev group that explicitly includes the Python maintainer tools the repo expects to run, including `pytest`, `ruff`, and `mypy` when those checks are part of the workflow.
54+
- Prefer `uv sync --dev`, `uv run pytest`, `uv run ruff check .`, and `uv run mypy .` for repos that actually ship those Python-backed validation surfaces.
5355
- When OpenAI or Claude product behavior matters, prefer official docs first. When describing Codex plugin boundaries, say plainly that repo-visible plugins come from the documented marketplace model and that OpenAI does not currently document a richer repo-private scoping model.
5456
- Use these terms consistently:
5557
- `skill`: reusable workflow-authoring unit

CONTRIBUTING.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ The root superproject uses a small `uv` environment for maintainer tooling:
5858
uv sync --dev
5959
```
6060

61+
If a root or child-repo workflow depends on Python quality tooling, declare that tooling in the relevant repo's `pyproject.toml` dev dependencies rather than assuming a machine-global install. Treat `pytest`, `ruff`, and `mypy` as the normal Python maintainer baseline when the repo's shipped validation surface uses them.
62+
6163
The root validation path does not require application secrets. If your change involves subtree sync or GitHub operations, make sure your git remotes and GitHub authentication are already configured on your machine before you start those steps.
6264

6365
### Runtime Behavior
@@ -106,6 +108,8 @@ uv sync --dev
106108
uv run scripts/validate_socket_metadata.py
107109
```
108110

111+
If the changed surface also introduces or expands Python-backed repo checks, add the required tools to the repo-local `uv` dev group and document the corresponding `uv run pytest`, `uv run ruff check .`, and `uv run mypy .` commands where that repo's contributors will actually look.
112+
109113
When editing docs, also review the rendered Markdown structure and cross-links for the files you changed.
110114

111115
## Pull Request Expectations

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ Sync the root maintainer environment with:
6969
uv sync --dev
7070
```
7171

72+
For Python-backed maintainer tooling in this superproject or its child repositories, keep the repo-local baseline explicit in `pyproject.toml` instead of assuming machine-global tools. When a repo expects Python validation, declare the needed dev dependencies there, including `pytest`, `ruff`, and `mypy` when those checks are part of the shipped workflow.
73+
7274
Only `apple-dev-skills`, `python-skills`, and `SpeakSwiftlyServer` still use subtree sync workflows. `socket` itself does not ship a root plugin; the marketplace is the root packaged surface here.
7375

7476
### Workflow
@@ -95,6 +97,8 @@ Run the root validator locally with:
9597
uv run scripts/validate_socket_metadata.py
9698
```
9799

100+
When a child repository or helper surface grows Python-backed validation beyond this root metadata check, add those checks as repo-local `uv` dev dependencies and document the exact `uv run ...` commands in that child repo instead of assuming a globally provisioned toolchain.
101+
98102
## Repo Structure
99103

100104
```text
@@ -139,7 +143,7 @@ The root superproject docs are:
139143

140144
Treat `socket` as the canonical home for the monorepo-owned child directories and as the subtree host for the remaining imported child repos.
141145

142-
- `agent-plugin-skills`, `cardhop-app`, `dotnet-skills`, `productivity-skills`, `rust-skills`, `things-app`, and `web-dev-skills` are monorepo-owned here.
146+
- `agent-plugin-skills`, `cardhop-app`, `dotnet-skills`, `productivity-skills`, `rust-skills`, `spotify`, `things-app`, and `web-dev-skills` are monorepo-owned here.
143147
- `apple-dev-skills`, `python-skills`, and `SpeakSwiftlyServer` preserve explicit subtree sync paths.
144148
- Child repos may expose plugin packaging from their own repo roots whether they are monorepo-owned here or still preserve subtree sync.
145149
- `things-app` packages from its child-repo root at `./plugins/things-app`, and its bundled MCP server lives directly under that child repo's top-level `mcp/` directory.
@@ -159,6 +163,7 @@ That marketplace points at the actual packaged surface each child repository tre
159163
- `./plugins/SpeakSwiftlyServer`
160164
- `./plugins/python-skills`
161165
- `./plugins/rust-skills`
166+
- `./plugins/spotify`
162167
- `./plugins/things-app`
163168
- `./plugins/web-dev-skills`
164169

ROADMAP.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ Planned
7171

7272
## History
7373

74+
- Added the placeholder `plugins/spotify` child repository, wired it into the root marketplace, and kept the superproject docs honest about that new monorepo-owned plugin surface.
7475
- Converted the former standalone `cardhop-mcp` checkout into the monorepo-owned `plugins/cardhop-app` child, added first-pass Codex plugin metadata plus a bundled MCP config, and recorded the new child as a normal `socket` marketplace entry.
7576
- Retired the remaining `things-app` subtree-era wording from the root maintainer docs, removed the now-redundant local `things-app` and `things-app-mcp` sibling checkouts after verification, and prepared the `v0.11.1` plus `things-app v0.1.3` patch bump.
7677
- Synced the `SpeakSwiftlyServer` subtree through the newer `v4.2.x` plugin and embedded live-speech updates, confirmed the root marketplace path still stayed valid, and kept the superproject release trail explicit with the `v0.11.0` bump.

plugins/agent-plugin-skills/.codex-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "agent-plugin-skills",
3-
"version": "1.3.0",
3+
"version": "1.3.1",
44
"description": "Installable maintainer skills for skills-export repositories.",
55
"author": {
66
"name": "Gale",

plugins/agent-plugin-skills/AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Use this file for durable repo-local guidance that Codex should follow before ch
2929
- Treat maintainer docs under [`docs/maintainers/`](./docs/maintainers/) as the durable explanation layer for repo policy and packaging boundaries.
3030
- Keep Codex plugin guidance aligned with the current OpenAI docs: only `plugin.json` belongs in `.codex-plugin/`, while `skills/` stays at the plugin root.
3131
- 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.
32+
- For Python-backed maintainer repositories, require `uv` plus repo-local dev dependencies in `pyproject.toml` for the tools the repo expects to run.
33+
- 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.
3234

3335
### Communication and Escalation
3436

@@ -56,6 +58,8 @@ uv sync --dev
5658

5759
```bash
5860
uv run pytest
61+
uv run ruff check .
62+
uv run mypy .
5963
```
6064

6165
### Optional Project Commands

plugins/agent-plugin-skills/CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ This repository uses `uv` for local Python tooling. Sync the dev environment bef
5252
uv sync --dev
5353
```
5454

55+
Keep the maintainer toolchain declared in the repository itself. If the repo expects linting, type-checking, or tests, add those tools to the repo-local dev dependency group in `pyproject.toml` instead of relying on `uv tool install` or other machine-global setup. Treat `pytest`, `ruff`, and `mypy` as the default Python maintainer trio when the shipped workflow uses them.
56+
5557
This repo does not require dedicated local services or repo-specific secret configuration for normal docs and test work.
5658

5759
### Runtime Behavior
@@ -62,6 +64,8 @@ Run the normal validation flow with:
6264

6365
```bash
6466
uv run pytest
67+
uv run ruff check .
68+
uv run mypy .
6569
```
6670

6771
## Development Expectations
@@ -89,6 +93,8 @@ Prefer the grounded repo checks:
8993
```bash
9094
uv sync --dev
9195
uv run pytest
96+
uv run ruff check .
97+
uv run mypy .
9298
```
9399

94100
If you changed only prose, still sanity-check the nearby docs for split clarity and internal consistency before handing the work off.

plugins/agent-plugin-skills/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ Sync the local maintainer environment before changing the Python-backed audit to
6262
uv sync --dev
6363
```
6464

65+
Keep the Python maintainer baseline repo-local. When this repo or a target repo expects Python checks, declare the required dev dependencies in `pyproject.toml` instead of assuming contributors already installed standalone tools globally. The normal baseline is `pytest`, `ruff`, and `mypy` when those checks are part of the shipped workflow.
66+
6567
### Workflow
6668

6769
Keep root [`skills/`](./skills/) canonical, keep maintainer docs under [`docs/maintainers/`](./docs/maintainers/), and keep plugin metadata in [`.codex-plugin/plugin.json`](./.codex-plugin/plugin.json).
@@ -77,6 +79,8 @@ Run the repo-local tests before landing changes that touch skill behavior, docs-
7779
```bash
7880
uv sync --dev
7981
uv run pytest
82+
uv run ruff check .
83+
uv run mypy .
8084
```
8185

8286
## Repo Structure

plugins/agent-plugin-skills/docs/maintainers/reality-audit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ For the durable map of Codex plugin catalogs, staged payloads, installed cache p
2828
- `.agents/skills` and `.claude/skills` are POSIX symlink mirrors to `../skills`.
2929
- README and AGENTS say plainly that this repo exports installable skills and that OpenAI documents marketplace-based plugin discovery rather than a richer repo-private plugin scope.
3030
- ROADMAP matches the live exported skill set.
31-
- Maintainer tooling guidance includes `uv sync --dev`, `uv tool install ruff`, `uv tool install mypy`, and `uv run --group dev pytest`.
31+
- Maintainer tooling guidance includes `uv sync --dev`, repo-local `pyproject.toml` dev dependencies for `pytest`, `ruff`, and `mypy`, plus the corresponding `uv run pytest`, `uv run ruff check .`, and `uv run mypy .` commands when those checks are part of the shipped workflow.
3232
- No tracked file reintroduces nested staged plugin directories, repo-marketplace guidance for this repo, installer workflows, or install-validation workflows.
3333

3434
## Specialist Owners

0 commit comments

Comments
 (0)