Hello @IslamElkhouly ,
Building on the answers above, here’s are the setups that you can try. It adds a verification layer so you aren’t relying on the AI to read the docs correctly.
1. Create a compact API reference.
Use the JavaDoc from your exact IIQ 8.4 build for method descriptions, and use javap -public against your installed identityiq.jar to extract actual class and method signatures. Store the results in searchable text or Markdown files. This gives the AI a compact reference for verifying API usage. Raw JavaDoc HTML is noisy and token-heavy. Instead, generate a plain-text/Markdown API index from your exact 8.4 build: run javap -public over the key packages in identityiq.jar (sailpoint.object, sailpoint.api, sailpoint.tools, sailpoint.connector) and save the output as .txt or .md files. These are small, accurate signatures that fit easily in context. Keep the JavaDoc for the descriptions and behavior of the main classes (SailPointContext, Identity, Link, Bundle, ProvisioningPlan, QueryOptions, Filter).
2. Add project-specific instructions.
For Claude Code, a CLAUDE.md file can instruct the assistant to target your specific IIQ version, verify SailPoint API signatures before using them, respect the Rule’s declared <Signature> inputs and return type, and flag anything it cannot verify. Apply equivalent project instructions in other coding assistants.In Claude Code, use a CLAUDE.md (Project instructions) with rules such as:
- Target IIQ 8.4 and BeanShell (Java-like syntax, no generics or lambdas).
- Only use classes and methods that appear in the provided API reference. If unsure, say so rather than guess.
- Always use the Rule’s declared
<Signature> inputs (context, log, identity, plan, etc.) and never invent variables.
- Use
context.getObjectByName(...), Filter/QueryOptions, and remember to context.decache() in loops.
3. Introduce validation and testing.
A lightweight script could check generated code against the API reference for common unsupported method calls. Treat this as a preliminary check rather than a complete BeanShell validator, since overloads, inheritance, and dynamic method resolution complicate static analysis. Test the resulting Rules in a non-production IIQ environment.
- Script a check that extracts method calls from generated code and verifies them against the
javap output.
- Optionally compile the logic as plain Java against
identityiq.jar on the classpath as a quick sanity check before pasting into a Rule (BeanShell is more forgiving, so this catches bad signatures).
- Always test in a non-production instance, and use the console (
iiq console) to run rule / checkRule-style tests on small data sets.
4. MCP/RAG is optional.
If you want something reusable across tools, a small MCP server that exposes “search class” and “get method signatures” over the javap index is realistic and works with Claude (and any MCP-capable client). But with a compact API index plus a good instruction file, most teams get 90% of the benefit without it.
The key point is that JavaDoc tells the AI what should exist, and javap against your jar proves what does exist in your version.