Skip to main content
Glama

get_project_rules

Fetch the mandatory Symbols.app rules before generating any component or page to prevent silent failures and ensure compliance with design-system and syntax constraints.

Instructions

ALWAYS call this first before any generate_* tool.

Returns the mandatory Symbols.app rules that MUST be followed:

  • FRAMEWORK.md (authoritative — project structure, plugins, theming, SSR, publish)

  • DESIGN_SYSTEM.md (authoritative — design-system contract + token catalog)

  • RULES.md (62 strict rules — flat API, signal reactivity, design tokens, polyglot, fetch, helmet, theme, reusability, icons)

  • COMPONENTS.md (built-in component catalog from @symbo.ls/default-config — REUSE these via bare PascalCase keys; do NOT redefine)

  • DEFAULT_COMPONENTS.md (full source/structure of every built-in — what they look like, what props they expose, how to compose them)

  • SYNTAX.md (DOMQL v3.14 syntax reference — flat element API, signal reactivity, factory patterns)

  • PATTERNS.md (canonical compositional patterns)

  • SNIPPETS.md (project-level snippet patterns)

  • SHARED_LIBRARIES.md (when to read/never edit cross-package code)

  • WORKSPACE.md (multi-app monorepo topology — two project shapes, two-file contract, no-transitive-resolution, onboarding checklist)

  • FRANKABILITY.md (every @symbo.ls/frank-audit rule with wrong vs canonical examples — patterns that survive frank.toJSON serialization, so generated code is provably frankable from the start)

  • FRANK_FIX_WORKFLOW.md (LLM reference card for the prescription → edit-op flow — the strict 8-kind contract for apply_frankability_edit_ops)

  • COMMON_MISTAKES.md + LEARNINGS.md (hard-won failure cases — read these to avoid replaying them)

  • DEFAULT_PROJECT.md (recommended baseline design-system values + the default-library catalog)

Violations cause silent failures — black page, nothing renders, or a working app with degraded UX you'll later have to rebuild.

Call this before: generate_component, generate_page, convert_react, convert_html, or any code generation task.

READ ALL SECTIONS — do NOT skim past COMPONENTS.md / DEFAULT_COMPONENTS.md / PATTERNS.md. The single most-violated rule is reusing built-in components. Skipping the catalog leads to redefining Avatar, Button, Dialog, etc. from scratch when a bare Avatar: {} would have rendered the canonical built-in.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the consequences of violations ('silent failures — black page, nothing renders...'), emphasizes the most-violated rule about reusing built-ins, and instructs the agent to read all sections. This goes well beyond a simple 'Returns rules' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and uses a bulleted list to enumerate files, which is appropriate for the complexity of the returned rules. It is well-structured and front-loaded with the 'ALWAYS call this first' imperative. While lengthy, each entry serves a purpose and the content is not wasted, though a more compact summary could be added.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex, returning a rich set of rule documents. The description thoroughly explains the content and purpose of each file, and provides clear, actionable guidance on how to use the returned information. An output schema exists, so return value details are not needed; the description is complete for the tool's context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description adds no parameter-related meaning (none needed), and the schema is empty, so there is nothing to elaborate on. No deduction is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Returns the mandatory Symbols.app rules' and is explicitly positioned as the first call before any generate_* tool. It distinguishes itself from siblings by focusing on the authoritative rule set for code generation, not just general context or reference material.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit, actionable usage instructions: 'ALWAYS call this first before any generate_* tool' and lists specific tools ('generate_component, generate_page, convert_react, convert_html, or any code generation task'). It also explains the consequences of not using it, which is strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/symbo-ls/symbols-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server