Files
shit_in_a_vault/.agents/skills/symposium-publish/SKILL.md
T

3.3 KiB

name, description, metadata
name description metadata
symposium-publish Publish, update, or withdraw an existing Markdown note through Symposium's host-owned review flow. Use when the user asks to publish, share, update, delete, remove, or withdraw a Symposium page.
copilot-enabled-agents copilot-builtin-version
claude, codex, opencode 8

Publish Markdown to Symposium

Require one existing Markdown source file. When the user asks to delete, remove, or withdraw its current Symposium page, do not generate HTML. Run the host wrapper with only the vault-relative source-note path. Obsidian reads the note's current identity and opens its existing management modal; the user alone chooses Update or Delete. Never tell the user to delete the page at its public URL.

For publishing or updating, finish a complete, self-contained, passive HTML document before asking Obsidian to review it. Render source-specific content such as Mermaid and Obsidian Bases into static HTML or SVG, embed images, and include no scripts, frames, forms, handlers, redirects, or external assets. Treat YAML frontmatter as note metadata: never render the raw frontmatter block as page content. The exact UTF-8 HTML must not exceed 10485760 bytes.

Write those final bytes to a new unique .html file under SYMPOSIUM_WORKSPACE_ROOT/.symposium/handoffs/, creating that directory first when it does not exist. Do not show a prose substitute or ask for confirmation in chat. Instead run the host wrapper with exactly two vault-relative paths: the source note and the staged HTML.

On macOS or Linux:

sh "/absolute/path/to/this/skill/directory/symposium-publish.sh" "Notes/source.md" ".symposium/handoffs/unique.html"

For withdrawal, omit the staged-HTML argument:

sh "/absolute/path/to/this/skill/directory/symposium-publish.sh" "Notes/source.md"

On Windows, use the .cmd wrapper (prefix it with & in PowerShell):

& "/absolute/path/to/this/skill/directory/symposium-publish.cmd" "Notes/source.md" ".symposium/handoffs/unique.html"

Omit the staged-HTML argument on Windows for withdrawal as well.

With only the source path, the wrapper blocks while Obsidian shows its host-owned Update/Delete management modal. With a staged HTML path, it blocks while Obsidian consumes the artifact and shows its source, title, and a link to a sandboxed local-browser rendering of the exact captured page. Obsidian rejects active or externally loaded content, prevents navigation from the browser preview, removes the original artifact, removes its temporary browser preview after review, and alone reads the current note identity to choose whether confirmation publishes or updates; never choose an action or document id.

  • cancelled: stop. No request was sent.
  • regenerate: create a new complete artifact and run the wrapper again. The previous confirmation never applies to regenerated bytes.
  • published or updated: return the host-provided public URL verbatim.
  • deleted: report that the host withdrew the page and removed its note identity.
  • failed: if the host says to edit the staged file, address every listed issue in that same file and retry exactly once. Otherwise, or if that retry fails, stop and report the exact host message. Never invent a cause, change unrelated styling, create another filename, bypass the review, or publish directly.