Wiring-fix: single source of truth for review leaf list + CI enforcement#48
Merged
Merged
Conversation
De-enumerate the AL review leaf list so it lives in exactly one place: the al-code-review super-skill's frontmatter sub-skills list. - al-code-review.md: drop the enumerated parenthetical from description and remove the redundant bullet re-list in the Source section. - README.md: remove the hardcoded count word and the enumerated domain list from the leaf-skill sentence. - validate_frontmatter.py: add cross-file rule R26 asserting a super-skill's declared sub-skills exactly match the sibling al-*-review.md leaf files on disk (missing, stale, and unregistered leaves all fail CI). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Problem
The super-skill
microsoft/skills/review/al-code-review.mdcomposes one leaf reviewer per knowledge domain. That leaf list was restated in four hand-maintained places, which collide on every concurrent domain PR/rebase and already produced a real off-by-one bug (README said "eight" while nine leaves existed):al-code-review.mdfrontmattersub-skills:— the source of truthal-code-review.md## Sourcesection — a redundant bullet re-list of the same pathsal-code-review.mddescription:frontmatter — an enumerated parenthetical of domain namesREADME.md— a sentence hardcoding a spelled-out count word + the enumerated domain listFix
Keep the list in exactly one place (frontmatter
sub-skills:) and fully de-enumerate the other three:al-code-review.mddescription — drop the(performance, security, …)parenthetical; now reads "…composing the AL review leaf skills, one per knowledge domain."al-code-review.md## Source— delete the redundant 11-path bullet list; keep the intro sentence and the trailing "added by updating thesub-skillslist" paragraph.README.md— replace "composes eleven leaf skills … (enumerated domains)" with "composes the AL review leaf skills … — one per knowledge domain." Markdown links preserved.Enforcement — new validator rule R26
.github/scripts/validate_frontmatter.pygains cross-file rule R26. For any action-skill declaring a non-emptysub-skills:list, it compares the declared set against the siblingal-*-review.mdleaf files actually on disk (set equality, ordering-agnostic, super-skill file excluded):sub-skills:→ error (leaf not registered — the "forgot to wire it up" case)This shrinks every future domain PR to a single appended line and makes drift impossible. The existing R20 shape-check is untouched.
Validation
python .github/scripts/validate_frontmatter.py --root .→ 0 errors / 0 warningspwsh .github/scripts/Test-KnowledgeIndex.ps1 -Root .→ PASSED (190 articles, unchanged)sub-skillsline firesR26: leaf not registered; adding a non-existent entry firesR26: declared sub-skill does not exist on disk.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com