Skip to main content
Glama

audit_rn

Read-onlyIdempotent

Audit React Native / Expo source (JSX/TSX + StyleSheet) against the iOS HIG + Android Material conventions RN must satisfy. Flags touchables missing accessibilityLabel/accessibilityRole, touchables below 44pt without hitSlop, allowFontScaling={false}, fontSize below ~13, screens without SafeAreaView, and (for multi-mode apps) hardcoded colors with no useColorScheme/Appearance dark-mode handling. Rewards SafeAreaView, hitSlop, Platform-aware code, and a theme. RN-native checks only — no web/CSS or SwiftUI rules. Same return shape as audit_page. (RN renders to native widgets, so audit_ios_screen scores the rendered screen.) Taste-profile bindings are not available on the hosted (remote) endpoint (per-user state is a later phase). Omit 'project'/'profile' to run the stateless React Native audit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesReact Native source — a single screen/component as a string, or an array of file contents. Concatenated before analysis.
strictNoStrict mode — also count warnings as failures for grading. Default: false
profileNoTaste profile owning the binding. Omit to search all stored profiles for one bound to the project.
projectNoProject identifier — resolves a saved taste surface binding (see bind_taste_surface). When the binding carries design_notes, each note is verified against the source (Animated/Reanimated, BlurView, haptics, fonts) and returned in note_assessments; missing notes count toward the grade.
color_schemeNoThe app's declared appearance (Expo app.json userInterfaceStyle). 'light' or 'dark' means single-mode by design — the dark-mode adaptation check is then suppressed. Default: automatic.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict these. It adds valuable context beyond annotations: specific checks performed (accessibilityLabel, hitSlop, allowFontScaling, etc.), what is rewarded, a limitation on taste-profile bindings on the hosted endpoint, and a pointer to audit_page for return shape. This is a solid disclosure without being overwhelming.

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 but packs every sentence with distinct, useful information: scope, specific checks, exclusions, return-shape pointer, and hosted limitation. No filler or redundancy. It is denser than the mid-tier examples but not bloated for a tool of this complexity.

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?

Given the tool's complexity (5 params, no output schema), the description covers purpose, input types, exclusion boundaries, and behavioral limits. It leverages the sibling audit_page for return shape ('Same return shape as audit_page'), which is an efficient reference. It does not detail every return field, but that is acceptable given the pointer to a known sibling.

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

Parameters3/5

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

The input schema already provides 100% parameter descriptions, so the description need not repeat them. It does add a meaningful semantic: omitting both project and profile yields a stateless audit, which clarifies the default behavior in a way the schema does not. This is a minor enhancement over the baseline, so a 3 is appropriate.

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 and resource: 'Audit React Native / Expo source (JSX/TSX + StyleSheet) against the iOS HIG + Android Material conventions RN must satisfy.' It further distinguishes from siblings by stating 'RN-native checks only — no web/CSS or SwiftUI rules' and explicitly contrasting with audit_ios_screen ('scores the rendered screen'). This makes the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description clearly states what the tool is NOT for ('no web/CSS or SwiftUI rules') and directs users to audit_ios_screen for rendered screens, effectively providing an alternative. It also gives a practical usage tip: 'Omit project/profile to run the stateless React Native audit.' However, it does not explicitly enumerate sibling use cases beyond these two, so it stops short of full when-to-use guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (audit_* vs get_* vs list_* vs generate_* vs score_*), but there is notable overlap among audit_page, audit_layout, score_page, and audit_url (all audit rendered HTML, with audit_page and score_page explicitly sharing checks; audit_screen and audit_ios_screen are aliases). The get_* family (get_pattern vs get_content_pattern vs get_service_pattern, get_principles vs get_brand_principles vs get_content_principles) have overlapping boundaries that may cause misselection.

Naming Consistency4/5

Names follow a consistent verb_noun pattern (audit_*, get_*, list_*, generate_*, score_*, compose_*, suggest_*, search_*), which is predictable and readable. Minor deviations exist: 'evaluate_design' uses evaluate_ instead of audit_/score_, and 'process' isn't present but 'compose_system' uses compose_ instead of generate_/get_. Overall the convention is strong and consistent.

Tool Count2/5

45 tools is far beyond the typical well-scoped server (3-15 tools) and even beyond the 'heavy' 25+ threshold. The server appears to be an all-in-one design/UX knowledge base and auditing suite, but the sheer count makes discovery and selection overwhelming, and many tools (e.g., multiple audit_* variants for mobile platforms) could be consolidated.

Completeness3/5

The server covers a wide domain: audits for web/mobile/RN/SwiftUI, design tokens, UX principles, content systems, business strategy, creative scoring, and service design. However, there are gaps: no tool for creating or editing design systems (only get/generate), no update/delete operations anywhere (all read-only or audit-only), and the creative side has list/score but no generation tool. The set feels broad but shallow in lifecycle coverage.