> ## Documentation Index
> Fetch the complete documentation index at: https://docs.masterskills.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# masterskills prepare

> Build a publish draft without uploading anything — the first half of the agent publish flow.

```bash theme={"dark"}
masterskills prepare [path]

masterskills prepare ./skills/review-checklist --org acme --json
```

Packages the folder and registers a **draft**: the manifest (every file with size and hash), the target `@org/slug`, the next version, and the list of secret-excluded files — plus a `draftId`. **Nothing is uploaded.** `path` defaults to the current directory.

This is the first half of the two-phase publish that keeps approval between packaging and upload:

```text theme={"dark"}
prepare  →  user reviews the manifest  →  publish-draft <draftId>
```

## Options

Same targeting options as [`publish`](/cli/publish): `--org`, `--slug`, `--name`, `--desc`, `--public` — plus `--json` for the machine-readable manifest agents parse and show to the user.

## Output

The JSON includes everything a reviewer needs to approve:

* `draftId` — pass to [`publish-draft`](/cli/publish-draft) after approval
* `name`, `nextVersion` — what will be created, e.g. `@acme/review-checklist` v4
* `manifest.files` — path, size, and sha256 of every included file, plus the total
* `excludedSecrets` — files excluded for looking like secrets. **Show every entry**; exclusions are reported, never silent
* `warnings` — anything else worth a look before approving

A prepare that fails the secret scan reports its findings and produces no draft — findings are for showing, not working around.

Validation matches `publish`: `SKILL.md` required, slug format, 100 MB / 50 MB caps, org membership.
