contributor-context
Contributor context for coding agents working in this repository. Human contributors should start with `README.md` and…
<!-- GENERATED from docs/api/troubleshooting.md by scripts/build-agent-skill.mjs. Do not edit. -->
$ npx -y skills add crossbind/crossbind --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
<!-- GENERATED from docs/api/troubleshooting.md by scripts/build-agent-skill.mjs. Do not edit. -->
<!-- GENERATED from docs/api/troubleshooting.md by scripts/build-agent-skill.mjs. Do not edit. -->
> When a crossbind build or runtime fails, **don't bypass the system** — almost every common error has a designated override mechanism. This doc lists the errors agents actually hit and routes each to the right override (catalogued in [`overrides.md`](./overrides.md)).
The recovery rule:
1. Read the error literally. 2. Identify which layer it lives in (binding-time / build-time / link-time / runtime / hosting). 3. Reach for the **least invasive** override (target filter → targetSpecs → env → build hooks → extensions). 4. Don't manually edit crossbind source, generated artifacts, or upstream library code outside `replaceList`.
---
crossbind expected a `dist/` from a dependency that hasn't been built yet.
The linker can't find a symbol your code references.
**Fix:** add the family dependency and its matching platform-variant dependency in `package.json`. See ADR-0002.
**Fix:** `crossbind.build.js` `replaceList` to rename one set of symbols, or `targetSpecs[].specs.ignoreLibName` to suppress the duplicate.
Linker can't find a library file, but the dep IS declared.
Two libs define the same function.
A multithread (`mt`) wasm link pulled in a Rust archive whose objects (std included) were built without the atomics features. Current crossbind cannot produce such an archive — mt Rust builds go through nightly `-Zbuild-std` or fail with install instructions — so the usual source is a **stale cargo-type package prebuilt** built before mt support.
package, with `rustup toolchain install nightly --component rust-src` done once) or update to a package version whose mt prebuilt was built that way.
Upstream library uses CPU-specific code that doesn't compile for Wasm.
replaceList: [{
regex: /CPL_CPUID\(1, cpuinfo\);/g,
replacement: '#ifdef __wasm__\ncpuinfo[0]=0;\n#else\nCPL_CPUID(1, cpuinfo);\n#endif',
paths: ['port/cpl_cpu_features.cpp'],
}]`buildType: 'configure'` but the configure script can't find a dep header / lib.
Emscripten itself ran out of memory during compilation.
curl-ios SDK 26+ specific.
Upstream lib has a tool / utility that's built and signed, but you don't have a dev cert.
---
Your C++ function violated a binding rule. See [`cpp-binding-rules.md`](./cpp-binding-rules.md).
Auto-generated `.i` doesn't fit. Write a manual one — see [`swig-escape.md`](./swig-escape.md).
Function not in the public binding surface.
Import C++ and Rust like JavaScript modules (WebAssembly & React Native)
Contributor context for coding agents working in this repository. Human contributors should start with `README.md` and…
<!-- GENERATED from docs/api/app.md by scripts/build-agent-skill.mjs. Do not edit. -->
<!-- GENERATED from docs/api/build-state.md by scripts/build-agent-skill.mjs. Do not edit. -->
<!-- GENERATED from docs/api/conan.md by scripts/build-agent-skill.mjs. Do not edit. -->
<!-- GENERATED from docs/api/cpp-binding-rules.md by scripts/build-agent-skill.mjs. Do not edit. -->