A collection of JavaScript automation and calculation scripts for SAP LeanIX that enable conditional lifecycle updates, subscription inheritance, relation management, tagging workflows, and transitive relation synchronization.
14 tools with significant definition gaps. Tool names lack action verbs (filter-applications, bc-eol-break-app-seal, link-app-to-microsoft-itc are descriptive but not verb-first). Input schemas present but minimal, most define only a 'factSheet' object with sparse property descriptions. Descriptions are present (10-200 chars) but lack WHEN/WHY guidance for LLM selection. No output schemas documented. Error handling absent, no recovery guidance or categorization. No parameter validation rules stated. Tools appear to be automation triggers rather than agent-callable tools, which limits composability.
Application Business Context Sync - Calculates desired Business Contexts from linked Business Capabilities and auto-creates/removes relations marked with [AUTO-BC-SYNC] while preserving manual relations
Application Owner to Interface - Add Only - When an Application Owner is added to an Application or an Interface is linked, adds the Application Owner subscription to all related Interfaces if not already present
Application Owner to ITComponent - Full Reconciliation - Syncs Application Owner subscriptions from Application to related ITComponents with add and remove operations
Approval Required Check - Determines if changes require approval based on criticality and cost, returning approval level (executive, manager, team_lead, or none)
Archive Initiative 30 Days After EOL - Archives an Initiative with a comment when triggered 30 days after End of Life, with idempotency check
Break Quality Seal on BC End of Life - When a Business Context reaches End of Life lifecycle phase, breaks the quality seal on all related Applications with retry on revision clash
Tool names lack action verbs. Most names are noun-based (filter-applications, bc-eol-break-app-seal) rather than verb_noun (update_application_lifecycle, break_seal_on_eol_apps). LLMs cannot infer intent from descriptive names alone.
No output schemas documented. Tools return unspecified results, LLMs cannot plan downstream calls or extract required fields. Violates pattern:tool and pattern:response-shaper.
Input schemas minimal. Most tools accept only a 'factSheet' object with sparse property descriptions. No enum constraints, no validation rules, no parameter ranges. Invites hallucinated or invalid inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Business Capability - Propagate Business Context to Applications - Finds all Applications linked to a Business Capability and reconciles their Business Context relations, auto-creating/removing marked relations while preserving manual ones
External API Call with Description Update - Fetches fact sheet data via GraphQL and updates description with timestamp using idempotent marker blocks
Conditional Lifecycle Update - Sets default lifecycle if missing, adds review tag if EOL within 1 year on Application fact sheets
Basic Tag Addition - Adds HELLO_WORLD tag to fact sheet if not already present
IT App Owner Guard - Enforces a single Responsible IT App Owner per Application by keeping the oldest and deleting duplicates when multiple RESPONSIBLE subscriptions with IT App Owner role exist
Link Application to Microsoft IT Components - Finds all IT Components with Microsoft as provider and creates relations to the Application with retry on revision clash
Generic idempotent To-Do creation on related fact sheets for subscribed users. Creates To-Dos on related Applications when an ITComponent reaches End-of-Support, notifying Service Managers with deterministic externalId for idempotency.
Risk Currency Tag Rollup - Application Trigger - Rolls up the worst Risk Currency tag from linked IT Components to the Application using reconciliation pattern for relation add/remove triggers
No error handling or recovery guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. Violates pattern:recovery-guide.
Descriptions lack WHEN/WHY context. Most are 50-100 chars describing WHAT the tool does but not when an LLM should select it vs a similar tool. Baseline for A+ tools is 50-200 chars with clear selection criteria.