integrate: sync appendix sources to v0.5 appendix table (00-10)

Integration arbitration, not a PR commit: v0.3/v0.4/v0.5 synced body
changes into appendix chapters 00/02/04/06/07 while templates/roles/
sources stayed at v0.2, so check_appendix failed 6 chapters; and
09-ops/10-iteration chapters (v0.5) were invisible to the strict
chapter regex because of the ', v0.5 new' title suffix, breaking
the #214 matrix-vs-appendix test. Direction is sources follow the
appendix (appendix is the tenant-visible authoritative version;
never overwrite v0.5 text with v0.2). 09/10 headers normalized to
strict form (suffix only); 09/10 sources split mechanically from
the appendix; EXPECTED_IDS extended to 11 chapters in the checker
and both appendix tests.
This commit is contained in:
host committed 2026-11-04 20:54:33 +00:00
1 parent e1ba572a5a
commit 17fa493da7
12 files changed
+302 -57

No files matched your search

@@ -10,10 +10,10 @@ source, then re-issue the appendix through the skill's own track),
never a silent rewrite by this script.
What it checks, in order:
1. SKILL.md contains the appendix intro and exactly the nine
chapters 00..08, in order, each with a source note naming its own
1. SKILL.md contains the appendix intro and exactly the eleven
chapters 00..10, in order, each with a source note naming its own
templates/roles/<id>.md file.
2. templates/roles/ contains exactly those nine source files:
2. templates/roles/ contains exactly those eleven source files:
a missing source fails, an unexpected extra file fails.
3. Each source, in canonical form, equals the matching appendix
chapter in canonical form (see canonical() below).
@@ -27,9 +27,10 @@ and its appendix chapter -- anything else is a failure):
templates/roles/<id>.md)") exists only in SKILL.md; it is
derived from the file name, not stored in the source.
b. One inter-chapter separator line "---": in the current SKILL.md
it appears after chapters 01/02/03/05/06 only. Chapters
it appears after chapters 01/02/03/05/06/09 only. Chapters
00/04/07 end with their GitHub subsection and run straight into
the next heading with no separator, and 08 is the end of file.
the next heading with no separator, and 10-iteration is the end
of file.
The check strips at most one trailing separator; it does NOT
normalise SKILL.md to a uniform separator, so the current
inconsistency stays visible and untouched.
@@ -62,7 +63,8 @@ from pathlib import Path
EXPECTED_IDS = ["00-coordinator", "01-product-manager", "02-architect",
"03-designer", "04-client-developer", "05-backend",
"06-qa", "07-acceptance", "08-shared-core"]
"06-qa", "07-acceptance", "08-shared-core",
"09-ops", "10-iteration"]
CHAPTER_RE = re.compile(
r"^## 附录角色:(\d{2}-[a-z0-9-]+)"