# Estatewise Contracts

> Audit producer-consumer alignment in EstateWise when REST, tRPC, MCP, gRPC, A2A, or shared payloads may have changed. Use when one package's change could silently break another package, tool, or doc set.

- Skill: `hoangsonww/estatewise-contracts` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add hoangsonww/estatewise-contracts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hoangsonww/estatewise-contracts/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: hoangsonww (https://skillmd.com/u/hoangsonww)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hoangsonww/estatewise-contracts

---


# EstateWise Contracts

Use this skill whenever a change could affect another package or service, even if the code edit is small.

## Contract Sources Of Truth

- REST backend contract: `backend/src/routes/`, `backend/src/controllers/`, swagger annotations, `backend/README.md`
- Frontend REST consumption: `frontend/lib/api.ts` plus direct `fetch(...)` usage in `frontend/pages/`
- Frontend local tRPC contract: `frontend/server/api/routers/`, `frontend/pages/api/trpc/[trpc].ts`, `frontend/lib/trpc.tsx`
- MCP contract: `mcp/src/tools/*.ts`, `mcp/src/server.ts`, `mcp/src/client.ts`, `mcp/README.md`
- Agentic AI HTTP/A2A contract: `agentic-ai/src/http/server.ts`, `agentic-ai/src/a2a/`, `agentic-ai/README.md`
- gRPC contract: `grpc/proto/market_pulse.proto`, `grpc/src/services/`, `grpc/README.md`

## Producer To Consumer Matrix

### Backend REST -> Frontend + MCP

If a backend endpoint, query param, auth rule, or payload changes, inspect:

- `frontend/lib/api.ts`
- direct frontend fetch callers under `frontend/pages/`
- MCP tools in `mcp/src/tools/`
- Swagger and README docs

### Frontend local tRPC -> Frontend pages

If a local tRPC router changes, inspect:

- `frontend/server/api/routers/`
- `frontend/lib/trpc.tsx`
- consuming pages/components

### MCP tools -> Agentic AI + docs

If an MCP tool name, schema, or output changes, inspect:

- `mcp/src/client.ts`
- `agentic-ai/src/lang/tools.ts`
- orchestrator/runtime call sites
- `mcp/README.md`

### Agentic A2A/HTTP -> MCP A2A bridge

If `agentic-ai` server endpoints or task semantics change, inspect:

- `agentic-ai/src/http/server.ts`
- `agentic-ai/src/a2a/`
- `mcp/src/tools/a2a.ts`
- `agentic-ai/README.md`
- `mcp/README.md`

### gRPC proto -> Service + docs

If the proto changes, inspect:

- `grpc/src/services/`
- `grpc/src/server.ts`
- examples/docs/tests

## Search Patterns

Use targeted searches like:

- `rg -n "estatewise-backend\\.vercel\\.app|API_BASE_URL" frontend`
- `rg -n "/api/|fetch\\(" frontend/pages frontend/lib`
- `rg -n "name:\\s*\"<tool>\"|callTool\\(|client:call" mcp agentic-ai`
- `rg -n "/run|/run/stream|a2a|agent-card|tasks\\." agentic-ai mcp`
- `rg -n "market_pulse|MarketPulseService" grpc`

## Validation Expectations

- REST contract change:
  - `cd backend && npm run build && npm run test`
  - `cd frontend && npm run build && npm run test` when frontend callers changed
  - `cd mcp && npm run build && npm run client:call -- <tool> '<json>'` when MCP wrappers changed

- tRPC contract change:
  - `cd frontend && npm run build && npm run test`

- MCP contract change:
  - `cd mcp && npm run build`
  - `cd mcp && npm run client:call -- <tool> '<json>'`
  - `cd agentic-ai && npm run build` when consumed there

- A2A/HTTP contract change:
  - `cd agentic-ai && npm run build`
  - validate a realistic HTTP or CLI flow if possible
  - validate MCP `a2a.*` bridge when relevant

- gRPC contract change:
  - `cd grpc && npm run build && npm run test && npm run proto:check`

## Required Closeout

State:

1. What contract moved.
2. Which producers and consumers were updated.
3. Which validations proved alignment.
4. Which downstream consumers were not validated and why.

