Governed enterprise expense context, decision provenance and controlled workflow actions.
Strong schema definitions with Pydantic annotations and tool annotations present. All 12 tools have descriptions and input schemas with type constraints. However, descriptions are domain-jargon-heavy ('Gate 4A semantics', 'context abstention', 'HITL') and lack actionable guidance for LLM selection. Parameter descriptions are minimal (often just the constraint, not the purpose). Output schemas are not documented. Error handling is present but generic. Tool composition is sound, each tool has a single responsibility and proper verb naming.
CONSEQUENTIAL ACTION: record approval through n8n, durable HITL, immutable human evidence and outbox resume; trusted operators only.
READ: return the stored deterministic risk flags and routing explanation; risk signals are not policy violations.
READ: resolve one governed business-term definition historically with ownership, certification, freshness and content hash.
READ: return a minimized deterministic decision trace, approval state, evidence and provenance verification for exactly one identifier.
READ: return the expense's governed policy context separately from algorithmic risk-signal context.
READ: return a timestamped sequence built only from persisted workflow, provenance, approval and outbox records.
Descriptions use domain jargon without LLM-actionable context. 'Gate 4A semantics', 'context abstention', 'HITL', 'outbox resume' are unexplained. LLMs cannot determine when to call these tools vs alternatives.
Output schemas are not documented. Tools return dict[str, Any] with no specification of fields, types, or structure. LLMs cannot plan downstream calls or extract required data.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
READ: return the minimized durable status, risk, routing and final-decision state for one expense.
READ: resolve one governed policy version, owner, effective interval, trust evidence and governed rules using Gate 4A semantics.
READ: list a bounded set of expenses awaiting approval or escalated review.
READ: deterministically rank governed policies and terms by exact/text match with optional UTC as-of, domain and trust filters.
ORCHESTRATION BRIDGE: submit an expense through n8n's governed intake path; preserves context abstention and idempotency.
READ: recompute and verify immutable decision evidence hashes for exactly one expense or provenance identifier.
Parameter descriptions are minimal constraint statements, not purpose statements. E.g., 'Unique expense identifier' does not explain when to use this tool vs get_expense_status. LLMs need WHEN/WHY context.
Tool descriptions lack recovery guidance. Error handling logs failures but does not tell LLM what to do next (retry, ask user, call alternative tool). E.g., 'expense not found' should suggest search_policy_context or list_pending_approvals.
Tool composition: get_decision_trace and verify_decision_provenance both accept optional expense_id OR provenance_id. Undocumented mutual exclusivity. LLMs may pass both or neither, causing ambiguous failures.