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, "setupMinutes": 10,
"requirements": { "requirements": {
"apps": [ "apps": [],
"MegaDash purchasing MCP connection" "capabilities": []
],
"capabilities": [
"View scanned images and PDFs",
"Save local review reports"
]
}, },
"team": { "team": {
"name": "Dash Foreman" "name": "Dash Foreman"

View file

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

View file

@ -21,6 +21,15 @@ def main(path):
p = d.get("package", {}) p = d.get("package", {})
for k in ["id","release","name","tagline","summary","category","author","license","outcomes","requirements","team","agents"]: 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") 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]+)*$") 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 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") if not re.match(r"^\d+\.\d+\.\d+$", p.get("release","")): errs.append("release must be semver")