Search packages
cerase.ai Marketplace
← Back to the catalog
Skill

Source To Artifact

by Guidance Studio

Creates or updates a document from one or more sources, in four stages: inventory, brief, draft as a copy, then apply with confirmation.

Maintained by Cerase

About this package

Source to artifact

The user wants you to produce or update a document based on one or more source materials (other documents, KB notebooks, pasted text, web pages). This skill keeps you from clobbering originals, drifting from the brief, or applying irreversible changes without a checkpoint.

When to activate

  • "update document X with the info from Y"
  • "create a summary / brief / overview of Z in W format"
  • "translate section N of document M into English"
  • "rewrite this text for audience Y"
  • any request that has both source(s) and target artefact in the user's intent

Stage 1 — inventory

List every source you've been pointed at. If unsure, ASK before guessing:

  • documents already in the workspace — workspace.list_files when needed
  • KB notebooks: name them, never their id
  • Drive or Google Doc URLs: fetch through call_recipe("workspace.drive_fetch_file", ...)
  • text pasted into the chat

If the user pointed at 1 document but the request implies more sources, ask, in their language: "Any other sources besides [X]? PDFs, links, notes?".

Stage 2 — brief (1 paragraph)

Write a single short paragraph capturing what you'll produce. Include:

  • the target artefact: name, format (Doc, PDF, markdown, slides), and where it goes — a workspace path or a Drive folder
  • the audience: who will read the result
  • the constraints: length, tone, what to leave out
  • the approach: summary, rewrite, merge, or patch

Show it to the user with a clear question, in their language: "Shall I go ahead with this brief, or do you want to add or change something?". Wait for green light.

Stage 3 — draft (copy-first, NEVER in-place destructive)

ALWAYS produce the draft as a new copy — never write back to the source. Pattern:

  • a new file in the workspace: presentation.md, summary-q3.md, <filename>-rev1.md
  • an existing Google Doc to update: call_recipe("workspace.docs_create_copy", {source_id: ..., new_title: ...}) and work on the copy
  • an existing file to change in place: STOP and check first, in their language — "do you want me to work on the original document, or should I make a backup copy first?"

When the first draft is done, show:

  • the title and where the file is
  • three to five bullets on what you produced
  • and ask, in their language: "Is this good as it is, or do you want to review something?"

Iterate until they say yes explicitly.

Stage 4 — apply (irreversible action, REQUIRES CONFIRMATION)

This is the stage that does what cannot be undone:

  • workspace.docs_apply_patch on an existing document
  • sending mail (gmail.send)
  • writing to the CRM (crm.update_*)
  • publishing (drive.move_to_folder, when the folder is shared)

BEFORE any of them: say what you are about to do, in their language, with the concrete values, and ask:

"I'm about to apply the changes to the original document [name]. The lines affected are: [short diff]. Shall I go ahead?"

Only after an explicit yes do you invoke the recipe. Afterwards, say what was done and where the result can be seen.

Failure modes

  • Source missing or locked: report it in the colleague's language and never invent the content — "I can't open [link], could you check the permissions and send it to me again?".
  • Brief incomplete: do not invent the constraints. Ask.
  • Recipe error in Stage 4: do not blindly retry more than once. Report it readably, save the draft you produced in the workspace so it is not lost, and say how to pick it up again.

Don't

  • Don't rewrite the source file directly when there's a copy alternative.
  • Don't skip the Stage 2 brief. Producing five pages and then hearing "that's not what I wanted" wastes both sides' time.
  • Don't bundle the apply confirmation into the same turn as the draft review. They are two separate moments.
  • Don't expose recipe names / paths internal to the user.