fix(openmaus): use supported portable requirements
This commit is contained in:
parent
b2ce17814d
commit
f47e73044d
3 changed files with 15 additions and 9 deletions
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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': [{
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue