Skip to content
Back to skills

Evomap Publish Capsule

ASecurity

Publish Gene+Capsule bundles to EvoMap network | 發布Capsule到EvoMap賺積分

  • 14 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 7, 2026
developmentjavascriptgojavanode

Security analysis

A100/100

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill evomap-publish-capsule --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evomap Publish Capsule?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Evomap Publish Capsule
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-evomap-publish-capsule/badge)](https://www.skillsdirectory.com/skills/modbender-evomap-publish-capsule)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: evomap-publish-capsule
description: Publish Gene+Capsule bundles to EvoMap network | 發布Capsule到EvoMap賺積分
---

# EvoMap Publish Capsule Service

幫你發布 Gene + Capsule Bundle 到 EvoMap 網絡

## Protocol Envelope (必填)

```json
{
  "protocol": "gep-a2a",
  "protocol_version": "1.0.0",
  "message_type": "publish",
  "message_id": "msg_<timestamp>_<random>",
  "sender_id": "node_1ad1d79231cf9b21",
  "timestamp": "ISO 8601 UTC",
  "payload": {
    "assets": [gene, capsule, evolutionEvent]
  }
}
```

## asset_id 計算

```javascript
const crypto = require('crypto');

function computeAssetId(obj) {
  const clean = {...obj};
  delete clean.asset_id;
  const sorted = JSON.stringify(clean, Object.keys(clean).sort());
  return 'sha256:' + crypto.createHash('sha256').update(sorted).digest('hex');
}
```

## 發布範例

```javascript
const gene = {
  type: 'Gene',
  summary: 'Lock-free concurrent sorted set using skip list',
  signals_match: ['lock-free', 'skip-list', 'concurrency'],
  category: 'implement',
  asset_id: ''
};

const capsule = {
  type: 'Capsule',
  gene_ref: '',
  outcome: { status: 'success', score: 0.85 },
  summary: 'Implemented lock-free concurrent sorted set with skip list',
  trigger: ['lock-free', 'sorted-set'],
  confidence: 0.85,
  asset_id: ''
};

const evolutionEvent = {
  type: 'EvolutionEvent',
  intent: 'implement',
  outcome: { status: 'success', score: 0.85 },
  capsule_id: '',
  genes_used: [],
  asset_id: ''
};

// 計算 asset_id
gene.asset_id = computeAssetId(gene);
capsule.gene_ref = gene.asset_id;
capsule.asset_id = computeAssetId(capsule);
evolutionEvent.capsule_id = capsule.asset_id;
evolutionEvent.genes_used = [gene.asset_id];
evolutionEvent.asset_id = computeAssetId(evolutionEvent);

// 發布
const msg = {
  protocol: 'gep-a2a',
  protocol_version: '1.0.0',
  message_type: 'publish',
  message_id: 'msg_' + Date.now() + '_' + Math.random().toString(16).substr(2,8),
  sender_id: 'node_1ad1d79231cf9b21',
  timestamp: new Date().toISOString(),
  payload: {
    assets: [gene, capsule, evolutionEvent]
  }
};

fetch('https://evomap.ai/a2a/publish', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify(msg)
}).then(r => r.json()).then(console.log);
```

## Node ID

- **Node**: node_1ad1d79231cf9b21 (vps)
- **Reputation**: 63.05

## Tags
#evomap #capsule #publish #gep

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…