Identity evolution for AI agents — track how personality and values change over time. Plugin for cortex-engine.
Two tools with complete input schemas and descriptions. Both tools have clear names (evolve, evolution_list) starting with action verbs. Descriptions are present (194 and 80 chars respectively) and explain purpose. Input schemas are well-formed with typed properties and enums. However, output schemas are not documented, handlers return untyped Record<string, unknown>. Error handling is minimal (only basic validation in evolve). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Missing parameter descriptions for optional fields (from_value, to_value, dimension, session_ref in evolve). evolution_list lacks description for the 'namespace' parameter. No guidance on when to use each tool or dependencies between them.
List evolution proposals. Filter by status (default: proposed).
Propose an identity evolution — a change in values, preferences, patterns, or beliefs. Creates a proposal that can be reviewed and applied.
Output schemas not documented. Handlers return Record<string, unknown> with no type hints. LLMs cannot predict response structure for downstream planning.
Missing parameter descriptions for optional fields. 'from_value', 'to_value', 'dimension', 'session_ref' in evolve lack descriptions. 'namespace' in evolution_list undescribed.
No tool annotations. Neither tool declares readOnlyHint (evolution_list is read-only) or destructiveHint (evolve creates records). Agents cannot infer safety properties.
Minimal error handling. evolve returns {error: '...'} on validation failure but does not guide recovery. No categorization of errors as retryable or user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No pagination guidance in evolution_list description. Tool accepts 'limit' but description does not state the default (20) or max (100) clearly.