@@ -950,6 +950,41 @@ reads it. An engine that does not set it leaves the header surface in place,
950950which is what every consumer had before, so an older engine keeps its behaviour
951951and a newer one moves a project to the module surface with nothing declared.
952952
953+ #### 13.2.1 The same structure, for the batch that closed 14.1 and 14.2
954+
955+ The constraint has not changed and neither has its consequence, so the second
956+ batch has the same two waves and the same reason. It is recorded here rather
957+ than left to the pull requests because the shape is now a property of the two
958+ repositories rather than an accident of one change.
959+
960+ ```
961+ wave 1 mcpp 2026.9.8.1: `mcpp::recompile_if_changed` (protocol 9),
962+ e2e 633, three ninja-backend unit tests, docs/07 both languages,
963+ and this document's alignment with what shipped
964+ |
965+ +--- release mcpp ---+
966+ |
967+ wave 2 +--> mcpp:plugins 0.3.1: a depfile on
968+ all six rules, the `.incbin`
969+ declaration in `surface::emit`,
970+ three CI steps whose criterion is
971+ the artifact's bytes, and
972+ MCPP_VERSION raised to 2026.9.8.1
973+ |
974+ wave 3 +--> mcpp-index: 0.3.1 in the three
975+ platform tables, `latest` REPLACED
976+ |
977+ wave 4 +--> sandbox verification against the
978+ published packages
979+ ```
980+
981+ The engine half is testable on its own -- e2e 633 uses no rule package -- and
982+ the plugins half is not, because its floor is the release that has not happened
983+ when the pull request opens. Nothing in wave 2 can be checked by its own CI
984+ until wave 1 is published, so a green wave-2 CI is the LAST evidence available
985+ rather than the first, and the local run against a locally built engine is what
986+ stands in for it.
987+
953988### 13.3 Evaluation criteria, by the dimensions this work is judged on
954989
955990| Dimension | What decides it | Where it is checked |
0 commit comments