| name | benchos-standard |
| description | Standard BenchOS workflow for workspace updates, memory operations, and LabBook API tasks via benchos-cli. Use for routine BenchOS execution requests (files, memory, APIs, onboarding rules). |
| license | Proprietary |
| compatibility | Requires BenchOS agent runtime with `labbook_cli` available and `benchos-cli` in PATH. |
| metadata | {"author":"benchos","version":"2"} |
| allowed-tools | labbook_cli |
BenchOS Standard Skill
Use this skill whenever the user asks for standard BenchOS tasks:
- Read or write files in
/workspace
- Maintain long-term memory and daily notes
- Call LabBook API routes from inside the agent runtime
Required Tool
Use the labbook_cli tool with args values that call benchos-cli subcommands.
Command Patterns
Inspect runtime context
{"args": ["whoami"]}
Workspace operations
{"args": ["workspace", "ls", "."]}
{"args": ["workspace", "read", "LAB.md"]}
{"args": ["workspace", "write", "LAB.md", "--content", "..."]}
{"args": ["workspace", "write", "USER.md", "--content", "..."]}
Memory operations
{"args": ["memory", "ensure"]}
{"args": ["memory", "remember", "--fact", "User prefers 24h time", "--section", "User preferences"]}
{"args": ["memory", "note", "--note", "Initialized onboarding context"]}
API operations
{"args": ["api", "--method", "GET", "--path", "/api/agent/status"]}
{"args": ["api", "--method", "GET", "--path", "/api/uniprot/Q9UNN5/domains"]}
{"args": ["api", "--method", "GET", "--path", "/api/calendar/experiments"]}
{"args": ["api", "--method", "POST", "--path", "/api/calendar/experiments", "--body", "{\"experiment\":{\"title\":\"CryoEM screen\",\"project\":\"Example Lab\",\"startDate\":\"2026-03-03\",\"endDate\":\"2026-03-03\"}}"]}
{"args": ["api", "--method", "GET", "--path", "/api/equipment-calendar"]}
{"args": ["api", "--method", "POST", "--path", "/api/equipment-calendar/bookings", "--body", "{\"bookings\":[{\"title\":\"Talos slot\",\"date\":\"2026-03-03\",\"start\":\"09:00\",\"end\":\"10:00\",\"equipmentIds\":[\"<equipment-id>\"],\"notes\":\"Auto-booked\"}]}"}}
{"args": ["api", "--method", "POST", "--path", "/api/registry/157/attachments", "--file", ".chat-context/TIM-TIPIN.dna"]}
{"args": ["api", "--method", "GET", "--path", "/api/registry/157/attachments"]}
{"args": ["skills", "list"]}
{"args": ["skills", "create", "--name", "benchos-protocol-notes", "--description", "Lab-specific protocol conventions."]}
{"args": ["skills", "request-share", "--name", "benchos-protocol-notes", "--note", "Validated by user; request shared rollout."]}
Search operations
{"args": ["search", "entries", "--query", "akt"]}
{"args": ["search", "registry", "--query", "TIM", "--kind", "Plasmid"]}
Safe execution and web access
{"args": ["capabilities", "list"]}
{"args": ["capabilities", "install", "--name", "node-basic"]}
{"args": ["capabilities", "install", "--name", "python-basic"]}
{"args": ["exec", "--capability", "node-basic", "--cwd", ".", "--", "scripts/example.mjs"]}
{"args": ["exec", "--capability", "python-basic", "--cwd", ".", "--", "-c", "print('hello from python')"]}
{"args": ["web", "allowlist"]}
{"args": ["web", "fetch", "--url", "https://www.uniprot.org/uniprotkb/P05067/entry"]}
Registry/SeqViz attachment rule
- A file uploaded into
/workspace or .chat-context is not a Registry attachment yet.
- To make SeqViz render, upload the file to
/api/registry/:id/attachments and then confirm it appears in GET /api/registry/:id/attachments.
- Only report success after the attachment endpoint returns
200 and the new attachment is listed.
Search and API output rule
- Prefer
search for discovery because search entries returns titles only by default.
api list responses may also be compacted by default; use api --raw when the full payload is required.
Safe execution rule
- Script execution must go through curated capability packs plus
benchos-cli exec.
- Do not run arbitrary interpreters directly in the chat container when a sandboxed exec job is intended.
- Exec jobs run with no direct network access; use
benchos-cli web fetch for allowlisted sites.
- Skills should rely on curated capability packs for extra runtimes or packages; do not install
pip, npm, or OS packages inside the persistent sandbox at runtime.
User vs Shared skills
- New skills authored by a user must be created as user-local via
benchos-cli skills create.
- User-local skills are private to that user's agent.
- Shared rollout requires an explicit request via
benchos-cli skills request-share and admin approval.
Universe / UniProt lookups
- For UniProt domain annotations, call
/api/uniprot/:id/domains.
- Universe compatibility aliases also exist:
/api/universe/uniprot/:id/domains and /api/universe/:id/domains.
- Prefer the canonical route (
/api/uniprot/:id/domains) in new prompts.
Calendar and Equipment rules
- To create calendar events, use
/api/calendar/experiments (or /api/lab-calendar/experiments alias).
- To create equipment bookings, use
/api/equipment-calendar/bookings (or /api/bookings and /api/equipment/bookings aliases).
- Legacy aliases available if encountered in old prompts/tools:
/api/calendar-events, /api/schedule, /api/resource-bookings, /api/equipment-calendar/events.
- Do not treat
/api/entries metadata as the source of truth for Lab Calendar or Equipment Calendar views.
- Never prefer
/api/entries when the user asks for true calendar booking/event creation.
Onboarding and Long-term Memory Rules
- Start onboarding with:
Hello <user>, can you answer several questions to help me be of assistance to you?
- Do not ask onboarding detail questions until the user explicitly agrees.
- If onboarding placeholders exist in
USER.md or LAB.md, ask one focused question at a time.
- After each user answer, write updates immediately to workspace files.
- Keep onboarding profile/context facts in
USER.md, LAB.md, STOCKS.md, and TOOLS.md.
- Do not store onboarding profile facts in memory files.
- Capture session events with
memory note.