Skip to main content

vibewatch-sentiment

Stacks ecosystem community sentiment from the Vibewatch Stacks Vibe Index — free public index plus x402 pay-per-query depth (per-project history, evidence receipts, deltas) settled in sBTC on Stacks.

Jump to install

Source facts

Repository
aibtcdev/skills
Last source activity
September 16, 2026 at 12:43
Detected SKILL.md language
English
Stars
10
Forks
44

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
vibewatch-sentiment
description
Stacks ecosystem community sentiment from the Vibewatch Stacks Vibe Index — free public index plus x402 pay-per-query depth (per-project history, evidence receipts, deltas) settled in sBTC on Stacks.
metadata
{"author":"brandonjamesmarshall","author-agent":"Sonic Mast","user-invocable":"false","arguments":"index | terms | reports | project | evidence | delta","entry":"vibewatch-sentiment/vibewatch-sentiment.ts","requires":"wallet","tags":"l2, read-only, requires-funds"}
# vibewatch-sentiment Community sentiment for the Stacks ecosystem, from the [Vibewatch Stacks Vibe Index](https://stacks.vibewatch.io) — a public sentiment index over an opted-in panel of Stacks projects (Stacks, Zest Protocol, Bitflow, Stacking DAO, AIBTC, Hermetica, and more), computed from each project's own community channels (Discord, Telegram, X, forums, GitHub Discussions, governance votes) and published with k-anonymity floors and marked suppression. Two tiers: - **Free** (`index`, `terms`, `reports`) — everything the public page shows: ecosystem composite (0–10), per-project current scores, 90-day history with Fear & Greed overlay, weekly message/author counts, rolling themes, governance votes, and the weekly-report archive. No wallet, no key. - **Paid** (`project`, `evidence`, `delta`) — depth per query over x402, settled on Stacks: 100 sats sBTC per query (the discovery document also advertises an STX price for clients that can't hold sBTC; this skill pays with the first asset the shared engine can sign, which is sBTC). Answers "what changed, why, and where's the receipt": per-project daily series, the public posts backing each weekly theme, and changes-since deltas for polling loops. ## Subcommands ### `index` (free) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts index ``` The full live index payload (`schema_version`, `as_of`, `index`, `panel`, `source_mix_7d`, `distribution_7d`, `history`, `projects[]`, `panel_joins`, `panel_joins_truncated`, `governance`, `summary`, `suppressed[]`, plus the skill's own `network` and `endpoint`). Each `projects[]` entry carries the project's `slug` and `name`. ### `terms` (free) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts terms ``` The x402 discovery document (`/.well-known/x402.json`): current price, accepted assets, `payTo`, and every paid resource. When the paid tier is disabled the document truthfully serves empty `accepts` — check this before the first paid call. ### `reports` (free) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts reports ``` The Stacks Vibe Weekly archive: one line per completed report with its `week_start` (the `--week` value for `evidence`), title, week composite, and week-over-week change. ### `project` (paid) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts project --project "Zest Protocol" --days 30 ``` One panel project's daily composite series (≤90 days) plus its current score and week-over-week change. `--project` accepts the project's name or slug; the skill resolves it against the free index before paying (live slugs carry a suffix, e.g. `zest-protocol-3672`, so you never have to know it). An unknown or ambiguous project fails before any payment and lists the panel. `latest` is null when the project's newest score is older than the index's 7-day recency floor — an old number is never presented as current. A panel project whose free-index `score` is null (no scored days yet) is served as a normal paid 200 with `series: []` and `latest.score: null` — the query is charged. The skill refuses that call before payment; pass `--allow-unscored` to pay anyway. ### `evidence` (paid) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts evidence --week 2026-08-24 ``` Receipts behind one weekly report's themes: links to the public posts backing each theme, with attributed excerpts for X posts. `--week` is a `week_start` from `reports`; the skill checks it against the archive before paying, so a week with no completed report fails free. Themes whose evidence is all in-server return `receipts: []` marked `no_public_evidence` — private community content is never exposed. ### `delta` (paid) ```bash bun run vibewatch-sentiment/vibewatch-sentiment.ts delta --since 2026-09-01T00:00:00Z ``` What changed since a timestamp (hour-bucketed): per-project score moves with constant-panel baselines, ecosystem composite then/now, current themes, and reports published since. Defaults to the last 24 hours; `--since` older than 90 days is clamped. ## Paid response shape Every paid subcommand returns the index's paid envelope (`schema_version`, `tier: "paid"`, `as_of`, `resource`, `payment`, `data`, `suppressed[]`) plus the skill's own `endpoint`, `network`, and `payment_receipt`: - `payment` — the settlement the index verified for this response: `txid`, `payer`, `amount`, `asset`, `network`, and `payment_identifier` (the id the operators match against their ledger). `payment.txid` is the receipt to cite. - `payment_receipt` — the same settlement as the x402 `payment-response` header, decoded (`success`, `payer`, `transaction`, `network`). `payment_receipt.transaction` equals `payment.txid`. - `data` — the resource payload: - `project`: `slug`, `name`, `latest { score, wow_change, as_of_date }`, `series[] { date, composite }` (scored days only, oldest first). - `evidence`: `week_start`, `themes[]` with `receipts[]`; a theme with only in-server evidence has `receipts: []` and `suppressed: true`, `reason: "no_public_evidence"`. - `delta`: `since_effective` (hour-bucketed), `index { composite_then, composite_now, change }`, `projects[]`, `reports_published[]`, `themes_current[]`. - `suppressed[]` — slices withheld for privacy (`slice`, `reason`), e.g. `index_delta` / `below_min_orgs`. Report them as withheld, not zero. ## Payment Standard x402 flow via the shared payment engine: the first request answers 402 with payment terms, the wallet signs, the retry carries the payment, and the response includes a `payment_receipt` with the on-chain txid. One run, one payment. Running the same command again is a new query and a new payment — there is no free re-read window across runs. (The server does hold a 10-minute idempotency window keyed on the *signed payment itself*, which the engine uses internally if the retry that carries a payment has to be resent; that never costs a second payment.) ## Networks `--network mainnet` (default) pays real sBTC on the live index; set `NETWORK=mainnet` too, since the wallet follows `NETWORK` (default testnet) and the payment engine refuses a network mismatch before signing. Payments are sponsored unless `X402_PAYMENT_MODE=direct` is set (see the `x402` skill), in which case the wallet also pays the STX fee. `--network testnet` targets the staging index, which advertises the canonical testnet sBTC (`SN3VMHXEN64ZZF71JQ5VESXDWTR301XTTXGF4J8F1.sbtc-token`); the shared engine currently pins a different testnet sBTC id (aibtcdev/skills#419), so paid testnet calls fail at the asset check until that lands. Free subcommands work on both. ## Reference - Index: https://stacks.vibewatch.io - Methodology: https://stacks.vibewatch.io/methodology - Discovery: https://stacks.vibewatch.io/.well-known/x402.json - Weekly reports: https://stacks.vibewatch.io/reports - x402scan listing: https://scan.stacksx402.com/resources/6c71357a-b7f8-466e-a7e8-0e5babd8039d - Report a problem: https://github.com/Vibewatch-io/vibewatch-mcp/issues
View on GitHub