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