All skills
figma avatar

/generate-project-plan

@76c729b official
by figmafigma/mcp-server-guide2k stars
194

Generate a FigJam project plan board from a PRD plus codebase context. Interactive flow: research → propose sections → per-section deep research → per-section content + block-shape proposal → create FigJam → skeleton → fill → diagrams → wrap. Each content block (section, nested section, intro callout, table, multi-column text, sticky column, diagram section, metadata strip) has its own subskill reference file. Use when the user asks for 'project plan in FigJam', 'interactive project plan', '/generate-project-plan', or provides a PRD and wants per-section confirmation on content + rendering.

Use this Skill: https://skilld.dev/gh/figma/mcp-server-guide/generate-project-plan

This session only. Nothing lands on disk.

referencesblocksintro-callout.md

≈802 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Block: Intro callout

A highlighted intro paragraph rendered at the top of a section, with a distinct background fill that stands out from the section's own palette color. Used to orient the reader before the rest of the section's content.

When to use

  • Motivation section — a one- or two-sentence "why this project exists" paragraph before the "Resources" subsection.
  • Any section where the first block is a short, high-visibility statement (mission, scope note, TL;DR).

Do NOT use for:

  • Standalone body text (use text-primitives.md).
  • Multi-paragraph intros (they dilute the highlight).

Structure

A FRAME (with auto-layout OFF — just a background rect) containing a single body TEXT node, positioned just below the H2 header inside the section.

Alternative: a plain TEXT node with its own fill/padding via setRangeFills — but FRAME is simpler.

Geometry

  • Width: inner section width = LEFT_COL_W - 2 * SECTION_PAD = 736.
  • Padding: 16px on all sides.
  • Text: body (16px), wrapped at frame.width - 32.
  • Background fill: a softer/lighter variant of the parent section palette. For lightViolet parent → use SECTION.lightViolet with a lower-opacity overlay, or a related lighter purple. Simplest: a white-ish overlay over the parent color (fill = SECTION.white).

Create script

const font = { family: 'Inter', style: 'Medium' };
await figma.loadFontAsync(font);

// Position after H2
const h2 = section.children.find(c => c.type === 'TEXT' && c.fontSize === 40);
const calloutY = (h2 ? h2.y + h2.height : 32) + 16;

const frame = figma.createFrame();
frame.name = "Intro callout";
frame.fills = [{ type: 'SOLID', color: SECTION.white }];
frame.cornerRadius = 8;
section.appendChild(frame);
frame.x = 32;
frame.y = calloutY;

const INNER_W = 800 - 2 * 32; // 736 — inner width of a left-column section
frame.resize(INNER_W, 100); // temp; resize after text measured

const text = figma.createText();
text.fontName = font;
text.fontSize = 16;
text.characters = introText;
text.fills = [{ type: 'SOLID', color: CHARCOAL }];
text.textAutoResize = 'HEIGHT';
frame.appendChild(text);
text.x = 16;
text.y = 16;
text.resize(INNER_W - 32, text.height);

// Hug frame around text + padding
frame.resize(INNER_W, text.height + 32);

Color variants

Parent slug Callout fill Reason
motivation (lightViolet) SECTION.white Max contrast — callout pops off the purple bg
context (lightGray) SECTION.white Same — white on gray
goals (lightGreen) SECTION.white Same
rollout (lightOrange) SECTION.lightYellow Warm-on-warm, subtle
any Custom color the user specifies Override

Default: white if parent is a mid-tone palette; a closely related lighter palette if parent is already very light.

Pre-flight checklist

  • Callout is a FRAME (not a SECTION) — nested sections are handled separately.
  • Frame appended to section BEFORE setting x/y.
  • Frame fill uses hex/255 palette color.
  • Text is appended to FRAME (not the section).
  • Frame height is hugged to text height + 32.
  • Frame is part of mutatedNodeIds return.

Source: SKILL.md on GitHub

1 warning15d3 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    The skill generates FigJam project plan boards from user-provided PRDs and codebase files. It uses an interactive process where the user reviews and confirms the content at multiple stages. It follows strict visual guidelines and uses standard Figma MCP tools. Data access is bounded to a maximum of 20 files within the local repository. No malicious patterns detected.

  • Socket15d

    No alerts

  • Snyk15d

    Risk: MEDIUM · 1 issue

Signed by skilld at 76c729b. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 5 months ago
disable-model-invocation
false
  • figjam
  • project-planning
  • prd
  • figma
  • diagramming
  • content-generation
  • interactive-workflow

README badge

README badge for figma/mcp-server-guide/generate-project-plan

Converts a product requirements document into an interactive FigJam board with sections—research, section selection, content proposal per section, then automated board creation with skeleton and fill passes. Uses FigJam's section and sticky primitives, coordinates with separate block-shape subskills for tables, diagrams, multi-column layouts, and metadata strips.

Generated from the current SKILL.md.

Do I need to load other skills before using this one?
Yes. Load `figma-use` once per session, then reload `figma-use-figjam` before every `use_figma` call. Also load `figma-generate-diagram` before any `generate_diagram` call. All three are in the figma/mcp-server-guide collection.
Can I pick which sections appear on the board?
Yes. The skill proposes candidate sections from the PRD research, and you confirm which ones to include. The section set is not fixed.
Does this work with a PRD alone, or do I need codebase context?
The skill accepts a PRD plus optional codebase grounding. Codebase context is optional and expands the research step; the PRD alone is sufficient to generate a plan.
Can I customize colors and typography?
No. The skill enforces strict visual conventions — two-tone section palettes, fixed font sizes (40 for H2, 32 for nested headers, 24 for column titles), and a precise spacing grid (24px between blocks, 64px between sections, 32px inner padding). These are derived from a canonical reference board and must not be deviated from.
What content blocks are available?
Nine block types: section headers, nested sections, intro callouts, text primitives (paragraphs, lists), tables, multi-column text, sticky-note columns, diagram sections, and a metadata strip. Each has its own subskill reference file.

Generated from the current SKILL.md. These answers refresh after source changes.