bernstein_post_artifact
Attach a journal-anchored artifact to a claimed task, storing it with content-addressed integrity and returning a verifiable receipt.
Instructions
Attach a journal-anchored artifact to a task you hold the claim for.
The artifact is stored content-addressed, sealed into the lineage
spine, appended to the task's Merkle-chained journal, and mirrored to
the audit chain. The returned record IS the receipt: its identity is the
spine entry hash, and any reviewer can re-verify the content hash offline
against the same chain bernstein audit verify walks. Reposting a key
appends a new version chained to the prior one. There is no way to set
progress here - progress is a chain-computed projection of journaled
work, never postable.
Args:
task_id: The task to attach the artifact to. You must hold its claim.
key: The artifact slot; reposting a key appends a new version.
artifact_type: One of report (markdown body), table
(columns + rows), or link (url + link_kind).
poster: Your claim identity; posting against a task you do not hold
is refused and the refusal is audit-recorded.
body: Markdown body, for report artifacts.
columns: Column headers, for table artifacts.
rows: Rows of cells, for table artifacts.
url: The URL, for link artifacts.
link_kind: The declared link kind - preview / dashboard /
document - for link artifacts.
Returns:
JSON of the chain-anchored artifact record (key, version,
content_hash, spine_entry_hash, journal_index, ...).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| url | No | ||
| body | No | ||
| rows | No | ||
| poster | Yes | ||
| columns | No | ||
| task_id | Yes | ||
| link_kind | No | ||
| artifact_type | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |