37d24944af
* feat(skills): wowerpoint share-link upload step After the kawaii NotebookLM PDF lands on disk, the subagent now also POSTs it to the WOWerpoint Server (if configured) and reports back a share URL. The PDF is still the backup; the share URL is the primary deliverable. Gated on three env vars (WOWERPOINT_API_BASE, WOWERPOINT_VIEWER_BASE, WOWERPOINT_UPLOAD_TOKEN) — if any are missing the skill skips the upload silently and behaves exactly as before. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(skills): address CodeRabbit + Greptile findings on wowerpoint - Drop the ~/.wowerpoint.env reference: the subagent inherits the parent's environment and never sources a dotenv file, so storing vars there would silently disable the upload step. Documented only the shell-export path. - Switch jq parsing to `.id // empty` so a missing key yields an empty string instead of the literal "null", letting the [-z "$DECK_ID"] guard fire correctly on error responses. - Capture the full JSON response so a non-empty .error field is surfaced as a warning rather than emitting an invalid …/d/null share URL. - Add TITLE to the subagent template's Inputs block so the parent agent knows it must supply a title slot the curl command depends on. - Make step 6 itself guard on the env vars instead of relying on prose, so the snippet works in isolation if a future agent skips the surrounding instructions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(skills): gate the top-level upload snippet on env vars too CodeRabbit pointed out the prose snippet at the top of the Share-link section uploaded unconditionally, while the subagent step 6 version had the env-var guard. Anyone copying the standalone snippet would have skipped "silently" by failing the curl request. Wrapping both in the same guard keeps the two snippets in sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(skills): cap wowerpoint upload curls at 30 s Greptile flagged that a bare curl on an unreachable WOWERPOINT_API_BASE can sit on the OS TCP timeout (75–130 s) before returning, stalling the background subagent and delaying the completion notification. Adding --connect-timeout 10 --max-time 30 to both upload snippets bounds the hang and lets the share-link step fail fast. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): wowerpoint slug example reflects 3-word IDs Server now mints adjective-noun-creature slugs (e.g. quirky-compass-hawk) instead of base64url. The curl/jq snippets are unchanged — they already parse .id as opaque — but the prose was stale. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): wowerpoint slug example reflects title-aware IDs Server now slugifies the title and appends a creature suffix (tokenrouter-quest-hawk) instead of three random words. Falls back to a 3-word slug when the title is empty or non-ASCII. The curl/jq snippets are unchanged — they parse .id as opaque — but the prose was stale. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>