The revised boundaryBoth unknown simple names and malformed dotted paths originate in third-party schema text, not Harness-authored template syntax.

Two errors. One ownership failure.

Unknown

{{hexagon}} is valid grammar but has no registered value.

Malformed

{{dotted.state.path}} fails the simple-name grammar.

Mode

code and both generate tools:sdk.

Control

native carries the same text outside prompt interpolation.

Do not patch one description forever.

Operator patchsplit the braces

Restores one known description but changes model-visible text.

Incomplete repairescape descriptions

Property names, enums, and const strings can still cross.

Explicit contractraw section

All generated SDK bytes skip interpolation.

both is not a workaround.

It keeps native schemas and still generates tools:sdk, so the literal group reaches the strict renderer.

Make literal ownership explicit.

A proposed contributor patch adds PromptSection.raw, preserves it through assembly, skips interpolation only for raw sections, and registers tools:sdk as raw. Persona and other deployment-authored sections remain strict.

tool description:      {{dotted.state.path}}
tools:sdk + raw:       {{dotted.state.path}}
deployment template:   {{cwd}}  → still interpolated

The patch is in a contributor fork, not the official DeepSeek AI repository. Treat it as a source-backed proposal until an upstream commit lands.

Primary evidence.

Keep the complete repair matrix.

The canonical guide covers TypeScript and Python, descriptions and schema values, operator recovery, assembly propagation, regression gates, and an incident bundle.

Read and star on GitHub