Single tool 'san' with moderate definition quality. Tool name lacks action verb (should be 'generate_san_component' or similar). Description is present but generic (62 chars). Input schema is visible with Zod definitions but parameters lack consistent descriptions, 'componentName' has Chinese description, 'features' and 'selectedComponents' descriptions contain implementation details rather than user-facing guidance. Output schema is not documented, callers cannot predict the structure. No error handling guidance. Tool appears to generate static code templates, which is READ_ONLY risk category, but descriptions don't clarify immutability or idempotence guarantees needed for agent retry safety.
Generate San framework component code with templates and Cosmic component integration
Tool name 'san' is not an action verb. Lacks clarity on what action is performed. Should start with verb like 'generate_', 'create_', or 'scaffold_' to signal intent to LLM.
Parameter descriptions are in Chinese or contain implementation jargon ('逗号分隔', 'PascalCase') rather than user-facing guidance. LLM cannot infer proper usage. Example: 'features' describes format ('comma-separated') but not when/why to use it.
No output schema documented. Tool returns structured content with 'type' and 'text' fields, but LLM cannot predict what JSON keys appear in the 'text' payload or the structure of generated code. Makes downstream tool chaining impossible.
Tool is marked READ_ONLY but description does not explicitly state it is idempotent or has no side effects. LLM needs to know if repeated calls with same params produce identical output (safe to retry) or if behavior varies (risky to retry).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 28 | - | v1 |
No error handling or recovery guidance. If 'componentName' is invalid or contains special characters, no documentation of what happens or how LLM should recover. No enum for 'features', free-form string invites hallucinated feature names.
Parameter 'selectedComponents' is optional array of strings but no validation documented. What happens if user passes invalid component names? What is the size limit? Can duplicates be passed?