ADR-0029: Use one explicit replacement contract for every field

  • Status: Accepted — explicit owner decision 2026-10-02; public execution gated.
  • Recorded: 2026-10-02.

Context

ActivationSafety-R2 finding R2-1 described typed mappings that permute sensitive source values. The owner explicitly accepted this behavior: replacement has one contract for all fields and apparent sensitivity must be noted at the field, not used to prohibit a mapping merely because its result occurs in the source.

Decision

Explicit substitute and replace_text mappings may produce values equal to another source value, including values in sensitive fields and mapped permutations. Apply mappings once to bound source bytes with unchanged typed matching, duplicate-key, scope, identity-pair and unmatched-action rules. Do not infer origin from membership or equality: an applied mapping is replacement. Keep effective sensitivity and a bounded value-free note visible in review.

This narrowly supersedes the source-membership prohibition for explicit mappings, not ADR-0021's direct preserve/preserve-fallback authority. Those still require non-sensitive decisions, comments and local TTY receipts; DECIMAL preservation is unchanged. No implicit copy fallback, source-free generation reuse, raw values in profiles/review/logs/errors/summaries/providers/MCP, or real data access granted.

Public activation requires the updated baseline/OpenSpec contract, executable tests and independent review of the finished immutable activation SHA. Old review 343305e does not approve this changed policy. Remaining R2-2/3/4 are unaffected.

Evidence

Owner conversation 2026-10-02: “да разрешаю контракт замен - единый для всех”, followed by explicit instructions to implement. See the owner amendment in openspec/changes/selective-source-transformation/policy-contract.md and the historical report activation-safety-r2.md there. No human GitHub approval claimed.

See the policy contract and historical independent AI review.

Alternatives and consequences

Keeping a source-membership ban would contradict the explicit owner decision. Instead, deterministic mapped-cell evidence confines the exception to actual replacement output. Direct preservation and transport disclosure retain their separate restrictions. Sensitive mapped artifacts require local handling and are not synthetic datasets; sensitivity notes do not declassify their contents.

Revisit when

An owner-authorized successor changes replacement semantics or output disclosure. Any such amendment requires executable safety evidence and independent review of its complete exact SHA before public activation.