Use this checklist for every public release.
- Confirm the GitHub repository is public and the release commit is on the default branch.
- Confirm the repository root contains
plugin.json,mcp.json,public-surface.json,skills/, andassets/for GitHub auto-discovery. - Confirm
.claude-plugin/marketplace.jsonpoints to./claude-plugins/sent. - Confirm the Claude plugin contains its manifest, README, license, skills, commands, assets, and HTTPS MCP configuration.
- Update the version consistently before release; plugin names are stable public identifiers and must not be renamed casually.
- Review
git ls-filesfor local metadata, archives, credentials, customer data, and private operational material.
python3 scripts/generate_adapters.py --check
python3 scripts/validate.py
python3 scripts/test_validation_gates.py
python3 scripts/test_fixtures.py
python3 scripts/test_contracts.py
python3 scripts/test_live_contract.py
claude plugin validate . --strict
claude plugin validate ./claude-plugins/sent --strictCI must pass on the exact commit being submitted. Resolve warnings as well as errors before submission. The dedicated contract/documentation freshness workflow runs on schedule, manual dispatch, and release; review its uploaded JSON artifact separately from pull-request validation.
- Verify the homepage, documentation, privacy, terms, support, and MCP URLs are publicly reachable over HTTPS.
- Confirm the README accurately describes installation, authentication, data handling, mutation confirmation, and support.
- Confirm every public skill appears in each README catalog with a task-oriented description and a working
skills/<name>/SKILL.mdlink. - Run
npx skills add https://github.com/sentdm/sent-plugin --listagainst the public release and confirm all canonical skills are discoverable by name. - Review every
SKILL.mdfrontmatter description for natural-language triggers, product synonyms, error symptoms, and explicit scope boundaries. - Confirm all fixtures are synthetic and all external documentation links are public.
- Confirm license and provenance notices remain present in the repository and distributable plugin.
- Complete security, privacy, legal, and product review without publishing reviewer accounts, credentials, or internal findings.
Submit the public repository through the current Claude plugin submission form only after the exact public commit passes the gates above. Anthropic runs claude plugin validate and automated safety screening during review, so local strict validation should match the submitted layout.
OpenAI listings include website, support, privacy policy, and terms URLs in both the portable extension and Codex adapter. Release validation checks their consistency and HTTPS endpoints. Confirmation requirements for sends, feedback, contact mutations, template deletion, and Sender Profile mutations are enforced independently of public-surface metadata. Scanner regression checks cover credential omission and repository containment.
The Claude manifest carries documentationUrl, supportUrl, privacyPolicyUrl, and termsOfServiceUrl from the shared listing source. Validate with Claude Code 2.1.287 or later, which recognizes these directory fields. Packaged scripts and application examples must not read ambient credentials; the webhook utility accepts only an explicitly supplied secret on standard input.
The Claude adapter applies adapter-sources/claude/overlay.yaml: it withholds Sender Profile creation and deletion from claude-plugins/sent/public-surface.json (25 tools) and adjusts the provisioning, compliance, and messaging guidance. Use that file's tool list and these use cases in Claude directory submissions: send one approved template message, inspect message status and activity, manage contacts and templates, query analytics and number capabilities, review account, balance, onboarding, and SMS compliance requirements, update Sender Profile metadata, and send user-authorized feedback. The Sent server enforces the same restrictions for hosted Claude connections; for Claude Code, the overlay is guidance only. Never hand-edit claude-plugins/sent.