log_decision
Track and document decision outcomes for ideas to maintain an audit trail of lifecycle events, closure categories, and reasoning.
Instructions
Log a decision event for an idea. This creates an audit trail entry.
Event types:
created, updated: Lifecycle events
accepted, rejected, snoozed, expired: Decision outcomes
reopened: Reopen a closed idea
merged, superseded: Idea was consolidated
shipped: Feature was released
ticket_created, ticket_closed: External ticket lifecycle
Closure categories (required for some events):
shipped, merged: Positive closures
deferred_resources, deferred_priority, deferred_dependency, deferred_timing: Deferrals
rejected_scope, rejected_alternative, rejected_invalid, rejected_duplicate: Rejections
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ideaId | Yes | The ID of the idea | |
| eventType | Yes | Type of decision event | |
| closureCategory | No | Category for closure events | |
| reason | No | Reason or notes for the decision | |
| confidenceScore | No | Confidence score (0-1) |
Implementation Reference
- src/mcp/tools/proxyTools.ts:248-295 (handler)The 'log_decision' tool is defined as a proxied tool. The actual logic resides in the backend application, which this MCP server calls via the `idealiftClient.mcpProxy` method implemented in `handleProxyTool`.
{ name: 'log_decision', description: `Log a decision event for an idea. This creates an audit trail entry. Event types: - created, updated: Lifecycle events - accepted, rejected, snoozed, expired: Decision outcomes - reopened: Reopen a closed idea - merged, superseded: Idea was consolidated - shipped: Feature was released - ticket_created, ticket_closed: External ticket lifecycle Closure categories (required for some events): - shipped, merged: Positive closures - deferred_resources, deferred_priority, deferred_dependency, deferred_timing: Deferrals - rejected_scope, rejected_alternative, rejected_invalid, rejected_duplicate: Rejections`, inputSchema: { type: 'object' as const, properties: { ideaId: { type: 'string', description: 'The ID of the idea' }, eventType: { type: 'string', enum: [ 'created', 'updated', 'accepted', 'rejected', 'snoozed', 'expired', 'reopened', 'merged', 'superseded', 'unmerged', 'ticket_created', 'ticket_closed', 'shipped', 'signal_recorded', 'surfaced', 'confidence_updated', 'category_changed', 'relationship_added', 'relationship_removed', ], description: 'Type of decision event', }, closureCategory: { type: 'string', enum: [ 'shipped', 'merged', 'deferred_resources', 'deferred_priority', 'deferred_dependency', 'deferred_timing', 'rejected_scope', 'rejected_alternative', 'rejected_invalid', 'rejected_duplicate', 'expired', 'superseded', ], description: 'Category for closure events', }, reason: { type: 'string', description: 'Reason or notes for the decision' }, confidenceScore: { type: 'number', description: 'Confidence score (0-1)' }, }, required: ['ideaId', 'eventType'], }, annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true }, _meta: { 'openai/visibility': 'public' }, },