Docs: document the programmatic publishing surface for integrating plugins#189
Docs: document the programmatic publishing surface for integrating plugins#189jeffpaul wants to merge 2 commits into
Conversation
Adds a 'Publishing Programmatically' section to the developer docs covering what companion plugins need to drive cross-posting per post: the registered per-post metas (atmosphere_disabled, atmosphere_custom_text), taking over the save-flow via the atmosphere_auto_publish option + Publisher::publish_post(), reading back the created record from _atmosphere_bsky_uri/_atmosphere_bsky_tid, and reacting via the existing result/reaction hooks. Docs + changelog only — no code changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds developer documentation describing how companion plugins can programmatically drive ATmosphere cross-posting on a per-post basis, and records the change via a changelog entry.
Changes:
- Add a new Publishing Programmatically section (and ToC entry) documenting per-post meta controls, manual publishing, and reading back published record references.
- Add a patch-level changelog entry for the documentation update.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docs/developer-docs.md | Adds a new section documenting the supported integration surface for programmatic publishing and reaction sync metadata. |
| .github/changelog/add-programmatic-publishing-docs | Adds a changelog entry describing the documentation addition. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| | Meta key | Constant | Effect | | ||
| |----------|----------|--------| | ||
| | `atmosphere_disabled` | `ATMOSPHERE_META_DISABLED` | Sharing is opt-out: `'1'` excludes the post from cross-posting (and removes already-published remote records). | |
| `Publisher::update_post()` and `Publisher::delete_post()` complete the | ||
| lifecycle. |
| Replies and reposts synced back from Bluesky arrive as native WordPress | ||
| comments (`protocol` comment meta `atproto`, source link in `source_url`); | ||
| integrations can react to each via | ||
| [`atmosphere_reaction_synced`](#public-hooks). |
| Significance: patch | ||
| Type: added | ||
|
|
||
| Developer docs: document the programmatic publishing surface (per-post metas, Publisher::publish_post(), record read-back) for integrating plugins. |
|
Thanks for this, @jeffpaul! I verified every documented symbol against the code (constants,
On your "gaps get spotted" point: merging this makes |
What
Adds a Publishing Programmatically section to
docs/developer-docs.md(plus ToC entry and a changelog file), documenting the integration surface a companion plugin needs to drive cross-posting per post:atmosphere_disabled(opt-out) andatmosphere_custom_text(per-post Bluesky text)atmosphere_auto_publishoption +\Atmosphere\Publisher::publish_post()(with itsis_post_publishable()gate andupdate_post()/delete_post()lifecycle)_atmosphere_bsky_uri/_atmosphere_bsky_tidatmosphere_publish_post_result/atmosphere_reaction_syncedhooks and the commentprotocol/source_urlmarkers for synced repliesWhy
I'm building a WordPress publishing plugin (Moment — a phone-first publishing prototype) that wants to delegate its Bluesky syndication to ATmosphere rather than maintain its own AT Protocol client. Everything needed for that already exists in ATmosphere — this PR just documents it as the supported integration surface, so integrators can rely on it (and so gaps get spotted if any of it isn't meant to be public API).
Testing
Docs + changelog only, no code changes.
composer lintpasses;npm run env-testnot run since no PHP changed.🤖 Drafted with Claude Code, human-reviewed.