Appian Discover Tech Debt
Exports an Appian application and scans every object's <definition> (SAIL markup) for references to outdated versioned functions. Appian marks deprecated functions by appending _v<number> to the function name in quoted rule references — e.g. #"SYSTEM_SYSRULES_DOSOMETHING_v1". Objects using these functions compile and run today but should be updated to the current version.
Usage
node {baseDir}/scripts/index.js <applicationUuid>
Example
node {baseDir}/scripts/index.js _a-0000de15-1f1c-8000-5130-010000010000_12559
IMPORTANT: credentials are pre-configured
APPIAN_BASE_URL and APPIAN_API_KEY are already injected by OpenClaw at runtime. Never ask the user for credentials before running this skill. Just execute it with the UUID the user provided.
How users can ask for this
- "Find Appian tech debt in application
<uuid>" - "Check Appian for outdated functions in
<uuid>" - "Which Appian objects use deprecated SAIL in
<uuid>" - "Audit Appian app
<uuid>for tech debt"
What it does
- Calls the Appian v2 Deployment Management API to export the application as a ZIP.
- Parses the ZIP in-process using Node.js built-ins — one object per XML file, type from directory name.
- Iterates every XML file outside
META-INF/. - Searches each file's content for the pattern
#"..._v<number>"(Appian's marker for outdated versioned function references). - Prints per-object findings with developer-friendly
a!functionNamedisplay names and a deduplicated summary.
After running
Relay the full skill output to the user exactly as printed — do not summarize, paraphrase, or omit any lines.
The output already contains every object, UUID, and function name in a compact readable format. Your job is to forward it verbatim, then offer to help further. Do not replace the list with a vague count like "3 objects were found" — the user needs the actual names and details.
External endpoints
POST ${APPIAN_BASE_URL}/deployments— triggers the exportGET ${APPIAN_BASE_URL}/deployments/{uuid}— polls for completionGET <packageZip URL>— downloads the resulting ZIP
Security
- Credentials (
APPIAN_BASE_URL,APPIAN_API_KEY) are read from environment variables (injected by OpenClaw at runtime). If not injected, falls back toappian.jsonin the current working directory. - The ZIP is written to
~/appian-exports/and mirrored toCWD/appian-exports/when running in a container. - No data is sent to any third-party service.
- No shell commands are executed; ZIP extraction uses Node.js built-in
zlib.