diff --git a/docs/policy/documentation.md b/docs/policy/documentation.md index d1514d3..9ace9dc 100644 --- a/docs/policy/documentation.md +++ b/docs/policy/documentation.md @@ -43,6 +43,7 @@ Canonical homes: - project purpose and quickstart: `README.md` - development principles: `docs/policy/architecture.md` +- public HTTP API reference: `docs/api.md` - configuration reference: `docs/config.md` - CLI reference: `docs/cli.md` - operations and recovery: `docs/operations.md` @@ -122,6 +123,22 @@ Recommended: - `docs/troubleshooting.md` - validated examples under `examples/` +### Public HTTP API service + +Required: +- `docs/api.md` +- `docs/cli.md`, if CLI-based +- `docs/config.md`, if config-driven +- `docs/operations.md` +- `docs/internal/` +- `docs/policy/development.md` + +Recommended: +- `docs/troubleshooting.md` +- `docs/consumers/`, for task-oriented client integration guides +- `docs/integrations/`, for upstream/downstream service contracts +- validated examples under `examples/` + ### Project with public packages or consumer APIs Required: @@ -173,6 +190,32 @@ It should include: For small projects, this file may be brief. It may simply state that the project is intentionally narrow, monolithic, and dependency-light. +### docs/api.md + +**Audience:** external HTTP API consumers, developers, LLM coding agents integrating by HTTP + +Required for projects whose primary public interface is HTTP. + +`docs/api.md` is the canonical public HTTP API contract. It should be normative for external consumers and should not be duplicated by README, operations docs, consumer guides, or integration docs. + +It should include: + +1. base URL conventions; +2. authentication and authorization behavior, if implemented; +3. response envelope; +4. supported media types and content negotiation behavior; +5. shared query parameters; +6. endpoint reference grouped by route family; +7. request parameters and validation rules; +8. response fields, units, nullability, and optionality; +9. error response shape and status codes; +10. pagination, caching, rate-limit, idempotency, and retry behavior, if implemented; +11. compact request and response examples. + +It must document only implemented endpoints and behavior. Planned endpoints, proposed fields, future filters, and experimental response shapes belong only under `docs/roadmap/`. + +For HTTP API projects, `docs/consumers/` may provide task-oriented client integration guides, but those guides should link to `docs/api.md` for the authoritative endpoint contract. + ### docs/policy/development.md **Audience:** developers, LLM coding agents @@ -264,6 +307,8 @@ Required for projects with public packages, SDKs, client APIs, plugin APIs, or o This directory describes how an external codebase should consume the project's public API. It should be task-oriented and copyable where useful. It is not the place for internal implementation details or operator procedures. +For projects whose public API is HTTP, `docs/consumers/` is not required, and it should not duplicate the endpoint reference in `docs/api.md`. If present, it may provide practical integration workflows, client-specific examples, or migration notes that link back to `docs/api.md`. + `docs/consumers/api.md` should provide the consumer-facing overview and primary implementation workflow. It should include: 1. intended consumer audience and use cases; @@ -330,6 +375,8 @@ Required for projects that depend on external CLIs, APIs, services, protocols, o This directory contains concise, versioned reference notes for external integration contracts. It should document only the parts of the external system that this project actually uses or exposes. +For public HTTP API services, `docs/integrations/` should document upstream, downstream, storage, protocol, or runtime contracts that the service depends on or bridges. It should not become a second copy of the public HTTP endpoint reference; that belongs in `docs/api.md`. + Use one file per integration where useful. ## Examples Directory @@ -385,9 +432,10 @@ Before merging documentation changes, verify: - README is concise and orientation-focused. - `docs/policy/architecture.md` describes development principles. +- `docs/api.md` is the canonical HTTP contract for HTTP API services. - Future work appears only under `docs/roadmap/`. - User-facing docs avoid unnecessary internals. -- Consumer-facing docs explain public APIs without duplicating integration contracts. +- Consumer-facing docs explain public APIs without duplicating HTTP endpoint or integration contracts. - Developer-facing docs preserve boundaries and invariants. - Config examples match the schema. - CLI examples match real commands and flags.