feishu-deck-h5-designer

star 20

Subskill for the feishu-deck-h5 pipeline. Use after the controller routes a deck-generation request to design: turn user requirements plus local input/ knowledge and Feishu Base knowledge into a scenario, design_plan, and outline.json. This subskill does not render HTML or validate final visuals.

FuQiang By FuQiang schedule Updated 6/10/2026

name: feishu-deck-h5-designer description: | Subskill for the feishu-deck-h5 pipeline. Use after the controller routes a deck-generation request to design: turn user requirements plus local input/ knowledge and Feishu Base knowledge into a scenario, design_plan, and outline.json. This subskill does not render HTML or validate final visuals.

feishu-deck-h5-designer

Responsibility

Input: user brief, parsed input/runtime-library/source-dossier.json if present, local files under runs/<...>/input/, and scoped records from the Feishu Base knowledge library.

Output:

  • runs/<...>/output/DESIGN-PLAN.md
  • runs/<...>/output/outline.json

Do not write deck.json or index.html; that belongs to renderer.

Inline freshness rule: when this subskill is not running as a separate multi-agent worker, reread the current upstream files before designing. Do not rely on cached chat summaries or earlier reads of source-dossier.json, local input/ files, Feishu Base query results, or user notes.

Required Design Flow

  1. Define scenario: pitch goal, audience, decision context, setting, language, risk level, and proof requirements.
  2. Query local knowledge first: input/, input/runtime-library/source-dossier.json, input/runtime-library/assets/, and any user-provided notes.
  3. Query the cloud Feishu Base only for relevant knowledge records. Use the controller's Base URL/token/table/view and the lark-base skill. Cloud-dependency downgrade (F-268): if lark-cli is not installed, or lark-cli auth status reports not-logged-in, do NOT block — enter local-only mode. Record cloud_assets: unavailable in DESIGN-PLAN.md, draw assets only from assets/shared/ (the local products / clientlogo pools), and list any missing logos explicitly for the user to supply. Never fall back to hand-drawn shapes or emoji as a stand-in (forbidden in assets-and-files.md): make the degradation explicit instead of silently shipping a degraded deck.
  4. Produce a narrative arc and slide outline. Default to Chinese-only unless the user explicitly asks for bilingual or external English-facing pitch.
  5. Apply the raw-first design stance: every slide defaults to layout: "raw" when it later becomes DeckJSON. In outline.json, express that as layout_intent: "raw:<pattern-or-intent>". Fall back to schema only for pure standard shapes — the single-source allowlist table is in design-first.md (Decision rule — 白名单回退判定; deck-generation-policy.md points to it). Give every raw slide Q0-Q4 plus a six-dimensional design spec before authoring.
  6. For every slide, include a density budget: core block + supporting evidence <= layout capacity. If it will not fit, cut or split content instead of shrinking text below the ladder.
  7. Never fabricate attributed facts: no specific company numbers, named quotes, source claims, or future-roadmap commitments unless provided by user/local/cloud source. General industry/product knowledge is allowed only when labeled as such.
  8. If the brief is a one-pager customer case or a four-beat case story, read one-pager-case.md and default to a single content/story-case slide without a cover unless the user asks otherwise.
  9. Write or update the run's PROMPTS.md alongside DESIGN-PLAN.md so the user's actual asks survive the design/render handoff.
  10. After writing outline.json, self-check it: python3 deck-json/outline-lint.py output/outline.json. This is a self-check, not a hard gate — render does not require an outline.json and never runs the lint. It catches a half-filled outline before render: every top-level contract key and per-slide key present, and every raw: slide carrying a non-empty density_budget plus a design_spec that covers all six dimensions (字号/容器/装饰/对齐/字距/字重, see design-first.md). Fix what it reports; the design intent still lives with you, the lint only checks the spec is actually filled in.

outline.json Contract

Write JSON with this shape:

{
  "scenario": {
    "goal": "",
    "audience": "",
    "setting": "",
    "decision": "",
    "language": "zh-only",
    "source_summary": []
  },
  "design_plan": {
    "title": "",
    "narrative_arc": "",
    "visual_direction": "",
    "hero_pages": [],
    "risks": [],
    "open_questions": []
  },
  "slides": [
    {
      "key": "cover",
      "role": "cover",
      "layout_intent": "schema:cover",
      "is_hero": true,
      "single_focus": "",
      "content": {},
      "evidence": [],
      "assets_needed": [],
      "density_budget": "",
      "design_spec": {}
    }
  ]
}

Keys must be stable kebab-case semantic IDs, not positional names like slide-01.

For layout_intent, use raw:<pattern-or-intent> by default. Use schema:<layout> only when the slide is a pure standard shape and include the reason in density_budget or design_spec.notes.

References To Load As Needed

  • ../../references/design-phase.md
  • ../../references/deck-generation-policy.md
  • ../../references/design-first.md
  • ../../references/content-density.md
  • ../../references/narrative-patterns.md
  • ../../references/richness-primitives.md
  • ../../references/one-pager-case.md
  • ../../references/run-artifacts.md
  • ../../references/assets-and-files.md
  • ../../deck-json/deck-schema.json

If converting existing PDF/PPT/HTML/docs, also read ../../references/converting-existing-material.md.

Install via CLI
npx skills add https://github.com/FuQiang/feishu-deck-h5 --skill feishu-deck-h5-designer
Repository Details
star Stars 20
call_split Forks 4
navigation Branch main
article Path SKILL.md
More from Creator