Record public facade boundary

This commit is contained in:
2026-09-12 15:56:11 +00:00
parent eb7de8e40a
commit f81def9365
7 changed files with 202 additions and 10 deletions

View File

@@ -181,6 +181,35 @@ distinguish decision from implementation, and documentation links pass.
Run `go test . -run 'LocalDocumentationLinks|DependencyImportBoundary|Example|Facade'`
and the everyday check. No engine migration in this stage.
### Completion
Status: complete (2026-09-12).
Baseline behavior was verified at `28e7fc5f690b36c60e4d03586afcff00fb1dee90`;
this plan was introduced by `eb7de8e40ab944f022a2b6984f4d4e0086f1484d`. The
complete root surface was inventoried with `go doc -all .`: lifecycle and generic
entry points; root value/input types (`Path`, `Source`, `Secret`); callback and
option records; metadata, provenance, diagnostics, history, and rendering
records; typed errors and bootstrap reports; and the scalar enum families. The
inventory also covered receiver methods, generic instantiations, and relevant
interfaces (`error`, `fmt.Formatter`, `fmt.Stringer`, `json.Marshaler`, and
`io.WriterTo`). Existing behavioral tests remain the source of detailed API
semantics; `facade_compatibility_test.go` supplies compact external-package
coverage for the migration boundary.
Added ADR 0006 and the architecture rule for root-owned public wrappers and
inward-only implementation dependencies. They describe the accepted target, not
an already-completed extraction. Repaired the development guide, source-origins
record, and remediation record to identify the old provenance plan by its Git
revision instead of linking to this plan. No engine or lifecycle migration was
introduced.
Validation on Linux with Go 1.26.7 passed: the focused documentation,
import-boundary, executable-example, and facade checks, followed by
`./scripts/check.sh`. There were no deviations. The next handoff copies the
unchanged root implementation into the bounded internal relocation candidate;
it must retain the documented public behavior while proving engine independence.
## Stage 2 — Establish the internal relocation candidate
Status: not started.

View File

@@ -22,8 +22,9 @@ displaced/default paths that the view cannot query. This adds allocation and cop
work proportional to retained history even for a resolver that never calls the
new methods. No wall-clock or memory threshold was measured or is asserted here.
The Stage 5 completion record in [implementation.md](implementation.md) also states
that the view "does not retain history"; the constructor contradicts that claim.
The historical completion record at
`28e7fc5:docs/roadmap/implementation.md` also states that the view "does not
retain history"; the constructor contradicts that claim.
### Correction

View File

@@ -38,11 +38,13 @@ confinement check.
## Evidence and handoff
The completed staged record in [implementation.md](implementation.md) maps all
twelve acceptance criteria to focused lifecycle, provenance, ownership, consumer,
explanation, and secret tests. The final implementation commit is expected to run
the source checker and the documented two-toolchain gate before any release
candidate is selected.
The completed staged record is preserved at
`28e7fc5:docs/roadmap/implementation.md`; retrieve it with
`git show 28e7fc5:docs/roadmap/implementation.md`. It maps all twelve acceptance
criteria to focused lifecycle, provenance, ownership, consumer, explanation, and
secret tests. The final implementation commit is expected to run the source
checker and the documented two-toolchain gate before any release candidate is
selected.
Publication remains a maintainer decision. Release preparation must choose the
version, write a version-matched note, retire this completed roadmap with link