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.

referencesfoundationcodebase-grounding.md

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

Codebase grounding

Hybrid strategy: user provides entry points, skill expands with bounded depth. Runs between interview phase A and phase B.

Input: entry points from the user

Collected during interview phase A. User supplies any combination of:

  • File paths — absolute or relative, e.g. share/mermaid/src/processors/edge_routing.ts.
  • Directory paths — e.g. share/mermaid/src/processors/.
  • Globs — e.g. web/src/components/diagrams/**/*.ts.
  • Service names — mapped via repo conventions (e.g. a known service manifest or services/ directory).
  • Doc paths — ARCHITECTURE.md, docs/*.md, README.md in a relevant directory.

If the user says "none" or "skip", skip grounding entirely and proceed to interview phase B. Architecture diagrams will be drawn from PRD text alone.

Expansion rules

For each entry point, up to the 20-file cap:

  1. Read the file. Use Read (or Glob first for a dir/glob, then Read on selected files).
  2. Extract imports. Collect static import paths (TS/JS import, Ruby require/require_relative, Python import, Go import, etc.). Resolve to in-repo paths where possible.
  3. Follow 1 level of imports into the same repo. Do NOT chase transitively (depth > 1). External package imports are noted but not opened.
  4. Read adjacent architecture docs. For each file, walk up the directory tree to the repo root looking for CLAUDE.md, README.md, ARCHITECTURE.md, DESIGN.md. Read any found. This provides architectural context.
  5. Extract OWNERSHIP / OWNERS file if present in any ancestor directory (Figma repo has these). Capture the team name.

Cap

  • 20 files total. Hard limit. Counts every Read invocation.
  • When the cap is hit, stop. Record in the tech-context: expansion_truncated: true, files_read_count: 20. The content plan printout surfaces this so the user knows grounding was incomplete.

Do not

  • Execute any code read from the repo.
  • Follow cross-repo references. V1 stays inside the current repo.
  • Read files that look like tests (*_test.go, *.test.ts, spec/, __test__/) unless the user explicitly named them — they rarely help with architecture.
  • Read binary files or files > 2000 lines (Read with no offset/limit would fail anyway; skip and record the skip).

Output: tech-context object

The grounding phase produces a structured object consumed by interview + content-shape phases:

{
  "files_read": [
    { "path": "share/mermaid/src/processors/edge_routing.ts", "kind": "source" },
    { "path": "share/mermaid/CLAUDE.md", "kind": "doc" },
    // ...
  ],
  "services": [
    { "name": "mermaid-processor", "path": "share/mermaid/src/", "one_line_description": "Server-side Mermaid diagram layout engine" }
  ],
  "external_deps": [
    { "name": "mermaid.js", "role": "Upstream parser" }
  ],
  "key_modules": [
    { "path": "share/mermaid/src/processors/edge_routing.ts", "purpose": "Routes connectors around nodes in architecture diagrams" }
  ],
  "architecture_notes": [
    "From share/mermaid/CLAUDE.md: Use bazel test //share/mermaid:test to validate",
    "From repo root CLAUDE.md: PR titles follow 'domain: Description' format"
  ],
  "ownership": "share/mermaid owned by: (team name if found in OWNERS file)",
  "expansion_truncated": false,
  "files_read_count": 7
}

Field guidance

  • files_read — exhaustive list for transparency in the content-plan printout. User can spot wrong branches.
  • services — inferred from directory names, services.yaml, or explicit mentions in CLAUDE.md. If none found, leave empty. Do NOT invent.
  • external_deps — packages the code imports from third-party sources. Names + roles only.
  • key_modules — a short list of the most important files encountered (≤8). Use judgment based on file size, how many others import them, and whether they're named in architecture docs.
  • architecture_notes — verbatim quotes or close paraphrases from CLAUDE.md / ARCHITECTURE.md. Prefer quotes with attribution so the user can trace back.
  • ownership — team name if discoverable.

How the content-shape phase uses this

Section Grounding input
Context & Background architecture_notes prepended if they give useful framing; ownership if the PRD doesn't name an owner
Proposed Approach key_modules cited inline so the narrative has factual anchors
Dependencies stickies services (Blue cross-team), external_deps (Orange external). Users add upstream Blockers in the interview.
Current State Architecture diagram services → service subgraph nodes; external_deps → external subgraph nodes; reading architecture_notes for data flows
Target State Architecture diagram Current State plus additions from the PRD's Proposed Approach

Safety

  • Every file path that was read is printed back to the user in phase D's content plan. User approves before writes.
  • If the user's entry point is outside the repo root, refuse and ask for an in-repo path.
  • The skill never writes to or edits any file it reads as part of grounding.

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.