refactor(dummies): name the replay guidance and its snippet distinctly - #303
Merged
Merged
Conversation
The two concepts are a whole and its part -- one sentence embedding the code a reader copies -- but ReplayHint/ReplayInstruction advertised neither the containment nor which was which. The weight was inverted too: the whole was a "hint" (which undersells an exact, verbatim sentence) while the part carried the stronger "instruction". Rename to ReplayGuidance and ReplaySnippet. Prose contains code, so the containment now reads without a comment, and "guidance" no longer suggests the sentence is approximate. The XML docs state the relation outright rather than leaving it to be inferred. The public parameter follows (replayInstruction -> replaySnippet): Dummies has never shipped -- both PublicAPI.Shipped.txt files are empty and no dum-v tag exists -- so the surface can still be named right at no cost to any consumer. ADR-0038 is amended in place, EN and FR. Its decision, rationale, alternatives and consequences are untouched; only the vocabulary naming the two concepts changes, which is terminology rather than the decision itself. French keeps "indication de rejeu" for the sentence and moves the fragment to "extrait de rejeu". No behavioural change: every generated message is byte-identical. Refs: #226
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ReplayHintandReplayInstructionname a whole and its part — one sentence embedding the code a reader copies — but neither name advertised the containment, nor which was which. The weight was inverted too: the whole was a "hint" (which undersells an exact, verbatim sentence) while the part carried the stronger "instruction". Renamed toReplayGuidanceandReplaySnippet, so prose contains code reads without a comment. No behavioural change: every generated message is byte-identical.Type of change
Changes
ReplayHint→ReplayGuidance,PartialReplayHint→PartialReplayGuidance(internal, onRandomSourceand both implementations).ReplayInstruction→ReplaySnippet(the private helper and the ambient-state property).Any.UseSeed(int, string replayInstruction)→replaySnippet, with the PublicAPI baselines updated on both TFMs.Dummies.Xunit's private helper and in both test suites.Any.UseSeed(int, string)gains a worked example showing the snippet and the sentence it lands in.Why the public rename is free
Dummieshas never shipped: bothPublicAPI.Shipped.txtfiles are empty, there is nodum-v*tag, and noPackageValidationBaselineVersionis set. No consumer can be affected, which is exactly the pre-1.0 latitude ADR-0011 and ADR-0038 rely on. The box above is ticked because the signature changes, not because anyone is broken.On amending an accepted ADR
ADR-0038 is
Accepted, and the repository's rule is that an accepted ADR is not edited in place. This edit was authorised by @Reefact in the session on the grounds that the terminology is not the decision. Its Decision, Rationale, Alternatives and Consequences are unchanged in substance — only the two words naming the concepts move, including one section heading (Phrase the ambient hint neutrally→Phrase the ambient guidance neutrally). If you would rather this were a superseding ADR than an in-place amendment, say so and I will restructure it.French
The French docs keep « indication de rejeu » for the sentence — the right French word, where a calque like « guidage » would read as a guidance system — and move the fragment to « extrait de rejeu », the usual rendering of snippet.
Testing
dotnet build FirstClassErrors.sln— succeeds, no warningsdotnet test FirstClassErrors.sln— 11 suites, 1559 tests, 0 failuresFirstClassErrors.Analyzers.UnitTests) — 132 passed, as part of the solution runThat the behaviour is unchanged is not merely asserted: the pre-existing tests pin the exact message text (
"The arbitrary values were seeded with 1234","Any.Reproducibly(1234") and pass untouched. A repository-wide grep confirms no occurrence ofReplayHint,ReplayInstruction,replayInstruction, "replay instruction" or « instruction de rejeu » remains.Not run here: the net472 leg, as before — there is no Mono on the Linux legs, so the
framework-floorjob proves it.Documentation
doc/updatedArchitecture decisions
ADR-0038 is touched, but for vocabulary only — no decision is created, superseded or contradicted.
Related issues
Refs #226 — follow-up to #300, which introduced the two concepts.
Generated by Claude Code