skills.md
Are you an agent?

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:

FieldPurpose
idStable id for the execution.
skillRegistry skill name, without skill-.
statusqueued, running, completed, or failed.
startedAtRun start timestamp.
completedAtCompletion timestamp, when the run finished.
promptSanitized prompt for the run, when provided.
argsArgument list passed to the skill.
remoteWhether the run executed on a remote worker.
remoteRunIdSkills server run id for hosted runs.
costCentsLegacy credit-amount field; it is not a currency amount.
errorFailure message, when the run failed.
artifactsExported files with relative path, media type, sha256, and byte size.
pathsProject-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.

bun install -g @hasna/skills && HASNA_SKILLS_API_URL=https://skills.md skills --profile skills-md auth signup