# 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](rendered/services/saif-claims-intake-service/index.md) — the same document as a real page, so you can compare rendering as well as source.

````markdown
---
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`
````
