# Example: stored procedure catalog

A `procedures/index.md` page catalogs every Oracle package and standalone
procedure the code invokes, with one row per database object and a link to its
detail page. Reviewers use it to confirm the inventory is complete and that
each entry actually resolved to a documented object.

## What reviewers should check

- Every row links to a page in the `procedures/` folder that exists, and every
  detail page in the folder appears as a row. A page with no catalog row is
  unreachable from the rest of the library documentation.
- The Schema column holds the real owning schema retrieved from the database,
  not the application's connection user or an assumed name.
- The Type column reads exactly `Package` or `Procedure`, matching the
  `source_type` in the detail page's frontmatter.
- Purpose is a short business-intent phrase, not pasted PL/SQL and not a
  restatement of the object name.
- Calling business objects name the actual .NET or VB.NET classes that invoke
  the object, so a reader can trace from the database back into the code.
- Objects whose source could not be retrieved still appear in the catalog; the
  detail page carries the status, and the row must not be silently dropped.
- The Related documentation list matches the template's four links and the page
  contains no invented sections.

## Example

The document below is a complete, correct `procedures/index.md`.

[View rendered example](rendered/libraries/saif-framework-validation/procedures/index.md) — the same document as a real page, so you can compare rendering as well as source.

````markdown
---
title: "SAIF.Framework.Validation stored procedures"
summary: "Oracle stored procedures and packages referenced by this library."
status: draft
owner: "Claims Systems Team"
last_reviewed: "2026-08-14"
---

# SAIF.Framework.Validation stored procedures

This page catalogs Oracle stored procedures and PL/SQL packages invoked by this library.

## Procedure catalog

| Package / Procedure | Schema | Type | Purpose | Calling business objects |
| --- | --- | --- | --- | --- |
| [`PKG_CLAIM_VALIDATION`](pkg-claim-validation.md) | CLAIMS | Package | Resolves claim validation context and records blocking date failures | `ClaimValidationGateway`, `RuleDefinitionRepository` |
| [`PKG_JURISDICTION_RULES`](pkg-jurisdiction-rules.md) | CLAIMS | Package | Returns the state-scoped rule subset that applies to a jurisdiction | `RuleDefinitionRepository` |
| [`PKG_POLICY_PERIOD`](pkg-policy-period.md) | CLAIMS | Package | Resolves covering policy terms and renewal boundaries for a policy | `PolicyPeriodGateway` |
| [`PRC_PURGE_VALIDATION_AUDIT`](prc-purge-validation-audit.md) | CLAIMS | Procedure | Purges validation audit rows past the configured retention period | `ValidationAuditRepository` |

## Related documentation
- [Business rules](../business-rules.md)
- [Operations and processes](../operations-processes.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)
````
