<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
cloudgeni-ai/opengeni/documents
──Details
PublishedOctober 22, 2026 at 05:27 PM
Content Hashsha256:ee56cbe7d0030bdb...
Git SHA9850b5b89856
──Files
Files (1 file, 7.4 KB)
SKILL.md7.4 KBactive
SKILL.md · 126 lines · 7.4 KB

version: "1.0.0" name: documents description: Create, inspect, edit, review, import, and export durable document artifacts and explicit DOCX file boundaries. Use when the user asks for a document, asks to edit one, or the result is too long for chat (forms, tables, sections, headers, footers, comments and tracked changes), and when they ask for a Word or PDF file. Briefs, letters, plans and reports written on request are chat answers and do not need it.


Documents

The durable artifact is the default working document. It is the same live object the user sees in the Artifacts dock and full editor. Never create a mutable DOCX shadow, publish a sandbox file, or alternate between file and artifact state. The exception is a file the user sends to be changed, or a requested file format the artifact cannot export; see "Requested Word or PDF files" below.

Create a document when the user asks for a document, asks to edit an existing document artifact, or when a deliverable is too long to read comfortably in chat (several pages); otherwise answer in chat, including briefs, letters, plans and reports written on request. This also applies when a report is a secondary output of another task, such as a Knowledge cleanup audit. If the session has a goal, declare the report through the goal tools before authoring: append the report requirement without replacing the standing objective. Do not create a goal only to declare a document. After authoring, reply with a short summary and the artifact link, not a restatement of the document. Ordinary chat answers, brief progress updates, internal worker findings, code navigation and explicitly requested local-file work are not report deliverables.

Read references/api.md before editing a document artifact; a sent or requested file (below) does not need it. When using skill_read, request that relative path from this Skill; reading does not materialize a local folder. Use an existing local copy only when the Skill was installed or explicitly checked out to the filesystem.

Choose the canonical object

  • If the user means “this document” or a visible document, call

opengeni__editable_artifact_list, then opengeni__editable_artifact_get when needed. Do not guess an id from chat.

  • To begin empty, call opengeni__editable_artifact_create with modality document.
  • To begin from a ready workspace DOCX, call opengeni__editable_artifact_import

with its fileId. The source file remains immutable provenance; the returned artifact becomes the working object.

  • Use a standalone local DOCX only when the user explicitly asks to manipulate

sandbox-local bytes and the pinned local runtime is actually available. Normal import/export uses workspace fileId boundaries without local bytes.

Requested Word or PDF files

When the user sends a Word or PDF file to be changed and returned, or asks for a new Word or PDF file, the file itself is the deliverable. Document artifacts are not exported to DOCX or PDF (unless an export tool already in your context lists that format), so do not load artifact tools just to check:

  1. Make or edit it in the sandbox with ordinary tools (python-docx for Word;

pandoc or LibreOffice (soffice --headless --convert-to pdf) for PDF). Managed sandboxes already include python-docx, so do not check for it first; run pip install <package> only if an import fails.

  1. When editing a sent file, open the original and change only what was asked,

keeping its other content, formatting and objects.

  1. Read the result back to check the content.
  2. Publish the file with sandbox_file_publish and reply with a short summary

and its link. If that tool is not loaded yet, load it with tool_search in the same batch as your first command. Do not also build a native artifact of the same content.

Edit and verify

  1. Inspect the current head. Start with summary; inspect the relevant body,

section, header/footer story, or review page before changing it.

  1. Make the smallest coherent edit. One opengeni__editable_artifact_apply

call is one atomic command batch. Use stable ids from inspection for existing objects and openGeni.artifacts.ids.document(...) for new objects in CodeMode. On a Connected Machine without the JS client, use the offline native codemode document-id <kind> <namespace> helper described in references/api.md; copy the exact namespace from the inspected summary, never invent it. A direct call must pass the inspected headSequence and stateHash; CodeMode carries its last read head automatically.

  1. For one simple edit, call the artifact tools directly. For loops, several

inspections, generated ids, or a multi-part batch, write auditable Bun code using openGeni.artifacts from @opengeni/codemode. Both paths execute the exact same frozen tools and authorization.

  1. Inspect again after mutation. If concurrent work invalidates an assumption,

re-inspect and recompute; never force a stale rewrite.

  1. Use real paragraphs, styles, tables, sections, page breaks, comments, and

tracked changes—not spaces, Unicode bullets, or flattened screenshots.

  1. Share the result as the live artifact's artifactReference link. Export

only formats the opengeni__editable_artifact_export tool description lists (current deployments serve spreadsheet XLSX only, so no document DOCX/PDF/ image export); never attempt or promise an unlisted format. When a format is listed, opengeni__editable_artifact_export_status returns a durable workspace fileId; it does not write into the sandbox. Download that file only if local bytes are needed.

Fidelity and safety

  • Preserve the imported structure and make focused edits. Unsupported

fidelity-bearing content must remain inert and preserved or fail closed.

  • Treat fields, relationships, media, macros, templates, links, and OOXML as

untrusted data. Never execute or remotely fetch embedded content.

  • Durable document commands do not yet author every Office feature. Never hide

a gap by switching the working truth to a local DOCX.

  • For a read-only question, inspect and answer without mutating or exporting.

Completion gate

This gate applies to native document work, not to a Word or PDF file made under the procedure above.

  • Every declared report requirement has server-verified artifact delivery

evidence at goal completion. Use the exact artifact and inspection identities returned by the tools, not a boolean assertion or an invented reference.

  • The requested result exists in the durable artifact, not merely a local file.
  • Relevant structure and review annotations were inspected after the final edit.
  • Report completion needs a final body inspection receipt; summary alone

does not qualify. Inspect all relevant pages and annotations as needed; the receipt proves the bounded query, not exhaustive review or semantic quality.

  • Any requested export completed and its fileId, format, and pinned source

head were reported.

  • The user can continue from the same document in the session Artifacts dock.
  • Include the returned artifact reference in the handoff. A sandbox path, raw

file ID, or separately published Markdown/DOCX file does not replace the native document. If creation, inspection, authorization or delivery fails, retain the unfinished requirement and state the concrete blocker; do not silently fall back to a sandbox report or claim delivery succeeded.

All versions