🐛 fix(thirdparty): align human skill registry
This commit is contained in:
+34
@@ -3,6 +3,40 @@
|
|||||||
version: 1
|
version: 1
|
||||||
|
|
||||||
skills:
|
skills:
|
||||||
|
- id: matt-pocock-skills
|
||||||
|
sync: enabled
|
||||||
|
upstream_repo: https://github.com/mattpocock/skills.git
|
||||||
|
upstream_ref: main
|
||||||
|
upstream_paths:
|
||||||
|
- skills/engineering
|
||||||
|
- skills/productivity
|
||||||
|
- skills/misc
|
||||||
|
upstream_layout: multi_skill_suite
|
||||||
|
selected_for:
|
||||||
|
- requirements grilling and documentation-backed discovery
|
||||||
|
- specification and ticket decomposition
|
||||||
|
- test-first implementation and code review
|
||||||
|
- local ticket lifecycle orchestration
|
||||||
|
playbook_fit: Matt Pocock engineering workflow skills used by the project playbook
|
||||||
|
notes:
|
||||||
|
- Only the curated skill directories declared by the CI manifest are synchronized.
|
||||||
|
|
||||||
|
- id: ui-ux-pro-max
|
||||||
|
sync: enabled
|
||||||
|
upstream_repo: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git
|
||||||
|
upstream_ref: main
|
||||||
|
upstream_paths:
|
||||||
|
- src/ui-ux-pro-max/templates
|
||||||
|
- src/ui-ux-pro-max/data
|
||||||
|
- src/ui-ux-pro-max/scripts
|
||||||
|
upstream_layout: repository_root_skill
|
||||||
|
selected_for:
|
||||||
|
- UI and UX design-system decisions
|
||||||
|
- frontend visual consistency and accessibility guidance
|
||||||
|
playbook_fit: searchable UI/UX design intelligence for frontend work
|
||||||
|
notes:
|
||||||
|
- CI renders the upstream data and templates into the local Codex skill format.
|
||||||
|
|
||||||
- id: brooks-lint
|
- id: brooks-lint
|
||||||
sync: enabled
|
sync: enabled
|
||||||
upstream_repo: https://github.com/hyhmrright/brooks-lint
|
upstream_repo: https://github.com/hyhmrright/brooks-lint
|
||||||
|
|||||||
@@ -51,6 +51,26 @@ def extract_workflow_region(name: str) -> str:
|
|||||||
|
|
||||||
|
|
||||||
class ThirdpartySkillsPipelineTests(unittest.TestCase):
|
class ThirdpartySkillsPipelineTests(unittest.TestCase):
|
||||||
|
def test_human_registry_lists_the_same_sources_as_the_ci_manifest(self):
|
||||||
|
registry = (
|
||||||
|
ROOT / "skills" / "thirdparty" / "thirdparty-skills.yml"
|
||||||
|
).read_text(encoding="utf-8")
|
||||||
|
entries = {}
|
||||||
|
for chunk in registry.split("\n - id: ")[1:]:
|
||||||
|
source_id, _, body = chunk.partition("\n")
|
||||||
|
entries[source_id.strip()] = body
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
sorted(entries),
|
||||||
|
sorted(entry["id"] for entry in load_manifest()["sources"]),
|
||||||
|
msg="SKILLS.md points at thirdparty-skills.yml as the human-readable "
|
||||||
|
"source registry, so it has to cover every source CI syncs",
|
||||||
|
)
|
||||||
|
for source_id, body in entries.items():
|
||||||
|
for field in ("upstream_repo", "selected_for", "playbook_fit"):
|
||||||
|
self.assertIn(
|
||||||
|
f"{field}:", body, msg=f"{source_id} is missing {field}"
|
||||||
|
)
|
||||||
|
|
||||||
def test_manifest_declares_all_thirdparty_sources(self):
|
def test_manifest_declares_all_thirdparty_sources(self):
|
||||||
data = load_manifest()
|
data = load_manifest()
|
||||||
|
|||||||
Reference in New Issue
Block a user