with one click
vibma-dev
// Development workflow for the Vibma Figma MCP plugin. Follow this when fixing bugs, adding features, or investigating issues. Enforces single-source-of-truth principle and structured fix-test-audit cycle.
// Development workflow for the Vibma Figma MCP plugin. Follow this when fixing bugs, adding features, or investigating issues. Enforces single-source-of-truth principle and structured fix-test-audit cycle.
| name | vibma-dev |
| description | Development workflow for the Vibma Figma MCP plugin. Follow this when fixing bugs, adding features, or investigating issues. Enforces single-source-of-truth principle and structured fix-test-audit cycle. |
| user-invocable | false |
Never duplicate logic. Every piece of behavior — param handling, validation, formatting, type definitions — should live in exactly one place. If you find the same logic in two places, generalize it into a shared function. If a schema defines it, don't hardcode it elsewhere.
This applies at every level:
When in doubt: if changing behavior requires editing more than one file, the abstraction is wrong.
Before starting: create a task list from these workflow steps using TaskCreate. Each step below becomes a task. Mark each as in_progress when you start it and completed when done. Do not skip steps — the task list enforces the order.
Before touching code, confirm the bug exists. Use the MCP tools directly — connection(method: "create"), then exercise the failing endpoint. Capture the exact error message or unexpected behavior. If you can't reproduce it, clarify with the user before proceeding.
Trace from the MCP tool call to the handler:
schema/tools/*.yaml → compiled to packages/core/src/tools/generated/defs.tspackages/core/src/tools/mcp-registry.ts → registry.tscommandMap in generated defs → handler in packages/adapter-figma/src/handlers/packages/core/src/utils/, packages/adapter-figma/src/utils/Read the AGENTS.md files in each package before investigating — they document contracts and conventions.
Do not write new code until you have identified the closest existing pattern. Name the file and pattern you are basing your implementation on before proceeding.
connection for inline tools, frames for create-tier tools) are defined in YAML and registeredReuse > generalize > write new. In that order.
npm run codegenutils/ directoryDo not summarize your work to the user until you have tested all affected methods via MCP tools.
After npm run build, use the dev_reload MCP tool to rebuild and restart the MCP server — no need to ask the user or restart Claude Code. Then reconnect: connection(method: "create") → connection(method: "get").
lint(method: "check") or frames(method: "audit") on created nodes when relevantIf the change touches params, return shapes, or method behavior, call help(topic: "endpoint.method") on the affected endpoints and verify the output matches reality:
If help text is wrong, fix the source YAML in schema/tools/ and re-run npm run codegen. Never edit generated files directly.
Walk through every item in AGENTS.md > Checklist: Adding/Modifying/Removing a Tool and verify each applies or mark N/A with a reason.
Write a detailed PR description that covers:
Copy this into your task list at the start of every feature/fix:
1. Reproduce the issue (or confirm the starting state)
2. Find the corresponding code (trace YAML → defs → handler)
3. Look for similar patterns (name the pattern before writing code)
4. Implement the fix
5. Test with Vibma MCP (dev_reload → connect → test all methods + errors)
6. Audit for regressions (grep call sites, smoke-test unrelated endpoints)
7. Verify help() accuracy (help topic matches actual behavior)
8. Run AGENTS.md tool checklist (YAML, handler, response types, SKIP_FOCUS, refs, docs, codegen, build)
9. Create PR