# AST Diagnostics, Recovery, and Gate Evidence Decision

Status: Accepted  
Date: 2026-03-05  
Related Agenda: `docs/pbs/agendas/archive/11.4. AST Workshop 4 - Diagnostics, Recovery, and Gate Evidence.md`

## Context

After closing AST contract, declaration surfaces, and statement/expression surfaces, PBS needed to close AST-facing diagnostics and parser-recovery policy plus the minimum Gate U evidence baseline.

Additionally, localization policy needed explicit alignment: diagnostics wording is locale-dependent and should be keyed by stable message tokens/template ids.

## Decision

PBS adopts the following AST diagnostics/recovery/evidence policy:

1. AST must preserve diagnostic fidelity:
   - required syntax diagnostics remain stable in `code`, `severity`, `phase`, `primary file`, and `primary span`.
2. Human-readable message text is locale/rendering-dependent and not a conformance identity key.
3. Stable diagnostics identity for i18n is carried by:
   - `diagnostic code`,
   - `phase`,
   - `message template id` (token),
   - and primary attribution.
4. Parser recovery is allowed to continue diagnostics, but recovered AST must remain structurally coherent and attribution-consistent.
5. Recovery must not fabricate permissive valid shapes that hide real syntax failures.
6. Gate U AST evidence must include:
   - representative valid AST fixtures,
   - malformed/recovery fixtures,
   - deterministic diagnostics assertions,
   - and attribution assertions (`file/start/end`) on required nodes.
7. Minimum mandatory negative fixture families include:
   - unexpected token in declaration context,
   - missing required closer (`)`, `}`, or `;`) as applicable,
   - non-associative forbidden chain forms,
   - unsupported form outside the active syntax slice with deterministic rejection.

## Invariants

1. Diagnostics identity is token-based and locale-agnostic.
2. Recovery cannot downgrade a required rejection into accepted semantics.
3. AST attribution quality remains sufficient for `12` diagnostics contract and `13` lowering preconditions.
4. Gate U fixtures must lock rejection stability for required AST-facing failures.

## Explicit Non-Decisions

1. This decision does not define transport-specific wire schemas.
2. This decision does not define static type-checking rules.
3. This decision does not define backend/runtime/verifier algorithms.
4. This decision does not require one exact localized wording set.

## Spec Impact

1. `docs/pbs/specs/11. AST Specification.md` must encode recovery integrity and AST-facing rejection/recovery invariants.
2. `docs/pbs/specs/12. Diagnostics Specification.md` remains authority for diagnostics identity fields, including template/token identity.
3. `docs/general/specs/13. Conformance Test Specification.md` provides Gate U evidence obligations referenced here.

## Validation Notes

Gate U validation should assert:

1. stable diagnostic identity keys (`code`, `phase`, template/token id, primary attribution),
2. recovery integrity without semantic masking,
3. deterministic results for the mandatory negative fixture families above.
