用途
Content Design Requests 是一个用于自动化创建设计请求任务的技能。它在 Asana 中连接两个项目:MKTG Content Calendar(内容所在处)与 Marketing Design Requests(设计团队接单处),为即将发布的内容生成缩略图、YouTube 封面等设计请求。
主要能力
支持的内容类型包括:
- Short Post:博客文章(名称以 [Blog] 前缀开头)和 LinkedIn 文章(名称以 [LinkedIn Article] 前缀开头)
- Video:YouTube 缩略图(名称以 [Video] 前缀开头)
整体流程固定为:询问范围 → 搜索 → 展示 → 确认 → 创建 → 回评。技能明确要求:未经用户明确批准,绝不创建设计请求。
使用方式
第 0 步:预检——验证 Asana 访问
调用 Asana MCP 的 get_me,验证连接器可用并获取当前用户的姓名和邮箱,两者都会写入设计请求描述。若调用失败或找不到工具,则停止并提示用户在 Settings → Connectors 中检查 Asana 连接后重试。确认 Asana 后,从插件根目录读取 CONFIG.md,加载所有项目 GID、分区 GID、自定义字段 GID 和设计请求表单 URL,不硬编码任何 ID。
第 1 步:询问范围
搜索前询问用户两件事:负责人范围(只看分配给自己的内容,还是整个看板);日期区间(用户可指定,如“未来两周”“到四月底”,未指定则默认今天起 30 天内)。用户可一条消息回答两项,只答一项时另一项用默认值,不重复询问。
第 2 步:搜索内容日历
使用 search_tasks 查找需要设计工作的内容。搜索参数包括:projects_any 为 CONFIG.md 中的内容日历项目 GID;assignee_any 在用户选择自己的任务时为 "me",否则省略;completed 为 false;due_on_after 为日期区间起点;due_on_before 为终点;opt_fields 为 "name,due_on,notes,permalink_url,custom_fields"。
按内容类型过滤:只保留 Content Type 自定义字段为 Short Post 或 Video 的任务。Short Post 再根据名称前缀判断子类型:[Blog] 为博客文章,[LinkedIn Article] 为 LinkedIn 文章,无前缀则向用户标记并询问。丢弃其他内容类型(Anchor Essay、Visual Explainer、Social Post、Landing Page、Case Study、Other),也丢弃子任务,只处理顶层任务。
解析草稿链接:检查每个任务的 notes 字段,查找包含 draft link:(不区分大小写)的行并提取其后的 URL。未找到则标记为“needs draft link”。
排除已有设计请求的任务:对每个剩余任务调用 get_task 并设置 include_comments: true,扫描评论中是否包含指向 Marketing Design Requests 项目中任务的链接引用,具体查找包含 <a data-asana-gid= 或文本 "request submitted"(不区分大小写)的评论,comment_limit 设为 20。若找到则跳过,除非用户明确要求重新创建。
第 3 步:展示清单并获取批准
展示需要设计请求的内容清单,每项包含:任务名称(去掉前缀以便阅读,但注明内容类型)、内容类型、内容日历中的截止日期、草稿链接状态(URL 或“无草稿链接——创建前会询问”)、设计请求截止日期。等待用户确认要处理哪些任务。
第 4 步:处理缺失的草稿链接
对已确认但无草稿链接的博客文章或 LinkedIn 文章,询问用户提供 Google Doc 链接,或说“skip”以无草稿链接创建(并在描述中注明提交时无草稿)。视频不询问草稿链接,因为视频缩略图不需要。
第 5 步:创建设计请求任务
对每个已批准的内容项,在 Marketing Design Requests 项目中创建任务。
标题规则:博客为 Blog Thumbnail - [去掉前缀的标题];LinkedIn 文章为 LinkedIn Article Thumbnail - [去掉前缀的标题];视频为 YouTube Thumbnail - [去掉前缀的标题]。
截止日期:默认为内容截止日期前 3 个工作日;若内容在 3 个工作日内到期,则设计请求截止日期设为今天并标记为加急;若内容今天到期或已逾期,明确标记并让用户决定截止日期。
Type 自定义字段:博客和 LinkedIn 文章均使用 Blog 枚举选项 GID(同一桶,但标题和描述让设计师清楚格式),视频使用 Youtube 枚举选项 GID。
创建任务使用 create_task,参数包括:name、project_id(设计请求项目 GID)、section_id(Requests 分区 GID)、due_on(YYYY-MM-DD)、custom_fields(Type 字段 GID)、html_notes(描述模板)。
描述模板按内容类型适配“Request type”和“Project description”部分,包含请求标题、姓名、邮箱、截止日期、紧急程度、请求类型、项目描述与规格、草稿链接,以及通过 Marketing Design Requests 表单提交的说明。无草稿链接时替换为“Draft copy not yet available — will follow up when ready.”;加急时紧急程度改为“High (less than 4 day turnaround) — Rush request, content publishes soon”。
创建成功后,用 add_comment 在原内容任务上评论,html_text 为 <body>Design request submitted — <a data-asana-gid="[NEW_TASK_GID]"/></body>,形成链接评论。
第 6 步:总结
所有设计请求创建后展示总结,列出每个请求的标题、截止日期和 Asana 永久链接,并说明已为内容日历中所有原始卡片添加评论。
适用场景
适用于营销团队在 Asana 中管理内容日历、需要为博客文章、LinkedIn 文章和视频批量创建缩略图或封面设计请求的工作流。
限制与边界情况
- 无匹配内容:告知用户并询问是否扩大范围、切换负责人范围或检查其他内容类型。
- Short Post 无识别前缀:向用户标记并询问应创建何种设计请求。
- 内容即将到期(加急):3 个工作日内到期则标记加急并在描述中设为 High。
- 内容今天到期或逾期:明确标记并询问用户使用哪个截止日期,不猜测。
- 所有任务已有设计请求:告知用户并询问是否重新创建。
- Asana 速率限制或错误:报告成功与失败的任务,不静默丢弃失败项,可提供重试。
- 用户想自定义描述:仅在该次运行中调整,不永久更改模板。
依赖
必需:Asana MCP 连接器。用户必须有权访问 Asana 中的 MKTG Content Calendar FY27 项目和 Marketing Design Requests 项目。