gossipcat 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="packages/dashboard-v2/public/assets/banner.png" alt="Gossipcat" width="600" />
2
+ <img src="https://raw.githubusercontent.com/gossipcat-ai/gossipcat-ai/master/packages/dashboard-v2/public/assets/banner.png" alt="Gossipcat" width="600" />
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -7,18 +7,21 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <a href="https://github.com/ataberk-xyz/gossipcat-ai/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" /></a>
10
+ <a href="https://github.com/gossipcat-ai/gossipcat-ai/releases/latest"><img src="https://img.shields.io/github/v/release/gossipcat-ai/gossipcat-ai?color=0ea5e9&label=release" alt="Latest release" /></a>
11
+ <a href="https://github.com/gossipcat-ai/gossipcat-ai/releases"><img src="https://img.shields.io/github/downloads/gossipcat-ai/gossipcat-ai/total?color=0ea5e9" alt="Downloads" /></a>
12
+ <a href="https://github.com/gossipcat-ai/gossipcat-ai/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" /></a>
11
13
  <a href="#quickstart"><img src="https://img.shields.io/badge/node-22%2B-green" alt="Node 22+" /></a>
14
+ <a href="https://github.com/gossipcat-ai/gossipcat-ai/stargazers"><img src="https://img.shields.io/github/stars/gossipcat-ai/gossipcat-ai?style=social" alt="GitHub stars" /></a>
12
15
  </p>
13
16
 
14
17
  <p align="center">
15
- <a href="#quickstart"><strong>Quickstart</strong></a> ·
16
- <a href="#how-it-works"><strong>How It Works</strong></a> ·
17
- <a href="#usage"><strong>Usage</strong></a> ·
18
- <a href="#for-ai-agents"><strong>For AI Agents</strong></a> ·
19
- <a href="#dashboard"><strong>Dashboard</strong></a> ·
20
- <a href="#configuration"><strong>Configuration</strong></a> ·
21
- <a href="#roadmap"><strong>Roadmap</strong></a>
18
+ <a href="#quickstart"><strong>Install</strong></a> ·
19
+ <a href="#first-run--5-minutes"><strong>First Run</strong></a> ·
20
+ <a href="#how-to-use-it-day-to-day"><strong>Daily Use</strong></a> ·
21
+ <a href="#reading-the-dashboard"><strong>Dashboard</strong></a> ·
22
+ <a href="#troubleshooting"><strong>Troubleshooting</strong></a> ·
23
+ <a href="#configuration"><strong>Config</strong></a> ·
24
+ <a href="#for-ai-agents"><strong>For AI Agents</strong></a>
22
25
  </p>
23
26
 
24
27
  <br/>
@@ -160,37 +163,62 @@ Both types participate equally in consensus, cross-review, and skill development
160
163
 
161
164
  ## Quickstart
162
165
 
163
- **Requirements:** Node.js 22+
166
+ **Requirements:** Node.js 22+ and [Claude Code](https://claude.com/claude-code).
164
167
 
165
- ### 1. Install
168
+ ### One-liner
166
169
 
167
170
  ```bash
168
- npm install -g gossipcat
171
+ npm install -g https://github.com/gossipcat-ai/gossipcat-ai/releases/latest/download/gossipcat.tgz && \
172
+ claude mcp add gossipcat -s user -- gossipcat
169
173
  ```
170
174
 
171
- That's it. The install drops a `gossipcat` binary on your `PATH` and ships both the MCP server bundle and the dashboard assets. No clone, no build step.
175
+ Restart Claude Code. Then in any project, ask:
176
+
177
+ > "Set up a gossipcat team for this project"
178
+
179
+ Claude Code will call `gossip_setup()` to scaffold `.gossip/config.json` and your agent team. First-run bootstrap also writes the dispatch rules and tool catalog so Claude Code knows how to use gossipcat — no manual config needed.
180
+
181
+ Gossipcat ships from **[GitHub Releases](https://github.com/gossipcat-ai/gossipcat-ai/releases)**, not the npm registry. The install URL above always points at the latest release. `npm` downloads the tarball directly, installs it globally, and drops a `gossipcat` binary on your `PATH` — no `npm publish` involved.
182
+
183
+ ### What the install ships
184
+
185
+ | | What you get |
186
+ |---|---|
187
+ | **MCP server** | Bundled binary at `dist-mcp/mcp-server.js`, wired as the `gossipcat` command on `PATH` |
188
+ | **Dashboard** | Prebuilt static assets in `dist-dashboard/` — launches automatically on a dynamic port (ask Claude Code *"what's my gossipcat dashboard URL?"*). Override with `GOSSIPCAT_PORT=24420` if you want a stable port. |
189
+ | **Default skills + rules + archetypes** | 18 bundled skill templates, operational rules, and project archetypes copied into the install |
190
+ | **Postinstall wizard** | Writes `.mcp.json` with correct absolute paths for your machine |
191
+
192
+ ### Alternative install paths
172
193
 
173
- If you prefer project-local install:
194
+ **Pin to a specific version:**
174
195
  ```bash
175
- npm install --save-dev gossipcat
196
+ npm install -g https://github.com/gossipcat-ai/gossipcat-ai/releases/download/v0.1.1/gossipcat-0.1.1.tgz
176
197
  ```
177
- The postinstall will write a `.mcp.json` into your project root automatically. Open Claude Code in that directory and gossipcat connects.
178
198
 
179
- ### 2. Register with Claude Code
199
+ **Project-local install** (each project gets its own gossipcat):
200
+ ```bash
201
+ cd your-project
202
+ npm install --save-dev https://github.com/gossipcat-ai/gossipcat-ai/releases/latest/download/gossipcat.tgz
203
+ ```
204
+ The postinstall writes `.mcp.json` to your project root. Open Claude Code in that directory and gossipcat connects automatically — no `claude mcp add` needed.
180
205
 
181
- For global registration (available in every project):
206
+ **From source** (contributors):
182
207
  ```bash
183
- claude mcp add gossipcat -s user -- gossipcat
208
+ git clone https://github.com/gossipcat-ai/gossipcat-ai.git
209
+ cd gossipcat-ai
210
+ npm install
211
+ npm run build:mcp
212
+ claude mcp add gossipcat -s user -- node "$PWD/dist-mcp/mcp-server.js"
184
213
  ```
185
214
 
186
- The dashboard launches automatically on port `24420` when the relay starts — no extra setup needed.
215
+ ### Upgrading
187
216
 
188
- **From source** (contributors only):
217
+ Re-run the one-liner — npm will fetch the latest release tarball and replace the installed version:
189
218
  ```bash
190
- git clone https://github.com/ataberk-xyz/gossipcat-ai.git
191
- cd gossipcat-ai && npm install && npm run build:mcp
192
- claude mcp add gossipcat -s user -- node "$PWD/dist-mcp/mcp-server.js"
219
+ npm install -g https://github.com/gossipcat-ai/gossipcat-ai/releases/latest/download/gossipcat.tgz
193
220
  ```
221
+ Or in-session, ask Claude Code: *"Check for gossipcat updates"* — the `gossip_update` tool fetches the latest release notes and applies the upgrade with your confirmation.
194
222
 
195
223
  ### 3. API keys
196
224
 
@@ -287,142 +315,273 @@ Available presets: `reviewer`, `implementer`, `tester`, `researcher`, `debugger`
287
315
 
288
316
  <br/>
289
317
 
290
- ## Use Cases
318
+ ## First Run — 5 Minutes
291
319
 
292
- ### Build something gossipcat picks the team
320
+ The fastest path from "just installed" to "first useful review". If you skip this section you'll probably get stuck on the same things everyone else gets stuck on.
293
321
 
294
- ```
295
- "I want to build a Stripe integration, set up a team for that"
296
- "I'm adding real-time notifications — what agents do I need?"
297
- "Set up a team for a TypeScript REST API project"
322
+ ### Step 1 — Open Claude Code in any project
323
+
324
+ ```bash
325
+ cd ~/your-project
326
+ claude
298
327
  ```
299
328
 
300
- Describe what you're building. Gossipcat proposes an agent team tailored to the task — right presets, right skills, right mix of providers. You review the proposal and approve it. From that point on, agents dispatch automatically based on what your code touches.
329
+ Gossipcat is registered globally now, so it boots automatically. You'll see it in the MCP server list.
301
330
 
302
- ---
331
+ ### Step 2 — Bootstrap once
332
+
333
+ In Claude Code, just type:
303
334
 
304
- ### Review code before committing
335
+ > **Run gossip_status**
305
336
 
337
+ This loads gossipcat's operating rules into the current session, creates `.gossip/` in your project on first run, and prints the dashboard URL + auth key. Copy the key — you'll paste it into the dashboard once.
338
+
339
+ You'll see something like:
306
340
  ```
307
- "Review the changes I just made"
308
- "Do a consensus review on the auth module"
309
- "Check my last 3 commits for bugs"
341
+ Status:
342
+ Host: claude-code (native agents supported)
343
+ Relay: running :49664
344
+ Workers: 0
345
+ Dashboard: http://localhost:49664/dashboard (key: c3208820f8f70605fd45fa90004a2a4b)
346
+ Quota: google — OK
310
347
  ```
311
348
 
312
- Three agents review your diff independently, then cross-check each other's findings. You get a report with CONFIRMED bugs (multiple agents agree), DISPUTED findings (agents disagree), and UNIQUE findings (only one agent found it). You only act on what's verified.
349
+ Open the dashboard URL in your browser, paste the key. You're now connected.
313
350
 
314
- ---
351
+ ### Step 3 — Create your first team
352
+
353
+ Tell Claude what you're building:
315
354
 
316
- ### Catch security issues
355
+ > **"Set up a gossipcat team for this project — it's a TypeScript Next.js app with a Postgres backend and Stripe payments."**
356
+
357
+ Claude calls `gossip_setup()` and proposes a team. Typical proposal:
317
358
 
318
359
  ```
319
- "Security audit the payment handler"
320
- "Check the login flow for vulnerabilities"
321
- "Review the API endpoints for injection risks"
360
+ Proposed team:
361
+ - sonnet-reviewer (anthropic/claude-sonnet-4-6, native) reviewer + security
362
+ - gemini-reviewer (google/gemini-2.5-pro, relay) reviewer + types
363
+ - haiku-researcher (anthropic/claude-haiku-4-5, native) researcher
364
+ - opus-implementer (anthropic/claude-opus-4-6, native) implementer
365
+
366
+ Approve? (y/n)
322
367
  ```
323
368
 
324
- Dispatch your security-focused agents in parallel. Each reviews from a different angle one checks OWASP vectors, another checks input validation, another checks auth logic. Findings that survive cross-review are real.
369
+ Native agents (`native: true`) run through your existing Claude Code subscription **no API key needed**. Relay agents need a key for their provider. If you don't have a Google API key, drop `gemini-reviewer` from the team for now and add it later.
325
370
 
326
- ---
371
+ Once you approve, gossipcat writes `.gossip/config.json` and the agents are live.
372
+
373
+ ### Step 4 — Run your first review
327
374
 
328
- ### Research a codebase before building
375
+ In a project where you've made some changes:
376
+
377
+ > **"Do a consensus review of my recent changes"**
378
+
379
+ What happens (typical timing):
380
+
381
+ | Phase | Time | What you see |
382
+ |---|---|---|
383
+ | 1. Decompose | 1s | Claude picks agents and dispatches them in parallel |
384
+ | 2. Independent review | 30s–2min | Each agent reads your diff and reports findings |
385
+ | 3. Cross-review | 30s–1min | Each agent reviews the others' findings |
386
+ | 4. Consensus report | <1s | Findings tagged CONFIRMED / DISPUTED / UNVERIFIED / UNIQUE |
387
+ | 5. Verification | varies | Claude reads UNVERIFIED findings against the code, decides if they're real |
388
+ | 6. Signal recording | <1s | Accuracy signals saved per agent |
389
+
390
+ You get a report like:
329
391
 
330
392
  ```
331
- "Research how the WebSocket connection lifecycle works before I touch it"
332
- "Explain the dispatch pipeline — I need to add a new routing mode"
393
+ Consensus round b81956b2-e0fa4ea4 3 agents
394
+
395
+ CONFIRMED (2):
396
+ [critical] Race condition in tasks Map at server.ts:47 — sonnet + gemini
397
+ [high] Missing auth on WebSocket upgrade at server.ts:112 — sonnet + gemini
398
+
399
+ UNIQUE (1):
400
+ [medium] String concat in SQL query at queries.ts:88 — only sonnet caught this
401
+
402
+ DISPUTED (1):
403
+ [low] "Memory leak in timer" — haiku says yes, sonnet/gemini say no
404
+ → verified, sonnet was right (not a leak — cleanup is in finally)
405
+
406
+ Final: 3 real bugs to fix, 1 false alarm caught by cross-review.
333
407
  ```
334
408
 
335
- Agents read the code, trace call paths, and write a summary back to session memory. Next time you ask about the same area, they already know it.
409
+ You only act on **CONFIRMED** + verified **UNIQUE** findings. The cross-review is the whole point single-agent reviews ship hallucinated bugs as critical findings 5–10% of the time. Cross-review with verification drops that to under 1%.
410
+
411
+ ### Step 5 — Watch the dashboard
412
+
413
+ The dashboard shows everything live: agents, scores, active tasks, consensus reports, signals. You can leave it open in a tab while you work — every gossipcat tool call pushes an update via WebSocket.
414
+
415
+ That's the basic loop. The rest of this README covers advanced workflows, troubleshooting, and how to interpret what you're seeing.
416
+
417
+ <br/>
418
+
419
+ ## How to use it day-to-day
420
+
421
+ Concrete recipes for the most common workflows. Each one shows what to type, what you'll get back, and what to do with it.
422
+
423
+ ### Recipe 1: Review a diff before committing
424
+
425
+ **Type:**
426
+ > "Review my staged changes"
427
+
428
+ **What you'll get:** A consensus report (1–3 minutes) with findings tagged CONFIRMED / UNIQUE / DISPUTED. Claude verifies UNVERIFIED findings against the code and tells you which are real.
429
+
430
+ **What to do with it:** Fix the CONFIRMED + verified-real findings. Ignore disputed-but-falsified findings. If a finding looks important but you disagree, ask Claude *"verify finding f3 against the code yourself"* — it'll re-check and either back you up or push back.
431
+
432
+ **When NOT to use it:** Tiny diffs (under 20 lines) — overhead exceeds value. Just eyeball them.
336
433
 
337
434
  ---
338
435
 
339
- ### Get a second opinion on your own review
436
+ ### Recipe 2: Catch security issues before shipping a feature
340
437
 
341
- ```
342
- "I think there's a race condition in this Map — check if I'm right"
343
- "Verify whether this fix actually resolves the issue"
344
- ```
438
+ **Type:**
439
+ > "Security audit the payment handler at lib/stripe/webhook.ts"
440
+
441
+ **What you'll get:** Each security-skilled agent reviews from a different angle (OWASP, input validation, auth, secrets). Findings get cross-validated. Real vulns surface; theoretical ones get caught and dropped.
345
442
 
346
- Describe what you think you're seeing. Agents check independently and either confirm or disprove it. Author self-review is optimistic by nature — this isn't.
443
+ **What to do with it:** Fix critical/high findings before merge. Bookmark medium/low findings for the next pass.
444
+
445
+ **Tip:** Be specific about the file or module. "Security audit the codebase" is too broad and produces noisy results. "Security audit `lib/stripe/webhook.ts`" produces actionable findings.
347
446
 
348
447
  ---
349
448
 
350
- ### Track which agents are actually reliable
449
+ ### Recipe 3: Understand a piece of code before changing it
351
450
 
352
- ```
353
- "Show me agent scores"
354
- "Which agent is best at security reviews?"
355
- ```
451
+ **Type:**
452
+ > "Research how the WebSocket connection lifecycle works in this project before I touch it"
356
453
 
357
- Every finding gets verified and turned into a signal. Accuracy, uniqueness, and reliability are tracked per agent. Over time, dispatch weights shift the agents that keep catching real bugs get more work.
454
+ **What you'll get:** A research agent (haiku-researcher by default — fast and cheap) reads the code, traces call paths, and writes a summary. The summary is saved to that agent's cognitive memory so the next time you ask about the same area it remembers.
455
+
456
+ **What to do with it:** Use the summary to plan your change. The agent will reference it next time you ask anything related — no re-discovery cost.
358
457
 
359
458
  ---
360
459
 
361
- ### Improve a struggling agent
460
+ ### Recipe 4: Verify your own assumption
362
461
 
363
- ```
364
- "Gemini keeps hallucinating about concurrencyfix it"
365
- "Develop a skill for the reviewer's repeated type-safety misses"
366
- ```
462
+ **Type:**
463
+ > "I think there's a race condition in the tasks Map at server.ts:47 check if I'm right"
367
464
 
368
- Gossipcat generates a targeted skill file from the agent's failure data and injects it into future prompts. Signals penalize past mistakes; skills prevent future ones.
465
+ **What you'll get:** Two agents independently check the specific claim and either confirm or push back. Author self-review is optimistic this isn't.
466
+
467
+ **What to do with it:** If both agree with you, fix it. If they push back, read their reasoning before defending your hypothesis. They might be right.
468
+
469
+ ---
470
+
471
+ ### Recipe 5: See which agents you can actually trust
472
+
473
+ **Type:**
474
+ > "Show me agent scores"
475
+
476
+ **What you'll get:** A table of agents sorted by reliability with per-category accuracy and dispatch weights. Categories include `trust_boundaries`, `injection_vectors`, `concurrency`, `error_handling`, `data_integrity`, `type_safety`, etc.
477
+
478
+ **What to do with it:** If `gemini-reviewer` is sitting at 30% accuracy on `concurrency`, you know not to trust its concurrency findings without cross-review. If `sonnet-reviewer` is at 90% on `trust_boundaries`, you can ship its findings on auth/session bugs with high confidence.
479
+
480
+ ---
481
+
482
+ ### Recipe 6: Improve an agent that keeps making the same mistake
483
+
484
+ **Type:**
485
+ > "gemini-reviewer keeps hallucinating about concurrency — develop a skill for it"
486
+
487
+ **What you'll get:** Gossipcat reads gemini-reviewer's failure data, generates a targeted skill file with concrete anti-patterns, and injects it into the agent's prompt for all future concurrency-related reviews. Effectiveness is measured statistically (z-test on post-bind signals) — it'll tell you if the skill is actually working after ~30 dispatches.
488
+
489
+ **What to do with it:** Nothing — it's automatic. Just keep using the agent. Over time, the failure rate drops.
490
+
491
+ ---
492
+
493
+ ### Recipe 7: Set up a team for a brand-new project
494
+
495
+ **Type:**
496
+ > "Set up a gossipcat team for a TypeScript Cloudflare Workers project with Drizzle ORM and KV storage"
497
+
498
+ **What you'll get:** A proposed team with archetypes matched to your stack. Worker projects need different reviewers than long-running Node services — gossipcat picks accordingly.
499
+
500
+ **What to do with it:** Review the proposal, drop agents you can't run (missing API keys), approve.
501
+
502
+ ---
503
+
504
+ ### Things to avoid
505
+
506
+ - **Don't ask for "review the whole codebase"** — too broad, agents will pick whatever they find first. Scope to a file, module, or diff.
507
+ - **Don't approve findings without reading them** — even after cross-review, ~5% of findings are genuinely wrong. The reasoning matters more than the verdict.
508
+ - **Don't ignore the dashboard** — when something feels weird (slow dispatch, repeated failures, suspicious findings), the dashboard usually shows you why before you have to ask.
509
+ - **Don't run consensus mode for trivial questions** — `gossip_run` with one agent is fine for "what does this function do?"-tier queries. Save consensus for changes that touch shared state, auth, persistence, or the dispatch pipeline itself.
369
510
 
370
511
  <br/>
371
512
 
372
- ## Usage
513
+ ## Reading the dashboard
514
+
515
+ The dashboard at `http://localhost:<port>/dashboard` is the visual layer over everything gossipcat knows. Open it once with the auth key from `gossip_status`, leave the tab open while you work. Updates push live via WebSocket.
373
516
 
374
- Once gossipcat is installed, you interact with it through natural language in Claude Code. The CLAUDE.md rules file (auto-generated on first boot) teaches Claude Code how to use the gossipcat tools — you just describe what you want.
517
+ | Panel | What it shows | When to look at it |
518
+ |---|---|---|
519
+ | **Overview** | Active agents, dispatch weights, recent finding counts | First thing in the morning — quick sanity check |
520
+ | **Team** | All agents sorted by reliability score, with category breakdowns | Picking which agent to trust for a tricky finding |
521
+ | **Tasks** | Live + historical task list with agent, duration, status | When something feels stuck — find it here first |
522
+ | **Findings** | Consensus reports paginated by round, with CONFIRMED/DISPUTED/UNVERIFIED breakdowns | Reviewing what got caught in a recent review |
523
+ | **Agent detail** | Per-agent memory entries, skills, score history, task history | Diagnosing why a specific agent keeps failing in a category |
524
+ | **Signals** | Raw signal feed (agreement / hallucination / unique_confirmed) | Auditing the scoring pipeline if scores look wrong |
525
+ | **Logs** | mcp.log content (boot, errors, warnings) | When the MCP server is misbehaving and you need raw evidence |
375
526
 
376
- ### What to say to Claude Code
527
+ **Auth keys rotate every session.** A fresh key is generated each time gossipcat boots. If the dashboard says "unauthorized", run `gossip_status` again to get the new key.
377
528
 
378
- | What you want | What to type |
379
- |---------------|-------------|
380
- | Review your latest changes | *"Review my recent changes"* |
381
- | Deep review of critical code | *"Do a consensus review on the auth module"* |
382
- | Catch security issues | *"Security audit the payment handler"* |
383
- | Research before building | *"How does the dispatch pipeline work?"* |
384
- | Get a second opinion | *"Check if I'm right about this race condition"* |
385
- | Check which agents are performing well | *"Show me agent scores"* |
386
- | Improve a struggling agent | *"Develop a skill for the reviewer's type-safety misses"* |
387
- | Save context for next session | *"Save session"* |
529
+ <br/>
388
530
 
389
- Claude Code reads the dispatch rules from `.claude/rules/gossipcat.md` and automatically decides whether to use single-agent, parallel, or consensus mode based on what your change touches.
531
+ ## Troubleshooting
390
532
 
391
- ### Example session
533
+ ### "Dashboard says unauthorized / 401"
534
+ The auth key rotates every boot. Run `gossip_status` in Claude Code to get the current key, paste it into the dashboard login.
392
535
 
393
- ```
394
- You: "Review the changes I made to the relay server with the gossipcat team"
536
+ ### "Dashboard URL doesn't load at all"
537
+ Check `~/.gossip/mcp.log` (or `<your-project>/.gossip/mcp.log`) for the boot log. Look for the `[gossipcat] 🌐 Dashboard:` line — that's the actual port. If it's missing, the relay didn't start. Common causes:
538
+ - **Conflicting `.gossip/relay.pid`** from a crashed previous boot — delete it and restart Claude Code
539
+ - **`GOSSIPCAT_PORT` set to a port already in use** — unset the env var or pick a free port
395
540
 
396
- Claude: Dispatches 3 agents via gossip_dispatch(mode: "consensus")
397
- sonnet-reviewer checks for security issues
398
- → gemini-reviewer checks for logic bugs
399
- → gemini-tester checks for edge cases
541
+ ### "Boot says 'No gossip.agents.json found' and nothing happens"
542
+ This was a critical bug in v0.1.0 — fixed in v0.1.1. Upgrade with the install one-liner above. v0.1.1+ boots in degraded mode (dashboard + relay only) so you can run `gossip_setup` from inside Claude Code.
400
543
 
401
- Cross-review round: agents review each other's findings
544
+ ### "Agents keep returning empty findings"
545
+ Usually a model or quota problem. Check `gossip_status` — it shows `Quota: google — OK` (or `cooling down`) per provider. If you're rate-limited, gossipcat will fall back to native agents automatically, but fallback agents may not be in your team. Either wait for the cooldown or add native agents to your team.
402
546
 
403
- Consensus report:
404
- CONFIRMED: race condition in connection cleanup (3/3 agree)
405
- ✓ CONFIRMED: missing error handler on WebSocket close (2/3 agree)
406
- ? UNVERIFIED: potential memory leak in Map (1 found, others couldn't verify)
547
+ ### "The same hallucinated finding keeps coming back"
548
+ Record a `hallucination_caught` signal: ask Claude *"record a hallucination_caught signal for finding f3 in the last consensus round — it claimed X but the code shows Y"*. After 3 such signals, the offending agent's score drops in that category and the orchestrator stops asking it questions in that area.
407
549
 
408
- Claude verifies the UNVERIFIED finding against your code,
409
- records accuracy signals, and presents the final report.
550
+ ### "I want to use my own model / provider"
551
+ Edit `.gossip/config.json` directly. Any OpenAI-compatible endpoint works via `provider: "openai"` + `base_url`. Local models work via Ollama (`provider: "local"`). See the [Configuration](#configuration) section.
552
+
553
+ ### "Multiple Claude Code instances all want gossipcat"
554
+ Already supported as of v0.1.1 — each instance gets its own dynamic port. If you want a stable port for one specific instance (e.g. for browser bookmarks), set `GOSSIPCAT_PORT=24420` for that one project's environment.
555
+
556
+ ### "How do I uninstall?"
557
+ ```bash
558
+ npm uninstall -g gossipcat
559
+ claude mcp remove gossipcat -s user
560
+ rm -rf ~/.gossip # if you want to wipe global memory + signals
561
+ rm -rf <project>/.gossip # if you want to wipe per-project state
410
562
  ```
411
563
 
412
- ### Under the hood
564
+ ### Still stuck?
565
+ File an issue at https://github.com/gossipcat-ai/gossipcat-ai/issues. Include the contents of `.gossip/mcp.log` (last 100 lines) and the output of `gossip_status`. Or ask Claude in-session: *"file a gossipcat bug report about <...>"* — the `gossip_bug_feedback` tool packages it up automatically.
413
566
 
414
- Claude Code translates your requests into gossipcat MCP tool calls:
567
+ <br/>
568
+
569
+ ## Under the hood
570
+
571
+ Claude Code translates your natural-language requests into gossipcat MCP tool calls automatically — you don't need to type these — but if you want fine-grained control they're documented here:
415
572
 
416
573
  ```
417
574
  gossip_run(agent_id: "auto", task: "...") → single-agent task
418
- gossip_dispatch(mode: "consensus", tasks: [...]) → multi-agent review
419
- gossip_collect(consensus: true) → cross-review + report
420
- gossip_signals(action: "record", signals: [...]) → record accuracy
575
+ gossip_dispatch(mode: "consensus", tasks: [...]) → multi-agent review with cross-review
576
+ gossip_collect(consensus: true) → wait for results, run consensus
577
+ gossip_signals(action: "record", signals: [...]) → record accuracy after verification
421
578
  gossip_scores() → view agent performance
422
- gossip_skills(action: "develop", ...) → improve struggling agents
579
+ gossip_skills(action: "develop", ...) → improve a struggling agent
580
+ gossip_status() → system status + dashboard URL
581
+ gossip_setup(...) → create or update your team
423
582
  ```
424
583
 
425
- You don't need to type these Claude Code handles tool selection. But you can call them directly if you want fine-grained control.
584
+ The dispatch rules at `.claude/rules/gossipcat.md` (auto-generated on first boot) teach Claude Code when to pick which mode based on what your change touches. You can edit these rules to bias the dispatch.
426
585
 
427
586
  <br/>
428
587
 
@@ -529,30 +688,16 @@ These tools are called by the internal LLM (the orchestrator — Claude Code wit
529
688
 
530
689
  <br/>
531
690
 
532
- ## Dashboard
691
+ ## Dashboard internals
533
692
 
534
- Build the dashboard (one time):
535
- ```bash
536
- npm run build:dashboard
537
- ```
693
+ > User-facing dashboard guide is in [Reading the dashboard](#reading-the-dashboard) above. This section covers the build + tech stack.
538
694
 
539
- The dashboard launches automatically on port `24420` when gossipcat boots. Run `gossip_status` to get the URL and auth key:
695
+ Built with React + Vite + shadcn/ui. Source lives at `packages/dashboard-v2/`. The bundled assets ship in `dist-dashboard/` and the relay serves them as static files at `http://localhost:<dynamic-port>/dashboard/`. Live updates push via WebSocket — every gossipcat tool call emits an event that connected dashboard tabs receive in real time.
540
696
 
697
+ To rebuild from source (contributors only):
698
+ ```bash
699
+ npm run build:dashboard
541
700
  ```
542
- Dashboard: http://localhost:24420/dashboard (key: a1b2c3...)
543
- ```
544
-
545
- A new auth key is generated each session. Paste it when prompted to log in.
546
-
547
- Built with React + Vite + shadcn/ui:
548
-
549
- - **Overview** — agent cards with dispatch weights, recent tasks, finding metrics
550
- - **Team** — all agents sorted by reliability
551
- - **Tasks** — task history with agent, duration, and status
552
- - **Findings** — consensus reports with CONFIRMED/DISPUTED/UNVERIFIED breakdowns
553
- - **Agent detail** — per-agent memory, skills, scores, and task history
554
-
555
- Live updates via WebSocket — every tool call pushes events to connected clients.
556
701
 
557
702
  <br/>
558
703
 
@@ -692,6 +837,7 @@ Gossipcat auto-detects the host environment:
692
837
  | Statistical skill effectiveness (z-test on per-category accuracy, auto pass/fail verdicts) | ✅ Shipped |
693
838
  | Native subagents get skill injection + cognitive memory recall | ✅ Shipped |
694
839
  | Relay cross-reviewers get `file_read` + `file_grep` (closes tool-blindness gap with natives) | ✅ Shipped |
840
+ | npm package — one-liner install with bundled MCP server + dashboard | ✅ Shipped |
695
841
  | Full implementation workflow (agents write code) | 🔄 In progress |
696
842
  | Dashboard enrichment (graphs, trends, session history) | ☐ Planned |
697
843
  | Local Postgres migration (embedded Postgres for tasks/signals/consensus/memory — unblocks full task results, real queries, no more JSONL scans) | ☐ Planned |
@@ -702,6 +848,33 @@ Gossipcat auto-detects the host environment:
702
848
 
703
849
  <br/>
704
850
 
851
+ ## Contributing
852
+
853
+ Gossipcat is open source and early-stage — bug reports, feature ideas, and PRs are all welcome.
854
+
855
+ - **Bugs / feature requests** → [open an issue](https://github.com/gossipcat-ai/gossipcat-ai/issues). Or ask Claude Code directly: *"File a gossipcat bug report about <...>"* — the `gossip_bug_feedback` tool posts structured issues from your current session.
856
+ - **Pull requests** → fork, branch, PR against `master`. Run `npm test` before pushing. Commit messages follow conventional commits (`fix:`, `feat:`, `chore:`, `docs:`).
857
+ - **Discussions** → new ideas, design questions, "should this be a feature?" → [GitHub Discussions](https://github.com/gossipcat-ai/gossipcat-ai/discussions).
858
+
859
+ See `CLAUDE.md` in the repo for the operational rules gossipcat's own agents follow during development — it's a useful read if you want to understand the signal pipeline and consensus workflow from the inside.
860
+
861
+ ### Cutting a release (maintainers)
862
+
863
+ Releases go to GitHub Releases via a two-stage script that respects branch protection — no direct commits to master.
864
+
865
+ ```bash
866
+ # Stage 1 — open the version bump PR
867
+ ./scripts/release.sh 0.1.2
868
+
869
+ # review + merge the PR via gh or web UI
870
+ gh pr merge <pr-number> --squash --delete-branch
871
+
872
+ # Stage 2 — build, tag, release (from master, after the PR is merged)
873
+ git checkout master && git pull
874
+ ./scripts/release.sh # no args
875
+ ```
876
+
877
+ Stage 1 creates `chore/release-X.Y.Z`, bumps `package.json`, opens the PR, exits. Stage 2 reads the version from `package.json`, builds the MCP bundle + dashboard, packs the tarball, tags, pushes the tag, and creates the GitHub release with auto-generated notes from commits since the last tag.
705
878
 
706
879
  <br/>
707
880