Complete Phase 18 operational hardening

This commit is contained in:
2026-05-12 13:32:35 +00:00
parent 185f7ca2b6
commit 68e2d9b549
6 changed files with 719 additions and 22 deletions

View File

@@ -43,8 +43,7 @@ Implemented today:
- Explicit runtime support for `--modules spoken_word` through the production runner path.
Not implemented in CLI runtime path today:
- Operational hardening tasks beyond current runtime/reporting/diagnostics behavior.
- Rollout and Python retirement work.
- Rollout and Python retirement work (Phase 19).
Current reality:
- all production modules exist and are wired into the default runtime path.
@@ -66,7 +65,8 @@ Phase sequencing note:
- Phase 15 spoken-word module implementation and explicit runtime wiring are complete;
- Phase 16 default full pipeline integration is complete;
- Phase 17 parity fixture suite is complete;
- next recommended phase is Phase 18 (operational hardening and subprocess integration).
- Phase 18 operational hardening and subprocess integration are complete;
- next recommended phase is Phase 19 (documentation, rollout, and Python retirement).
## Actual Go package layout
@@ -492,17 +492,23 @@ Implemented tests currently cover:
- production homophones module prompt constraints, proposal mapping, validator-chain behavior, confidence-threshold enforcement, diagnostics redaction, protected-term behavior, and explicit CLI/runtime integration (`internal/modules/homophones/*_test.go`, `internal/cli/run_test.go`, `internal/framework/runner/*_test.go`)
- production spoken_word module prompt constraints, proposal mapping, validator-chain behavior, semantic guardrail behavior, confidence-threshold enforcement, diagnostics redaction, protected-term behavior, and explicit CLI/runtime integration (`internal/modules/spoken_word/*_test.go`, `internal/cli/run_test.go`, `internal/framework/runner/*_test.go`)
- glossary-derived protected-term extraction and stable behavior (`internal/framework/validators/protected_terms_test.go`)
- default full-pipeline runtime shape and ordering (`internal/cli/run_test.go`, `cmd/audita/main_integration_test.go`, `internal/cli/parity_test.go`)
- subprocess operational hardening behavior including large-input, failure-mode, timeout/cancellation, backend-failure, and partial-progress paths (`cmd/audita/main_integration_test.go`)
- report/diagnostics redaction and artifact-shape behavior across success and failure paths (`internal/cli/run_test.go`, `cmd/audita/main_integration_test.go`)
Not covered yet (because not implemented): full default-sequence transcript-polishing runtime behavior as a single default path.
## Operational hardening status (Phase 18)
The runtime now includes hardened subprocess behavior for parent-process callers:
- deterministic success/failure exit codes;
- strict stdout/stderr separation suitable for machine orchestration;
- failure stderr summaries that include diagnostics location when available;
- retained failure diagnostics (`report.json`, `error.log`, and artifacts written before failure);
- deterministic timeout/cancellation behavior in tests;
- redaction coverage for API keys/secrets across reports, diagnostics artifacts, and surfaced errors.
## Intended final architecture (not yet implemented)
The intended end-state still matches the rewrite plan:
- sequential module pipeline over a mutable working transcript
- default full module-sequence integration in the standard runtime path
- structured LLM proposal generation
- deterministic and LLM validators
- validator cardinality enforcement in pipeline execution
- proposal application integrated per module stage
- prompt/response diagnostics for LLM/module stages
Operational caller guidance is documented in [`docs/subprocess-operations.md`](docs/subprocess-operations.md).
Until those phases are implemented, documentation and external descriptions should treat the current Go CLI as deterministic preprocessing/reporting infrastructure, not a full LLM transcript polisher.
## Remaining work (Phase 19)
Remaining rewrite work is documentation/rollout/retirement-oriented:
- repository-level rollout documentation and migration guidance;
- Python retirement/archival decisions and related documentation cleanup;
- final release-facing communication of Go-primary operational guidance.