gossipcat 0.6.10 → 0.6.11

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
@@ -194,10 +194,10 @@ Add to `~/.claude/mcp_settings.json` (Claude Code) or project-local `.mcp.json`:
194
194
 
195
195
  ```bash
196
196
  # Pin to a version
197
- npm install -g gossipcat@0.6.10
197
+ npm install -g gossipcat@0.6.11
198
198
 
199
199
  # Pin to a GitHub release tarball (bypasses the npm registry)
200
- npm install -g https://github.com/gossipcat-ai/gossipcat-ai/releases/download/v0.6.10/gossipcat-0.6.10.tgz
200
+ npm install -g https://github.com/gossipcat-ai/gossipcat-ai/releases/download/v0.6.11/gossipcat-0.6.11.tgz
201
201
 
202
202
  # Project-local (postinstall writes .mcp.json — open the IDE there, no `mcp add` needed)
203
203
  cd your-project && npm install --save-dev gossipcat
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: memory-retrieval
3
3
  mode: permanent
4
+ status: active
4
5
  description: Call gossip_remember BEFORE reviewing — recall prior findings on the same code so you don't re-discover or contradict yourself
5
6
  ---
6
7
 
@@ -21462,7 +21462,7 @@ Peer scores: ${peerScores.length > 0 ? peerScores.join(", ") : "no peer data"}
21462
21462
 
21463
21463
  Output a skill markdown file with this exact structure:
21464
21464
 
21465
- 1. YAML frontmatter with fields: name, category (${category}), agent (${agentId}), generated, effectiveness (0.0), baseline_rate (${baselineRate.toFixed(3)}), baseline_dispatches (${totalDispatches}), version (1), mode (contextual), keywords ([${(CATEGORY_KEYWORDS[category] || [category]).join(", ")}])
21465
+ 1. YAML frontmatter with fields: name, description (one concise line describing what the skill improves), category (${category}), agent (${agentId}), generated, effectiveness (0.0), baseline_rate (${baselineRate.toFixed(3)}), baseline_dispatches (${totalDispatches}), version (1), mode (contextual), keywords ([${(CATEGORY_KEYWORDS[category] || [category]).join(", ")}])
21466
21466
  2. ## Iron Law \u2014 one absolute rule (MUST/NEVER language)
21467
21467
  3. ## When This Skill Activates \u2014 task patterns that trigger it
21468
21468
  4. ## Methodology \u2014 5-8 step checklist, actionable not vague
@@ -21526,6 +21526,12 @@ Requirements:
21526
21526
  if (!fm.match(/^effectiveness:/m)) {
21527
21527
  fm = fm.trimEnd() + "\neffectiveness: 0.0";
21528
21528
  }
21529
+ if (!fm.match(/^description:/m)) {
21530
+ const nameMatch = fm.match(/^name:\s*(.+)$/m);
21531
+ const derived = (nameMatch?.[1]?.trim() ?? "").replace(/^['"]|['"]$/g, "").replace(/[-_]/g, " ").trim() || "generated skill";
21532
+ fm = fm.trimEnd() + `
21533
+ description: ${JSON.stringify(derived)}`;
21534
+ }
21529
21535
  fm = fm.trimEnd() + `
21530
21536
  baseline_accuracy_correct: ${snapshot.baseline_accuracy_correct}
21531
21537
  baseline_accuracy_hallucinated: ${snapshot.baseline_accuracy_hallucinated}
@@ -24404,18 +24410,29 @@ function parseSkillFrontmatter(content, sourceLabel) {
24404
24410
  const key = line.slice(0, colonIdx).trim();
24405
24411
  let value = line.slice(colonIdx + 1).trim();
24406
24412
  if (value.length >= 2 && (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'"))) {
24407
- value = value.slice(1, -1);
24413
+ value = value.slice(1, -1).trim();
24408
24414
  }
24409
24415
  fields[key] = value;
24410
24416
  if (value === "" && BLOCK_SEQUENCE_KEYS.has(key)) {
24411
24417
  activeBlockKey = key;
24412
24418
  }
24413
24419
  }
24414
- if (!fields.name || !fields.description || !fields.status) {
24415
- const missing = ["name", "description", "status"].filter((f) => !fields[f]);
24416
- warnParseFailure(`missing required field(s): ${missing.join(", ")}`, sourceLabel);
24420
+ if (!fields.name) {
24421
+ warnParseFailure("missing required field(s): name", sourceLabel);
24417
24422
  return null;
24418
24423
  }
24424
+ const backfilled = [];
24425
+ if (!fields.description) {
24426
+ fields.description = fields.name.replace(/[-_]/g, " ").trim() || fields.name;
24427
+ backfilled.push("description");
24428
+ }
24429
+ if (!fields.status) {
24430
+ fields.status = "active";
24431
+ backfilled.push("status");
24432
+ }
24433
+ if (backfilled.length > 0) {
24434
+ warnParseFailure(`backfilled missing field(s): ${backfilled.join(", ")}`, sourceLabel);
24435
+ }
24419
24436
  let keywords = [];
24420
24437
  if (blockSequences.keywords && blockSequences.keywords.length > 0) {
24421
24438
  keywords = blockSequences.keywords.map((k) => k.trim().replace(/^['"]|['"]$/g, "").slice(0, 100)).filter(Boolean);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gossipcat",
3
- "version": "0.6.10",
3
+ "version": "0.6.11",
4
4
  "description": "Multi-agent orchestration for Claude Code — parallel review, consensus, adaptive dispatch",
5
5
  "mcpName": "io.github.ataberk-xyz/gossipcat",
6
6
  "repository": {