.agents/skills/fix-client-bug/SKILL.md
Fix bugs or add features in the @mysten/sui client layer (gRPC, JSON-RPC, GraphQL). Ensures all three transport implementations stay in sync.
npx skillsauth add mystenlabs/ts-sdks fix-client-bugInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this workflow when making changes to Core API methods in packages/sui/src/. The key architectural constraint is that the three transport implementations (gRPC, JSON-RPC, GraphQL) must always produce identical results for the same Core API call.
packages/sui/src/client/core.ts.packages/sui/src/client/types.ts.packages/sui/src/grpc/core.tspackages/sui/src/jsonRpc/core.tspackages/sui/src/graphql/core.tsCoreClient (not abstract), check whether the bug is in the shared logic or in a method it delegates to.Do not stop after reading one implementation. A bug in one transport very often exists in a different form in the others.
If the change affects the return type in src/client/types.ts:
$kind discriminated union pattern for any polymorphic data. Search types.ts for $kind to see how ObjectOwner, TransactionResult, ExecutionError, etc. are structured.(item): SuiClientTypes.SomeType => { ... }) to catch type mismatches at the implementation site.src/grpc/core.ts)readMask.paths array — fields not listed here are not returned by the server.src/grpc/proto/ to discover available fields.src/graphql/core.ts).graphql query file in src/graphql/queries/.pnpm --filter @mysten/sui codegen:graphqlsrc/graphql/generated/queries.ts with new typed document nodes.src/jsonRpc/core.ts)src/utils/ (e.g., deriveDynamicFieldID, normalizeStructTag) may be needed.packages/sui/test/e2e/clients/core/.testWithAllClients to run the test across all transports.expectAllClientsReturnSameData to assert identical results across clients.test/e2e/data/shared/test_data/sources/.pnpm turbo build --filter=@mysten/suipnpm --filter @mysten/sui oxlint:checkpnpm --filter @mysten/sui testpnpm prettier:checkminor if you're adding new fields or types to the public API, patch for internal-only fixes.testing
Fix pnpm audit vulnerabilities. Upgrades packages, adds overrides, handles minimumReleaseAge restrictions, and cleans up stale overrides.
data-ai
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
development
Write and maintain SDK documentation in packages/docs/content/. Use when adding new doc pages, updating existing docs, or modifying the documentation structure. Ensures frontmatter, meta.json, and LLM index stay in sync.
tools
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.