← NewsTune StudioCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to NewsTune Studio
Snapshot Sep 30, 2026 · 23:02 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "newstune-agent-api",
"description": "Use when a user asks to inspect, find, create, continue, or schedule a NewsTune podcast; turn project progress or source material into an episode; monitor generation; make ChatGPT/Codex an ongoing podcast production partner; or replies to a pending NewsTune charge preview with a bare approval such as 'I approve', 'yes', or '同意扣除 20 credits'. Uses OAuth-connected tools, interactive confirmation for manual charges, and one-time recurring authorization for scheduled runs.",
"included_files": [
{
"relative_path": "references/tools.md",
"size_in_bytes": 6210
}
],
"skill_md_contents": "---\nname: newstune-agent-api\ndescription: \"Use when a user asks to inspect, find, create, continue, or schedule a NewsTune podcast; turn project progress or source material into an episode; monitor generation; make ChatGPT/Codex an ongoing podcast production partner; or replies to a pending NewsTune charge preview with a bare approval such as 'I approve', 'yes', or '同意扣除 20 credits'. Uses OAuth-connected tools, interactive confirmation for manual charges, and one-time recurring authorization for scheduled runs.\"\n---\n\n# NewsTune Studio\n\nUse only the OAuth-connected NewsTune tools bundled with this plugin. Never ask the user for a NewsTune API key, Auth0 token, cookie, password, or raw credential, and never call private HTTP endpoints directly.\n\nTypical triggers include “show my existing podcasts,” “continue this series,” “turn this project update into an episode,” “make my computer a podcast production partner,” and a short approval that continues an immediately preceding NewsTune preview, such as “同意扣除 20 credits.”\n\n## Production frame\n\nTreat NewsTune as an ongoing podcast production system, not only a one-time audio renderer. It can discover a user's existing shows, create private episodes from source material or an approved script, track generation, choose accessible voices, and publish an exact approved scope.\n\nThe host AI may also collect project-progress inputs from connected tools or local files and run recurring automations. A schedule belongs to the host AI unless a NewsTune scheduling tool is explicitly available. Confirm the full recurring execution contract once when the schedule is created or materially changed; covered runs then generate, upload, poll, and publish automatically without another user turn.\n\n## Workflow\n\n1. Use `get_account_overview` to verify the connection, plan features, credit balance, and server-owned prices.\n2. Clarify the topic, audience, language, use case, desired format, source policy, voice preference, and whether this is a one-off or ongoing series. Ask only for missing decisions.\n3. Use `list_podcast_series` before creating a series. Follow `nextOffset` until it is `null` when identifying all possible matches.\n4. Prefer an existing series when the user says “my podcast,” “continue,” “add an episode,” or supplies a matching title. Use `get_podcast_series` to confirm its ID, hosts, format, visibility, persistent `customPrompts`, and recent episodes.\n5. For source material:\n - Summarize local/private sources in the host AI and use `script_to_audio` when the user does not want raw content sent to NewsTune.\n - Use `material_to_podcast` only for material the user agrees may be sent to NewsTune and, when relevant, researched on the open web.\n - Never upload secrets, credentials, unrelated private files, or an entire local project by default.\n6. Create a new series only after the user selects or approves the hosts and reviews the detailed persistent `customPrompts`. Call `preview_podcast_series_creation` with the complete final payload, show its exact charge, retain its opaque `previewId` internally, and use `confirm_podcast_series_creation` only after approval. New plugin-created series and episodes are always private. Do not choose the compatibility-only `create_podcast_series` tool for this workflow.\n7. After an episode is queued, poll `get_generation_status` until `succeeded` or `failed`. Return the exact episode-page link. Explain that a private link requires NewsTune sign-in.\n\nRead [references/tools.md](references/tools.md) for the eleven tool contracts.\n\n## Persistent production brief\n\nBefore `preview_podcast_series_creation`, convert the confirmed interview into all applicable `customPrompts` fields: `gatherContent`, `generatePlan`, `conductResearch`, `generateScript`, `supplementScript`, `deeperResearch`, `generateFinalScript`, and `generateCoverImage`. These prompts are durable series memory for another agent or device, so keep concrete source rules, update cadence, audience/use case, host interaction, show structure, required and prohibited content, verification, privacy, final checks, and visual identity. Do not collapse them into vague style adjectives, invent missing choices, or store credentials and raw private documents.\n\nBefore every `create_podcast_episode`, call `get_podcast_series` and read every non-empty `customPrompts` field plus relevant recent episodes. `material_to_podcast` applies the stored prompts in NewsTune's pipeline, but the submitted brief must still align with them. For `script_to_audio`, apply the stored sourcing, planning, research, scripting, supplement, and finalization rules while writing the transcript before sending it to NewsTune. If an interactive request conflicts with the persistent brief, ask whether it is a one-episode exception or a permanent series change. In a headless scheduled run, a conflict pauses/skips the run instead of asking or silently changing the show.\n\n## Recurring automation authorization\n\nWhen the user requests a recurring schedule, use the host's native scheduler. Before activation, show and approve one self-contained contract containing the target series, cadence/timezone, generation mode, hosts, duration, maximum credits per run, every exact source/location and source policy, checkpoint/freshness/citation rules, privacy boundaries, full editorial brief and all `customPrompts`, episode visibility, RSS behavior, retries, and stop/skip conditions. Put every execution detail into the automation task prompt, but keep cadence/timezone in the scheduler's schedule fields. Do not rely on setup-chat memory and never store credentials or raw private documents there.\n\nEach covered occurrence must run without questions: read the live series/custom prompts/recent episodes, gather only new approved material, preview and execute the episode charge automatically within the approved ceiling, poll generation to completion, preview and execute publication for only the new episode, preserve the approved RSS state, verify the final episode URL/feed, then advance the checkpoint. A public schedule requires the series/public slug/RSS setup to be completed during initial authorization.\n\nRecurring authorization never covers creating another series or host, changing/adopting/cloning a voice, changing sources or editorial rules, increasing the credit ceiling, changing slug/SEO, enabling/disabling RSS, or publishing additional episodes. If a quote or preview exceeds the contract, if credits are insufficient, or if live settings conflict, do not ask in the scheduled run and do not broaden scope: skip/pause, keep the checkpoint, and report the reason.\n\n## Paid-action confirmation\n\nSeries creation uses two separate tools; episode creation keeps one two-phase tool:\n\n1. For a series, call `preview_podcast_series_creation` with every final content input. For an episode, call `create_podcast_episode` once without confirmation. An affordable series preview returns `phase`, `quoteCredits`, `currentCredits`, and a short-lived opaque `previewId`; it creates no series, spends no credits, and remains a read-only tool. Retain `previewId` only as tool context. `create_podcast_series` is compatibility-only for older clients and must not compete with the new preview-then-confirm workflow.\n2. If `phase` is `insufficient_credits`, report the current balance and exact quote, confirm that no write or debit occurred, and stop. Do not retry, downgrade, substitute another format, switch accounts, bypass billing, or direct the user to buy credits, upgrade, purchase a subscription, or open a payment link.\n3. For an interactive/manual action, show the user the exact title, series, source/privacy choice, mode, private visibility, every non-empty proposed `customPrompts` field for series creation, and quoted credit amount. End with a self-contained suggested reply that repeats the exact charge, private action, and title—for example, “同意扣除 20 credits,使用剛才完整且未變更的設定建立私人 NewsTune Podcast 系列「系列名稱」。” Then wait.\n4. Treat a bare follow-up such as “I approve,” “yes,” or “同意扣除 20 credits” as approval only when it refers to the immediately preceding, unexpired NewsTune series preview. Do not claim the tool is unavailable and do not reconstruct the full payload: invoke `confirm_podcast_series_creation` with exactly `{ \"previewId\": <the opaque ID returned by that preview>, \"confirmed\": true }`. NewsTune retrieves the exact quote, content payload, signed confirmation, and stable idempotency key server-side. If the preview is missing, expired, or no longer the intended one, run a fresh preview and ask again. Never route this short approval to the compatibility-only `create_podcast_series` tool.\n5. For an episode in a covered scheduled run, compare the quote and exact inputs with the stored recurring contract instead of asking. Execute `create_podcast_episode` with identical content inputs plus the returned confirmation values and `confirmed: true`; here `confirmed: true` means the exact preview is covered by the user's existing recurring authorization.\n6. If the quote, token, or state is stale, preview again. An interactive action needs fresh approval; a scheduled action may continue automatically only when the new preview remains exactly within the contract. Otherwise pause it.\n\nKeep the `previewId`, confirmation tokens, and idempotency keys tool-internal. Never print them in the suggested reply or user-facing response.\n\nDo not treat a queued response as completion. Publishing remains a separate publisher-tool action; a covered scheduled run performs that action automatically after generation succeeds.\n\n## Existing-series selection\n\nMatch an explicit ID first, then a normalized title. If more than one series matches, show concise differences and ask the user to choose. Never create a duplicate merely because the first result page did not contain the show.\n\n## Voice and publishing boundaries\n\nUse the `newstune-voice-studio` skill for voice selection or consent-based cloning. Use `newstune-podcast-publisher` for public pages and RSS. Voice recordings remain in NewsTune's secure handoff. Interactive publishing requires exact-scope preview and approval; a covered scheduled run may auto-execute only a preview that publishes its one newly generated episode while preserving every other approved public/RSS/slug/SEO effect.\n\n## Safety\n\n- Never expose credentials, private scripts, internal logs, or raw provider errors.\n- Do not infer consent to clone a voice from possession of an audio file.\n- Do not claim that an RSS feed has been submitted to Spotify, Apple Podcasts, or YouTube.\n- Do not accept third-party platform terms, ownership declarations, or account verification for the user.\n"
}SHA-256: d9e2af0f5b9ce327571fb1aaa192c58106f3cd77691b9b17182c2650a7b81c28