Skip to main content
Glama

prescribe_frankability_fixes

Generate structured prescriptions for frank-audit findings that require manual fixes, including source context, related files, and proposed edit ops.

Instructions

Generate LLM-ready prescriptions for frank-audit findings that can't be auto-fixed.

Each prescription contains:

  • finding (rule, file, line, refusal reason)

  • sourceContext (~30 lines around the finding)

  • relatedFiles (other places that mention the same symbol)

  • proposedOps — array of edit ops the rule's helper logic produced (e.g. FA304 already mapped 36px → 'C2' from the project's spacing scale; FA301 already matched the closest palette token). The agent can submit these verbatim to apply_frankability_edit_ops, or modify before submitting.

  • explanation (the rule's docs)

  • safetyCheck (verify command run after apply)

Workflow for the agent:

  1. Call this tool to get prescriptions.

  2. Inspect each proposedOps array. Either submit verbatim or modify. For findings with no proposedOps (structural refactors like FA2xx multifile-helpers, FA5xx DOM bans), construct your own ops from the 12 strict op kinds: removeImport | moveFile | addToIndexFile | addToGlobalScope | removeTopLevelDecl | addElementScope | replaceTokenValue | renameObjectKey | removeObjectKey | setObjectProperty | addDesignToken | skip

  3. Call apply_frankability_edit_ops(symbols_dir, ops) — frank-audit validates every op, snapshots, applies, runs verify, rolls back on regression. Failed ops return structured details (E_OLDVALUE_NOT_FOUND with actualLine, E_KEY_NOT_FOUND with availableKeys, etc.) so you can retry intelligently.

  4. Repeat until prescriptions are exhausted or no progress.

Args: symbols_dir: Absolute path to the symbols/ directory.

Returns: JSON with schema version, opId, list of prescriptions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbols_dirYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/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 that the tool generates prescriptions and that the agent must apply them via a separate tool, implying no mutation happens here. It also describes the return shape (JSON with schema version, opId, prescriptions). However, it does not explicitly state side effects, permissions, or error behavior of this specific tool, and spends significant space describing the sibling apply tool's behavior.

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 front-loaded with purpose and uses clear headings/bullets, but it is fairly long. It includes a full list of op kinds and detailed behavior of the follow-up apply tool; these are useful in context but could be trimmed if those details live in sibling tool descriptions.

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?

Given one parameter, an output schema, and a complex workflow, the description is highly self-contained. It explains what the prescription contains, how to handle findings with and without proposedOps, what the follow-up tool does, and when to stop—covering all the information an agent needs to invoke and use this tool correctly.

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

Parameters5/5

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

The input schema has one required string param with 0% schema description coverage. The description fully compensates by saying 'symbols_dir: Absolute path to the symbols/ directory', which gives the agent precise, actionable semantics beyond the bare schema.

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 opens with a specific verb ('Generate') and a clear resource ('LLM-ready prescriptions for frank-audit findings that can't be auto-fixed'), immediately distinguishing this tool from adjacent siblings like apply_frankability_edit_ops. It also enumerates the prescription contents, which further clarifies the tool's role as a planning/proposal generator.

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?

The description provides an explicit 4-step workflow: call this tool, inspect/modify proposedOps, call apply_frankability_edit_ops, and repeat. It clearly states the intended use case (findings that can't be auto-fixed) and gives specific instructions for the no-proposedOps case, including a list of valid op kinds.

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