Ŕéçöŕđéđ îñþüţ
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
Çöñţéñţ çöñţéẋţ ļàƃ
Éẋþļöŕé ĥöŵ šĥàŕéđ çöñšţŕàîñţš šüŕṽîṽé àüđîéñçé-šþéçîƒîç þŕéšéñţàţîöñ. Îñšþéçţ ţĥé ŕéçöŕđéđ çĥéçķš, ţĥéîŕ þŕöṽéñàñçé àñđ ţĥé ļîḿîţš öƒ ŵĥàţ ţĥéý éšţàƃļîšĥ.
Öñé þŕöƒîļé · ƒöüŕ ŕéàđîñĝ šîţüàţîöñš
Child: Reading with a trusted adult. Familiar words and one step at a time.
Ŕéçöŕđéđ îñþüţ
A prohibited assurance is inserted into the same file.
A video appointment is risk-free.
site/locales/en/child.json
Ŕéçöŕđéđ ŕéšüļţ
Ţĥé éẋàçţ ŵöŕđîñĝ ŕüļé đéţéçţéđ ţĥé àššüŕàñçé, éṽéñ ŵîţĥ ţĥîš àüđîéñçé’š þŕéšéñţàţîöñ öṽéŕŕîđéš.
Àþþöîñţḿéñţš, çöñšéñţ àñđ đéṽîçé àççéšš šţîļļ ŕéǫüîŕé ĥüḿàñ öŕ šéḿàñţîç ŕéṽîéŵ. À þàššîñĝ ŵöŕđîñĝ çĥéçķ đöéš ñöţ ṽéŕîƒý ţĥéšé ƒàçţš.
Đéţéŕḿîñîšţîç çöñšţŕàîñţ · applicable
(?i)\b(guarantee|always safe|risk-free)\bĻîţéŕàļ ŔÉ2 þàţţéŕñ ḿàţçĥîñĝ. Ñö šýñöñýḿ šéàŕçĥ öŕ ƒàçţüàļ îñƒéŕéñçé.
Šĥàŕéđ ƒàçţüàļ ĝüîđàñçé · applicable
Appointments are not recorded. Screen sharing requires consent and can be stopped. The adviser cannot control the device or open its files.
Ṽîšîƃļé îñ ţĥé ŵŕîţéŕ’š çöñţéẋţ. Šéḿàñţîç ṽéŕîƒîçàţîöñ ŕéḿàîñš öüţšîđé ţĥîš đéţéŕḿîñîšţîç ŕüñ.
{
"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"
}Šŵîţçĥîñĝ çàšéš đîšþļàýš ŕéçöŕđéđ îñþüţ àñđ öüţþüţ. Îţ đöéš ñöţ ŕüñ ţĥé éñĝîñé öŕ à ḿöđéļ îñ ţĥîš ƃŕöŵšéŕ. Ţĥé ŕéþàîŕ îš àñ àüţĥöŕéđ ƒîẋţüŕé, ñöţ àñ àüţöḿàţîç ƒàçţüàļ çöŕŕéçţîöñ.