Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.selftune.dev/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Contributor signals let skill creators see how their skills are being used in the wild without compromising user privacy. Users opt in to share anonymized signal data, which skill creators can review in the cloud dashboard.

How it works

For users (contributing)

  1. Opt in to contributions:
    selftune contributions default always
    
  2. Or approve on a per-skill basis:
    selftune contributions approve skill-name
    
  3. Signals are uploaded with:
    selftune contributions upload
    

For creators (receiving)

  1. Enable contributions for your skill:
    selftune creator-contributions enable --skill my-skill
    
  2. View signals in the cloud dashboard under the Signals page
  3. Generate evolution proposals from aggregate contributor data in the Proposals page of the dashboard.

Privacy guarantees

  • No raw user prompts are transmitted
  • Only aggregate signal patterns: query categories, trigger/miss counts
  • Source keys are deterministic SHA-256 hashes — the relay can deduplicate without identifying users
  • PII patterns are stripped via regex before transmission
  • Signals are stored in contribution_signals table, idempotent on (org_id, source_key)

Signal data

Each signal contains:
FieldDescription
Skill nameWhich skill the signal is about
Signal typeCategory of the observation
ConfidenceHow certain the classification is
Source keySHA-256 hash for deduplication (not identifiable)

Contribution relay

Signals flow through the contribution relay endpoint:
CLI → POST /api/v1/signals → selftune Cloud → Creator dashboard

Community bundle submissions

Community bundles are a separate data source from relay signals. While relay signals capture lightweight, real-time event data (trigger counts, miss rates), community bundles contain richer anonymized export data submitted by contributors.

Two distinct data sources

The cloud dashboard displays both data sources, labeled separately:
SourceLabelHow it arrives
Relay signalscontribution_signalselftune contributions upload
Community bundlescommunity_bundleselftune contribute --submit
These two sources are stored independently and never merged. Dashboard views label each section so creators can distinguish between real-time signal telemetry and community-submitted bundles.

How bundles arrive

Contributors use the CLI to build and submit an anonymized export bundle:
selftune contribute --skill my-skill --submit
This sends a POST /api/v1/community/bundles request with the sanitized bundle, the contributor’s hashed identity, and the creator_id from the skill’s selftune.contribute.json file. Authentication uses the contributor’s local API key.

Viewing bundle data

Bundle submission statistics appear on the Signals page of the cloud dashboard alongside relay signals. Creators can also query bundle data programmatically via the Community Bundles API.