feat(ce-promote): add ce-promote skill for post-ship announcement copy#888
Conversation
991c8bb to
55b896c
Compare
tmchow
left a comment
There was a problem hiding this comment.
Reviewed the skill end-to-end — really clean work. The graceful-degradation (three-state detect, never-block-on-Spiral) and the drafts-only safety stance are the strong parts, and Path B is substantive rather than a degraded teaser. Two small change requests on the opt-out config write before merge (inline). Everything else is polish.
55b896c to
f984658
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f984658cb4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
f984658 to
786dc9e
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 786dc9eeeb
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
786dc9e to
cf31ef9
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cf31ef9a8b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
cf31ef9 to
aa6e9b6
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa6e9b60e4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
aa6e9b6 to
5d2c654
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d2c654057
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
5d2c654 to
b61cb89
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b61cb89813
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| spiral auth status 2>/dev/null | ||
| ``` | ||
|
|
||
| Classify into one of three states. Spiral is **ready** only if the binary exists AND auth status shows an authed key (`spiral_sk_...`): |
There was a problem hiding this comment.
Detect authenticated Spiral from JSON status
For already-authenticated Spiral 1.8 users, the published agent flow reports readiness via spiral auth status --json returning authenticated: true / status: authenticated, while this check only treats output containing spiral_sk_... as ready. If the status command does not print a raw token, ready users are misclassified as unauthed and get the setup/opt-out prompt instead of Path A; use the JSON authenticated flag (or spiral login --json's already_authenticated) for readiness.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
fixed (uniform --json approach across the implementation)
b61cb89 to
77b37c2
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 77b37c2c27
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Generate user-facing announcement copy (X post/thread, changelog blurb, LinkedIn, email, blog, demo script) for a feature that just shipped, right inside the engineering workflow. Spiral-agnostic by default; voice-matched via the optional Spiral CLI when installed and authed. - Derives what shipped from a description or from the merged PR / diff / changelog / commits, and leads with user value over implementation. - Three-state Spiral detection (ready / unauthed / absent) with a one-time, declinable first-run setup nudge; a single dismissal records a per-repo opt-out so this per-ship skill never nags. - Encodes Spiral's multi-channel / cue-word behavior (verified live against CLI v1.6.1) and degrades gracefully to direct drafting when Spiral is absent, without giving away Spiral's voice-matching. - Drafts only: never posts, publishes, or touches git.
77b37c2 to
7e86a47
Compare
What & why
After a feature ships, the user-facing messaging — a tweet/thread, a changelog blurb, a LinkedIn post, an email — is usually written later, by someone without the shipping context.
ce-promotepulls that drafting into the engineering workflow: it figures out what shipped (from a description, or derived from the merged PR / diff / changelog / commits), picks sensible channels, and produces copy-pasteable drafts. It drafts only — never posts, publishes, or touches git.Design notes
SKILL.md+ one reference) plus two README rows; no new dependencies.ce-promoteships a lite layer of editorial & social-media expertise to write strong copy on its own — modest by design (brand-voice matching, humanization, saved styles, and campaign orchestration are where the Spiral path goes further).Spiral integration details
spiral write … --instant --json.spiral login --json(non-blocking), shares the returnedauth_url, the user approves in a browser, and the agent pollsspiral auth status --jsonuntilauthenticated: true. The API key is exchanged server→CLI and never touches the agent's transcript or logs. Returning users (already_authenticated) skip straight through. Requires@every-env/spiral-cli≥ 1.8.0; older CLIs degrade gracefully (suggest update, or the user signs in themselves).--num-drafts; single-channel variations need--num-draftsand must avoid cue words. Verified live.Testing
bun test(frontmatter + shell-safety) green;bun run release:validatein sync (39 skills).Open for review (draft)
@every-env/spiral-cli≥ 1.8.0 (agent-awarespiral login, shipping in EveryInc/spiral-next#1182). The skill degrades gracefully on older CLIs.@every-env/spiral-clipackage in an OSS plugin.