SSkilltecabyclaudinhocode
Enviar skill
← Voltar para o catálogo

ai-office-landing-skill

Outros

🧭 AI 办公室 Landing Page 作战室:用 Living Brief 调度多智能体,把混乱需求会变成可交付页面。

1estrelas
Ver no GitHub ↗Autor: aimonj0729-aiLicença: MIT

Name: ai-office-landing Description: AI Office — Living Brief 协作循环(v2 对话式交互) Entry Point: true


Skill Contents


Overview

AI Office v2 是一个对话驱动的 Living Brief 协作循环:

核心升级:

  • 对话式交互: Executor 可在执行中提问,不必一次性想清楚
  • 增量交付: 每个阶段完成后展示预览,用户确认后再继续
  • 问题缓冲: Agent 的问题统一收集,批量问用户
  • 双向通信: 从"批处理"升级为"请求-响应"模式

保留下来的优点:

  • Living Brief 作为单一事实来源
  • Critic 独立审查,不继承主控上下文
  • 风格令牌自动转译(hex/px)
  • 断点续跑

New Constraints:

  • [QUESTION: ...] 标记 Agent 需要用户澄清的地方
  • [USER_INPUT: ...] 标记用户追加的信息
  • state.json 持久化当前进度,跨 session 可恢复

Usage

在任意项目目录下触发:

ai-office-landing [options]

Options:

  • --resume: 从 state.json 恢复上次的对话式工作流
  • --auto-continue: 自动继续,不暂停等待用户确认(适合批处理场景)
  • --human-critic: 启用人工 Critic 模式
  • --cost-saving: 启用成本节省模式,自动将 MEDIUM/LOW 角色路由到 Kimi/DeepSeek
  • --adapter <name>: 强制所有 Executor 使用指定 adapter (claude-agent|kimi-api|deepseek-api)

Adapter 路由 (v2.4 新增):

Executor 任务通过 adapters/route.sh 自动路由到最优 adapter:

角色质量等级默认 Adapter成本节省模式
Interviewer, Critic, IntegratorHIGHclaude-agentclaude-agent (不可降级)
FrontendMEDIUM-HIGHclaude-agentdeepseek-coder
Copywriter, DesignerMEDIUMclaude-agentkimi-api
SEOLOWclaude-agentkimi-api / deepseek-api

环境变量配置:

export KIMI_API_KEY="your-key"        # 启用 Kimi adapter
export DEEPSEEK_API_KEY="your-key"    # 启用 DeepSeek adapter
export COST_SAVING_MODE=true          # 自动路由到便宜的 adapter
export AI_OFFICE_ADAPTER=kimi-api     # 强制指定 adapter (HIGH 角色除外)

对话式示例:

# 启动对话式工作流
ai-office-landing

# 过程中的交互
[Phase 1 完成] 
✓ 保存了 5 个维度的信息
✓ 但 Designer 想问:是否有品牌 logo 图片?

[Phase 3 - Copywriter 完成]
✓ 生成了 Hero/Features/FAQ/CTA 文案
✓ 但 Frontend 想问:是否接受 AI 生成的主视觉图?

[Phase 4 - Critic 审查]
⚠️ HIGH: Copy.md 使用了 "爆款"(在禁用词列表)
→ 需要你的修正: 删除或替换

Workflow

Phase 0: Initialize
  ↓ 创建 ai-office/ 目录, state.json

Phase 1: Initial Interview
  ↓ AskUserQuestion 批量问 5 维度
  ↓ 生成 brief.md v1
  ↓ *可选* 收集阶段: 其他 Agent 可追加问题
      ↓ 如果有 [QUESTION], 问你 → 更新 brief.md → 回到 Checkpoint
      ↓ 如果没有 → 进入 Phase 2

Phase 2: Style Tokens & Tasks
  ↓ 生成 style-tokens.md, tasks.md
  ↓ *可选* 收集阶段
      ↓ 如果有 [QUESTION] → 问你 → 更新 → 回到 Checkpoint
      ↓ 如果没有 → 进入 Phase 3

Phase 3: Sequential Execution (逐个执行)
  ↓ Task 1: Copywriter → copy.md
      ↓ 检查是否有 [QUESTION]
      ↓ 有 → 问你 → 修正 → 回到 Task 1
      ↓ 无 → 继续 Task 2
  ↓ Task 2: Designer → design-spec.md
      ↓ 检查是否有 [QUESTION]
      ↓ 有 → 问你 → 修正 → 回到 Task 2
      ↓ 无 → 继续 Task 3
  ↓ Task 3: Frontend → index.html
      ↓ 检查是否有 [QUESTION]
      ↓ 有 → 问你 → 修正 → 回到 Task 3
      ↓ 无 → 继续 Task 4
  ↓ Task 4: SEO → meta.md
      ↓ 检查是否有 [QUESTION]
      ↓ 有 → 问你 → 修正 → 回到 Task 4
      ↓ 无 → 进入 Phase 4

Phase 4: Critic Review
  ↓ 独立 Critic 审查所有 outputs
  ↓ 生成 critique.md
  ↓ *可选* 如果有 HIGH/CRITICAL
      ↓ 收集所有问题 → 统一问你 → 修正 → 回到 Phase 3
      ↓ 如果都通过 → 进入 Phase 5

Phase 5: Final Delivery
  ↓ 整合所有交付物
  ↓ 清除 state.json

State Management

State File Location

ai-office/state.json - 存储当前会话状态,结构如下:

{
  "version": "v2",
  "current_phase": 3,
  "current_task": 2,
  "checkpoint": {
    "phase": 3,
    "task": 2,
    "text": "Designer 生成 design-spec.md"
  },
  "pending_questions": [
    {
      "source": "copywriter",
      "file": "ai-office/questions/copywriter-questions.md",
      "questions": ["是否有品牌 slogan?", "Hero 图用真实照片还是插画?"]
    }
  ],
  "user_inputs": {
    "brand_slogan": "让世界更美好",
    "hero_image_type": "真实照片"
  },
  "outputs_status": {
    "copy.md": "completed_with_user_feedback",
    "design-spec.md": "in_progress",
    "index.html": "pending",
    "meta.md": "pending"
  }
}

State Operations

# 先加载仓库内置 helper,避免手写 jq 表达式
source "$SKILL_ROOT/state-management.sh"

# 缺少 state.json 时才初始化,保留 --resume 现场
ensure_state_initialized

# 读取当前进度
CURRENT_PHASE="$(get_current_phase)"
CURRENT_TASK="$(get_current_task)"

# 写入简单字段时显式传 value_type
write_state "current_phase" "3" "number"
write_state "current_task" "1" "number"

# 对带点号/连字符的真实输出键,使用字面键 helper
mark_task_waiting_for_user "design-spec.md"
mark_task_completed "copy.md"

# 保存用户补充输入
save_user_input "hero_image_type" "真实照片"

# 添加待处理问题与 checkpoint,不要直接手拼 pending_questions JSON
add_pending_question "designer" "需要确认配色方案"
create_checkpoint 3 2 "Designer 等待用户确认配色方案"

Recovery Logic

每个阶段开始时检查 state.json:

if [[ -f "ai-office/state.json" ]]; then
  source "$SKILL_ROOT/state-management.sh"
  CURRENT_PHASE=$(get_current_phase)
  log "从 Phase $CURRENT_PHASE 恢复..."
else
  CURRENT_PHASE=0
fi


Phase 0: Design Reference Collection + Material Search

目标: 收集设计参考,搜索视觉素材,为后续 Agent 提供 concrete 参考

触发条件:

  • 用户提供了设计思路、参考网站或视觉参考
  • 用户希望 Agent 上网搜索素材而非凭空创作

Step 0.1: Collect Design Intent

log "Phase 0: 设计参考收集"

# 问用户是否有设计参考
AskUserQuestion {
  question: "请描述你的设计思路(可多选)",
  options: [
    "我有参考网站或落地页",
    "我有品牌视觉指南/设计系统",
    "我只有文字描述的风格",
    "我希望 Agent 帮我找灵感",
    "跳过,直接进入需求访谈"
  ]
}

如果用户选择 "我有参考网站":

AskUserQuestion {
  question: "请提供参考网站 URL (多个用逗号分隔)",
  multiSelect: false
}
# 保存到 ai-office/design-intent.md
echo "$USER_INPUT" > ai-office/design-intent.md
echo "source_type: reference_urls" >> ai-office/design-intent.md

如果用户选择 "我有品牌视觉指南":

AskUserQuestion {
  question: "请上传或提供路径: 品牌手册/logo文件/设计系统文件",
  options: ["上传文件", "提供本地路径"]
}
# 复制文件到 ai-office/references/
mkdir -p ai-office/references
if [[ "$USER_CHOICE" == "上传文件" ]]; then
  # 提示用户上传文件
  log "请上传文件到 ai-office/references/"
else
  # 复制本地文件
  cp "$USER_PATH" ai-office/references/
fi
echo "source_type: brand_guidelines" > ai-office/design-intent.md
echo "files_location: ai-office/references/" >> ai-office/design-intent.md

如果用户选择 "只有文字描述":

AskUserQuestion {
  question: "请描述风格:现代/极简/温暖/科技感/活泼... 具体元素",
  multiSelect: false
}
# 保存描述到 ai-office/design-intent.md
echo "source_type: text_description" > ai-office/design-intent.md
echo "description: $USER_INPUT" >> ai-office/design-intent.md

如果用户选择 "帮我找灵感":

log "进入自动搜索模式..."
echo "source_type: auto_inspiration" > ai-office/design-intent.md
echo "note: Will generate search keywords after Phase 1 interview" >> ai-office/design-intent.md

如果用户选择 "跳过":

log "跳过 Phase 0,直接开始 Phase 1"
write_state "current_phase" "1"
write_state "outputs_status.design-references" "skipped"
# Continue to Phase 1

Step 0.2: Design Researcher Agent Search

This step executes only if design-intent.md exists and is not "skipped"

# 创建输出目录
mkdir -p ai-office/references

# 检查是否有 design-intent.md
if [[ -f "ai-office/design-intent.md" ]]; then
  SOURCE_TYPE=$(grep "source_type:" ai-office/design-intent.md | cut -d' ' -f2)
  
  if [[ "$SOURCE_TYPE" == "skipped" ]]; then
    log "Phase 0 skipped by user"
  else
    log "Design Researcher 开始搜索素材..."
    
    # 调用 Design Researcher Agent
    # This agent will:
    # 1. Read design-intent.md
    # 2. Execute web searches for materials
    # 3. Generate design-references.md
    
    Agent({
      description: "Design Researcher - Search materials and references",
      prompt: $(cat "${SKILL_ROOT}/prompts/design-researcher.md"),
      context_files: ["ai-office/design-intent.md"],
      output_path: "ai-office/references/desig

Como adicionar

/plugin marketplace add aimonj0729-ai/ai-office-landing-skill

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Comentários · Nenhum comentário

Entre para comentar. Entrar

  • Ainda não há comentários. Seja o primeiro.