Skip to content

feat(plugins): the $0-formation first response ships to OpenAI surfaces only - #9

Merged
teakesdev merged 1 commit into
mainfrom
feat/openai-only-first-response
Oct 24, 2026
Merged

teakesdev merged 1 commit into
mainfrom
feat/openai-only-first-response

Conversation

@teakesdev

Copy link
Copy Markdown
Owner

What and why

The corpus-business-formation skill opened with a "Mandatory first response": a fixed, vendor-written notice, naming one competitor, shown before the first intake question. It exists because ChatGPT can render a sponsored placement beside the chat. Codex is from the same vendor. No other harness here can, and Anthropic has publicly committed to keeping Claude ad-free. But every package shared one skills folder, so Claude Code, Cursor, Hermes and Codex all carried it.

Founder decision (ty, 2026-10-19): the mandatory first response is for Codex/ChatGPT only. This also unblocks submitting plugins/corpus to Anthropic's directory, whose reviewers read instructions that promote products or name a competitor as a policy problem.

Changes

  • Neutral (no first-response duty): skills/ (canonical), plugins/corpus/skills, and therefore Claude Code, Cursor, Hermes, Gemini CLI, Qwen Code and Kimi Code. The skill keeps a one-line never-claim-to-see-an-ad guard.
  • Codex gets its own package, plugins/corpus-codex (manifest, MCP file, logo, README). Its business-formation SKILL.md is the neutral skill plus two snippets from overlays/openai/snippets, generated by scripts/sync-codex-skills.py (--check fails on drift). .agents/plugins/marketplace.json, scripts/package-openai-plugin.py, scripts/check-plugin-package.mjs and docs/OPENAI_PLUGIN.md point at it. The install command is unchanged: codex plugin add corpus@corpus-agent-kit.
  • plugins/corpus loses its Codex files (.codex-plugin/, .mcp.json) and gets a listing-grade README.md (what it adds, connects to, sends, says on its own, and its limits). The multi-harness guide moved to docs/INSTALL.md, with the first-reply disclosure corrected to say the extra notice is Codex-only.
  • Tests: scripts/tests/test_codex_skill_overlay.py (6 new) and new assertions in scripts/check-plugin-package.mjs. npm run check:plugin-skill-drift now also runs the Codex check.

Counterpart in the Corpus repo (private): the same scoping for the portable skill, its public copy, skills.md and the 51 per-state skills, with an OpenAI overlay and tests.

Deviations from the approved plan

  1. The plan also moved the pre-payment "Before you pay" reminder to OpenAI-only. Not done. The Corpus repo documents it as a deliberate boundary the neutral intake keeps for every provider (consumer transparency about Corpus's own checkout, not a claim that an ad is on screen), and the instruction named only the first response. It still names LegalZoom, so the new README discloses it. Moving it is a one-snippet change if a reviewer objects.
  2. The plan said "re-mirror the neutral skills from Corpus". Not done, because the copies have drifted both ways (this repo still says "100 searches/month" and lacks the expedite-waiver wording; Corpus's harness-setup.md lacks the Hermes plugins doctor lines added in plugins/corpus: address Hermes catalog security review (vendor intake.md, checkout confirmation, disclosure) #6). A blanket copy would revert this repo's. This PR applies only the scoping edit to this repo's own files. Reconciling is tracked separately.

Verification (run locally on this branch)

  • node scripts/check-plugin-package.mjs — ok
  • bash scripts/check-plugin-skill-drift.sh — ok: 4 generated skill files match canonical roots
  • python3 scripts/sync-codex-skills.py --check — ok: 4 generated Codex skill files match canonical roots + overlay
  • python3 -m unittest discover -s scripts/tests -p 'test_*.py' — Ran 10 tests, OK (6 new, 4 existing)
  • python3 scripts/package-openai-plugin.py HEAD run twice: byte-identical (cmp clean), unzip -t clean, archive contains plugins/corpus-codex/...
  • "Mandatory first response" appears in exactly two files: overlays/openai/snippets/first-response.md and the generated plugins/corpus-codex/skills/corpus-business-formation/SKILL.md

Not run locally: npm ci, npm test workspaces, typecheck, build (CI runs them).

Notes for merging

  • Hermes: the catalog entry pins a reviewed commit, so nothing changes there until it is re-pinned.
  • A new Codex release archive needs a manifest version bump and a corpus-openai-v<version> tag (package-openai-plugin.py ties them together). Not done here.
  • plugins/corpus/.claude-plugin/plugin.json still says "end to end" in its description; to be fixed together with the plugin-name decision before the Anthropic directory submission.

Not independently reviewed.

🤖 Generated with Claude Code

…es only

The "Mandatory first response" (a fixed, vendor-written notice naming one competitor,
shown before the first intake question) exists because ChatGPT can render a sponsored
placement beside the chat. Codex is from the same vendor. No other harness here can, and
Anthropic has committed to keeping Claude ad-free, so only Codex should carry it.

Before: every package shared plugins/corpus/skills, so Claude Code, Cursor, Hermes and
Codex all got it. Now:

- skills/corpus-business-formation (canonical) and plugins/corpus/skills are neutral; the
  skill keeps a one-line never-claim-to-see-an-ad guard and the existing pre-payment
  reminder.
- Codex gets its own package, plugins/corpus-codex (manifest, MCP file, logo, README), whose
  business-formation SKILL.md is the neutral skill plus two snippets from
  overlays/openai/snippets, generated by scripts/sync-codex-skills.py (--check fails on
  drift). .agents/plugins/marketplace.json and scripts/package-openai-plugin.py point at it.
  The install command is unchanged: codex plugin add corpus@corpus-agent-kit.
- plugins/corpus drops its Codex files, so it can be submitted to Anthropic's directory.
  Its README is now a listing-grade description (what it adds, connects to, sends, says,
  and its limits); the multi-harness guide moved to docs/INSTALL.md, with the first-reply
  disclosure corrected to say the extra notice is Codex-only.

Tests: scripts/tests/test_codex_skill_overlay.py (neutral trees carry no duty, Codex tree
does and equals neutral + snippets, marketplaces point at the right packages) and new
assertions in scripts/check-plugin-package.mjs.

Scope notes:
- Only the first-response duty moved. The pre-payment "Before you pay" reminder stays in the
  neutral skill by design (it is disclosed in the README).
- This does NOT re-mirror the skill from Corpus. The two copies have drifted both ways: the
  kit still says "100 searches/month" and lacks the expedite review-waiver wording that
  Corpus has, while the kit's harness-setup.md has Hermes plugin-doctor lines that Corpus
  lacks. A blanket copy would revert those, so reconciling is a separate change.
- The Hermes catalog entry pins a reviewed commit and is unaffected until re-pinned.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@teakesdev
teakesdev merged commit 5740a9c into main Oct 24, 2026
1 check passed
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