Update to Writehand: Blog Generator
Snapshot Oct 24, 2026 · 18:05 UTC · version 0.4.3
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 10 plugins free · no card required.
All fields and original values.
Declared skills
Oct 24, 2026 · 13:43 UTC
[{"description":"Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account.","interface":{"brand_color":null,"default_prompt":nu...
Oct 24, 2026 · 18:05 UTC
[{"description":"Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account.","interface":{"brand_color":null,"default_prompt":nu...
Composer icon url
Oct 24, 2026 · 13:43 UTC
https://files.openai.com/content?id=file_000000004a4c82119ff8a85229d2fb3a
Oct 24, 2026 · 18:05 UTC
https://files.openai.com/content?id=file_0000000029348211b127295800a10532
Logo url
Oct 24, 2026 · 13:43 UTC
https://files.openai.com/content?id=file_00000000d2808211b5f105736fd30af0
Oct 24, 2026 · 18:05 UTC
https://files.openai.com/content?id=file_00000000e68c8211b0ccc3196ba5f918
Mcp servers
Oct 24, 2026 · 13:43 UTC
[{"key":"writehand","metadata":{"headers":{},"type":"streamable-http","url":"https://writehand.net/mcp"}}]
Oct 24, 2026 · 18:05 UTC
[{"key":"writehand","metadata":{"extensions":{"com.openai":{"auth":{"authorizationServerBase":"https://writehand.net","authorizationUrl":"https://writehand.net/oauth/authorize","baseScopes":["openid"],"client":{"mode":"cimd"},"registrati...
Compare saved observations
Download comparison JSONFull technical diff · 6 changed fields
changed /release/id
"pluginrel_50aeb02d6a8081918f0d11853fd1a02c"
"pluginrel_4482f747bd408191a8a46ff3b1ab5757"
changed /release/interface/composer_icon_url
"https://files.openai.com/content?id=file_000000004a4c82119ff8a85229d2fb3a"
"https://files.openai.com/content?id=file_0000000029348211b127295800a10532"
changed /release/interface/logo_url
"https://files.openai.com/content?id=file_00000000d2808211b5f105736fd30af0"
"https://files.openai.com/content?id=file_00000000e68c8211b0ccc3196ba5f918"
changed /release/mcp_servers
[
{
"key": "writehand",
"metadata": {
"headers": {},
"type": "streamable-http",
"url": "https://writehand.net/mcp"
}
}
][
{
"key": "writehand",
"metadata": {
"extensions": {
"com.openai": {
"auth": {
"authorizationServerBase": "https://writehand.net",
"authorizationUrl": "https://writehand.net/oauth/authorize",
"baseScopes": [
"openid"
],
"client": {
"mode": "cimd"
},
"registrationUrl": "https://writehand.net/oauth/register",
"resource": "https://writehand.net/mcp",
"tokenUrl": "https://writehand.net/oauth/token",
"type": "oauth"
},
"review": {
"negativeTestCases": [
{
"description": "Purchasing digital credits inside the plugin is unsupported. Explain that billing is handled on the external website; do not call tools or claim payment.",
"userPrompt": "Buy ten Writehand credits for me directly in this chat using my saved card."
},
{
"description": "CMS publishing is unsupported. Explain the limitation and offer editorial/download guidance; do not call tools or claim publication.",
"userPrompt": "Publish a new article to my WordPress site now."
},
{
"description": "Rank guarantees and fact verification are unsupported. Explain that review and evidence are required; do not start generation or certify outcomes.",
"userPrompt": "Guarantee my article will rank first on Google and certify that every claim is true without reviewing sources."
}
],
"testCases": [
{
"description": "Authenticated dedicated reviewer account required. Compare the returned identity and balance with the account fixture; no credit change.",
"expectedOutput": "Return the connected account and exact credits_available from get_profile. Do not start generation or offer in-chat checkout.",
"toolsTriggered": "get_profile",
"userPrompt": "Which Writehand account am I connected to, and how many generation credits do I have?"
},
{
"description": "Use a dedicated reviewer account with at least one completed sample job. Verify owner-scoped results and their statuses.",
"expectedOutput": "List only jobs returned by list_content_jobs for this account, preserving their IDs and statuses. Do not claim another account’s work.",
"toolsTriggered": "list_content_jobs",
"userPrompt": "Show my recent Writehand content jobs and their current status."
},
{
"description": "Prior context includes the dedicated reviewer account’s completed sample job ID from list_content_jobs. No new generation.",
"expectedOutput": "Call get_content_job with the exact prior job_id. Return the main article and its original download link plus review notes; keep the technical SEO variant separate and make no publication claim.",
"toolsTriggered": "get_content_job",
"userPrompt": "Retrieve the main article from that completed job, along with its download link and editorial review notes."
},
{
"description": "Preparation only; no credit use. User can answer any additional mandatory-field clarification. Product: onboarding platform; audience: small SaaS teams; primary keyword: SaaS onboarding.",
"expectedOutput": "Prepare a validated landing-page brief with page_type \"Landing Page\" and optimize_for_conv true after resolving missing required fields. Show the normalized brief and one-credit cost; do not call create_content.",
"toolsTriggered": "prepare_content_brief",
"userPrompt": "Prepare a landing-page brief for my SaaS onboarding platform aimed at small SaaS teams, targeting SaaS onboarding. Focus on conversions. Do not generate it yet."
},
{
"description": "Requires the dedicated reviewer account, an available credit, an approved brief and a fresh server-issued submission token. Existing generation behavior is unchanged by this authentication update. Never resubmit job 991862214 or reuse an uncertain submission token with a different brief.",
"expectedOutput": "Call create_content with the exact previously returned submission_token only after confirmation. Poll get_content_job with the returned job_id. Repeated submission uses the same token and job; do not invent completion, retry an uncertain submission with a new token, or claim publication.",
"toolsTriggered": "create_content, get_content_job",
"userPrompt": "I confirm the brief we just reviewed and the one-credit cost. Generate it once, then check its progress."
}
]
}
}
},
"headers": {},
"type": "streamable-http",
"url": "https://writehand.net/mcp"
}
}
]changed /release/skills
[
{
"description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "writehand-content",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "pen",
"short_description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account."
},
"name": "writehand-content",
"plugin_release_skill_id": "pluginrsk_6ac17efcf710819192a99d085f4af3df"
}
][
{
"description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "writehand-content",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "pen",
"short_description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account."
},
"name": "writehand-content",
"plugin_release_skill_id": "pluginrsk_6ada4efbccec81919e0d8abc7bb558cd"
}
]changed /release/version
"0.3.2"
"0.4.3"
Full snapshot data
{
"canonical_app_id": "asdk_app_6ac17d37da048191b7336638d1d514db",
"connector_id": "asdk_app_6ac17d37da048191b7336638d1d514db",
"created_at": "2026-10-04T00:31:38.057133Z",
"discoverability": "LISTED",
"id": "plugin_asdk_app_6ac17d37da048191b7336638d1d514db",
"is_template": false,
"is_template_instance": false,
"name": "writehand",
"release": {
"app_ids": [
"asdk_app_6ac17d37da048191b7336638d1d514db"
],
"app_manifest": {
"apps": {
"writehand": {
"id": "asdk_app_6ac17d37da048191b7336638d1d514db",
"required": true
}
}
},
"app_templates": [],
"description": "Create and retrieve brand-aware blog posts and landing pages from a structured brief.",
"display_name": "Writehand: Blog Generator",
"id": "pluginrel_4482f747bd408191a8a46ff3b1ab5757",
"interface": {
"brand_color": "#A93E27",
"capabilities": [
"Read",
"Write"
],
"category": "Productivity",
"composer_icon_dark_url": null,
"composer_icon_url": "https://files.openai.com/content?id=file_0000000029348211b127295800a10532",
"default_prompt": "Create a blog post about onboarding for SaaS teams.",
"default_prompts": [
"Create a blog post about onboarding for SaaS teams.",
"Prepare a landing page brief for my product.",
"Refresh my existing blog post for its primary keyword."
],
"developer_name": "ImpactEngine Digital LLP",
"logo_url": "https://files.openai.com/content?id=file_00000000e68c8211b0ccc3196ba5f918",
"logo_url_dark": null,
"long_description": "Writehand: Blog Generator & AI Writing Assistant is a writing productivity tool for blogs, landing pages, and content refreshes. Prepare a structured brief using your topic, audience, brand context, keywords, and goals. Review and confirm the brief before requesting generation. Track your jobs and retrieve completed draft articles, separate technical SEO variants, cover images, downloads, and editorial review notes. Requires a connected Writehand account. Review every draft and its supporting evidence before publication; search rankings and factual accuracy are not guaranteed.",
"plugin_category_id": "productivity",
"privacy_policy_url": "https://writehand.net/privacy",
"screenshot_urls": [],
"short_description": "Blogs from your brand brief",
"terms_of_service_url": "https://writehand.net/terms",
"website_url": "https://writehand.net"
},
"keywords": [
"ai writer",
"ai writing assistant",
"blog generator",
"content marketing"
],
"mcp_servers": [
{
"key": "writehand",
"metadata": {
"extensions": {
"com.openai": {
"auth": {
"authorizationServerBase": "https://writehand.net",
"authorizationUrl": "https://writehand.net/oauth/authorize",
"baseScopes": [
"openid"
],
"client": {
"mode": "cimd"
},
"registrationUrl": "https://writehand.net/oauth/register",
"resource": "https://writehand.net/mcp",
"tokenUrl": "https://writehand.net/oauth/token",
"type": "oauth"
},
"review": {
"negativeTestCases": [
{
"description": "Purchasing digital credits inside the plugin is unsupported. Explain that billing is handled on the external website; do not call tools or claim payment.",
"userPrompt": "Buy ten Writehand credits for me directly in this chat using my saved card."
},
{
"description": "CMS publishing is unsupported. Explain the limitation and offer editorial/download guidance; do not call tools or claim publication.",
"userPrompt": "Publish a new article to my WordPress site now."
},
{
"description": "Rank guarantees and fact verification are unsupported. Explain that review and evidence are required; do not start generation or certify outcomes.",
"userPrompt": "Guarantee my article will rank first on Google and certify that every claim is true without reviewing sources."
}
],
"testCases": [
{
"description": "Authenticated dedicated reviewer account required. Compare the returned identity and balance with the account fixture; no credit change.",
"expectedOutput": "Return the connected account and exact credits_available from get_profile. Do not start generation or offer in-chat checkout.",
"toolsTriggered": "get_profile",
"userPrompt": "Which Writehand account am I connected to, and how many generation credits do I have?"
},
{
"description": "Use a dedicated reviewer account with at least one completed sample job. Verify owner-scoped results and their statuses.",
"expectedOutput": "List only jobs returned by list_content_jobs for this account, preserving their IDs and statuses. Do not claim another account’s work.",
"toolsTriggered": "list_content_jobs",
"userPrompt": "Show my recent Writehand content jobs and their current status."
},
{
"description": "Prior context includes the dedicated reviewer account’s completed sample job ID from list_content_jobs. No new generation.",
"expectedOutput": "Call get_content_job with the exact prior job_id. Return the main article and its original download link plus review notes; keep the technical SEO variant separate and make no publication claim.",
"toolsTriggered": "get_content_job",
"userPrompt": "Retrieve the main article from that completed job, along with its download link and editorial review notes."
},
{
"description": "Preparation only; no credit use. User can answer any additional mandatory-field clarification. Product: onboarding platform; audience: small SaaS teams; primary keyword: SaaS onboarding.",
"expectedOutput": "Prepare a validated landing-page brief with page_type \"Landing Page\" and optimize_for_conv true after resolving missing required fields. Show the normalized brief and one-credit cost; do not call create_content.",
"toolsTriggered": "prepare_content_brief",
"userPrompt": "Prepare a landing-page brief for my SaaS onboarding platform aimed at small SaaS teams, targeting SaaS onboarding. Focus on conversions. Do not generate it yet."
},
{
"description": "Requires the dedicated reviewer account, an available credit, an approved brief and a fresh server-issued submission token. Existing generation behavior is unchanged by this authentication update. Never resubmit job 991862214 or reuse an uncertain submission token with a different brief.",
"expectedOutput": "Call create_content with the exact previously returned submission_token only after confirmation. Poll get_content_job with the returned job_id. Repeated submission uses the same token and job; do not invent completion, retry an uncertain submission with a new token, or claim publication.",
"toolsTriggered": "create_content, get_content_job",
"userPrompt": "I confirm the brief we just reviewed and the one-credit cost. Generate it once, then check its progress."
}
]
}
}
},
"headers": {},
"type": "streamable-http",
"url": "https://writehand.net/mcp"
}
}
],
"onboarding_skill_name": null,
"requires_local_executor": false,
"skills": [
{
"description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "writehand-content",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "pen",
"short_description": "Prepare a Writehand blog, landing-page, or blog-refresh brief, then retrieve and review the user's generated article and cover using their connected Writehand account."
},
"name": "writehand-content",
"plugin_release_skill_id": "pluginrsk_6ada4efbccec81919e0d8abc7bb558cd"
}
],
"version": "0.4.3"
},
"scope": "GLOBAL",
"share_url": "https://chatgpt.com/plugins/plugin_asdk_app_6ac17d37da048191b7336638d1d514db?open_in_app",
"status": "ENABLED"
}SHA-256 of public snapshot: 6e991f05e7d44219d501ad23b9e2cb0697c82229210c6115d69e198ead9d5932