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.

referencesblockssection.md

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

Block: Top-level section

A FigJam Section node with a colored background, an H2 header as first child, 32px padding, and children laid out below the header.

Definition

  • Node type: SECTION (created with figma.createSection()).
  • Width: left column = 800, right column = ≥1200 (driven by diagram width).
  • Fill: section.fills = [{ type: 'SOLID', color: SECTION_COLOR_BY_SLUG[slug] }]. See foundation/palette.md.
  • STRICT — no section label: section.name = "". Project-plan boards do not use FigJam's section title-bar label. The user-facing title is rendered as the H2 text node inside the section (see Header below). Setting section.name to anything non-empty produces a duplicate label that visually clutters the board.
  • Header: an H2 text node as the section's first child, at (32, 32). Header text is the user-facing title (e.g. "Goals, Non-Goals & Success Metrics"). This is the only label the section gets.
  • Padding: 32px on all four sides. First child at (32, 32); last child's bottom + 32 = section height.
  • Hug behavior: sections do NOT auto-grow. Call section.resizeWithoutConstraints(w, h) after appending children.
  • Placeholder during build: set section.placeholder = true in the skeleton pass. Set section.placeholder = false at the end of the fill pass for that section.

Create script (skeleton pass)

const section = figma.createSection();
section.name = ""; // STRICT — no FigJam section label; H2 text inside is the only title
section.fills = [{ type: 'SOLID', color: SECTION_COLOR_BY_SLUG.goals }];
section.resizeWithoutConstraints(800, 400); // DEFAULT_H — fill pass will overwrite
section.x = 0;
section.y = 152 + cumulative_y;
section.placeholder = true;

Add the H2 header (first action in fill pass)

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

const h2 = figma.createText();
h2.fontName = font;
h2.fontSize = 40;
h2.characters = "Goals, Non-Goals & Success Metrics"; // user-facing header
h2.fills = [{ type: 'SOLID', color: CHARCOAL }];
section.appendChild(h2);   // append FIRST
h2.x = 32;
h2.y = 32;

Hug section after filling

After all children are appended and positioned:

const maxBottom = Math.max(...section.children.map(c => c.y + c.height));
section.resizeWithoutConstraints(800, maxBottom + 32);
section.placeholder = false;

Pre-flight checklist

  • section.name = "" (no section title-bar label — STRICT).
  • Fill is set via hex/255 palette color (not rounded decimals).
  • H2 is the first child.
  • appendChild is called before setting x/y on any child.
  • resizeWithoutConstraints(w, h) runs after all children are appended.
  • section.placeholder is false at end of this section's fill.
  • Return includes section.id in mutatedNodeIds (or createdNodeIds on skeleton pass).

Right-column (diagram) section

Same as above but:

  • fill = ARCH_PALE.white.
  • Width = max(RIGHT_COL_W_MIN, diag.width + 64) after the diagram is reparented.
  • section.name = "" (same rule — no title-bar label).
  • See blocks/diagram-section.md for the reparent flow.

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 yesterday.

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.