llm-change-api-safely

Modify the public C++ API and JNI implementations with synchronized updates and testing.

4|3|Updated Feb 18, 2026
One-click install
npx skills add https://github.com/Arm-Examples/LLM-Runner --skill llm-change-api-safely
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: llm-change-api-safely
Source: https://github.com/Arm-Examples/LLM-Runner/tree/main/skills/llm-change-api-safely
Command: npx skills add https://github.com/Arm-Examples/LLM-Runner --skill llm-change-api-safely

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a structured process and checklist to safely modify the public C++ API and its associated JNI bindings, ensuring compatibility and robustness.

Core Features & Use Cases

  • API Modification: Safely add new features, change behavior, or refactor interface code.
  • Compatibility Preservation: Prioritizes backward-compatible changes and provides guidance for necessary breaking changes.
  • JNI Synchronization: Ensures C++ API changes are correctly reflected in Java/JNI code.
  • Testing Integration: Guides through updating and running tests to validate changes.
  • Use Case: When introducing a new text generation parameter to the LLM library, use this Skill to update the C++ interface, implement the change in the core logic, update JNI bindings, and run all relevant tests to confirm the new parameter works as expected without breaking existing functionality.

Quick Start

Follow the API change checklist to update the C++ API and JNI bindings, then run the provided CMake build and test commands.

Frequently Asked Questions about llm-change-api-safely

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I safely modify a public C++ API without breaking existing functionality?

To safely modify a public C++ API, prioritize backward-compatible additive changes and use a structured checklist to synchronize updates. This ensures interface refactoring or behavior adjustments preserve compatibility and robustness across the library.

How do I update JNI bindings when changing a C++ interface?

Updating JNI bindings requires synchronizing the Java/JNI code to correctly reflect any C++ API changes. Following an API change checklist ensures core logic modifications are accurately mirrored in the JNI layer without mismatches.

What is the best way to add new features to an LLM library's C++ and JNI layers?

Adding new features to an LLM library involves updating the C++ interface, implementing the logic, and updating the JNI bindings. Using a dedicated API change checklist validates feature additions through synchronized updates and comprehensive testing.

What testing should I run after refactoring C++ and JNI interface code?

After refactoring C++ and JNI interface code, run CMake build and test commands to validate the changes. Comprehensive testing integration confirms the refactoring works as expected and maintains backward compatibility.

Can I make breaking changes to a C++ API while maintaining JNI compatibility?

Making breaking changes to a C++ API while maintaining JNI compatibility requires careful synchronization across both layers. The structured process prioritizes additive changes but provides specific guidance for handling necessary breaking modifications safely.