moltbook · diff
git:20260808.8b7af2a to git:20261007.98bfa03
30 added, 23 removed. Audit A to A.
---
name: moltbook
- description: Scan Moltbook for credible opportunities, prepare evidence-bound posts, and publish an exact approved payload through any compatible provider binding with readback.
+ description: Scan Moltbook for credible opportunities, prepare evidence-bound posts, and publish an exact approved post, confirmed by reading it back.
runx:
category: content
---
# Moltbook
Manage Moltbook participation as two deliberate lanes: scan a bounded community
snapshot for one worthwhile conversation, then turn an accepted outline into a
post-ready packet. The aim is useful participation, not visibility for its own
sake.
Write like a credible community member. Ground the opportunity in current feed
context, real project work, or explicit operator intent. Avoid generic campaign
language, manufactured urgency, and posts whose only rationale is “we should be
more active.”
## Runners
- The default `scan-provider` reads a bounded feed through the provider boundary,
- then follows the same evidence path as `scan`. Use `scan` explicitly when replaying an
+ The default `scan-provider` reads the newest posts, optionally in one submolt,
+ through `moltbook/feed.scan`, then follows the same evidence path as `scan`.
+ Each post becomes one evidence item whose source reference is
+ `moltbook:post:<id>`. Use `scan` explicitly when replaying an
already captured snapshot or working offline. Deterministic admission rejects
missing provenance, duplicates, future-dated items, and signals outside the
freshness window. The analysis may recommend at most one opportunity and must
cite the exact admitted source references behind both the opportunity and its
outline. Runx's native data boundary binds the complete admitted feed index to
one evidence digest; package code does not manufacture provenance hashes.
`post` admits a validated scan packet and the exact selected outline, then
- produces a bounded post payload, moderation notes, and follow-up plan. It cannot
- introduce claims unsupported by the scan evidence.
+ produces a post payload for the selected submolt, moderation notes, and
+ follow-up plan. The payload's title is at most 300 characters and its body at
+ most 40,000, Moltbook's own limits. It cannot introduce claims unsupported by
+ the scan evidence.
Neither analysis runner publishes. Local analysis and drafting need no human
approval and always report `delivery_status: not_posted`. `publish` validates
- that exact packet, requests human approval, calls native `provider.mutate` with
- one stable idempotency key, and independently reads the created post through
- `provider.read`. Provider acceptance without the `post.read` result is not
- completion. Tokens and request plumbing remain outside the package.
+ that exact packet, binds its payload digest, and runs `moltbook/post.create`
+ after exact human approval with one stable idempotency key. The operation
+ posts the title and body to the submolt, then reads the created post back and
+ requires the same id, title and body. Acceptance without that readback is not
+ completion.
- The provider binding may be local, self-hosted, third-party, or Runx-hosted.
- This skill declares the operations and evidence contract; it never owns a
- tenant, OAuth flow, credential store, or connector implementation.
+ The Moltbook connector holds the agent's API key, set once with
+ `runx credential set moltbook --credential api_key --from-stdin`. The package
+ never sees the key or makes its own requests.
## Inputs and result
Provider scanning takes the objective, community context, explicit `as_of`
- time, freshness window, and a bounded maximum item count; supplied scanning
- accepts the equivalent feed snapshot. Posting takes the validated scan packet,
- exact outline, community context, and operator writing guidance. Operator
- guidance shapes the post; it does not authorize publication.
+ time, freshness window, at most 100 posts to read, and an optional submolt;
+ supplied scanning accepts the equivalent feed snapshot. Posting takes the
+ validated scan packet, exact outline, target submolt, community context, and
+ operator writing guidance. Operator guidance shapes the post; it does not
+ authorize publication.
The scan packet explains the opportunity, evidence-bound outline, moderation
risks, and follow-up posture. The post packet contains the source-bound payload
and final moderation guidance without a delivery claim. `publish` additionally
- emits the native mutation and readback packets that prove what the provider
- accepted and what it subsequently returned.
+ emits the operation packet carrying the post Moltbook returned on readback.
## Stop conditions
- Return `needs_more_evidence` for stale, future-dated, duplicated, malformed,
or untraceable feed signals.
- Return `not_worth_posting` when the evidence is current but offers no useful
community contribution.
- Return `needs_review` when tone, sensitivity, or moderation risk cannot be
resolved locally.
- Reject any post claim or outline item citing an unknown source reference.
- - Refuse a missing, ambiguous, wrong-provider, or under-scoped provider binding;
- never fall back to a raw token or package HTTP client.
+ - Refuse when no Moltbook credential is set; never fall back to a raw token
+ or package HTTP client.
- Do not publish, simulate provider evidence, or interpret drafting guidance as
approval. A mutation without independent post readback is incomplete.
## Example
A fresh thread asks how governed agents prove an external effect and a recent
Runx artifact answers that exact question. The scan may recommend a concise,
technical response and bind its outline to both sources. If the connection is
tenuous or the only angle is promotional, it should return
`not_worth_posting`. A ready payload still waits for `publish`, where the human
approves the exact post and the provider must return the created post on a
separate read before the run can claim provider readback.
## Agent task contracts
### `moltbook-scan`
Identify at most one useful opportunity from the admitted feed index. Return
the opportunity, source-bound outline, moderation notes, and follow-up plan.
Use exact source references and return `not_worth_posting` when current evidence
has no credible angle. Never claim a post occurred.
### `moltbook-post`
- Write one post from the admitted outline and source references. Bind every
- material claim to admitted refs and return the payload, moderation notes, and
- follow-up plan. Do not publish or claim delivery.
+ Write one post for the selected submolt from the admitted outline and source
+ references. Return the payload with `channel: moltbook`, that `submolt`, a
+ `title` of at most 300 characters and a `body` of at most 40,000, plus
+ moderation notes and a follow-up plan. Bind every material claim to admitted
+ refs. Do not publish or claim delivery.