计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
intercom-upgrade-migration【效率与协作】Upgrade the intercom-client SDK across major versions and handle Intercom API version changes safely. Use when a project is pinned to an old intercom-client release, when the v5 CommonJS API must move to the v6 TypeScript rewrite, or when detecting breaking changes in a new Intercom release before shipping. Trigger with phrases like "upgrade intercom…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: intercom-upgrade-migration description: | Upgrade the intercom-client SDK across major versions and handle Intercom API version changes safely. Use when a project is pinned to an old intercom-client release, when the v5 CommonJS API must move to the v6 TypeScript rewrite, or when detecting breaking changes in a new Intercom release before shipping. Trigger with phrases like "upgrade intercom", "intercom migration", "intercom breaking changes", "update intercom SDK", "intercom API version". allowed-tools: Read, Write, Edit, Bash(npm:), Bash(git:) version: 1.6.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io argument-hint: "[current-version] [target-version]" tags:
Upgrade the intercom-client npm package and handle Intercom API version
changes without breaking production traffic. The v6 TypeScript rewrite changed
the API surface — most notably unifying users/leads into a single contacts
API — so this skill drives a branch-based, type-checked upgrade that surfaces
every breaking change through the compiler and test suite before merge.
Deep material lives in references/ so this file stays scannable:
intercom-client already installed (npm list intercom-client
shows the current version).tsc) configured if migrating to v6+, since the compiler is the
primary breaking-change detector.Intercom API calls authenticate with a workspace access token passed as a Bearer
token. Read it from the INTERCOM_ACCESS_TOKEN environment variable — never
hardcode it. Version-detection curls and the integration test step both consume
this variable:
export INTERCOM_ACCESS_TOKEN="<workspace-access-token>" # from Intercom > Developer Hub
Use a separate dev-workspace token ($DEV_TOKEN) for the integration test step
so the upgrade is validated without touching production data.
Follow the workflow at a high level here; drill into the migration guide for the exact code diffs.
Read (with the Read tool or npm list) the installed version, the latest
published version, and the live API version to size the upgrade:
npm list intercom-client # installed SDK version
npm view intercom-client version # latest available
curl -s -D - -o /dev/null \
-H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
https://api.intercom.io/me 2>/dev/null | grep -i intercom-version
If the installed major is < 6 and the target is ≥ 6, expect the TypeScript-rewrite breaking changes.
For a major crossing, apply the breaking-change diffs with the Edit/Write
tools: swap new Intercom.Client() for new IntercomClient(), move
users/leads calls to the unified contacts API, rename positional params
(id → contactId/conversationId), and update error handling to the
IntercomError instance check. The full before/after set and a one-line-per-method
cheat sheet are in the migration guide.
The SDK sends a compatible Intercom-Version header automatically. Pin it
explicitly only when using raw fetch requests or when a response shape must be
frozen — see the API-version-pinning section of the migration guide.
Do the whole upgrade on a dedicated branch so TypeScript and the tests gate it:
git checkout -b upgrade/intercom-client-v6
npm install intercom-client@latest
npx tsc --noEmit 2>&1 | grep "intercom" # surfaces every breaking change
npm test
Fix each error the compiler reports, re-run until clean, then validate against a dev workspace and commit. The complete procedure is in the migration guide.
Running this skill produces:
upgrade/intercom-client-v6) with
intercom-client bumped in package.json / lockfile.npx tsc --noEmit run (no remaining intercom-client type errors) and
a green npm test / integration run against a dev workspace.chore: upgrade intercom-client to v6.| Issue | Detection | Solution |
|---|---|---|
Cannot find module 'intercom-client' | Import fails | npm install intercom-client |
Property 'users' does not exist | TypeScript error | Migrate users/leads to contacts |
Property 'id' does not exist | Changed param names | Use contactId, conversationId |
| Response shape changed | Runtime errors | Check API version headers, pin Intercom-Version |
401 Unauthorized | curl/test fails | Verify INTERCOM_ACCESS_TOKEN is set and valid |
Quick skeleton — detect, then migrate one call:
npm list intercom-client # e.g. 5.4.0
npm view intercom-client version # e.g. 6.4.0 → major upgrade
// v5 → migrate to → v6
// await client.users.create({ email });
await client.contacts.create({ role: "user", email });
Three full end-to-end runs — version detection, a single-call migration, and a complete branch upgrade — are in references/examples.md.
After the upgrade branch is green, wire the version bump into CI so future
regressions are caught automatically — see the intercom-ci-integration skill
for the pipeline configuration.