docs(plan): Step 3 tells an implementer to build a class that belongs to 2c-D - #823
Merged
Merged
Conversation
… to 2c-D Step 3 says "Then build TA_B (0x0011, ...)". The CCB object registry lists 0x0011 TraderAcceptance as "blocked — 2c-D" and states plainly that ownership of 0x0011 is 2c-D's, that 2c-B disclaims it, and that TA_B verification moves with its field table. 2c-C4 gives the reason in its charter note: an amendment cannot specify the verification of an object whose fields another amendment defines. So anyone following Step 3 literally would set out to build a class that is not yet defined, and would discover that only after writing the surrounding machinery. Recorded alongside it is the thing that makes 5c-2 startable anyway. 2c-C4 rules the state the market may reach in the meantime: "After C4 and before 2c-D: accepted-successor verification may succeed and validated economic admission may succeed — and a market fold remains PartialPendingRealization. It MUST NOT be promoted to realized from correspondence alone." That means Step 2/3 may lift the emission refusal and carry a market trade as far as bound-but-unrealized, with realization, fence release, receipt publication and TA_B all waiting for 2c-D. The refusal does not have to wait for 2c-D; only the second half of the lifecycle does. That distinction is the difference between 5c-2 being blocked and 5c-2 being startable, and it was not written down anywhere. Added to the existing second status block rather than as a third block, and the plan body is still not rewritten. Markdown only; neither pre-push gate reads markdown.
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.
The correction
Step 3 says "Then build
TA_B(0x0011, …)".The CCB object registry lists
0x0011TraderAcceptanceas blocked — 2c-D, and says plainly:2c-C4 gives the reason in its charter note: an amendment cannot specify the verification of an object whose fields another amendment defines.
So an implementer following Step 3 literally would set out to build a class that is not yet defined, and would find that out only after writing the surrounding machinery.
The part that makes 5c-2 startable anyway
Recorded alongside it, because on its own the above reads as "5c-2 is blocked", and it is not. 2c-C4 rules the interim state exactly:
So Step 2 and Step 3 may lift the market emission refusal and carry a trade as far as bound-but-unrealized. Realization, fence release, receipt publication and
TA_Ball wait for 2c-D.That distinction is the difference between 5c-2 being blocked and 5c-2 being startable, and it was not written down anywhere. The constraint on doing so is that nothing downstream may read a bound fold as realized, which is Ruling R1 and is already enforced by the withhold theorems.
Form
Added to the existing second status block rather than opening a third, and the plan body is still not rewritten.
Verification
Markdown only. Neither
make lintnorci/production_safety_checks.shreads markdown, so neither gate's result can change; CI runs both regardless. Every quotation was read fromorigin/main.