From 7b64c8bbd0178bfee6936ba7212d3a9bc0491155 Mon Sep 17 00:00:00 2001 From: eat-apples Date: Mon, 24 Aug 2026 11:48:41 +0300 Subject: [PATCH] Consolidate docs search authority --- .github/pull_request_template.md | 2 +- benefits.mdx | 2 +- changelog.mdx | 6 ++-- concepts/institutions.mdx | 20 +++++------ concepts/platform.mdx | 2 +- institutions/assurance-graph.mdx | 8 ++--- insurance/acceptance-testing.mdx | 10 +++--- insurance/claim-valuation-timeline.mdx | 4 +-- insurance/financial-controls.mdx | 6 ++-- insurance/integration-guide.mdx | 12 +++---- legacy-domain-redirect.js | 8 +++++ mcp-server.mdx | 4 +-- research/evidence.mdx | 2 +- resources.mdx | 6 ++-- sandbox.mdx | 2 +- scripts/check-docs.mjs | 49 ++++++++++++++++++++++++++ sdks.mdx | 2 +- versioning.mdx | 2 +- 18 files changed, 102 insertions(+), 45 deletions(-) create mode 100644 legacy-domain-redirect.js diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8040bd0..f911865 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,6 @@ ## Change -Describe the reader task or contract surface changed. +Describe the reader task or API surface changed. ## Public boundary diff --git a/benefits.mdx b/benefits.mdx index 94e18fc..ed56087 100644 --- a/benefits.mdx +++ b/benefits.mdx @@ -74,6 +74,6 @@ An approved pre-authorization reserves one Session atomically. Retrying the same ## Data boundary -Responses omit the Member reference, payer identifier and internal coverage record. Clinical Notes, Diagnoses and Session content are never part of this contract. +Responses omit the Member reference, payer identifier and internal coverage record. Clinical Notes, Diagnoses and Session content are never part of this API response. Use `benefits:write` for decisions and `benefits:read` for retrieval. diff --git a/changelog.mdx b/changelog.mdx index 59da072..8cefa88 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -29,9 +29,9 @@ public [Heyrafiki Lab](https://heyrafiki.space/resources/lab). -**Changed** the remote MCP server to the `2026-07-28` protocol contract, including stateless discovery, per-request capability metadata, transport header validation and structured completion results. +**Changed** the remote MCP server to the `2026-07-28` protocol version, including stateless discovery, per-request capability metadata, transport header validation and structured completion results. -**Added** private cache hints for `server/discover` and `tools/list`. See [MCP server](/mcp-server) for the connection contract. +**Added** private cache hints for `server/discover` and `tools/list`. See [MCP server](/mcp-server) for the connection requirements. @@ -79,5 +79,5 @@ The MCP server validates OAuth resource indicators and project scopes on every r **Added** environment-scoped secret keys, stable error envelopes and per-key rate-limit headers. -**Published** the OpenAPI contract used by the generated endpoint reference. +**Published** the OpenAPI definition used by the generated endpoint reference. diff --git a/concepts/institutions.mdx b/concepts/institutions.mdx index 4e57ac4..87909fb 100644 --- a/concepts/institutions.mdx +++ b/concepts/institutions.mdx @@ -1,6 +1,6 @@ --- title: "Institutional integrations" -description: "Connect Care, Cover, Claims and audit through governed contracts." +description: "Connect Care, Cover, Claims and audit through governed interfaces." keywords: ["institutional healthcare integration", "payer API", "health data governance", "research integration"] --- @@ -17,7 +17,7 @@ Institutional integrations use versioned resources for Practitioner discovery, B Coordinate Care through purpose-bound Practitioner, Booking and Session capabilities. - Use approved protocols, synthetic environments and versioned public contracts. + Use approved protocols, synthetic environments and versioned public API definitions. @@ -39,7 +39,7 @@ Identity, clinical records, Benefit decisions and payment evidence keep separate ## Integration boundaries -| Boundary | Contract | +| Boundary | Documented behavior | | --- | --- | | Access | Organization-scoped credentials, project isolation and least-privilege scopes | | Cover and Claims | Idempotent eligibility, pre-authorization, Claim and remittance workflows | @@ -52,25 +52,25 @@ Credential issuers remain authoritative for professional status. Payers remain a - Verify Coverage ingestion, eligibility, pre-authorization, Claim adjudication, remittance, Webhooks, retries and cross-tenant denial against the versioned contract. + Verify Coverage ingestion, eligibility, pre-authorization, Claim adjudication, remittance, Webhooks, retries and cross-tenant denial against the published API definition. Recompute line and Claim identities, reconcile advice to independent settlement evidence, and preserve service, submission, adjudication and payment dates for governed analysis. - Confirm that service evidence connects delivered Care to the covered workflow while Clinical Notes, Messages and private Session content remain outside the payer contract. + Confirm that service evidence connects delivered Care to the covered workflow while Clinical Notes, Messages and private Session content remain outside the payer interface. Exercise Organization isolation, least-privilege scopes, synthetic-only test data, signature validation, stale-event rejection and minimum-necessary response fields. - Retain the contract commit, owner map, request identifiers, idempotency evidence, negative-test results, policy versions, reconciliation evidence and activation decision. + Retain the API definition commit, owner map, request identifiers, same-request retry evidence, negative-test results, policy versions, reconciliation evidence and activation decision. The [insurance acceptance plan](/insurance/acceptance-testing) turns these roles into one reproducible evidence pack. Sandbox access is issued to an approved Organization and stays isolated from production. -## Available contract +## Available interfaces The sandbox provides: @@ -88,7 +88,7 @@ Use separate projects and keys for each environment. Sandbox data is synthetic. Check eligibility before committing Cover. Where authorization is required, bind the eligibility decision to a covered Booking. Submit Claims from delivered Care, record line decisions, then allocate remittance against the approved amount. -Clinical Notes, message content and unrelated identity data are outside the payer contract. +Clinical Notes, message content and unrelated identity data are outside the payer interface. Start with the [insurance integration guide](/insurance/integration-guide), then review the [financial controls](/insurance/financial-controls) and [acceptance test plan](/insurance/acceptance-testing). @@ -104,7 +104,7 @@ Use the sandbox to test identity, Consent, terminology and exchange mappings wit | Review area | Evidence available now | Production decision owner | | --- | --- | --- | -| Contract and interoperability | OpenAPI 3.1, stable identifiers, typed errors, versioning and public SDK source | Joint architecture review | +| API definition and interoperability | OpenAPI 3.1, stable identifiers, typed errors, versioning and public SDK source | Joint architecture review | | Identity and authority | Organization, project, scope, role and purpose boundaries | Institution identity and security owners | | Privacy | Opaque payer references, separated clinical content and minimum-necessary schemas | Institution privacy owner and Heyrafiki privacy owner | | Financial control | Integer minor units, balanced adjudication lines, idempotency and independent settlement matching | Payer finance and operations owners | @@ -113,7 +113,7 @@ Use the sandbox to test identity, Consent, terminology and exchange mappings wit | Pilot safety | Synthetic data, environment isolation, negative tests and activation gates | Named pilot steering group | - A production integration activates only after the institution approves its authority mapping, data purpose, security controls and operating owners. The system contract and synthetic pilot remain available for technical due diligence before that decision. + A production integration activates only after the institution approves its authority mapping, data purpose, security controls and operating owners. The published API definition and synthetic pilot remain available for technical due diligence before that decision. ## Research diff --git a/concepts/platform.mdx b/concepts/platform.mdx index 1b7758d..0fd5d09 100644 --- a/concepts/platform.mdx +++ b/concepts/platform.mdx @@ -4,7 +4,7 @@ description: "How public resources connect Care, Cover, Claims and remittance." keywords: ["healthcare platform workflow", "Care and Claims", "API workflow"] --- -Heyrafiki connects Care and payment operations through shared resource identifiers and versioned contracts. +Heyrafiki connects Care and payment operations through shared resource identifiers and versioned interfaces. ## Resource model diff --git a/institutions/assurance-graph.mdx b/institutions/assurance-graph.mdx index 8bf1de3..9cbf495 100644 --- a/institutions/assurance-graph.mdx +++ b/institutions/assurance-graph.mdx @@ -1,10 +1,10 @@ --- title: "Assurance Graph" -description: "Trace every API capability to its contract, control owner, public source and executable evidence." +description: "Trace every API capability to its definition, control owner, public source and executable evidence." keywords: ["regulatory assurance", "insurance API controls", "government integration", "digital health conformance"] --- -The Assurance Graph connects each public API operation to an accountable capability, control owner, governing source and executable evidence artifact. It gives insurer, government, regulator, security and engineering reviewers one path from a public statement to the contract and test that support it. +The Assurance Graph connects each public API operation to an accountable capability, control owner, governing source and executable evidence artifact. It gives insurer, government, regulator, security and engineering reviewers one path from a public statement to the API definition and test that support it. The graph describes verified Heyrafiki behavior and keeps each institutional authority, operating decision and control owner explicit. @@ -26,7 +26,7 @@ flowchart LR | Which public source informs the control? | Control to IRA, DHA, CPB, government integration boundary or Heyrafiki domain authority | | Which API operations implement it? | Capability to unique OpenAPI operation identifiers | | How can a reviewer test it? | Control to fixture, schema and deterministic verification command | -| What happens when the contract grows? | CI fails when an operation has no accountable capability or references missing evidence | +| What happens when the API grows? | CI fails when an operation has no accountable capability or references missing evidence | ## Kenyan authority boundaries @@ -68,7 +68,7 @@ npm ci npm test ``` -The suite validates the OpenAPI contract, financial invariants, the bitemporal Claim valuation timeline and graph referential integrity. +The suite validates the OpenAPI definition, financial invariants, the Claim valuation timeline and graph referential integrity. ## Capability and access diff --git a/insurance/acceptance-testing.mdx b/insurance/acceptance-testing.mdx index cbeb5db..babf3b2 100644 --- a/insurance/acceptance-testing.mdx +++ b/insurance/acceptance-testing.mdx @@ -14,7 +14,7 @@ Use one isolated Sandbox project and synthetic records for the full payer pilot. - Own the contract commit, environment mapping, retry policy, idempotency keys, Webhook consumer and integration logs. + Own the API definition commit, environment mapping, retry policy, idempotency keys, Webhook consumer and integration logs. Own independent amount recomputation, Benefit interpretation, valuation assumptions, remittance allocation and settlement variance review. @@ -32,13 +32,13 @@ Use one isolated Sandbox project and synthetic records for the full payer pilot. ```mermaid flowchart LR - Contract["Freeze contract commit"] --> Positive["Run positive workflow"] + Definition["Freeze API definition commit"] --> Positive["Run positive workflow"] Positive --> Negative["Run authorization and failure cases"] Negative --> Reconcile["Recompute financial evidence"] Reconcile --> Retrieve["Retrieve audit pack"] Retrieve --> Decide{"Named owners approve"} Decide -->|Approved| Gate["Open production activation gate"] - Decide -->|Changes required| Contract + Decide -->|Changes required| Definition ``` ## Acceptance sequence @@ -104,7 +104,7 @@ Reject the pilot if the API accepts an unbalanced amount, changes the result of The pilot evidence pack should contain: -- the OpenAPI contract commit used by both teams; +- the OpenAPI definition commit used by both teams; - the payer-to-service-code mapping and its version; - environment, Organization and scope mapping; - synthetic request and response fixtures; @@ -120,7 +120,7 @@ Do not place keys, personal data, clinical records or payment credentials in the - + diff --git a/insurance/claim-valuation-timeline.mdx b/insurance/claim-valuation-timeline.mdx index d7d31a1..4800519 100644 --- a/insurance/claim-valuation-timeline.mdx +++ b/insurance/claim-valuation-timeline.mdx @@ -200,7 +200,7 @@ func main() { -The response includes the ordered Claim events with `effective_at`, `recorded_at`, status transitions, reason codes and bounded evidence references. The `GET /claims/{claim_id}/valuation` API reference contains the complete schema and error contract. +The response includes the ordered Claim events with `effective_at`, `recorded_at`, status transitions, reason codes and bounded evidence references. The `GET /claims/{claim_id}/valuation` API reference contains the complete schema and error format. ## Inspect the public evidence @@ -220,7 +220,7 @@ The check rejects future knowledge, invalid sequence, non-integer money, unbalan This timeline supports analysis of reported Claims and reproducible outstanding observations. Portfolio reserve selection, IBNR, premium liability, capital, solvency, reinsurance and actuarial opinions remain with the insurer and its appointed actuarial authority. - The open fixture uses synthetic data. An approved Organization can test the same contract in the [Sandbox](/sandbox), then define its production data mapping, valuation policy and control owners through the institutional review. + The open fixture uses synthetic data. An approved Organization can test the same workflow in the [Sandbox](/sandbox), then define its production data mapping, valuation policy and control owners through the institutional review. Continue with [financial controls](/insurance/financial-controls), the [Assurance Graph](/institutions/assurance-graph) and the [acceptance test plan](/insurance/acceptance-testing). diff --git a/insurance/financial-controls.mdx b/insurance/financial-controls.mdx index 331ab56..52e01cf 100644 --- a/insurance/financial-controls.mdx +++ b/insurance/financial-controls.mdx @@ -11,7 +11,7 @@ Heyrafiki uses integer minor units, balanced Claim lines and distinct evidence f - Every amount is an integer in the currency's minor unit. - Every resource carries its ISO 4217 currency. - Arithmetic does not use binary floating point. -- Cross-currency allocation is rejected. Currency conversion remains outside the Claim contract. +- Cross-currency allocation is rejected. Currency conversion remains outside the Claim workflow. - Limits are applied to the service and effective period carried by the payer observation. ## Claim line identities @@ -77,7 +77,7 @@ Over-allocation, payer mismatch, currency mismatch and allocation to a Claim wit ## Actuarial use -The operational contract preserves the service date, Coverage version, Benefit decision, submitted amount, allowed amount, payer amount, status history and remittance timing needed for governed payer analysis. +The operating model preserves the service date, Coverage version, Benefit decision, submitted amount, allowed amount, payer amount, status history and remittance timing needed for governed payer analysis. Actuarial measures require explicit exposure and valuation assumptions. A payer analysis should define at least: @@ -103,4 +103,4 @@ The payer remains the authority for premium, exposure, reserving assumptions, IB | Payment separation | Distinct remittance advice, settlement observation and reconciliation records | | Privacy boundary | Opaque references and schemas that exclude clinical content | -Review the [Claims guide](/claims), [Security boundary](/security/data-boundaries) and [acceptance test plan](/insurance/acceptance-testing) alongside the API contract. +Review the [Claims guide](/claims), [Security boundary](/security/data-boundaries) and [acceptance test plan](/insurance/acceptance-testing) alongside the API definition. diff --git a/insurance/integration-guide.mdx b/insurance/integration-guide.mdx index 6d8040a..873aea6 100644 --- a/insurance/integration-guide.mdx +++ b/insurance/integration-guide.mdx @@ -1,6 +1,6 @@ --- title: "Insurance integration guide" -description: "Connect payer Coverage, Benefits, Claims and remittance through one governed contract." +description: "Connect payer Coverage, Benefits, Claims and remittance through one governed interface." keywords: ["health insurance API", "payer integration", "claims API", "benefits API", "Kenya insurance"] --- @@ -40,7 +40,7 @@ sequenceDiagram H-->>P: Reconciliation state and audit references ``` -The payer controls membership, Benefit design and adjudication policy. Heyrafiki controls the workflow contract, authorization boundary, retry behavior and audit evidence. The Practitioner controls the clinical record. A payment source supplies settlement evidence independently from payer advice. +The payer controls membership, Benefit design and adjudication policy. Heyrafiki controls the workflow definition, authorization boundary, retry behavior and audit evidence. The Practitioner controls the clinical record. A payment source supplies settlement evidence independently from payer advice. ## End-to-end flow @@ -61,7 +61,7 @@ flowchart LR Map one payer tenant to one Heyrafiki Organization and issue a separate project for each environment. Grant only the scopes required by the integration. - Send individual observations through `POST /coverages`, or batches of up to 500 records through `POST /coverage_batches`. Each observation carries its source contract, source version, effective period and evidence references. + Send individual observations through `POST /coverages`, or batches of up to 500 records through `POST /coverage_batches`. Each observation carries its source policy reference, source version, effective period and evidence references. Call `POST /eligibility_checks` for the service date and requested amount. Treat `ineligible` as a decision with reason codes, not as a transport failure. @@ -70,7 +70,7 @@ flowchart LR Create a pre-authorization from the eligibility decision and covered Booking. The payer records the decision through `POST /preauthorizations/{preauthorization_id}/decisions`. - Create the Claim only after the covered Session is delivered. Send service codes, units, amounts and evidence references. Clinical Notes and private Conversation content do not enter this contract. + Create the Claim only after the covered Session is delivered. Send service codes, units, amounts and evidence references. Clinical Notes and private Conversation content do not enter this API request. Request bounded evidence when necessary, then record a versioned policy reference, line amounts and coded reasons through `POST /claims/{claim_id}/adjudications`. @@ -212,7 +212,7 @@ print(response.json()) -## Source data contract +## Source data mapping | Payer field | Heyrafiki field | Rule | | --- | --- | --- | @@ -251,4 +251,4 @@ Payer APIs use opaque Member and evidence references. They exclude names, contac ## Integration entry point -Use the [OpenAPI 3.1 contract](https://github.com/heyrafiki/contract), [Proving Ground](https://github.com/heyrafiki/proving-ground), [Sandbox](/sandbox) and [acceptance test plan](/insurance/acceptance-testing) for technical due diligence. [Request Sandbox access](https://heyrafiki.space/waitlist) when your integration team is ready to test. +Use the [OpenAPI 3.1 definition](https://github.com/heyrafiki/contract), [Proving Ground](https://github.com/heyrafiki/proving-ground), [Sandbox](/sandbox) and [acceptance test plan](/insurance/acceptance-testing) for technical due diligence. [Request Sandbox access](https://heyrafiki.space/waitlist) when your integration team is ready to test. diff --git a/legacy-domain-redirect.js b/legacy-domain-redirect.js new file mode 100644 index 0000000..d56bcb4 --- /dev/null +++ b/legacy-domain-redirect.js @@ -0,0 +1,8 @@ +(() => { + if (window.location.hostname !== "heyrafiki.mintlify.app") return; + + const destination = new URL(window.location.pathname, "https://docs.heyrafiki.space"); + destination.search = window.location.search; + destination.hash = window.location.hash; + window.location.replace(destination.href); +})(); diff --git a/mcp-server.mdx b/mcp-server.mdx index 2a42792..44eb850 100644 --- a/mcp-server.mdx +++ b/mcp-server.mdx @@ -10,7 +10,7 @@ keywords: ["Heyrafiki MCP", "Model Context Protocol", "MCP 2026-07-28"] Heyrafiki MCP exposes read-only Practitioner, Booking, Session, Benefits, -Claims and remittance tools over the same contracts as the REST API. +Claims and remittance tools over the same resource definitions as the REST API. ## Endpoint @@ -46,7 +46,7 @@ Access tokens are bound to the MCP resource, a Heyrafiki Organization and an approved grant. A token cannot use a tool outside the intersection of its token scopes and grant scopes. -## Wire contract +## Message format Every POST includes these HTTP headers: diff --git a/research/evidence.mdx b/research/evidence.mdx index da0c77e..3c9668e 100644 --- a/research/evidence.mdx +++ b/research/evidence.mdx @@ -19,7 +19,7 @@ flowchart LR | Authority | What it owns | Inspect it | | --- | --- | --- | -| API definition | The public REST interface and machine-readable Assurance Graph | [heyrafiki/contract](https://github.com/heyrafiki/contract) | +| API definition | The public REST interface and machine-readable Assurance Graph | [Open the API definition](https://github.com/heyrafiki/contract) | | Proving Ground | Deterministic conformance suites, fixtures and expected results | [heyrafiki/proving-ground](https://github.com/heyrafiki/proving-ground) | | Docs | Integration guidance and the meaning of released public behavior | [heyrafiki/docs](https://github.com/heyrafiki/docs) | | SDK repositories | Language-specific source maintained against the public API definition | [SDK guide](/sdks) | diff --git a/resources.mdx b/resources.mdx index 6ab249b..98fbbeb 100644 --- a/resources.mdx +++ b/resources.mdx @@ -5,7 +5,7 @@ description: "Map the released Heyrafiki API across Care, Benefits, Claims, remi keywords: ["Heyrafiki API", "mental healthcare API", "insurance API", "OpenAPI"] --- -The released OpenAPI 1.0.0 contract contains 31 operations across eight resource areas. Every operation in this map is implemented in the Sandbox and generated into an endpoint page under **API reference**. +The released OpenAPI 1.0.0 definition contains 31 operations across eight resource areas. Every operation in this map is implemented in the Sandbox and generated into an endpoint page under **API reference**. ## Released surface @@ -20,7 +20,7 @@ The released OpenAPI 1.0.0 contract contains 31 operations across eight resource | Remittances | 3 | List, create and retrieve remittance advice and reconciliation state | | Webhooks | 5 | List, register, retrieve, disable and test endpoints | -The reference is generated from the same versioned contract used by the public conformance suite. A new endpoint appears here only after implementation, authorization and error behavior, examples, compatibility ownership and sensitive-data review pass the publication gate. +The reference is generated from the same versioned API definition used by the public conformance suite. A new endpoint appears here only after implementation, authorization and error behavior, examples, compatibility ownership and sensitive-data review pass the publication gate. ## Start with one workflow @@ -193,4 +193,4 @@ Claim responses are project-scoped and omit Person, payer and clinical-record id - Currency codes use ISO 4217. - Unknown fields may be added. Ignore fields your integration does not use. -The generated endpoint reference is built from the versioned OpenAPI contract in this repository. +The generated endpoint reference is built from the versioned OpenAPI definition in this repository. diff --git a/sandbox.mdx b/sandbox.mdx index 851c19b..f22a267 100644 --- a/sandbox.mdx +++ b/sandbox.mdx @@ -31,4 +31,4 @@ Sandbox records do not represent real People, Practitioners, Claims or payments. ## Reset behavior -Synthetic records may be refreshed as the contract matures. Treat IDs as opaque and write integrations against documented fields, not fixture names. +Synthetic records may be refreshed as the API evolves. Treat IDs as opaque and write integrations against documented fields, not fixture names. diff --git a/scripts/check-docs.mjs b/scripts/check-docs.mjs index a8ffc84..7a9fc18 100644 --- a/scripts/check-docs.mjs +++ b/scripts/check-docs.mjs @@ -1,11 +1,52 @@ import { existsSync, readFileSync, readdirSync } from "node:fs"; import { extname, join, relative } from "node:path"; +import { runInNewContext } from "node:vm"; const root = process.cwd(); const failures = []; const config = JSON.parse(readFileSync(join(root, "docs.json"), "utf8")); const ignoredDirectories = new Set([".git", ".mintlify", "node_modules"]); +const legacyRedirect = readFileSync(join(root, "legacy-domain-redirect.js"), "utf8"); +function redirectFor(location) { + let redirectedTo = null; + runInNewContext(legacyRedirect, { + URL, + window: { + location: { + ...location, + replace(url) { + redirectedTo = url; + }, + }, + }, + }); + return redirectedTo; +} + +const legacyDestination = redirectFor({ + hostname: "heyrafiki.mintlify.app", + pathname: "/concepts/capabilities", + search: "?source=search", + hash: "#sandbox-resources", +}); +if ( + legacyDestination !== + "https://docs.heyrafiki.space/concepts/capabilities?source=search#sandbox-resources" +) { + failures.push("legacy domain redirect: path, query or fragment was not preserved"); +} +if ( + redirectFor({ + hostname: "docs.heyrafiki.space", + pathname: "/concepts/capabilities", + search: "", + hash: "", + }) !== null +) { + failures.push("legacy domain redirect: canonical host must not redirect"); +} + function walk(directory) { return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => { const path = join(directory, entry.name); @@ -35,8 +76,16 @@ const hypePatterns = [ for (const path of publicFiles) { const content = readFileSync(path, "utf8"); const label = relative(root, path); + const plainLanguageCopy = content + .replaceAll("https://github.com/heyrafiki/contract", "") + .replaceAll("source_contract_reference", "") + .replace(/\bProduct contract\b/giu, "") + .replace(/\bBenefit contract\b/giu, ""); if (content.includes("\u2014")) failures.push(`${label}: em dash`); if (/\b(?:TODO|FIXME)\b|\[VERIFY\]/i.test(content)) failures.push(`${label}: internal marker`); + if (/\bcontracts?\b/iu.test(plainLanguageCopy)) { + failures.push(`${label}: vague contract wording`); + } if (credibilityPatterns.some((pattern) => pattern.test(content))) { failures.push(`${label}: credibility-seeking copy`); } diff --git a/sdks.mdx b/sdks.mdx index d9ca15e..5ef0a7a 100644 --- a/sdks.mdx +++ b/sdks.mdx @@ -23,7 +23,7 @@ requirements, error envelope and request identifiers. | [`rafiki-net`](https://github.com/heyrafiki/rafiki-net) | .NET Standard 2.0, .NET 8 and .NET 10 | Insurer, health-system and government integrations | | [`rafiki-rs`](https://github.com/heyrafiki/rafiki-rs) | Rust 1.85+ | Correctness-sensitive and high-throughput services | | [`hey`](https://github.com/heyrafiki/hey) | Node.js 22+ | Local diagnostics, CI and governed API reads | -| [`contract`](https://github.com/heyrafiki/contract) | OpenAPI 3.1 | Code generation and API compatibility checks | +| [API definition](https://github.com/heyrafiki/contract) | OpenAPI 3.1 | Code generation and API compatibility checks | Each client is available from its public repository for Sandbox integration. The repository owns its source-install path, compatibility policy, release diff --git a/versioning.mdx b/versioning.mdx index 6643867..ad1c02e 100644 --- a/versioning.mdx +++ b/versioning.mdx @@ -10,7 +10,7 @@ The version is in the path. https://api.heyrafiki.space/v1 ``` -A `v1` request keeps the `v1` contract. +A `v1` request keeps the documented `v1` behavior. ## Additive changes