Validate .faf content
faf_validateValidate .faf YAML content via the Mk4 Zig-WASM engine. Returns true if mission-ready (>= 100).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Raw .faf YAML content to validate. |
faf_validateValidate .faf YAML content via the Mk4 Zig-WASM engine. Returns true if mission-ready (>= 100).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Raw .faf YAML content to validate. |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Output schema / (root)Previous value: -{
- "properties": {
- "content": {
- "items": {
- "properties": {
- "text": {
- "description": "Human-readable tool result.",
- "type": "string"
- },
- "type": {
- "const": "text",
- "type": "string"
- }
- },
- "required": [
- "type",
- "text"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "isError": {
- "description": "True when the tool failed.",
- "type": "boolean"
- }
- },
- "required": [
- "content",
- "isError"
- ],
- "type": "object"
-}New value: +nullOutput schema / (root)Previous value: -nullNew value: +{
+ "properties": {
+ "content": {
+ "items": {
+ "properties": {
+ "text": {
+ "description": "Human-readable tool result.",
+ "type": "string"
+ },
+ "type": {
+ "const": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "isError": {
+ "description": "True when the tool failed.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "content",
+ "isError"
+ ],
+ "type": "object"
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the read-only, idempotent, non-destructive profile. The description adds useful behavioral detail beyond those annotations: it identifies the specific validation engine and clarifies that the tool returns a boolean threshold verdict rather than a raw score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The action, engine, and return convention are stated compactly and in a useful order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only validation tool, the description provides the essential call context and defes the return condition despite no output schema. It does not mention behavior on invalid YAML or errors, but the core use case is still well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Scheame coverage is 100%; the only parameter is already described fine. Description restates that it validates .faf YAML content, which matches schema but adds essentially no extra semantics about input format, encoding, or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (validate .faf YAML), the execution mechanism (Mk4 Zig-WASM engine), and the success interpretation (mission-ready, >= 100). It does not explicitly contrast against siblings like faf_score or faf_analyze, but the boolean validation framing is reasonably distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not say when to prefer faf_validate over related tools such as faf_score, faf_analyze, or faf_gate. There is no explicit 'use when' guidance; the agent must infer that a boolean mission-ready check is intended rather than a score or analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Several faf_* tools overlap: faf_score, faf_validate, faf_analyze, and faf_gate all grade or gate content, while faf_get_tier and gf_analyze both address tier determination. Search and discovery also fragment into faf_collections_search, search_context, search_bfy_tag, list_tags, and tag_intel, making it easy for an agent to pick a nearly-equivalent tool.
The set consistently uses snake_case and leans heavily on the faf_ domain prefix, but the style is not uniform: faf_score, faf_validate, and faf_estimate_tokens are action-based, while faf_memory, faf_section, and faf_gate are noun- or verb-like with less clear command intent. Overall still readable, but the pattern is mixed.
19 tools is at the upper end of a reasonable number for a context/analysis system, especially with faf_ prefix family. However, some tools could be consolidated; faf_analyze overlaps faf_score+validate+get_tier, the several gone by explicit domain; several search/ag tools overlap, and the broad read-only surface leaves no obvious fns for create/update/delete operations.
This is a heavy read/analysis and scoring surface, but it lacks obvious write/update/delete primitives for persistent context entities. There are soul list/get and search tools, a faf generator, scoring/validation tools, and recommendations, but no create_soul, update_soul, delete_soul, or analogous persistent mutation operations for .faf/.fafm data. For 'persistent project context,' the set feels read-only and incomplete.