| name | guardian-contract-change |
| description | Propagate Guardian contract changes safely across server, Rust client, TypeScript client, multisig SDKs, examples, docs, and tests. Use when Codex changes `guardian.proto`, HTTP JSON payloads, response shapes, status enums, auth requirements, or any user-visible server contract. |
Guardian Contract Change
Overview
Use this skill when the server contract is the source of truth for the task. Update the server first, then move outward through every consumer that depends on the changed shape or semantics.
Read First
Read these sources before making edits:
AGENTS.md
crates/server/proto/guardian.proto
crates/server/src/api/http.rs
crates/server/src/api/grpc.rs
packages/guardian-client/src/server-types.ts
packages/guardian-client/src/conversion.ts
crates/client/src/client.rs
references/contract-surfaces.md
If the change touches proposal payloads or account state shapes, also inspect both multisig SDKs and the example harnesses before editing.
Workflow
- Confirm the contract change.
Decide whether the change is:
- gRPC-only
- HTTP-only
- shared semantic behavior exposed through both transports
- Update the server contract source first.
- gRPC: edit
crates/server/proto/guardian.proto
- HTTP JSON: edit
crates/server/src/api/http.rs and the backing service modules
- shared behavior: edit service and domain modules before the transport adapters
- Update Rust client compatibility.
Inspect and update: