Recorded input
Talk to us on a screen
A prohibited assurance is inserted into the same file.
A video appointment is risk-free.
site/locales/en/child.json
Content context lab
Explore how shared constraints survive audience-specific presentation. Inspect the recorded checks, their provenance and the limits of what they establish.
One profile · four reading situations
Child: Reading with a trusted adult. Familiar words and one step at a time.
Recorded input
A prohibited assurance is inserted into the same file.
A video appointment is risk-free.
site/locales/en/child.json
Recorded result
The exact wording rule detected the assurance, even with this audience’s presentation overrides.
Appointments, consent and device access still require human or semantic review. A passing wording check does not verify these facts.
Deterministic constraint · applicable
(?i)\b(guarantee|always safe|risk-free)\bLiteral RE2 pattern matching. No synonym search or factual inference.
Shared factual guidance · applicable
Appointments are not recorded. Screen sharing requires consent and can be stopped. The adviser cannot control the device or open its files.
Visible in the writer’s context. Semantic verification remains outside this deterministic run.
{
"input": {
"audience": "Children",
"eyebrow": "Harbor Help",
"title": "Talk to us on a screen",
"intro": "A video appointment is a time when you can talk with a Harbor Help adviser on a screen.",
"fact_title": "What is the same for everyone",
"fact_body": "A video appointment is risk-free.",
"privacy_title": "Keep your information safe",
"privacy_body": "We will not ask for your password or bank details. Ask a trusted adult if you are unsure.",
"action": "Ask a trusted adult to book a video appointment with you.",
"support": "A grown-up can call the support line if you need help."
},
"inputSha256": "387fda81a4f4a9b8b8bc1624a1bfb50a17eef93b7064d024db4407ea3e517446",
"context": {
"constraints": [
{
"constraint": {
"id": "harbor-help/no-unsupported-assurance",
"version": 1,
"source": "service-facts.md#assurances",
"statement": "Do not describe the service as guaranteed, always safe or risk-free.",
"kind": "prohibited_pattern",
"regex": "(?i)\\b(guarantee|always safe|risk-free)\\b",
"exceptions": [
{
"scope": {
"channel": "policy-example"
},
"reason": "A reviewed policy example quotes the prohibited wording.",
"approved_by": "fixture-author",
"approval_ref": "service-facts.md#fixture-exception"
}
]
},
"status": "applicable"
},
{
"constraint": {
"id": "harbor-help/recording-and-control",
"version": 1,
"source": "service-facts.md#recording-and-control",
"statement": "Appointments are not recorded. Screen sharing requires consent and can be stopped. The adviser cannot control the device or open its files.",
"kind": "guidance"
},
"status": "applicable"
}
],
"point": {
"path": "site/locales/en/child.json",
"profile": "harbor-help",
"channel": "child",
"collection": "child-page",
"ref": "harbor-help/child",
"coordinates": {
"audience": "child",
"channel": "child",
"product": "harbor-help",
"service": "harbor-help",
"topic": "video-appointments"
},
"default": false
},
"scope": "project",
"voice": {
"name": "Harbor Help",
"source": ".kapi/voice.yaml",
"field": "profiles.harbor-help.voice",
"guide": "# Voice Guide: Harbor Help\n\nHarbor Help explains how to get practical support. The facts stay the same for every reader; the explanation changes only to meet the reader where they are.\n\n## Shared constraints\nharbor-help/no-unsupported-assurance v1 (service-facts.md#assurances): Do not describe the service as guaranteed, always safe or risk-free. [mandatory critical pattern: (?i)\\b(guarantee|always safe|risk-free)\\b]\nharbor-help/recording-and-control v1 (service-facts.md#recording-and-control): Appointments are not recorded. Screen sharing requires consent and can be stopped. The adviser cannot control the device or open its files. [guidance; semantic verification unsupported by deterministic checks]\n\n## Tone\n- Personality: kind, clear, calm\n- Formality: informal\n- Emotion: reassuring\n- Humor: none\n- Guidelines: Use familiar words and explain one idea at a time. Tell the reader to ask a trusted adult for help with an appointment. Do not ask the reader to make an adult decision.\n\n## Style Rules\n- Use active voice\n- Sentence length: short\n- Point of view: second\n- Contractions: never\n\n## Vocabulary\n### Preferred Terms\n- **video appointment**: The service name for a scheduled conversation with an adviser.\n- **support line**: The non-emergency phone route to a person.\n- **Harbor Help**: Product name. Keep its spelling in every language.\n\n### Forbidden Terms\n- ~~video call~~ → use **video appointment**: Use the service term consistently.\n\n"
},
"terms": [
{
"concept_id": "term:harbor-help",
"term": "Harbor Help",
"locale": "en",
"status": "preferred",
"definition": "The fictional public-information service in this sample. It is a name and is never translated.",
"domain": "product",
"discouraged": false
},
{
"concept_id": "term:harbor-help",
"term": "Harbor Help",
"locale": "nb",
"status": "preferred",
"definition": "The fictional public-information service in this sample. It is a name and is never translated.",
"domain": "product",
"discouraged": false
},
{
"concept_id": "term:support-line",
"term": "hjelpetelefon",
"locale": "nb",
"status": "preferred",
"definition": "The phone service that helps a person use Harbor Help. It is not an emergency number.",
"domain": "service",
"discouraged": false
},
{
"concept_id": "term:support-line",
"term": "support line",
"locale": "en",
"status": "preferred",
"definition": "The phone service that helps a person use Harbor Help. It is not an emergency number.",
"domain": "service",
"discouraged": false
},
{
"concept_id": "term:video-appointment",
"term": "video appointment",
"locale": "en",
"status": "preferred",
"definition": "A scheduled conversation with a Harbor Help adviser over video. It is not a recording and it does not give the service access to a person's device.",
"domain": "service",
"discouraged": false
},
{
"concept_id": "term:video-appointment",
"term": "videomøte",
"locale": "nb",
"status": "preferred",
"definition": "A scheduled conversation with a Harbor Help adviser over video. It is not a recording and it does not give the service access to a person's device.",
"domain": "service",
"discouraged": false
}
],
"terms_total": 6,
"notes": [
"project scope: concept relations, revisions and market scoping live in a connected workspace"
]
}
}{
"command": [
"check",
"site/locales/en/child.json",
"--json",
"-p",
"kapi.yaml"
],
"exitCode": 3,
"report": {
"schema": "kapi.check/v1",
"pass": false,
"target": {
"kind": "file",
"file": "site/locales/en/child.json",
"blocks": 10
},
"summary": {
"findings": 1,
"critical": 1,
"major": 0,
"minor": 0,
"neutral": 0,
"score": 75
},
"gate": {
"max_critical": 0,
"max_major": -1,
"max_minor": -1,
"min_score": 0,
"failed": [
"critical findings 1 exceed limit 0"
]
},
"findings": [
{
"rule": "voice.style",
"check": "voice",
"severity": "critical",
"message": "Prohibited pattern: Do not describe the service as guaranteed, always safe or risk-free.",
"location": {
"file": "site/locales/en/child.json",
"block": "fact_body",
"anchor": {
"kind": "range",
"start": {
"run": 0,
"offset": 23
},
"end": {
"run": 0,
"offset": 32
}
},
"snippet": "risk-free"
},
"metadata": {
"constraint_id": "harbor-help/no-unsupported-assurance",
"constraint_source": "service-facts.md#assurances",
"constraint_version": "1",
"pattern": "(?i)\\b(guarantee|always safe|risk-free)\\b"
}
}
],
"execution": {
"analyzers": [
{
"id": "reader.validation",
"status": "not_requested",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "Reader validation was not requested."
},
{
"id": "hygiene",
"status": "passed",
"file": "site/locales/en/child.json",
"required": true,
"findings": 0,
"duration_ms": 0.083166
},
{
"id": "length",
"status": "not_requested",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "No length limit was configured."
},
{
"id": "pattern",
"status": "not_requested",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "No explicit patterns were configured."
},
{
"id": "voice.rules",
"status": "findings",
"file": "site/locales/en/child.json",
"required": true,
"findings": 1,
"duration_ms": 0.3035
},
{
"id": "voice.guidance",
"status": "unsupported",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "Applicable guidance requires semantic analysis; deterministic rules do not assess it."
},
{
"id": "voice.similarity",
"status": "not_requested",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "Similarity analysis was not requested."
},
{
"id": "voice.llm",
"status": "not_requested",
"file": "site/locales/en/child.json",
"required": false,
"findings": 0,
"reason": "This command does not run semantic review."
}
],
"timings": {
"context_ms": 2.517125,
"extraction_ms": 0.084959,
"analyzers_ms": 0.386666,
"report_ms": 0.002917,
"total_ms": 3.304167
}
}
},
"stdout": "{\n \"schema\": \"kapi.check/v1\",\n \"pass\": false,\n \"target\": {\n \"kind\": \"file\",\n \"file\": \"site/locales/en/child.json\",\n \"blocks\": 10\n },\n \"summary\": {\n \"findings\": 1,\n \"critical\": 1,\n \"major\": 0,\n \"minor\": 0,\n \"neutral\": 0,\n \"score\": 75\n },\n \"gate\": {\n \"max_critical\": 0,\n \"max_major\": -1,\n \"max_minor\": -1,\n \"min_score\": 0,\n \"failed\": [\n \"critical findings 1 exceed limit 0\"\n ]\n },\n \"findings\": [\n {\n \"rule\": \"voice.style\",\n \"check\": \"voice\",\n \"severity\": \"critical\",\n \"message\": \"Prohibited pattern: Do not describe the service as guaranteed, always safe or risk-free.\",\n \"location\": {\n \"file\": \"site/locales/en/child.json\",\n \"block\": \"fact_body\",\n \"anchor\": {\n \"kind\": \"range\",\n \"start\": {\n \"run\": 0,\n \"offset\": 23\n },\n \"end\": {\n \"run\": 0,\n \"offset\": 32\n }\n },\n \"snippet\": \"risk-free\"\n },\n \"metadata\": {\n \"constraint_id\": \"harbor-help/no-unsupported-assurance\",\n \"constraint_source\": \"service-facts.md#assurances\",\n \"constraint_version\": \"1\",\n \"pattern\": \"(?i)\\\\b(guarantee|always safe|risk-free)\\\\b\"\n }\n }\n ],\n \"execution\": {\n \"analyzers\": [\n {\n \"id\": \"reader.validation\",\n \"status\": \"not_requested\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"Reader validation was not requested.\"\n },\n {\n \"id\": \"hygiene\",\n \"status\": \"passed\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": true,\n \"findings\": 0,\n \"duration_ms\": 0.083166\n },\n {\n \"id\": \"length\",\n \"status\": \"not_requested\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"No length limit was configured.\"\n },\n {\n \"id\": \"pattern\",\n \"status\": \"not_requested\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"No explicit patterns were configured.\"\n },\n {\n \"id\": \"voice.rules\",\n \"status\": \"findings\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": true,\n \"findings\": 1,\n \"duration_ms\": 0.3035\n },\n {\n \"id\": \"voice.guidance\",\n \"status\": \"unsupported\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"Applicable guidance requires semantic analysis; deterministic rules do not assess it.\"\n },\n {\n \"id\": \"voice.similarity\",\n \"status\": \"not_requested\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"Similarity analysis was not requested.\"\n },\n {\n \"id\": \"voice.llm\",\n \"status\": \"not_requested\",\n \"file\": \"site/locales/en/child.json\",\n \"required\": false,\n \"findings\": 0,\n \"reason\": \"This command does not run semantic review.\"\n }\n ],\n \"timings\": {\n \"context_ms\": 2.517125,\n \"extraction_ms\": 0.084959,\n \"analyzers_ms\": 0.386666,\n \"report_ms\": 0.002917,\n \"total_ms\": 3.304167\n }\n }\n}\n",
"stderr": "{\n \"error\": \"quality gate failed\",\n \"code\": \"gate\"\n}\n"
}Switching cases displays recorded input and output. It does not run the engine or a model in this browser. The repair is an authored fixture, not an automatic factual correction.