fix(openmaus): use supported portable requirements

This commit is contained in:
DEls 2026-10-12 22:57:22 +02:00
parent b2ce17814d
commit f47e73044d
3 changed files with 15 additions and 9 deletions

View file

@ -18,13 +18,8 @@
],
"setupMinutes": 10,
"requirements": {
"apps": [
"MegaDash purchasing MCP connection"
],
"capabilities": [
"View scanned images and PDFs",
"Save local review reports"
]
"apps": [],
"capabilities": []
},
"team": {
"name": "Dash Foreman"

View file

@ -42,8 +42,10 @@ def main():
],
'setupMinutes': 10,
'requirements': {
'apps': ['MegaDash purchasing MCP connection'],
'capabilities': ['View scanned images and PDFs', 'Save local review reports'],
# Registry-specific requirement entries are not free-text labels.
# Manual MCP/image/report setup stays in the packaged skills.
'apps': [],
'capabilities': [],
},
'team': {'name': 'Dash Foreman'},
'agents': [{

View file

@ -21,6 +21,15 @@ def main(path):
p = d.get("package", {})
for k in ["id","release","name","tagline","summary","category","author","license","outcomes","requirements","team","agents"]:
if k not in p: errs.append(f"package.{k} missing")
# The supplied template/export examples establish empty requirement arrays.
# Nonempty registry requirements need the actual app schema, not free text.
requirements = p.get("requirements", {})
if not isinstance(requirements, dict):
errs.append("package.requirements must be an object")
else:
for field in ("apps", "capabilities"):
if requirements.get(field) != []:
errs.append(f"package.requirements.{field}: this portable generator supports [] only; put manual setup in skills until registry requirements are verified")
kebab = re.compile(r"^[a-z0-9]+(-[a-z0-9]+)*$")
if not kebab.match(p.get("id","")): errs.append("package.id must be kebab-case")
if not re.match(r"^\d+\.\d+\.\d+$", p.get("release","")): errs.append("release must be semver")