shit_admin: 2026-08-13 12:41:21
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
---
|
||||
name: symposium-publish
|
||||
description: 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.
|
||||
metadata:
|
||||
copilot-enabled-agents: claude, codex, opencode
|
||||
copilot-builtin-version: "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:
|
||||
|
||||
```bash
|
||||
sh "/absolute/path/to/this/skill/directory/symposium-publish.sh" "Notes/source.md" ".symposium/handoffs/unique.html"
|
||||
```
|
||||
|
||||
For withdrawal, omit the staged-HTML argument:
|
||||
|
||||
```bash
|
||||
sh "/absolute/path/to/this/skill/directory/symposium-publish.sh" "Notes/source.md"
|
||||
```
|
||||
|
||||
On Windows, use the `.cmd` wrapper (prefix it with `&` in PowerShell):
|
||||
|
||||
```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.
|
||||
Reference in New Issue
Block a user