3. System Scope and Context
3.1 Business Context
graph TB
Spec["opencoachingformat/spec
(canonical schema/v1.json,
RFCs, named-position catalog)"]
Validator["ocf-validator (this repo)
packages/ts, packages/py"]
Editor["ocf-editor
(authoring UI / LLM generation)
consumes errors/warnings
for inline feedback"]
Renderer["ocf-renderer
(companion repo)
consumes result.valid
as a pre-render gate"]
Spec -->|"repository_dispatch: spec_released
(client_payload.version)"| Validator
Editor -->|"OCF documents (.ocf.json)"| Validator
Validator -->|"validate() results
{valid, errors[], warnings[]}"| Editor
Validator -->|"validate() results
{valid, errors[], warnings[]}"| Renderer
Renderer -->|"OCF documents (.ocf.json)"| Validator
3.2 Technical Context
| Interface |
Direction |
Description |
validate(doc) / validate_file(path) library call |
Inbound |
Primary integration point for both editor and renderer tooling. Never throws for validation failures — only for true programmer errors (non-object argument). |
ocf-validate CLI |
Inbound |
Thin wrapper over the library API; used in scripts/CI of consumer repos, and interactively by humans. |
shared/schema/ocf-action-v1.json, shared/error-codes.json, shared/conformance/** |
Internal, shared |
Language-neutral contract consumed identically by packages/ts and packages/py; not a public interface to other repos. |
GitHub Contents API (repos/opencoachingformat/spec/contents/schema/v1.json) |
Outbound (CI only) |
Used exclusively by the sync-from-spec workflow to fetch the schema at a released ref — not used at validation runtime. |
repository_dispatch webhook (spec_released) |
Inbound (CI only) |
The spec repo (or its release automation) notifies this repo that a new version was released, carrying client_payload.version. |