open-contract
Register CC-* hops and sign ContractEnvelope payloads.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Register CC-* hops and sign ContractEnvelope payloads.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Browser automation via Playwright MCP (official Microsoft headless browser)
Image generation and manipulation via MCP
PDF parsing and extraction via MCP
Autonomous tool discovery, evaluation, and integration for agent self-enhancement
Route OpenOS tasks to the correct product skill.
Enrich CRM contacts with LinkedIn and décideur data.
| name | open-contract |
| description | Register CC-* hops and sign ContractEnvelope payloads. |
| version | 1.0.0 |
| author | OpenPro |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["OpenContract","CC","envelope","mesh","step0"],"category":"open-ecosystem","related_skills":["open-dev-workflow","open-rec","open-brain","open-mcp-scaffold"]}} |
Every inter-app hop needs a declared CC-* contract and a signed ContractEnvelope.
OpenContract is the registry + validator — not a business app.
blocked or signature failures on mesh hopsDo not use for Brain doc RAG alone — see open-brain (CC-BRAIN-* is ingest, not transport).
| Object | Location |
|---|---|
| Registry YAML | OpenContract/registry/*.yaml |
| Identities | OpenContract/registry/identities.yaml |
| TS SDK | @opencontract/envelope (wrapSignedIfProducer, parseInboundHop) |
| API | :3070 validate/wrap |
| Handbook | OpenOS/docs/opencontract/OPENCONTRACT-HANDBOOK.md |
Lifecycle: draft → implemented → verified (E2E + correlation assert).
OPENCONTRACT_IDENTITY, OPENCONTRACT_SIGNING_KEY (or OPENCONTRACT_DEV_KEYS=1 local)OPENCONTRACT_REQUIRE_SIGNATURE=1CC-* row in OpenContract/registry/ (producer, consumer, plane, payload schema)X-Correlation-Id on every hopverified in registryProducer (TS):
import { wrapSignedIfProducer } from '@opencontract/envelope'
return wrapSignedIfProducer({ contractId, correlationId, producer, consumer, payload })
Consumer:
import { parseInboundHop } from '@opencontract/envelope'
await parseInboundHop(body, contractId, (p) => schema.parse(p))
| Situation | Action |
|---|---|
| New mesh edge | Register CC-* first, then code |
| Consumer HTTP response | Ack hop — do not sign as another app's identity |
| Multiple hops in one flow | One CC-* per hop — no merged blobs |
| Local dev | OPENCONTRACT_DEV_KEYS=1 + OpenContract API on :3070 |
opencontract list shows contract implemented or verifiedcontract_id + signatureOPENCONTRACT_REQUIRE_SIGNATURE=1