What problem does it solve? When writing full-stack Jac applications, developers often cannot tell why a declaration landed in the JavaScript bundle, stayed on the server, or compiled to native code, leading to leaked secrets, broken imports (E5082), and runtime errors like constructing shared archetypes client-side. ## Core Features & Use Cases - Placement inference rules: Documents how JSX and string-path npm imports mark code as client, extern C declarations seed native placement, and unmarked code defaults to server. - Reference propagation semantics: Explains how helpers, globs, and imports referenced by client code join the bundle, why propagation stops at module boundaries, and how auto-shared obj/node/edge/walker archetypes cross the wire. - Explicit overrides: Covers cl/sv/na block, statement, and file-extension markers, including sv pinning for secrets and sv import for RPC and microservice boundaries. - Use Case: A developer sees error E5082 after importing a helper from a plain module into client code; this Skill explains the boundary rule and the .cl.jac pinning fix. ## Quick Start Ask the agent to explain why a specific Jac declaration compiled to the wrong codespace and how to pin it with sv or a file-extension marker.