Skip to main content
Glama

faf_sync

Idempotent

Sync project.faf into AI context files (CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md). Inject a structured .faf block at the top while preserving your prose below.

Instructions

Sync project.faf into your AI context files (CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md). Non-destructive: injects a structured .faf block at the top for fast machine reading and preserves your prose below. One source of truth, every tool kept current.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.4.1
  2. Removedv1.4.0
  3. Addedv1.3.1
  4. Removedv1.3.0
  5. First observedv1.2.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the safety baseline is covered. The description adds real value beyond that by specifying the mechanism (inject a structured .faf block at the top) and the side effect boundary (prose below is preserved), which tells the agent exactly what gets modified. It stops short of saying whether missing context files are created.

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?

Three short sentences, front-loaded with the action and its targets, then the safety guarantee, then the rationale. The closing line ('One source of truth, every tool kept current') is slightly promotional but does convey the maintenance intent.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool with annotations already covering the safety profile, the description supplies the missing pieces: what it writes, which files, and that existing prose survives. Only the behavior when target files or project.faf are absent is left unstated.

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?

The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no configuration is required.

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

Purpose4/5

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

States a specific verb (Sync) plus the resource (project.faf) and enumerates the concrete target files (CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md), which is far more than a tautology. It does not, however, distinguish itself from close siblings like refresh_faf or faf_init, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is only implied: the agent can infer this runs after project.faf changes to propagate into AI context files, and 'every tool kept current' hints at the maintenance scenario. There is no explicit when-to-use statement, no prerequisites, and no mention of when to prefer refresh_faf or faf_init instead.

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