Pluck Studio / Bureau

REFUSE

Personal do-not-train attestation. Sign a canary; bind a vendor OATH; if a deployed model later regurgitates the canary above threshold, the contradiction is cryptographic. Composes OATH + MOLE + DRAGNET + WHISTLE.

Sign a canary

Every citizen can publish a Refuse/v1 attestation. The canary body lives on your machine; only its sha256 + a few fingerprint phrases land in Rekor. Aggregating millions of citizen canaries makes evasion statistically impossible — a single random-string canary in a training set is extraction-provable.

pluck bureau refuse declare ./bundle --name "Jane Doe" \
  --keys ./keys --scope-vendors "openai,anthropic"
  --scope-jurisdictions "US,EU"

The canary body is written to canary-body.txt (mode 0600). Keep it private — publishing the body retroactively destroys the seal's extraction-evident property.

What REFUSE proves and what it does NOT

  • Proves: if a model emits the canary or any of its fingerprint phrases verbatim above threshold, the model trained on the canary AFTER the citizen sealed it. Rekor's integratedTime defeats backdating.
  • Does NOT prove: that the vendor authored or supervised the training data. REFUSE is a falsification of the vendor's do-not-train OATH; intent is for journalists and lawyers to argue.
  • Fail-closed binding: attesting with --bind-oath refuses if the named vendor's OATH does not include a training-excludes claim. No warn-and-proceed.
  • Single citizen: revocation is supported via RefusalWithdrawal/v1, but withdrawal arriving AFTER training cutoff is informational — the canary's already in the model.

CLI

pluck bureau refuse declare <out-dir> --name "..." --keys <dir> \
  --scope-vendors "..." --scope-jurisdictions "..."
pluck bureau refuse attest <canary.json> --keys <dir> \
  --bind-oath <oath-rekor-uuid> --oath <oath.json> --out <dir>
pluck bureau refuse probe <canary.json> --target <vendor>/<model> \
  --keys <dir> --canary-rekor-uuid <uuid> --out <pack.json>
pluck bureau refuse status <attestation-rekor-uuid>
pluck bureau refuse withdraw <attestation.json> --keys <dir> \
  --attestation-rekor-uuid <uuid> --reason "..."

Predicate URIs

  • https://pluck.run/Refuse/v1 – citizen opt-out attestation
  • https://pluck.run/RefusalCanary/v1 – sealed canary commit
  • https://pluck.run/RefusalProbeResult/v1 – per-vendor/model scoring
  • https://pluck.run/RefusalWithdrawal/v1 – citizen revocation