Artifacts
Artifacts are the files generated by a skill run. They are separated from skill source, run logs, and local preferences.
Folder contract
.skills/
exports/
<skill>/
<run-id>/
manifest.json
receipt.json
generated-files...
runs/
YYYY-MM-DD/
<run-id>/
run.json
artifacts.json
events.ndjson
logs/
stdout.log
stderr.log
project.json
tmp/
Run state is date-segmented: .skills/runs/YYYY-MM-DD/<run-id>/ holds one directory per run, where YYYY-MM-DD is the day the run started and <run-id> is its stable execution id. run.json is the run record, artifacts.json lists the exported files with checksums, events.ndjson appends one JSON line per state change, and logs/ holds the captured stdout.log and stderr.log.
Pins for commonly used remote skills are stored as a JSON key inside .skills/project.json, not in a directory. .skills/tmp/ is temporary scratch space used while a skill runs.
Run record fields
The run record (run.json) mirrors the SkillRunRecord shape:
| Field | Purpose |
|---|---|
id | Stable id for the execution. |
skill | Registry skill name, without skill-. |
status | queued, running, completed, or failed. |
startedAt | Run start timestamp. |
completedAt | Completion timestamp, when the run finished. |
prompt | Sanitized prompt for the run, when provided. |
args | Argument list passed to the skill. |
remote | Whether the run executed on a remote worker. |
remoteRunId | Skills server run id for hosted runs. |
costCents | Legacy credit-amount field; it is not a currency amount. |
error | Failure message, when the run failed. |
artifacts | Exported files with relative path, media type, sha256, and byte size. |
paths | Project-relative run, export, and log directories. |
artifacts.json carries the same runId and artifacts entries so consumers can read the file list without the full record.
Download behavior
Worker writes private storage
Remote workers upload artifacts to private storage and record checksums.
API issues controlled downloads
The API signs or proxies artifact reads only for the owning organization.
CLI materializes exports
The CLI writes files under .skills/exports/<skill>/<run-id>/ and stores local run metadata separately.
Initial hosted output
blog-article generates article Markdown, HTML and JSON plus a manifest. Inspect skills --profile skills-md runs artifacts <run-id> --json for the actual file list, then use skills --profile skills-md exports download <run-id> --json to download it. The client verifies byte size and SHA-256 metadata before writing files and protects existing files from overwrite. Other catalog examples do not imply hosted execution is enabled.