bug-reproduce
Turn a known bug into a tight, red-capable reproducer, then prove the reproducer locks that…
Locate, inspect, and read content-addressed workspace assets — search by filename/metadata, describe before reading bytes, then read bounded ranges. Use whenever the user references an uploaded file, when you need to cite file evidence, or when a task input/output is an asset
$ npx -y skills add Prismer-AI/PrismerCloud --skill assets --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/assetsContext preview
The summary Claude sees to decide when to auto-load this skill.
Locate, inspect, and read content-addressed workspace assets — search by filename/metadata, describe before reading bytes, then read bounded ranges. Use whenever the user references an uploaded file, when you need to cite file evidence, or when a task input/output is an asset
name: assets scope: common description: Locate, inspect, and read content-addressed workspace assets — search by filename/metadata, describe before reading bytes, then read bounded ranges. Use whenever the user references an uploaded file, when you need to cite file evidence, or when a task input/output is an asset URI. Executes via the `cloud asset` CLI and tools.
Workspace assets are **content-addressed** (SHA-256). Each asset has a stable URI, MIME type, size, and metadata. Treat assets as **opaque bytes you must search → describe → read** in that order. Don't claim you read a file unless a CLI call actually returned its content.
cloud asset list # everything in current workspace cloud asset list --limit 20 --kind file cloud asset list --filename "design-doc*" # filename glob cloud asset list --mime "application/pdf" # by MIME cloud asset list --updated-after "2026-05-01" # recency cloud asset by-hash <sha256> # exact content lookup
cloud asset get <assetId> # full metadata, no content
# OR for in-process MCP tools (when daemon exposes them):
# prismer.asset.describe { uri | assetId | contentHash }cloud asset download <assetId> --out ./local-copy # whole file to disk cloud asset download <assetId> --offset 0 --length 4096 # first 4 KB # For LLM-friendly text extraction: cloud asset read <assetId> --offset 0 --length 4096 # text range read cloud asset read <assetId> --as-text # full text (for small text-like assets)
cloud asset upload ./report.pdf # → asset record + content hash cloud asset upload ./report.pdf --conversation-id <id> # pin to conversation cloud asset sync # refresh local cache index
1. **Search first** — use `cloud asset list` with filename / MIME / hash filters unless the user gave you an exact ID or URI. 2. **Describe before reading bytes** — `cloud asset get <id>` to confirm MIME, size, and that this is the right file. 3. **Read bounded ranges** — `--offset` + `--length`. Start with a small range (4 KB) to identify encoding/structure, then expand only if needed. 4. **Preserve the locator** — record the asset ID, content hash, and URI in your reply so the user can follow up.
After search: list matches with `<assetId> <filename> <mime> <sizeBytes>`. If 0 matches, say so and suggest broader filters.
After describe: surface MIME, size, and any structured metadata fields relevant to the user's question (page count for PDFs, dimensions for images, etc.).
After read: include the asset locator + range + content. If `truncated: true`, say "(partial — read X of Y bytes)".
When this skill resolves an **image** asset for downstream rendering, emit a ContentBlock pointing at the asset id rather than inlining bytes or a pre-signed URL into prose:
{ "kind": "image", "assetId": "<assetId>", "mediaType": "image/png", "alt": "<one-line desc>" }When it resolves an existing **file** asset (PDF, CSV, archive), do not copy it into `$PRISMER_ARTIFACTS_DIR` or create a duplicate upload. Return the existing asset through the structured ContentBlock attachment using its authoritative `assetId`:
{ "kind": "file", "assetId": "<aRepo: Prismer-AI/PrismerCloud
Turn a known bug into a tight, red-capable reproducer, then prove the reproducer locks that…
Review a diff against its acceptance criteria in four segments (convention adherence, bug…
Five-dimension design audit (frontend UI/UX · server data-model & flow · endpoint spec ·…
Before merge, mechanize Documentation-First — derive the code delta from git diff, then…
Diagnose the local dev machine before any APC loop step — run apc env doctor, classify each…
Close out a local coding task on the bound daemon — stage, commit, branch, merge, push via…