Skip to content

Example: SOAP service index

index.md is the landing page for a single WCF SOAP service host's documentation set. Doc gen produces one per host project at docs/services/<service-slug>/index.md: a fact table describing how the host is activated and configured, a map of every page in the set, and a service class catalog that hands off to the per-contract detail pages. The unit of documentation is the host project, not the repository.

What reviewers should check

  • Every row of the fact table is a finding taken from source. Activation, contract location, service behaviors, metadata publication, and deployment variants differ between hosts, so a row that reads like a WCF default is a sign nobody opened the host project.
  • The Activation row names the mechanism analysis found. .svc file is correct here only because ClaimIntake.svc exists on disk and is cited in the Activation source row. A .svc path asserted because the stack is WCF is a defect; a host that registers ServiceRoute entries in Application_Start names the route registration instead. Global.asax can be present without registering anything.
  • The Contract assembly row says whether the [ServiceContract] interface is in the repository or external. When it is external, the contract detail pages must say so and mark undeclared members with the dagger marker.
  • ASP.NET compatibility, Service behaviors, and Metadata publication carry "Not declared" or "None in code" when that is the finding. Those are valid answers, not gaps.
  • The service class catalog has one row per service class. The Operations count equals the number of H2 operation sections on the contract page, and the Route cell is the .svc file name or the route name actually registered.
  • ## Embedded libraries and ## Consumed SOAP proxies appear only when the host has something to list. This host has neither, so both are absent and the Embedded libraries line is absent from ## Related documentation.
  • ## Related documentation carries every sibling root page except index.md itself, drops conditional lines only because the target was not generated, and never lists per-contract detail pages.
  • Nothing under the set uses REST or front-end vocabulary: no HTTP verbs, route templates, status codes, or screen terms.

Example

The document below is a complete, correct service-index.md for a fictional WCF service.

View rendered example — the same document as a real page, so you can compare rendering as well as source.

---
title: SOAP service documentation
summary: Entry point for .NET Framework WCF SOAP service host documentation.
status: draft
owner: Claims Systems Team
last_reviewed: 2026-09-10
---

# SOAP service documentation

`SAIF.Claims.Intake.Service` is the WCF host through which SAIF's internal applications submit a first report of injury and read back the intake status of a submitted claim. It exposes one service class, `ClaimIntake`, with three operations: one that records a new claim submission, one that returns its current intake status, and one that flags a submitted claim for manual review. The claims portal and the `SAIF.Claims.Intake.Client` proxy package call it rather than writing to the `CLM` schema directly, so claim intake has one owner and one set of rules.

| Field | Value |
| --- | --- |
| **Host project** | `SAIF.Claims.Intake.Service` |
| **Framework** | WCF (`System.ServiceModel`, .NET Framework 4.8) |
| **Host** | IIS - `Global.asax` + `Global` : `System.Web.HttpApplication` |
| **Activation** | `.svc` file |
| **Activation source** | `src/SAIF.Claims.Intake.Service/ClaimIntake.svc` |
| **Service classes** | 1 |
| **Contract assembly** | `SAIF.Claims.Intake.Service` - In repository (`src/SAIF.Claims.Intake.Service/IClaimIntake.cs`) |
| **ASP.NET compatibility** | `[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]` |
| **Service behaviors** | `[LogErrorBehavior]` |
| **Metadata publication** | `<serviceMetadata httpGetEnabled="true"/>` |
| **Deployment variants** | Single variant |

## Documentation sections

| Section | Description |
| --- | --- |
| [Overview](overview.md) | Purpose, business context, and capability summary |
| [Architecture](architecture.md) | Layering, dispatch path, composition root, and integration points |
| [Activation and hosting](activation-hosting.md) | Route registrations, host inventory, and deployment variants |
| [Operations](operations.md) | Operation catalog with per-contract detail pages |
| [Faults and error pipeline](faults.md) | Fault contracts, error handlers, and what a caller receives |
| [Authentication and authorization](authentication-authorization.md) | Identity, authorization enforcement, and role requirements |
| [Dependencies](dependencies.md) | Libraries, packages, services, and database connections |
| [Configuration](configuration.md) | Runtime-resolved configuration and the Web.config surface |
| [Operations and processes](operations-processes.md) | End-to-end processing workflows behind the operations |
| [Business rules](business-rules.md) | Rules enforced during message processing |
| [Data model](data-model.md) | Persistence model, entity mappings, and stored procedure usage |
| [Operational runbook](operational-runbook.md) | Deployment, health checks, logs, faults, error recovery |
| [Tech debt](tech-debt.md) | CRITICAL and HIGH severity findings |

## Service classes

| Service class | Route | Operations | Also hosted in | Documentation |
| --- | --- | --- | --- | --- |
| `ClaimIntake` | `ClaimIntake.svc` | 3 | - | [Docs](contracts/claim-intake.md) |

## Related documentation
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Activation and hosting](activation-hosting.md)
- [Operations](operations.md)
- [Faults and error pipeline](faults.md)
- [Authentication and authorization](authentication-authorization.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Data model](data-model.md)
- [Operational runbook](operational-runbook.md)
- [Tech debt](tech-debt.md)

## Sources
- `src/SAIF.Claims.Intake.Service/ClaimIntake.svc`
- `src/SAIF.Claims.Intake.Service/ClaimIntake.svc.cs`
- `src/SAIF.Claims.Intake.Service/IClaimIntake.cs`
- `src/SAIF.Claims.Intake.Service/Global.asax.cs`
- `src/SAIF.Claims.Intake.Service/Behaviors/LogErrorBehaviorAttribute.cs`
- `src/SAIF.Claims.Intake.Service/Web.config`
- `src/SAIF.Claims.Intake.Service/SAIF.Claims.Intake.Service.csproj`