Plan the public API cleanup

This commit is contained in:
2026-10-27 14:55:22 +00:00
parent 07e4ae5d92
commit 556b10b2cd
2 changed files with 479 additions and 814 deletions

View File

@@ -4,12 +4,12 @@ Status: target settled; implementation has not begun.
Planning baseline: `7548fa1` (accepted decisions, with the v0.10.2 implementation
and subsequent interface/history remediation already present).
This roadmap owns the targeted end state, required changes, general dependency
order, and completion criteria. The [preliminary review](review.md) retains the
API catalog and original proposals; the [additional review](audit.md) retains
its evidence and alternatives. Proposal IDs below provide traceability. A later
implementation plan should select concrete edits, stages, validation commands,
and progress tracking.
This roadmap owns the targeted end state, required changes, and completion
criteria. The [implementation plan](implementation.md) owns concrete edits,
sequential stages, validation commands, and progress tracking. The
[preliminary review](review.md) retains the API catalog and original proposals;
the [additional review](audit.md) retains
its evidence and alternatives. Proposal IDs below provide traceability.
## Purpose And Scope
@@ -130,7 +130,7 @@ promises a record for every attempted source. This incorporates N5 into A1.
## Work Required From The Baseline
### 1. Migrate Public Declarations And Facade Conversions
### Public Declarations And Facade Conversions
Update the public declarations, comments, wrappers, and conversions as a coherent
surface. Useful existing owners are:
@@ -165,7 +165,7 @@ Preserve distinctions that the new names clarify:
- `FollowSymlinks` and `IncludeHidden` retain pointer defaulting and load-preflight
snapshot behavior. Do not mechanically rename YAML `follow` or `hidden` keys.
### 2. Replace Recording Entry Points And Retire Obsolete Diagnostics
### Recording Entry Points And Obsolete Diagnostics
Implement the two recording methods over the existing resolution lifecycle.
Migrate manual-record callers according to the intent they currently supply;
@@ -185,7 +185,7 @@ active documentation. A concrete supported role discovered during this check
should be brought back for discussion. These are verification tasks for accepted
removals, not permission to delete other diagnostics that happen to be uncommon.
### 3. Add Direct Lookup Without Changing Source Evidence
### Direct Lookup And Source Evidence
Implement the result and error methods against each receiver's retained source
inventory. Reuse source-copying and facade-conversion helpers where practical so
@@ -198,7 +198,7 @@ Lookup must not repeat acquisition, finalize failure evidence, or change source
IDs. A slice search or a suitable existing index can satisfy the contract; no
new lookup complexity promise or shared lazy cache is selected.
### 4. Carry The Two String Changes Through Their Producers And Readers
### Observable Strings And Their Producers And Readers
Replace the main-tier category's `"base"` spelling with `"main"` wherever that
category crosses the public boundary or is rendered. Imported contributions keep
@@ -214,7 +214,7 @@ Review Go constant references and literal comparisons/expected output separately
compilation catches old symbols but not stale diagnostic or provenance strings.
Other codes and layer values retain their existing meaning and spelling.
### 5. Update Consumer Guidance And Migration Information
### Consumer Guidance And Migration Information
Update declaration comments, applicable sections of [config.md](../config.md),
the [consumer guide](../consumers/README.md), README examples, and maintained
@@ -235,29 +235,6 @@ their original revisions. Old names in those records are not stale active API
usage. Do not rewrite history or require external consumer migrations to claim
the repository implementation is complete.
## General Implementation Order
1. Map the accepted public changes to declarations, conversions, producers,
existing tests, and maintained consumer call sites. Confirm D8's intended-use
evidence and identify the D6/N4 dependency.
2. Apply the declaration and source-record changes across the facade and engine
boundary, preserving the existing semantics described above. Implement D6
with its associated N4 cleanup. Ordinary and layered paths must converge on
the same selected public vocabulary.
3. Add both source-lookup methods using the renamed source-evidence representation.
Complete the provenance and diagnostic string migration across production
sites and their readers.
4. Migrate maintained examples, documentation, and affected tests alongside the
relevant changes; finish consumer migration guidance after the public surface
is coherent.
5. Review the integrated public API and behavior, run applicable development
checks, and record completion evidence.
This is dependency ordering, not a prescribed commit count or a requirement for
intermediate releases. Independent renames can proceed together. The later
implementation plan should choose concrete work units without adding temporary
public compatibility machinery.
## Validation And Completion
Follow the [testing policy](../policy/testing.md) and
@@ -300,5 +277,5 @@ passing the current baseline suite is not evidence of future implementation.
No significant open design decision remains. D8's role check and D6/N4's public
reachability check are implementation verification tasks; unexpected evidence of
a legitimate public use should be discussed before changing that use. Private
helper choices and indexing belong to the implementation plan. Public path
comparison (A2) remains deferred and outside this scope.
helper choices and lookup mechanics are selected in the implementation plan.
Public path comparison (A2) remains deferred and outside this scope.