# Where should my skill write files, and which path forms work?

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. Write with bare or relative filenames and both will agree. Absolute session paths handed to the file tools are rejected outright rather than translated, which is the single most common way a working skill breaks when moved into Cowork. The uploads location is read-only; the outputs location is where deliverables belong.

### Treat a folder the user connected as a separate mount with its own rules, not as part of the workspace.

*Measured*

Connected folders appear as their own mounts alongside the outputs location. Permissions are tracked per mount, so a capability granted for one does not extend to another. A skill that assumes one uniform writable area will be surprised the first time it touches a connected folder.

### Do not assume a connected project gives you a folder mount. It does not.

*Measured*

Connecting a project and connecting a folder are different actions producing different results. A session with a project attached and no folder attached has no folder mount at all, and a skill that looks for one will find nothing.

### Write files using bare or relative filenames, not absolute paths.

*Measured*

Your skill's shell commands and its file-reading and file-writing tools operate on the same underlying scratch space, but each refers to it by a different absolute path. A relative filename is correct for both. An absolute path is correct for at most one of them, and which one changes between configurations.

### Do not leave anything you want the user to see in the working directory alone.

*Measured*

The directory your skill works in is a scratch space the user does not see. Files there are not presented, not listed, and on one lane not retained. Producing a file is a separate act from delivering it, and the working directory is on the wrong side of that line.

### Never pass an absolute session path to the file tools. It is denied, not translated.

*Measured*

When a skill discovers an absolute path from shell output and hands it to a file-reading or file-writing tool, the call is rejected. Nothing rewrites it into the form those tools expect. This is the most common way a skill that works in the CLI fails in Cowork, and the error does not point at the path form as the cause.

### Treat your own skill's files as read-only at runtime.

*Measured*

A skill's own directory is made available to the session as a mount you should not expect to write back to. Generate into the outputs location instead. A skill that rewrites its own files to keep state will not carry that state anywhere useful.

### Treat the uploads location as read-only and write everything to the outputs location.

*Measured*

Uploaded files are mounted read-only. Attempting to write there fails. Deliverables belong in the outputs location, which is writable and is also what the delivery mechanisms operate on.

## What is not established

- The exact path form the shell sees has changed shape across releases. Relative paths have been stable throughout; absolute forms have not. Prefer relative for that reason, not merely for tidiness.

---

Consistent with the capture of 2026-08-05. Exact artifact versions and capture identity are on the current-state page. This documentation does not detect product changes.
