Skip to content
Back to skills

Protocol Change

ASecurity

Change agent-office's public contracts — AgentEvent fields, inbox/reply/messages HTTP APIs, the IPC contract (AgentOfficeApi, ServerMessage), or the hook's output. Use whenever packages/shared/src/{protocol,desktop-api,ipc-channels}.ts or an /api route's request/response shape changes.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 19, 2026
ai-agentsapi

Works with

  • api

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add arxdsilva/agent-office --skill protocol-change --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Protocol Change?

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

Security grade badge for Protocol Change
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arxdsilva-protocol-change/badge)](https://www.skillsdirectory.com/skills/arxdsilva-protocol-change)

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: protocol-change
description: Change agent-office's public contracts — AgentEvent fields, inbox/reply/messages HTTP APIs, the IPC contract (AgentOfficeApi, ServerMessage), or the hook's output. Use whenever packages/shared/src/{protocol,desktop-api,ipc-channels}.ts or an /api route's request/response shape changes.
---

# Change a public contract (additive only)

External agents and installed hooks depend on these shapes. See `ARCHITECTURE.md`.

1. **Red** — add a case to `packages/shared/src/index.test.ts` for the new field/shape. The compatibility guard (`{agentId}` alone parses; unknown fields ignored) must stay green.
2. **Green** — add the field as **optional** in the zod schema / type. Never rename, remove, retype, or make a field required.
3. **Core** — if it's agent state: merge logic + tests in `packages/core/src/domain/agent.ts` (`applyEvent` merges only defined fields; add it to the visible fields if it should trigger an upsert).
4. **Adapters** — HTTP route + `packages/adapters/src/http/http-api.test.ts` (400 for invalid input, success path); IPC handler + `packages/desktop/src/main/ipc-api.test.ts` and the preload bridge.
5. **Renderer** — reducer (`web/src/app/state.ts`) and view-model tests, then rendering (`adapters/three/avatar.ts`, `adapters/dom/*`) with `textContent` only.
6. **E2E** — extend the relevant `packages/adapters/test/e2e.*.test.ts`; for IPC, a spec in `packages/desktop/e2e/`.
7. **Docs** — README schema tables and examples.
8. `make check` and `make build test-ui`.

A breaking change is only allowed with an explicit major-version note in the README and the user's agreement.

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.