Simulator.Company files & attachments specialist. Use when the user wants to upload a file, attach a document/image to an actor or comment, list/rename/detach workspace files. Activate when the user says "upload a file", "attach this document", "add an attachment", "rename the file", "detach the file", "list workspace files", "завантаж файл", "прикріпи файл/документ", "відкріпи вкладення", "загрузи файл", "прикрепи документ". For setting an actor's picture/avatar use the `uploadActorPicture` ...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add corezoid/simulator-ai-plugin --skill simulator-attachments --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Simulator Attachments?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/corezoid-simulator-attachments)More formats (shields.io, HTML) on the badges page.
---
name: simulator-attachments
description: >
Simulator.Company files & attachments specialist. Use when the user wants to upload a
file, attach a document/image to an actor or comment, list/rename/detach workspace files.
Activate when the user says "upload a file", "attach this document", "add an attachment",
"rename the file", "detach the file", "list workspace files", "завантаж файл",
"прикріпи файл/документ", "відкріпи вкладення", "загрузи файл", "прикрепи документ".
For setting an actor's picture/avatar use the `uploadActorPicture` engine tool; for
comments that carry files use `simulator-reactions`.
---
> **Curated tool names (v2 server):** `uploadBase64`, `getAttachments`, `getActorAttachments`,
> `addAttachments`, `updateAttachment`, `removeAttachments`. Plus the engine tools
> `uploadActorPicture` / `uploadActorPictureBulk` for actor avatars. Call them by these exact names.
# Simulator.Company Files & Attachments Specialist
A **file** is uploaded once into the workspace and becomes an **attachment record** (with an
`attachId`). You then **link** that record to actors or reactions. Listing, renaming and
unlinking operate on the record.
> **Relationship to the other skills**
> - **`simulator-reactions`** — a comment can carry files via its `attachments:[{attachId}]`.
> - **`simulator-actors`** — `uploadActorPicture` sets an actor's avatar (an engine tool, not here).
## The flow: upload → attachId → link
1. **Upload** the bytes → get the attachment record (`attachId`, stored `fileName`).
2. **Link** the `attachId` to an actor/reaction (or pass it in a reaction's `attachments`).
3. **Manage** it later (rename, list, unlink).
## Workspace context
`uploadBase64`, `getAttachments`, `addAttachments`, `removeAttachments` take an `accId`
(workspace id) — it defaults to the configured workspace if omitted. `updateAttachment`
is addressed by `attachId` only.
---
## Upload a file
```
uploadBase64(
accId="ws_xxx", # optional — defaults to the configured workspace
file="<base64 string>", # prefer RAW base64; a data:<mime>;base64, prefix is also stripped server-side
originalName="report.pdf", # sets the type + title
ttl=0) # seconds; 0 = permanent
# → returns the attachment record incl. attachId + fileName
```
> Prefer raw base64. A `data:` URI prefix is accepted and stripped server-side, but raw base64
> is the safe default. Multipart uploads are not a curated tool — use `uploadActorPicture` for
> actor images, or `uploadBase64` for everything else.
## Link / unlink files
```
addAttachments(accId="ws_xxx", items=[
{ "attachId": 5521, "actorId": "<actor or reaction UUID>" }
])
removeAttachments(accId="ws_xxx", items=[
{ "attachId": 5521, "actorId": "<actor or reaction UUID>" }
]) # unlinks; does NOT delete the stored file
```
## List & rename
```
getAttachments(accId="ws_xxx", limit=50, orderBy="created_at", orderValue="DESC") # all files in the workspace
getActorAttachments(actorId="<actor UUID>", limit=100) # only files linked to one actor
updateAttachment(attachId=5521, title="Q3 report.pdf")
```
> Use `getActorAttachments` when you want a single actor's files; `getAttachments` lists the
> whole workspace. `getActorAttachments` is addressed by `actorId` (no `accId`).
## End-to-end: attach a PDF to an actor
```
# 1. upload
uploadBase64(originalName="contract.pdf", file="<base64>") → attachId 5521
# 2. link it to the actor
addAttachments(items=[{ "attachId": 5521, "actorId": "<actor UUID>" }])
# (or attach to a comment instead — see simulator-reactions: createReaction(..., attachments=[{attachId:5521}]))
```
---
## Reference Documents
| Path | When to read |
|---|---|
| `$CLAUDE_PLUGIN_ROOT/docs/entities/attachments.md` | Attachment model, statuses, storage, virus-scan flow |
| `$CLAUDE_PLUGIN_ROOT/docs/entities/reactions.md` | Attaching files to comments |
## Tips
- Upload first to get an `attachId`, then `addAttachments` (or a reaction's `attachments`).
- `removeAttachments` only **unlinks** — it does not delete the stored bytes.
- `uploadBase64` prefers raw base64; a `data:<mime>;base64,` prefix is stripped server-side.
- For an actor's avatar/picture use `uploadActorPicture` (handles URL / local path / base64, auto-rasterises SVG).
- `addAttachments`/`removeAttachments` `items` need BOTH `attachId` and `actorId` per entry.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!