What to build
docs/release-procedure.md §8 is titled "The coordinated case" but is written throughout as the kntnt-wp-skills case. It makes this plugin's own release process read as conditional on another project, and it reaches deep into that project's internals to do so: scripts/discovery.py, scripts/classify.py, classify_defines(), WITHHELD_CLASS, the commit hashes 66e42e9 and 7eb6b90, and two of its ADR filenames. None of that is verifiable from this repository, and all of it rots silently — a rename over there leaves a confident, wrong sentence over here that no check in this repo can catch.
Rewrite §8 so the rule comes first and generically: when §4 decides API_VERSION moves, a client pinning a verified ceiling (the new glossary term) will refuse to run until its ceiling is raised, so the release is not complete until that client has been released and installed in step. The 6 → 7 move stays as the one worked example, cut back to what this repository can actually stand behind — that it happened, why the bump was taken (ADR-0018's second ground), and what the ordering required — without the other repository's file names, function names or commit hashes.
Keep unchanged: the install sequence and the wp-admin decision. Those are true whichever client is on the other end, and §8 explains why the manual install is what makes the ordering enforceable at all.
Two further things belong in this ticket:
AGENTS.md:14 describes this document as covering "the coordinated case with kntnt-wp-skills". Update the pointer to match the section's new framing.
plans/ is slated for removal once the current tickets close. CHANGELOG.md:74 and docs/adr/0018:32 both cite plans/README.md → "Cross-repo release order" as the record of that coordinated release, and the ordering there is fully executed — every step done, api_version at 7, 0.7.0 tagged. Fold whatever of it is durable into §8 so nothing of value dies with the directory. The ordering table itself is spent and need not survive; the rule it demonstrated must.
Do not touch docs/container-format.md. Its §1 and §10 state a fact about the world — this repository ships a writer and no reader, and the only production reader lives elsewhere — which is true regardless of how §8 is framed.
Acceptance criteria
Blocked by
What to build
docs/release-procedure.md§8 is titled "The coordinated case" but is written throughout as thekntnt-wp-skillscase. It makes this plugin's own release process read as conditional on another project, and it reaches deep into that project's internals to do so:scripts/discovery.py,scripts/classify.py,classify_defines(),WITHHELD_CLASS, the commit hashes66e42e9and7eb6b90, and two of its ADR filenames. None of that is verifiable from this repository, and all of it rots silently — a rename over there leaves a confident, wrong sentence over here that no check in this repo can catch.Rewrite §8 so the rule comes first and generically: when §4 decides
API_VERSIONmoves, a client pinning a verified ceiling (the new glossary term) will refuse to run until its ceiling is raised, so the release is not complete until that client has been released and installed in step. The 6 → 7 move stays as the one worked example, cut back to what this repository can actually stand behind — that it happened, why the bump was taken (ADR-0018's second ground), and what the ordering required — without the other repository's file names, function names or commit hashes.Keep unchanged: the install sequence and the wp-admin decision. Those are true whichever client is on the other end, and §8 explains why the manual install is what makes the ordering enforceable at all.
Two further things belong in this ticket:
AGENTS.md:14describes this document as covering "the coordinated case withkntnt-wp-skills". Update the pointer to match the section's new framing.plans/is slated for removal once the current tickets close.CHANGELOG.md:74anddocs/adr/0018:32both citeplans/README.md→ "Cross-repo release order" as the record of that coordinated release, and the ordering there is fully executed — every step done,api_versionat 7, 0.7.0 tagged. Fold whatever of it is durable into §8 so nothing of value dies with the directory. The ordering table itself is spent and need not survive; the rule it demonstrated must.Do not touch
docs/container-format.md. Its §1 and §10 state a fact about the world — this repository ships a writer and no reader, and the only production reader lives elsewhere — which is true regardless of how §8 is framed.Acceptance criteria
CHANGELOG.mdrather than to the other repositoryAGENTS.md's pointer to the document matches the section's new framingplans/README.md→ "Cross-repo release order" is lost; §8 carries what the citations inCHANGELOG.md:74and ADR-0018 rely ondocs/container-format.mdis untouchedcomposer gateis greenBlocked by