本文へ移動
cccskills
無料GitHub で公開

design-media-workflow

End-to-end media pipeline automation — from AI generation through optimization to social publishing. Covers workflow design, WordPress integration, Redis job queuing, batch processing, multi-site pipelines, and orchestration. MCP bridge tools are the primary interface for individual operations; the Design Stack media worker handles batch and advanced processing. Use when you need to automate image generation→optimization→publishing chains, set up cross-site media sync, design batch processing pipelines, or orchestrate multi-step media workflows triggered by post publish or cron.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md21.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Media Workflow Automation

Use this skill when designing or implementing automated pipelines that generate, process, and publish media assets at scale — including across multiple WordPress sites.

MCP Tool Discovery

The mcp-ai-wpoos plugin registers tools under agent-specific prefixes or as bare names. Always check what's available in your tool list before building a pipeline:

Pattern: nv_oos_{AGENT_NAME}_agent_{TOOL_NAME}
Examples (agent name varies per installation):
  nv_oos_sophie_agent_generate_gemini_image_validated
  nv_oos_local_agent_web_search_validated
  generate_gemini_image_validated  (bare — may not be registered)
Workflow StepTool Name PatternMedia Worker Fallback
Image generationnv_oos_*_agent_generate_gemini_image_validated or bare/api/image/generate (DALL·E, Midjourney, etc.)
Web search (research)nv_oos_*_agent_web_search_validated—
Content searchnv_oos_*_agent_search_content_validated—
Image editingcreate_image_variation, edit_openai_image—
Image resizeresize_image/api/image/optimize (batch, format conversion)
Background removalremove_background—
Alt text / captionsgenerate_image_alt_text_validated, generate_image_caption_validated—
Video frame extractionextract_video_frames—
Video processing—/api/video/process (FFmpeg)
Page crawlingrun_crawl4ai_job (remote mode)/api/crawl/markdown, /api/crawl/markdown-batch, /api/crawl/links (worker v3.2.0+)
Crawl4AI extractionrun_crawl4ai_job/api/crawl4ai/* (Crawl4AI-compatible facade, worker v3.2.0+)
Social publishingschedule_social_post/api/social/post
WordPress post CRUDcreate_post, save_post—
JetEngine CCT operationsjetengine (direct CRUD)remote_wp_connection (CCT via REST)
Remote site managementremote_wp_connection—
Cross-site entity syncGraphify graphify_sync_remote_source (via addons/graphify/)—
Browse template librarybrowse_template_library—
Apply template to imageapply_template—
Create media collectioncreate_media_collection—
Add to collectionadd_to_collection—
Bulk tag mediabulk_tag_media—
Sync media to remotesync_media_to_remote—
Import media from URLimport_media_from_url—

Tool Rate Limits & Reliability (agent workflows)

  • The server rate-limits tool executions (oOS → Security → Tool Rate Limiting: default 300 calls/min window, tool_rate_limit_exempt_tokens defaults to ON for credential-token/agent traffic) and general API requests (rate_limit_requests — use 1000 for agent sites).
  • On servers older than v1.1.55, tool errors were returned as HTTP 500 and some MCP SDKs silently dropped them — tool calls looked like they returned nothing. On v1.1.55+ JSON-RPC errors always reach the agent.
  • Network-dependent tools (remote_wp_connection, ezuite_erp) can run through the async job queue; on v1.1.55+ the MCP wait is bounded to ~45s and returns a visible timeout error instead of hanging.
  • Batch-heavy pipelines (bulk_tag, collections, multi-site sync) should prefer the media worker / Redis queue for volume, and treat each MCP tool call as one rate-limit unit.
  • Connection details and full troubleshooting: .agents/skills/mcp-ai-wpoos-plugin/SKILL.md (transports, mcp-remote bridge, rate limits).

WP-CLI Commands

The mcp-ai-wpoos plugin registers these WP-CLI commands useful for design workflows. Run via the terminal tool inside the WordPress container (docker compose exec wordpress wp ...).

Core

CommandUse for
wp mcp-aiPlugin status, CCT cleanup, remote connection management
wp mcp-ai cronInspect and manage scheduled cron events
wp mcp-ai queueView/process/retry background job queues
wp mcp-ai bulkBulk operations (posts, media, taxonomy)
wp mcp-ai contentContent search, generation, and management
wp mcp-ai healthSystem health check — providers, tools, connectivity
wp mcp-ai cache clearClear plugin caches
wp mcp-ai providerList/test configured AI providers
wp mcp-ai logView execution logs and error traces
wp mcp-ai memoryManage agent memory and context storage
wp mcp-ai credentialManage API keys and credentials
wp mcp-ai tokenMigrate provider authentication tokens
wp mcp-ai rabbitmqManage RabbitMQ message queues
wp mcp-ai harnessSemantic search and tracing
wp mcp-ai assistantCreate/list/manage AI assistants
wp mcp-ai chatSend chat messages to assistants
wp mcp-ai approvalManage approval workflows
wp mcp-ai versionPlugin and dependency versions

Pro (vendor integrations)

CommandUse for
wp mcp-ai ezuite statusEZuite ERP connection status
wp mcp-ai ezuite triggerTrigger ERP data sync
wp mcp-ai ezuite low-stock-reportLow stock inventory report
wp mcp-ai shopify-sync statusShopify sync status
wp mcp-ai shopify-sync triggerTrigger Shopify sync
wp mcp-ai shopify-sync cost-reportShopify API cost report

All commands support --help for subcommand details.

When to use this skill

Trigger when ANY of the following is true:

  • Building an automated content pipeline.
  • Batch processing images or videos.
  • Setting up webhook-triggered media workflows.
  • Connecting AI generation → optimization → publishing.
  • The task mentions "pipeline", "automation", "batch processing", or "workflow".
  • Integrating multiple Design Stack services together.
  • Syncing media between the Hub and spoke sites.

Architecture overview

                    ┌──────────────────┐
                    │    MCP Bridge     │
                    │ (agent-prefixed)  │
                    └────────┬─────────┘
                             │ tool calls
                             ▼
┌──────────────────────────────────────────────────────────┐
│                    WordPress Plugin (Hub)                 │
│                                                          │
│  ┌────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │  Generate  │→ │   Optimize   │→ │    Publish       │  │
│  │ (Gemini)   │  │ (resize/bg)  │  │ (schedule_social)│  │
│  └────────────┘  └──────────────┘  └──────────────────┘  │
│                                                          │
│  ┌────────────────── Multi-Site Layer ──────────────┐    │
│  │  remote_wp_connection → Spoke A (Docker/local)    │    │
│  │  remote_wp_connection → Spoke B (external host)   │    │
│  │  Graphify oos_federation → cross-site entity sync │    │
│  └──────────────────────────────────────────────────┘    │
│                                                          │
│  ┌──────────────────────────────────────────────────┐    │
│  │            Media Worker (Fallback)                │    │
│  │  ┌──────────┐ ┌──────────┐ ┌─────────────────┐  │    │
│  │  │DALL·E/   │ │Sharp     │ │Social API       │  │    │
│  │  │Midjourney│ │(WebP/AVIF│ │(direct post)    │  │    │
│  │  └──────────┘ └──────────┘ └─────────────────┘  │    │
│  │  ┌──────────────────────────────────────────┐   │    │
│  │  │         Redis Job Queue                   │   │    │
│  └──────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────┘

Workflow patterns

Pattern 1: Blog post → Social media package

Trigger: WordPress post published on Hub
    │
    ├─ 1. Research trending visuals → web search tool in your tool list
    ├─ 2. Generate featured image → Gemini tool in your tool list
    ├─ 3. Resize for each platform → resize_image (MCP)
    │     ├─ 1200×630 (Twitter/LinkedIn link preview)
    │     ├─ 1080×1080 (Instagram feed)
    │     └─ 1080×1920 (Instagram story)
    ├─ 4. Generate alt text → generate_image_alt_text_validated (MCP)
    ├─ 5. Set as featured image → WordPress set_post_thumbnail()
    ├─ 6. Schedule social posts → schedule_social_post (MCP)
    │     ├─ platforms: ["twitter", "linkedin", "facebook"]
    │     └─ scheduled_time: "optimal"
    └─ 7. Log results to WordPress post meta

Pattern 2: Batch brand asset generation (mixed)

Trigger: Manual or scheduled (content calendar)
    │
    ├─ 1. Generate N logo concepts via Gemini (MCP, parallel calls)
    ├─ 2. For each concept:
    │   ├─ Remove background → remove_background (MCP) if needed
    │   ├─ Resize to favicon → resize_image (MCP): 32×32
    │   ├─ Resize to social avatar → resize_image (MCP): 400×400
    │   └─ Convert to WebP → /api/image/optimize (media worker)
    ├─ 3. Package into "Brand Kit" zip
    └─ 4. Upload to WordPress media library with metadata

Pattern 3: Video production pipeline (mixed)

Trigger: Upload raw video to WordPress
    │
    ├─ 1. Extract thumbnail → extract_video_frames (MCP)
    │     save_to_media: true, timestamps: [0.5]
    ├─ 2. Optimize poster image → resize_image (MCP)
    ├─ 3. Compress for web → /api/video/process (media worker)
    ├─ 4. Create social cuts → /api/video/process (media worker):
    │   ├─ 1:1 square (Instagram feed)
    │   ├─ 9:16 vertical (Reels/TikTok)
    │   └─ 16:9 horizontal (YouTube/LinkedIn)
    ├─ 5. Create GIF preview → /api/video/process (media worker, "gif")
    ├─ 6. Schedule social posts → schedule_social_post (MCP)
    └─ 7. Upload all variants to WordPress media library

Pattern 4: Cross-Site Media Sync (Multi-Site)

Trigger: New product added to a spoke site (e.g., Parfumerie)
    │
    ├─ 1. Discover spoke → remote_wp_connection { action: "list_connections" }
    ├─ 2. Pull product media → remote_wp_connection {
    │     connection_id: "conn_8srcad8zylhe",
    │     action: "get_wc_products", per_page: 5 }
    ├─ 3. Download product images → wp_remote_get( product.image_url )
    ├─ 4. Optimize for Hub → resize_image (MCP) — resize to Hub's dimensions
    ├─ 5. Generate alt text → generate_image_alt_text_validated (MCP)
    ├─ 6. Upload to Hub media library → wp_insert_attachment()
    └─ 7. (Future) Graphify federation → sync cross-site knowledge graph

Pattern 5: Hub → Spoke Brand Push (Multi-Site)

Trigger: Brand assets updated on Hub
    │
    ├─ 1. Detect updated logo/colors → WordPress post meta change
    ├─ 2. List connected sites → remote_wp_connection { action: "list_connections" }
    ├─ 3. For each spoke with WooCommerce (e.g., Parfumerie, Myyco):
    │   ├─ Push logo → remote_wp_connection { action: "create_post", ... }
    │   ├─ Push brand colors → remote_wp_connection (via post meta)
    │   └─ Log result per site
    └─ 4. Verify consistency → remote_wp_connection get_posts on each spoke

WordPress integration

Webhook trigger on post publish

add_action( 'transition_post_status', function ( $new, $old, $post ) {
    if ( 'publish' !== $new || 'publish' === $old ) return;
    if ( 'post' !== $post->post_type ) return;

    // The AI agent (via MCP) handles:
    // 1. Gemini image generation → featured image
    // 2. resize_image → platform variants
    // 3. schedule_social_post → publish to social

    // Store workflow state
    update_post_meta( $post->ID, '_workflow_status', 'pending_media' );
}, 10, 3 );

Media worker workflow endpoint (fallback)

// For pipelines that need media worker steps (e.g., DALL·E generation):
add_action( 'transition_post_status', function ( $new, $old, $post ) {
    if ( 'publish' !== $new || 'publish' === $old ) return;

    wp_remote_post( 'http://media-worker:3100/api/workflow/social-package', [
        'body'    => wp_json_encode( [
            'post_id'    => $post->ID,
            'title'      => $post->post_title,
            'content'    => wp_strip_all_tags( $post->post_content ),
            'platforms'  => get_post_meta( $post->ID, '_social_platforms', true ) ?: [ 'twitter', 'linkedin' ],
        ] ),
        'headers' => [ 'Content-Type' => 'application/json' ],
        'timeout' => 60,
    ] );
}, 10, 3 );

Job queue patterns (Redis / media worker)

// Enqueue a job via media worker
await redis.lpush('queue:image-generation', JSON.stringify({
  prompt: 'Social media hero for tech blog',
  model: 'dall-e-3',
  callback: 'http://wordpress:80/wp-json/design/v1/image-ready',
}));

// Worker processes jobs
while (true) {
  const job = await redis.brpop('queue:image-generation', 0);
  const { prompt, model, callback } = JSON.parse(job);
  const result = await generateImage(prompt, model);
  await fetch(callback, { method: 'POST', body: JSON.stringify(result) });
}

Error handling & retry logic

Attempt 1: Gemini generate → success (attachment ID: 874)
Attempt 1: resize_image → fails (timeout)
    → Retry with wait
Attempt 2: resize_image → success
Attempt 1: schedule_social_post → Twitter OK, LinkedIn fails (expired token)
    → Alert admin, mark LinkedIn as failed
    → Do NOT retry (auth error, not transient)
    → Retry only LinkedIn later

Performance considerations

OperationTypical DurationParallelizable?
Gemini image generation (MCP)5–15s✅ Yes
Image resize (MCP)<1s✅ Yes
Background removal (MCP)1–5s✅ Yes
DALL·E 3 generation (media worker)10–30s✅ Yes
Image optimization (WebP, media worker)100–500ms✅ Yes
Video compression (FFmpeg, media worker)10–120s⚠️ CPU-bound
Social scheduling (MCP)200ms–2s✅ Yes
Cross-site remote calls100–500ms + target site latency✅ Yes
WordPress media sideload1–5s⚠️ Serialize

Common Mistakes

WRONG:
  ● Hard-coding site URLs in workflow scripts — breaks when domains change or sites migrate
  ● Triggering image generation on every post save without deduplication — creates hundreds of duplicate images
  ● Using synchronous HTTP calls for AI generation in WordPress hooks — blocks the request for 30+ seconds
  ● Mixing MCP tools and media worker calls for the same operation type without a clear routing rule
  ● Forgetting to verify spoke site connectivity before running cross-site media sync workflows
  ● Tracking workflow state in scattered post meta keys — use a single `_workflow_log` array or toolkit_cpt records (mcp_ai_project / mcp_ai_task)

RIGHT:
  ✅ Use remote_wp_connection to dynamically discover spoke sites at workflow runtime
  ✅ Implement idempotency checks — query existing media before generating, use post meta flags
  ✅ Route AI generation through a job queue (Action Scheduler or Redis Bull) — never block the request thread
  ✅ Define a clear routing rule: check MCP tool availability first, fall back to media worker only when no MCP tool exists
  ✅ Call remote_wp_connection { action: "list_connections" } and test_connection before cross-site pipeline execution
  ✅ Store workflow state centrally — use post meta arrays or toolkit_cpt on mcp_ai_project (project-level) and mcp_ai_task (step-level)

Critical rules

  • Check your available tools first — tool names vary by agent configuration. Search for generate_gemini or web_search in your tool list to find the correct prefixed names.
  • MCP first in every pipeline step — check if an MCP tool exists before routing to the media worker.
  • Always use a job queue for production workflows — never block HTTP requests waiting for AI generation.
  • Implement idempotency — the same trigger should not generate duplicate content.
  • Track workflow state in WordPress post meta — know what stage each post is at.
  • Log every step — update_post_meta( $post_id, '_workflow_log', $log_entries ).
  • Handle partial failures — if Twitter succeeds but LinkedIn fails, don't retry Twitter; only retry LinkedIn.
  • Verify spoke sites before cross-site ops — use remote_wp_connection to list connections and test connectivity before routing workflows to remote sites.
  • Use Graphify federation for entity sync — when moving content across sites, use graphify_sync_remote_source (from addons/graphify/) to maintain cross-site knowledge graph consistency.
  • Research before generating — use the web search tool in your tool list to ground image prompts in real-world references.

Cross-references

  • Run design-image-generation for the generation step — check your tool list for the correct Gemini tool name.
  • Run design-image-optimization for the optimization step — use resize_image (MCP).
  • Run design-social-publishing for the publishing step — use schedule_social_post (MCP).
  • Run design-content-calendar to schedule workflow triggers.
  • Run design-brand-kit for Hub→spoke brand asset distribution.
  • Run wp-action-scheduler for WordPress-native job queuing.
  • Run wp-rest-api for WordPress webhook endpoints.
  • Run mcp-ai-wpoos-plugin for remote_wp_connection docs, Graphify federation docs, and multi-site Gateway architecture.
  • Use paper_store_* tools with connection_id to persist workflow state to specific spoke sites.
  • Use browse_template_library to discover available media templates before applying them.
  • Use apply_template to process individual images through saved template configurations.
  • Use create_media_collection and add_to_collection to group images for batch pipeline processing.
  • Use bulk_tag_media for taxonomy-based organization of media library assets.
  • Use sync_media_to_remote to push media assets to remote WordPress sites via remote_wp_connection.
  • Use import_media_from_url to bring external images into the media library for pipeline processing.

What This Skill Does NOT Cover

  • Individual image generation — use design-image-generation for one-off AI image creation; this skill covers chaining generation into pipelines.
  • Individual image optimization — use design-image-optimization for single-image resize/compress/convert operations.
  • Social content strategy — use design-social-content for caption writing and platform-specific content planning.
  • Campaign planning — use design-campaign-orchestration for monthly themes and product selection that drive workflow triggers.
  • Video production — use design-video-creation for video-specific pipelines (transcoding, frame extraction, AI generation).
  • Project and task management — use toolkit_cpt on mcp_ai_project and mcp_ai_task for tracking workflow status outside media pipeline metadata.

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Control a headless browser to navigate URLs, click elements, fill forms, extract content from JavaScript-rendered pages, take screenshots, and automate end-to-end web workflows.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

Review code for quality, simplicity, and maintainability. Identifies unnecessary abstractions, duplicated logic, oversized functions, missing error handling, and naming issues — then fixes them automatically before presenting the result.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

WooCommerce store operations through NV oOS Pro — product research, catalog cross-referencing, inventory lookups, and Shopify or Flowhub comparisons where integrations are configured.

日本語の概要は準備中です。原文の説明を表示しています。

nvdigitalsolutions/mcp-ai-wpoos72026年10月13日 更新

nvdigitalsolutions のスキルをすべて見る

このスキルの問題を報告する