Complete Phase 17 parity fixture suite

This commit is contained in:
2026-05-12 12:50:05 +00:00
parent 7ccadc6bd6
commit 185f7ca2b6
41 changed files with 798 additions and 4 deletions

View File

@@ -98,7 +98,6 @@ Implemented:
- Generic JSON diagnostics primitives for LLM interactions (request metadata, request payload, response payload, optional error payload) with secret redaction.
Not yet implemented in runtime pipeline:
- Python parity fixture suite and parity verification workflow.
- Operational hardening beyond current Phase 16 runtime/reporting/diagnostics scope.
- Rollout/Python retirement work.
@@ -238,7 +237,7 @@ Not implemented in Phase 8 (by design):
## Remaining work plan
Next recommended phase: **Phase 17 (Python parity fixture suite)**.
Next recommended phase: **Phase 18 (operational hardening and subprocess integration)**.
## Phase 9: Structured LLM client and scheduler infrastructure
@@ -527,6 +526,8 @@ Intentionally deferred:
## Phase 17: Python parity fixture suite
Completed.
### Purpose
Establish confidence that the Go implementation matches the behavior and safety posture of the initial Python implementation.
@@ -566,6 +567,35 @@ The repository has a durable test suite demonstrating that the Go implementation
- Unintentional compatibility breaks are fixed.
- `go test ./...` passes.
### Phase 17 completion status
Implemented:
- Durable parity fixture harness in Go test path (`internal/cli/parity_test.go`).
- Representative parity fixture corpus under `internal/cli/testdata/parity`.
- Fake LLM proposal/validator fixtures driving deterministic parity tests.
- Default full-pipeline parity coverage including sequence/order and repeated glossary naming:
- `glossary_1`
- `homophones`
- `glossary_2`
- `spoken_word`
- `grammar`
- Parity checks that are strict for deterministic contract fields:
- transcript content
- module order and instance names
- applied/skipped/rejected counts
- report status and failed-module metadata
- Parity checks that ignore nondeterministic metadata fields:
- timestamps
- run IDs
- temp/absolute paths
- provider token usage details
- Documentation of intentional Python-vs-Go differences and honest open parity gaps in `docs/python-parity.md`.
- Normal `go test ./...` path remains independent of real LLM credentials and Python dependencies.
Intentionally deferred:
- Phase 18 operational hardening and subprocess integration expansion.
- Phase 19 rollout and Python retirement work.
## Phase 18: Operational hardening and subprocess integration
### Purpose