Example: SOAP client operation map¶
operation-map.md reconciles the operations a SOAP client proxy exposes
against the operations the repository's own source actually calls. Doc gen
produces one per SOAP client package at
docs/clients/<client-slug>/operation-map.md, with a table of called
operations, a table of operations present but not called, the origin of the
remote service, and a coverage proof that the two tables add up to the proxy's
declared operations.
What reviewers should check¶
- Operations are identified by contract name and SOAP action. No row carries an HTTP verb, a resource path, or a status code, and the page does not describe a proxy as an "endpoint client".
- The two tables are disjoint and complete. Every operation on the proxy is in exactly one of them, and the Coverage table proves it: called plus not called equals the declared count. A mismatch means a row was dropped, and the fix is the table, never the count.
- Call sites cite a real file and line in the repository, and name the member
that makes the call. Generated proxy code never counts as a call site. Here
the hand-written
ClaimIntakeGatewayis the caller of both used operations. - The Service documentation cell takes one of two forms. A relative link into
docs/services/<service-slug>/is allowed only when the run generated that document set; otherwise the canonical service name appears in backticks with the dagger marker. A link to a services folder that was not generated is a defect. - When the dagger form is used, the External service origin section exists, with a callout naming the operations, a canonical service name, a repository that reads "Not determined from source" unless it is evidenced, the WSDL file that shows the operation shape, and the endpoint address exactly as configured.
- The not-called table never speculates. "No call site found in repository source" is the complete and correct reason unless source or a comment says more, and the input message cell lists part types and names, or "None".
- A client with every operation called replaces the second table with the fixed sentence, and a client that calls nothing says so; neither drops the section.
- The dagger note box follows Related documentation and appears only because the page uses the dagger marker. Remove it, and the marker, together.
- Related documentation lists every sibling client page except this one. Business rules is absent because no business rules document was generated for this client.
Example¶
The document below is a complete, correct client-operation-map.md for a
fictional SOAP client package.
View rendered example — the same document as a real page, so you can compare rendering as well as source.
---
title: Operation map
summary: Which contract operations the proxy exposes and which the repository actually calls.
status: draft
owner: Claims Systems Team
last_reviewed: 2026-09-10
---
# Operation map
This page reconciles the operations the proxy exposes against the operations repository source actually invokes. A reader uses it to answer "if the remote service changed this operation, does this repository care".
## Operations called from source
| Operation | SOAP action | Call site | Calling member | Service documentation | Source |
| --- | --- | --- | --- | --- | --- |
| `SubmitClaim` | `http://services.saif.example/claims/intake/v1/ClaimIntake/SubmitClaim` | `ClaimIntakeGateway.Submit` | [`SubmitClaim`](reference.md#submitclaim) | `SAIF.Claims.Intake.Service`† | `src/SAIF.Claims.Intake.Client/ClaimIntakeGateway.cs:46` |
| `GetClaimStatus` | `http://services.saif.example/claims/intake/v1/ClaimIntake/GetClaimStatus` | `ClaimIntakeGateway.GetStatus` | [`GetClaimStatus`](reference.md#getclaimstatus) | `SAIF.Claims.Intake.Service`† | `src/SAIF.Claims.Intake.Client/ClaimIntakeGateway.cs:63` |
## Operations present but not called
| Operation | SOAP action | Input message | Reason not called |
| --- | --- | --- | --- |
| `FlagClaimForReview` | `http://services.saif.example/claims/intake/v1/ClaimIntake/FlagClaimForReview` | `string claimNumber`, `string reason` | No call site found in repository source |
## External service origin
> **Origin**: `SubmitClaim` and `GetClaimStatus` are served by `SAIF.Claims.Intake.Service`, which is not documented by this run.
| Attribute | Value |
| --- | --- |
| Canonical service | `SAIF.Claims.Intake.Service` |
| Repository | Not determined from source |
| Evidence of the operation shape | `src/SAIF.Claims.Intake.Client/Service References/ClaimIntakeReference/ClaimIntake.wsdl` |
| Endpoint address | `http://claims-intake-dev.saif.example/ClaimIntake.svc` |
## Coverage
| Check | Count | Reconciles |
| --- | --- | --- |
| Operations declared by the proxy | 3 | - |
| Operations called from source | 2 | Rows in "Operations called from source" |
| Operations present but not called | 1 | Rows in "Operations present but not called" |
| Called + not called | 3 | Equals operations declared by the proxy |
| Every called row resolves or is †-marked | Yes | - |
| Every called row has a section in [Client reference](reference.md) | Yes | - |
## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)
> **Note:** Statements marked with † were retrieved from dependency library documentation
> via the Legends CLI RAG service. They describe inherited behavior from the indicated
> origin library and should be verified if the dependency version changes.
## Sources
- `src/SAIF.Claims.Intake.Client/ClaimIntakeGateway.cs`
- `src/SAIF.Claims.Intake.Client/Service References/ClaimIntakeReference/Reference.svcmap`
- `src/SAIF.Claims.Intake.Client/Service References/ClaimIntakeReference/Reference.cs`
- `src/SAIF.Claims.Intake.Client/Service References/ClaimIntakeReference/ClaimIntake.wsdl`
- `src/SAIF.Claims.Intake.Client/app.config`