# Claude Code Internals > Unofficial, reverse-engineered reference derived from shipped binaries and live sessions. > Each section is stamped with the build it was verified against. This site does NOT detect > product changes: behaviour served from Anthropic's side can change with no version bump. ## Cowork for skill authors - [Writing skills that survive Cowork](https://ccinternals.dev/cowork/index.md): Claude Cowork runs your skill in a sandbox with rules that differ from the Claude Code CLI in ways that will silently break an otherwise-correct skill. - [The contract: every rule on one page](https://ccinternals.dev/cowork/contract.md): This page is generated from the rules on every other page, in order, with no additional prose. - [Where should my skill write files, and which path forms work?](https://ccinternals.dev/cowork/files-and-paths.md): Your skill's shell commands and its file tools operate on one shared scratch space, but they refer to it by two different path forms. - [Why did my skill's output never reach the user?](https://ccinternals.dev/cowork/delivering-outputs.md): Cowork runs in two different execution lanes, and they disagree about what 'delivering a file' means. - [Why does deleting a file fail, and what should my skill do?](https://ccinternals.dev/cowork/deleting-files.md): Every Cowork-mounted directory denies exactly two operations by default: removing a file and removing a directory. - [What does my skill's shell see?](https://ccinternals.dev/cowork/shell-commands.md): The shell your skill runs commands in is sealed: environment variables you set on the host do not reach it, and neither do exports written by hooks. - [How should my skill detect that it is running in Cowork?](https://ccinternals.dev/cowork/detecting-cowork.md): A naive environment-variable check false-negatives in exactly the configuration that matters most, because the part of your skill that runs shell commands runs somewhere with none of those markers set. - [Will my plugin's hooks and scripts run in Cowork?](https://ccinternals.dev/cowork/plugins-and-plugin-root.md): Yes — plugin hooks do fire in Cowork. - [What changes when my skill dispatches sub-agents?](https://ccinternals.dev/cowork/sub-agents.md): Sub-agents run under the same containment as the main thread — they are not a way to escape a path restriction or a permission prompt. - [What can change without any version bump?](https://ccinternals.dev/cowork/what-can-change-under-you.md): A large amount of Cowork's behaviour is served from the operator's side rather than shipped in the application, which means it can change with no new version, no release note, and no signal to your skill. - [What this was verified against](https://ccinternals.dev/cowork/current-state.md): Everything on this site was checked against the specific artifacts recorded here. ## Machine-readable - [facts.json](https://ccinternals.dev/cowork/facts.json): every published rule with confidence tier and caveats.