From iris-dev
Perform coordinated fixes across multiple ObjectScript files when changes in one class require updates in dependents like method signatures or renames.
npx claudepluginhub intersystems-community/iris-devThis skill uses the workspace's default tool permissions.
This skill provides a procedure for handling ObjectScript repairs that span multiple files.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
This skill provides a procedure for handling ObjectScript repairs that span multiple files.
When a change is made to a class member, identify all call sites before touching any file.
docs_introspect(class_name) — confirms the current method signature and shows the full class definition from %Dictionaryiris_symbols(query="ClassName.*") — lists all members of the classGrep (regex search across .cls files) — finds every reference to the old symbol nameClassMethod, Method, or Property change before writing any edits.Update the repair plan to include all affected files.
target_files list should contain the root cause file first, followed by all dependent files.Apply edits to all target files in a single pass.
Edit tool for each file in dependency order (definitions before callers).Always verify the workspace as a whole after the full patch is applied.
iris_compile(target="Package/SubPackage/ClassName.cls") — compile each changed file by path; fix any errors before proceeding to the next fileiris_testgit checkout -- <file> (via Bash) before starting the next attemptContext: A method signature is modified (parameters added, removed, or types changed). Discovery:
docs_introspect on the class to capture the current signature.Grep to find all callers of the method across .cls files.Context: A class name or a public property/method is renamed. Discovery:
Grep to find all occurrences of the old symbol name across the workspace.iris_symbols to confirm the old name no longer appears in the live IRIS namespace after renaming.
Transformation:##class(OldName) to ##class(NewName) everywhere.Context: An abstract class or interface is updated, requiring all subclasses to be updated. Discovery:
Grep to find all classes that Extends the modified class.docs_introspect on each subclass to see which methods they currently implement.
Transformation:iris_compile without a file path — always pass the .cls file path, not a wildcard.