Skip to content

Add the ChatGPT/Codex plugin and update the skill for TryPost 2.0 - #3

Merged
paulocastellano merged 11 commits into
mainfrom
feature/openai-plugin
Oct 15, 2026
Merged

paulocastellano merged 11 commits into
mainfrom
feature/openai-plugin

Conversation

@paulocastellano

@paulocastellano paulocastellano commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

What

  • OpenAI plugin directory (ChatGPT / Codex): adds .codex-plugin/plugin.json with the listing (name, subtitle, description, category, website/support/privacy/terms URLs, starter prompts, brand color), the 5 positive and 3 negative review test cases, and commerce: false. .mcp.json declares the hosted MCP server with OAuth through Dynamic Client Registration.
  • Square icon: assets/icon-512.png (512×512). The OpenAI directory refuses non-square icons and icon.png is 175×164.
  • Skill rewritten for TryPost 2.0: one channel per post (social_account_id, content_type, meta at the top level), create-posts-tool for one post per destination, pending_approval, all 83 registered tools, Google Business Profile. Removes the pre-2.0 platforms[] model, partially_published and the tools that no longer exist.
  • One description everywhere: Claude, Cursor and Grok manifests use the same text as the Claude directory listing, without a network count. Version 2.0.0, matching TryPost.
  • README: ChatGPT/Codex section with the command that builds the upload ZIP.
  • .mcp.json declares "type": "http": without it claude plugin validate failed (Claude Code reads .mcp.json at the plugin root and drops a remote server with no type). OpenAI's own plugins (Figma, Notion, Linear) use the same field.
  • Tests in TypeScript: node --test runs the .ts files directly on Node 24+, with no build step and no package.json. They cover every manifest (same name, version and description; existing paths), the MCP configuration (same URL everywhere, OAuth via DCR, no credentials), the OpenAI listing limits, icons and review cases, the skill (2.0 model, every network, root and plugin copies identical) and the repository layout the Claude directory checks.
  • CI (.github/workflows/tests.yml): runs the tests, type-checks them with tsc (TypeScript 7.0.2, pinned), validates the Claude plugin with claude plugin validate --strict and builds the OpenAI plugin ZIP as an artifact. Workflows moved to the Node 24 actions (v7).
  • AGENTS.md: the rules of the repository (TypeScript only, no package.json, tests and CI on every change, manifests in sync, OpenAI listing limits, how the skill is written).
  • README: drops the Asset Library (removed in TryPost 2.0) and says what the plugin runs and where it sends data, which the Claude directory's security scan asks for.

Build the ZIP

git archive --format=zip --prefix=trypost/ -o trypost-plugin.zip HEAD .codex-plugin .mcp.json skills assets

Still needed before submitting to OpenAI

  • Domain verification: serve the token from the portal at https://app.trypost.it/.well-known/openai-apps-challenge (trypost app, not this package)
  • readOnlyHint, destructiveHint and openWorldHint set explicitly on every MCP tool (trypost app)
  • supportURL is https://docs.trypost.it/support
  • Demo video URL and reviewer test account, entered in the dashboard
  • docs.trypost.it tools reference still documents platforms[] and partially_published

Paulo Castellano added 11 commits October 15, 2026 12:21
A post now has one channel at its top level and create-posts-tool makes
one post per destination; the platforms[] model, partially_published and
the removed asset and toggle tools are gone. Every registered tool is
listed, Google Business Profile is covered, and the network count is
dropped.
.codex-plugin/plugin.json carries the OpenAI directory listing, the review
test cases and a square icon; .mcp.json declares the MCP server with OAuth
through Dynamic Client Registration.
Drop the network count, add Google Business Profile to the README and
document how to build the OpenAI plugin ZIP.
Claude Code reads .mcp.json at the plugin root and drops a remote server
without a type, so claude plugin validate failed. OpenAI's own plugins use
the same "type": "http".
node --test checks every manifest, the MCP configuration, the OpenAI
listing limits, icons and review cases, the skill and the repository
layout. CI runs them, validates the Claude plugin with the official CLI
and builds the OpenAI plugin ZIP.
checkout, setup-node and upload-artifact v4 ran on the deprecated Node 20.
Node 24 runs the .ts files directly, so there is still no build step and
no package.json. tsc checks them in CI with pinned TypeScript and Node
types, and a test refuses any JavaScript file.
AGENTS.md records the rules of the repository: TypeScript only, no
package.json, tests and CI on every change, manifests kept in sync, the
OpenAI listing limits and how the skill is written. The README drops the
Asset Library, which TryPost 2.0 removed, and says what the plugin runs
and where it sends data.
@paulocastellano
paulocastellano merged commit f0f54a4 into main Oct 15, 2026
4 checks passed
@paulocastellano
paulocastellano deleted the feature/openai-plugin branch October 15, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant