proof
Proof - Collaborative Markdown Editor
Proof is a collaborative document editor for humans and agents. This skill uses the hosted web API at https://www.proofeditor.ai (HTTP/Bash). If typed proof_* MCP tools are already available in the harness, prefer them; otherwise use the HTTP recipes below.
Identity and Attribution
Every write to a Proof doc must be attributed. Two fields carry the agent's identity:
- Machine ID (
byon every op,X-Agent-Idheader):ai:tunan— stable, lowercase-hyphenated, machine-parseable. Appears in marks, events, and the API response. - Display name (
nameonPOST /presence):tunan— human-readable, shown in Proof's presence chips and comment-author badges.
Set the display name once per doc session by posting to presence with the X-Agent-Id header; Proof binds the name to that agent ID for the session. These values are the defaults for any caller of this skill; callers running HITL review (references/hitl-review.md) may pass a different identity pair if a distinct sub-agent should own the doc. Do not use ai:compound or other ad-hoc variants — identity stays uniform unless a caller explicitly overrides it.
Human-in-the-Loop Review Mode
Human-in-the-loop iteration over a markdown source: upload to Proof, let the user annotate in Proof's web UI, ingest feedback as in-thread replies and agreed edits, and sync the final doc back to the source. Load references/hitl-review.md for the full loop spec (invocation contract, source resolution, mark classification, idempotent ingest passes, exception-based terminal reporting, end-sync write).
Interaction method. Every user-facing choice in that loop — the "what next" / next-signal / sync-confirm menus at the end of Phases 1, 4, and 5 — must fire the platform's blocking question tool, never an ad-hoc chat menu: AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex, ask_user in Gemini, ask_user in Pi. Fall back to a numbered list in chat only when no blocking tool exists in the harness or the call errors — never because a schema load is required, and never silently skip the question.