--- name: cellar-door description: "𓉸 Cellar Door β€” Create, verify, and link EXIT and ENTRY markers: portable cryptographic proofs of departure and arrival for agents, users, and DAOs." --- # 𓉸 Cellar Door Skill Cryptographic passage markers for agent mobility. Uses [cellar-door-exit](https://cellar-door.dev) and [cellar-door-entry](https://cellar-door.dev) on npm. ## When to Use - **Agent departing** a platform/context β†’ `exit.sh` - **Agent arriving** at a new destination β†’ `entry.sh` - **Verifying** any marker (EXIT or ENTRY) β†’ `verify.sh` - **Full passage** (EXIT β†’ ENTRY with continuity proof) β†’ `transfer.sh` ## Commands | Script | Purpose | Usage | |--------|---------|-------| | `exit.sh` | Create a signed EXIT marker | `exit.sh [voluntary\|forced\|emergency]` | | `entry.sh` | Create a signed ENTRY (arrival) marker from an EXIT marker | `entry.sh ` | | `verify.sh` | Verify any marker's cryptographic signature | `verify.sh ` | | `transfer.sh` | Verify a full EXITβ†’ENTRY passage | `transfer.sh ` | ## Common Workflows ### 1. Departure β€” Agent Leaves a Platform ```bash ./scripts/exit.sh "did:web:old-platform.example" voluntary # Outputs signed EXIT marker JSON ``` ### 2. Arrival β€” Agent Enters a New Platform ```bash ./scripts/entry.sh exit-marker.json "did:web:new-platform.example" # Outputs signed ENTRY (arrival) marker JSON ``` ### 3. Verify a Marker ```bash ./scripts/verify.sh marker.json # βœ“ VALID or βœ— INVALID β€” works for both EXIT and ENTRY markers ``` ### 4. Verify a Full Passage ```bash ./scripts/transfer.sh exit-marker.json entry-marker.json # Checks: both signatures valid, subjects match, continuity holds ``` ## API Reference ### cellar-door-exit - `quickExit(origin, opts?) β†’ { marker, identity }` β€” Generate identity + create + sign in one call - `quickVerify(json) β†’ { valid, errors }` β€” Verify an EXIT marker from JSON - `verifyMarker(marker) β†’ { valid, errors }` β€” Verify an EXIT marker object - `generateIdentity() β†’ { did, publicKey, privateKey }` β€” Ed25519 DID + keypair - `createMarker({ subject, origin, exitType, status }) β†’ ExitMarker` - `signMarker(marker, privateKey, publicKey) β†’ ExitMarker` - `toJSON(marker) / fromJSON(json)` β€” Serialization helpers - Enums: `ExitType.Voluntary | Forced | Emergency`, `ExitStatus.GoodStanding | Disputed | Unverified` ### cellar-door-entry - `quickEntry(exitMarkerJson, destination, opts?) β†’ { arrivalMarker, exitMarker, continuity }` - `createArrivalMarker(exitMarker, destination, opts?) β†’ ArrivalMarker` - `signArrivalMarker(marker, privateKey, publicKey) β†’ ArrivalMarker` - `verifyArrivalMarker(marker) β†’ { valid, errors }` - `verifyDeparture(exitMarker) / verifyDepartureJSON(json)` β€” Verify an EXIT marker before admitting - `verifyContinuity(exitMarker, arrivalMarker) β†’ { valid, errors }` β€” Identity continuity check - `verifyTransfer(exitMarker, arrivalMarker) β†’ TransferRecord` β€” Full passage verification ## Notes - Both packages are on npm (v0.1.0). Install: `npm install cellar-door-exit cellar-door-entry` - All markers are Ed25519-signed and offline-verifiable. - For advanced usage (ceremonies, key rotation, admission policies, probation), see `references/api-guide.md`. - Spec & docs: