Files
skillfactor-pipeline fda858439f
Some checks failed
eval / structure (push) Has been cancelled
feat: community edition of recruitment-consultant
2026-07-10 03:37:44 +02:00

50 lines
1.6 KiB
YAML

name: eval
# Structural eval: a skill package must be complete and within limits before
# it can be merged. Complements sanitize.yml (content gate).
on:
pull_request:
push:
branches: [main]
jobs:
structure:
runs-on: windows
steps:
- uses: actions/checkout@v4
- name: Validate package structure
shell: python
run: |
import json, os, sys
errors = []
REQUIRED = [
"SKILL.md",
"manifest.json",
"references/profile.md",
"references/tasks.md",
"references/skills.md",
"references/tools.md",
]
for f in REQUIRED:
if not os.path.isfile(f):
errors.append(f"missing required file: {f}")
if os.path.isfile("SKILL.md"):
lines = open("SKILL.md", encoding="utf-8").read().splitlines()
if len(lines) > 300:
errors.append(f"SKILL.md too long: {len(lines)} lines (max 300)")
if not lines or lines[0].strip() != "---":
errors.append("SKILL.md missing frontmatter")
if os.path.isfile("manifest.json"):
m = json.load(open("manifest.json", encoding="utf-8"))
for key in ("name", "version", "layer", "ids", "sources", "attribution"):
if key not in m:
errors.append(f"manifest.json missing key: {key}")
if errors:
print("EVAL FAILED:")
print("\n".join(f"- {e}" for e in errors))
sys.exit(1)
print("eval: package structure OK.")